<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Self Development - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Self Development - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 10:50:12 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/self-development/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How MySpace Taught Me How to Code and Where You Should Look to Develop Your Passion ]]>
                </title>
                <description>
                    <![CDATA[ Learning something new is hard. It's even more challenging if you have a hard time trying to find motivation. How can we find things in our everyday lives that can help us learn? Tom is no longer in your extended network It's been almost 10 years sin... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-myspace-taught-me-how-to-code-and-where-you-should-look-to-develop-your-passion/</link>
                <guid isPermaLink="false">66b8e32c6a98b2a27ee1f346</guid>
                
                    <category>
                        <![CDATA[ Career ]]>
                    </category>
                
                    <category>
                        <![CDATA[ career advice ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Career Change ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Career development  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ careers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Developer ]]>
                    </category>
                
                    <category>
                        <![CDATA[ developers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Lifelong Learning ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Self Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Thu, 21 May 2020 16:24:56 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/05/myspace.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Learning something new is hard. It's even more challenging if you have a hard time trying to find motivation. How can we find things in our everyday lives that can help us learn?</p>
<h2 id="heading-tom-is-no-longer-in-your-extended-network">Tom is no longer in your extended network</h2>
<p>It's been almost 10 years since we saw massive changes underway at MySpace. If you don't remember what <a target="_blank" href="https://myspace.com/">MySpace</a> was, it was the popular social network before Facebook was king (though technically it still exists).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/myspace-tom-profile.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Tom's MySpace Profile</em></p>
<p>This was when everyone started with a new friend named Tom who was the co-founder of MySpace. Everyone could set their own "top 8" that could make or break the best friendships if you snubbed someone. </p>
<p>You could also set a song for your profile which would be added as a little player, back when it was “okay” to automatically play a song when your page loaded.</p>
<p>But MySpace is now a thing of the past, so why am I talking about it?</p>
<h2 id="heading-making-myspace-your-space">Making MySpace, your space</h2>
<p>MySpace had a unique characteristic about it that you don't see in any of the popular social networks these days – it allowed you to add HTML and CSS into the page so that you could really do whatever you wanted with the your profile.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/myspace-edit-profile.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Example of custom code in a MySpace profile from <a target="_blank" href="https://www.dummies.com/social-media/myspace/how-to-embed-video-in-your-myspace-profile/">dummies.com</a></em></p>
<p>Though from a simplistic perspective, this gives you some limited options. Maybe you can add some CSS that updates how the headers look and change a background color.</p>
<p>But realistically, this opened the door to adding full webpages that you could overlay on top of your profile by positioning your new layout above the original content with some z-indexing.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/myspace-profile-filmore-band.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Custom MySpace profile for the band Filmore</em></p>
<p>The trick was, you had a limited amount of characters that you could put in each input. That had limitations, but these limitations helped promote creativity whether it was figuring out how to strip all of the whitespace in the code or by figuring out a way to add something with less overall code.</p>
<h2 id="heading-learning-through-hobbies">Learning through hobbies</h2>
<p>Building MySpace profiles was addicting! It was a social medium that you could customize to make your own and stamp your name on it to show everyone what you did. </p>
<p>While you could do the same with your own website, it wasn't as easy at the time. And building out a profile on MySpace was easy, free, and you could connect with all of your friends.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/myspace-custom-profile-colby-fayock-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>One of my portfolio custom profiles</em></p>
<p>Each time I made a new page, I tried to think about what else I could do. I was even involved with small communities where we would share our work and help each other figure out how to hack things into a profile page (shoutout DM!).</p>
<p>This whole time, as I was trying to learn what more I could customize, I was learning how to code! I learned about how I could squeeze every inch of HTML I could out of a document and I also developed an understanding of how CSS selectors worked. I also learned how positioning allowed me to do cool things on the page and how to center things back when we didn’t have the option to <a target="_blank" href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/">flexbox</a> all the things.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/flexbox-all-the-things-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Flexbox all the things!</em></p>
<p>And this led to “business Colby” developing a sense of entrepreneurship.  At this point, I was still in high school, but I was able to spin off a little business from building these pages. </p>
<p>While a modest $50 per profile seems low, that's a lot for a highschooler in 2004, not to mention that was a lot of money for another highschooler to pay to get one created!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/stk-counter-strike-team-website.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>STK Counter-Strike 1.6 team website</em></p>
<p>But this was the start of my code journey. Building off of MySpace, I started creating actual websites for Counter-Strike teams (CAL anyone?) and bands which would ultimately lead me to make a career out of coding.</p>
<h2 id="heading-turning-hobbies-into-jobs">Turning hobbies into jobs</h2>
<p>I've heard others with a similar story, even others who similarly started with MySpace that eventually turned their interest into a coding career. While the MySpace era is something we all look back and laugh at, it really inspired a lot of people to find what they love to do.</p>
<p>Finding this kind of inspiration can be important to discovering how you want to spend your time. Whether it's a hobby or learning on the side to turn it into a career, keeping engaged with something you're actually interested in is important to learning a new craft.</p>
<p>But it's important to pay attention to how you engage with that new interest. You don't want to force it into a career and quickly burn yourself out. That will lead to regret and resentment.</p>
<p>While I got lucky that my interest in coding ended up turning into my career, I make sure to not "take my work home" as it's important to separate the work from your personal interests like <a target="_blank" href="https://wwdc-memoji.netlify.app/">random</a> <a target="_blank" href="https://github.com/colbyfayock">OSS projects</a> on the side.</p>
<h2 id="heading-find-what-motivates-you">Find what motivates you</h2>
<p>The important thing is to find something that can motivate and inspire you to develop your passion whether for a career or hobby. Each of us have our own journey, whether code related or not, and we should try to find something that will make us happy.</p>
<p>What was your inspiration for your interests? <a target="_blank" href="https://twitter.com/colbyfayock">Share with me on Twitter!</a></p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Write More Effectively and Develop Your Unique Style ]]>
                </title>
                <description>
                    <![CDATA[ Writing is an important way for all of us to share our thoughts and experiences. While the content itself is important, what else can we can do to more effectively get our thoughts across? Why is writing important in the first place? Everyone will de... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-write-more-effectively-and-develop-your-unique-style/</link>
                <guid isPermaLink="false">66b8e37c0930782a57677996</guid>
                
                    <category>
                        <![CDATA[ Self Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ write ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing tips ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Thu, 14 May 2020 14:45:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/05/writing.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Writing is an important way for all of us to share our thoughts and experiences. While the content itself is important, what else can we can do to more effectively get our thoughts across?</p>
<h2 id="heading-why-is-writing-important-in-the-first-place">Why is writing important in the first place?</h2>
<p><a target="_blank" href="https://www.colbyfayock.com/2020/04/overcoming-your-fear-of-writing-and-how-you-can-find-motivation/">Everyone will develop their own reasons</a> for why writing is important to them, but there are aspects of writing that can help us all.</p>
<p>Writing is a way to teach both others and yourself. While it may be obvious that writing out a tech guide is helping to teach an audience, you're also reinforcing your own learning. Documenting your experiences both provides a way to dig deep into what you've learned and also gives you a way to reference it in the future.</p>
<p>While writing comes easier to some than others, it doesn't have to be scary! There's always someone that can learn from your perspective whether you're new or experienced on a topic.</p>
<p>And the best part about writing is you can do it for yourself. If you want to write to help yourself grow, you can do so privately and never share it with the public! But when making that decision, weigh the benefits, as there is some merit to <a target="_blank" href="https://www.swyx.io/writing/learn-in-public/">learning in public</a>.</p>
<p>So now that you're convinced, what can you do to make your writing more effective?</p>
<h2 id="heading-keep-your-content-organized-with-headlines">Keep your content organized with headlines</h2>
<p>Getting someone to read your content is already hard enough, but when you have a sea of text, it just makes digging in more intimidating.</p>
<p>Naturally when reading, having breaking points helps let your brain keep thoughts organized and understand the hierarchy of the page. By using headlines, we can effectively break our thoughts into chunks of content that can help others more easily follow along.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/reactjs-getting-started-guide.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>React's use of headings on their <a target="_blank" href="https://reactjs.org/docs/add-react-to-a-website.html">documentation website</a></em></p>
<p>An easy way to approach this is to think about the outline of your page before you dig in. When writing this article, I thought about what I wanted to talk about and in what order I thought it made the most sense.</p>
<p>While maybe some people might have understood the article regardless of the organization, it makes more sense to explain why it's important before going into how we can be more effective. Having that flow also helps me better express my thoughts as I'm writing the content.</p>
<p>This also helps from an SEO perspective. When you use <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header">HTML headers</a> (which is common in most content management systems), you're signaling to Google and the other search giants what your page is about and what's most important.</p>
<p>By effectively using headlines, you're helping not only your readers, but you're helping to send the right signals to the robots indexing your page for search.</p>
<h2 id="heading-visualizing-your-thoughts-with-images">Visualizing your thoughts with images</h2>
<p>Similar to headers, seeing a wall of text with no visual breakpoints can be hard to consume. Another way we can break up this content and provide more value is to add pictures to go along with our thoughts.</p>
<p>Pictures can be useful for a variety of reasons. For complex concepts, having a diagram can help illustrate thick data that can be hard to understand. Throwing a bunch of numbers in a sentence is easier to create, but providing a graph or chart can help someone actually understand what those numbers mean.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/new-york-times-nike-shoes-data-visualization-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://www.nytimes.com/interactive/2018/07/18/upshot/nike-vaporfly-shoe-strava.html">New York Times data visualization of running shoes</a></em></p>
<p>Adding examples of a new idea can help contextualize your thoughts. This can serve as a way to demonstrate a use case or to inspire someone with successful implementations.</p>
<p>But sometimes images are a good way to break the tension. Later we'll talk about finding your voice, but this is a way to help shape it. While maybe a funny gif isn't appropriate in a science paper, it can be a good way to get a chuckle in the middle of a technical walkthrough, particularly after getting through a dry, challenging part!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/spongebob-bored.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Spongebob bored</em></p>
<h2 id="heading-link-to-other-sources-for-more-context-and-trust">Link to other sources for more context and trust</h2>
<p>When writing, the last thing most of us probably think about is adding links to other pages. But this can be a valuable tool at your disposal!</p>
<p>From your reader's perspective, linking to other pages is a way to show authority with your writing. Are you making a claim based on facts? Link to those facts! By backing up your claim, you're building trust with your readers that you're doing the research.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/colbyfayock.com-language-popularity-link.jpg" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://www.colbyfayock.com/2020/02/how-to-become-a-full-stack-web-developer-in-2020/">Link and chart to show language popularity trends</a></em></p>
<p>But you're also helping yourself. If you've been writing for a while, you already have a stock of great content you want to share. Why not link to some of your past work with some <a target="_blank" href="https://moz.com/learn/seo/internal-link">internal links</a>?</p>
<p>The first sentence in this article when I was explaining why writing is important was a link to one of my previous articles:  <a target="_blank" href="https://www.colbyfayock.com/2020/04/overcoming-your-fear-of-writing-and-how-you-can-find-motivation">Overcoming Your Fear of Writing and How You Can Find Motivation</a>. Rather than rewriting all of the same content, I can highlight a key point and provide a link for the reader to follow if they're interested. I'm both helping give the reader more value and sharing more of my content at the same time.</p>
<p>Providing links to other sources via <a target="_blank" href="https://moz.com/learn/seo/external-link">external links</a> is also helpful. In addition to backing up your claims with your readers, you're also helping build that trust with search engines who can see that you're linking to trusted resources.</p>
<p>And there's also a chance someone from that other website can see you sending over links. If you're sending them traffic and they see value in your work, they might return the favor and send people your way.</p>
<p>Similar to headers, providing both internal and external links are another tool we have to build trust with both our readers and search engines.</p>
<h2 id="heading-finding-your-voice">Finding your voice</h2>
<p>Everyone tends to have their own unique voice when talking to others. And I'm not talking about the sound of your voice, but your style. It's the words you use, how you phrase them, and your experiences that go into those words.</p>
<p>You might even have a few different voices. Sometimes we need to be a little more professional in a school or work setting whereas we can be more relaxed with friends and family. But similar to when you talk to people, everyone has their own voice when writing.</p>
<p>This is something that will develop over time. Some people are lucky and find it early, but the more you write, the more you will develop your own unique style that people will grow to love.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/thinkgeek-unique-writing-voice.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>ThinkGeek's historically unique writing voice</em></p>
<p>And it's something that you don't need to and shouldn't fake. While changing the voice of your writing can be important if you're <a target="_blank" href="https://marketingland.com/20-great-social-media-voices-and-how-to-develop-your-own-18057">writing on behalf of someone else</a>, when you're writing from your own point of view, try to be yourself and open up your mind through your writing.</p>
<p>For me it comes from the passion of my work. I love being a developer so my voice naturally comes as I write articles to help others with their own journey. Try to remember why you're writing and it will help you craft your voice with that passion.</p>
<h2 id="heading-a-few-other-thoughts">A few other thoughts</h2>
<p>Here are a few more points that are worth mentioning.</p>
<h3 id="heading-code-snippets">Code snippets</h3>
<p>Similar to images, code can be an effective way of demonstrating your point. It also proves as a way to share the code as you're walking through how to create something.</p>
<p>While helpful, be careful not to abuse code snippets. You don't want long blocks of code that extend beyond the page or really even half of the page for that matter. If the code is going to be long, try using something like a <a target="_blank" href="https://gist.github.com/">gist</a>, git repo, <a target="_blank" href="https://codesandbox.io/">CodeSandbox</a>, or <a target="_blank" href="http://codepen.io/">Codepen</a>.</p>
<h3 id="heading-image-quality">Image quality</h3>
<p>Nobody likes looking at poor quality images. When adding a new image, make sure the resolution is high enough that it's clear and not looking fuzzy.</p>
<p>You also don't want to go too far overboard with high resolution imagery, as the bigger the image is, the larger the file size. Try to avoid huge images so your readers don't have to download those big files.</p>
<h3 id="heading-writing-tools">Writing tools</h3>
<p>Try to get comfortable with your writing tools. There are a ton of options whether you use something like <a target="_blank" href="https://bear.app/">Bear</a> to write with markdown or if you prefer to write directly in the CMS.</p>
<p>There's also a lot of tools that can help improve the quality of your writing. <a target="_blank" href="http://www.hemingwayapp.com/">Hemingway</a> will actually analyze the readability of your writing and help point out where you could improve it.</p>
<h2 id="heading-effective-storytelling">Effective storytelling</h2>
<p>These are just some tools that can help you tell your stories. While we're all writing for our own purposes, you can use these tools to ultimately help boost the great content that you're working hard to create!</p>
<h2 id="heading-what-are-your-tips-for-good-writing">What are your tips for good writing?</h2>
<p><a target="_blank" href="https://twitter.com/colbyfayock">Share with me on Twitter</a> and start the conversation!</p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What Is a Senior Developer and How Can I Become One? ]]>
                </title>
                <description>
                    <![CDATA[ Becoming a Senior Developer is something many of us strive for as we continue our code journey and build our career. But what does it actually mean to be a "Senior" Developer? What being a Senior Developer is not Before we start, let's get this out o... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-does-it-mean-to-be-a-senior-developer-and-how-can-we-become-one/</link>
                <guid isPermaLink="false">66bee969bc07dbcebef938e6</guid>
                
                    <category>
                        <![CDATA[ Code Journey ]]>
                    </category>
                
                    <category>
                        <![CDATA[ career advice ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Career development  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code newbie ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Developer ]]>
                    </category>
                
                    <category>
                        <![CDATA[ developers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Junior developer  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ personal development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ professional development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Self Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Thu, 07 May 2020 16:11:39 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/05/senior-developer.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Becoming a Senior Developer is something many of us strive for as we continue our code journey and build our career. But what does it actually mean to be a "Senior" Developer?</p>
<h2 id="heading-what-being-a-senior-developer-is-not">What being a Senior Developer is not</h2>
<p>Before we start, let's get this out of the way. Contradictory to what you'll see on 95%+ of the job postings online, a Senior Developer is not strictly correlated to only the number of years on your resume.</p>
<p>It's true, more often than not, that many years on the job typically bring with them a lot of experience. And with some companies you can get by with just that. But it's not the only quality that rightfully proves that someone is at a Senior level.</p>
<p>This is a common problem in the software world and can lead to high expectations with low delivery. It can also lead to conflict within the team when your new 15 year 10x Senior Developer refuses to work with others.</p>
<p>So what can we do to prepare ourselves for that role?</p>
<h2 id="heading-what-makes-a-senior-developer">What makes a Senior Developer?</h2>
<p>Looking back through my career at the developers on my team that I've admired and respected the most, it's really come down to four qualities:</p>
<ul>
<li>Experience</li>
<li>Leadership</li>
<li>Mentorship</li>
<li>Technical Ability</li>
</ul>
<p>It's not good enough to look at any one of these as the sole representation of how someone will perform on a team. Each developer is unique and may be stronger with one quality than another. But it's important to see how those qualities come together to determine how someone will help your team grow.</p>
<p>Let's break these each down a little bit.</p>
<h2 id="heading-experience">Experience</h2>
<p>Experience is typically thought of as years on the job, and while it's not completely inaccurate, it doesn't tell the whole story.</p>
<p>Just as every developer is unique, so is their experience. While one developer might have spent five years in an intensive position where they worked to solve hard technical challenges every day. And another might have been kicking their feet up at a local shop where their only responsibility was to update the website every week.</p>
<p>And that's not necessarily a bad thing! We each have our own journey and need to balance our lives to fit it. But it's not realistic to say those 5 years were the same.</p>
<p>Then what does experience really mean?</p>
<h3 id="heading-recognizing-patterns-from-previous-work">Recognizing patterns from previous work</h3>
<p>Every developer has a story (whether they remember it or not) of a random error they stumbled into through their development experience. This could be something dealing with Javascript, webpack, or even your operating system, and it just doesn't make any sense!</p>
<p>But whether through a peer or by searching on Google, you figure it out. And three months later when you're working on another project and run into the same thing, you don't even have to Google it, or you already know what to Google. You already know what the issue is and can get past it quickly and move on.</p>
<p>This is the kind of experience that makes a difference. Being able to recognize patterns whether because of an error or because it was super successful is what helps each of us grow. These are the experiences that help a team grow when others are stuck and you can get them out of a bind.</p>
<h3 id="heading-recognizing-what-you-dont-know">Recognizing what you don't know</h3>
<p>It's also important to understand what you don't know. I think part of what contributes to my own <a target="_blank" href="https://www.colbyfayock.com/2020/04/overcoming-your-fear-of-writing-and-how-you-can-find-motivation/">personal struggle with imposter syndrome</a> is that the more I learn the more I realize I don't know.</p>
<p>But this shouldn't be looked upon as a bad or scary thing. This should be inspirational. That means that your craft that you've been working on has that much more cool stuff to explore!</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/DavidKPiano/status/1255495988661420034"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>It's important to realize how this impacts your work and the rest of the team. For example, it doesn't help anybody if you act like you know everything and commit to huge amounts of work. When you commit to that work and actually don't understand it, it could knock your sprint off track which can frustrate the entire team (and the client).</p>
<p>Whether it's when you're planning or during development, don't be afraid to ask for help. Come up for air and throw your hands up! Just because you're the only Senior Developer, doesn't mean you can't learn something from a Junior team member.</p>
<p>Try to take a good look at where you've been, what you understand, and where you could benefit to dig in more.</p>
<h2 id="heading-leadership">Leadership</h2>
<p>As a senior member of a team, I would expect a developer to have a natural tendency to lead. While this doesn't mean you have to be an actual Tech Lead on a project or make any of the final decisions, this does mean that you should have a basic level of being able to help push the project forward</p>
<h3 id="heading-understanding-the-bigger-picture">Understanding the bigger picture</h3>
<p>If you've worked on projects with team members, you should know that each project or feature typically comes with a bunch of stories to work through to get it done. Each story should be a focused piece that helps accomplish a larger goal.</p>
<p>Where this becomes challenging is if no one on the team understands how each of these stories help to accomplish that bigger goal. As a Senior Developer, you should be able to see how each piece fits into the puzzle and why the story is written with the specific acceptance criteria. And if you don't know, you'll know how to get the answers and make sure it's communicated to the team.</p>
<p>If you're unsure of the direction, try to take a step back. Try to see where it fits in. Help to lead the project team to that ultimate goal.</p>
<h3 id="heading-helping-direct-less-experienced-team-members">Helping direct less experienced team members</h3>
<p>This comes naturally in the ability to help guide those on our team who are more junior or less experienced. It's common for developers to lose focus on the big picture. But as we just discussed, a Senior Developer should be able to continuously have a good idea of the overall project and where the different stories fit into the bigger epic.</p>
<p>Help guide others on your team to get them on the right path. While it would be beneficial for everyone to understand how everything fits in to the bigger picture, sometimes it makes more sense to help an individual focus on how their specific task fits in.</p>
<p>Try to recognize this struggle when working with others whether by encouraging them to ask more questions or helping to guide them if they're not quite on the right path as you're reviewing their code.</p>
<h2 id="heading-mentorship">Mentorship</h2>
<p>It's often more convenient to be heads down on your work and not have to worry about what anybody else is doing, but is that really benefiting anyone?</p>
<h3 id="heading-helping-to-build-up-other-team-members">Helping to build up other team members</h3>
<p>You might be the so-called <a target="_blank" href="https://www.techopedia.com/definition/31673/10x-developer">10x developer</a>, but doing everything yourself and not helping others can only slow down the overall team. Often you'll be stuck picking up the pieces that you could have easily caught if you spent an extra second pairing up with someone else on your team.</p>
<p>It's also bad for morale. No one wants to feel alone on a project and even more so as a junior. Software is a big scary world, a little guidance can go a long way to helping others to become more productive and subsequently encouraging a happier, less stressful environment.</p>
<p>It's easy to forget that we were all a junior team member at one time. While you might take things for granted, the concepts might be really challenging for others to grasp.</p>
<p>Keep in mind that we're all in this together. Celebrate the wins whether big or small. If somebody's struggling, reach out to help.</p>
<h3 id="heading-knowledge-sharing">Knowledge sharing</h3>
<p>Sharing knowledge is something many teams struggle with. While we're all usually hopeful that there's a way to accomplish it, most of the time it just goes unsolved. So what can we do?</p>
<p>Take it upon yourself to share what you know. Did you just rework the core business logic? Offer 30 minutes to walk everyone through the code. Pair up and screen share with your code reviewer if they're having a hard time understanding it.</p>
<p>This is something we can encourage everyone to do. You'll naturally learn more by presenting your work by reinforcing what you just worked on. This is helpful whether you're a Senior or it's your first time opening up a code editor.</p>
<h2 id="heading-technical-ability">Technical Ability</h2>
<p>I intentionally wanted to leave this until the end. This is because, while it's important, there are more aspects to your journey to becoming a Senior Developer than just being really, really good at something.</p>
<h3 id="heading-ability-to-get-moving-quickly">Ability to get moving quickly</h3>
<p>As a Senior Developer, I would expect another Senior Developer to become productive in something quicker than a Junior Developer. If they're an expert with Javascript, I would expect them to understand the core principles and patterns of the language.</p>
<p>But back to the idea of recognizing what you don't know, it's not reasonable to expect all Senior Developers to know everything. I wouldn't consider an expert in Ruby any less of a Senior Developer because they don't know Javascript, but I would expect them to understand how to apply what they know when building in and learning another language.</p>
<h3 id="heading-promoting-software-patterns">Promoting software patterns</h3>
<p>More often than not, the code pattern you just came up with isn't new. And that's okay! The goal of building great software isn't necessarily to be unique with every solution.</p>
<p>And because of that, we can learn from past work by seeing what's succeeded and what's maybe not gone over so well to find patterns that work for you and your team.</p>
<p>Patterns like <a target="_blank" href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC (Model View Controller)</a> didn't become popular without reason. Developers learned from the past and have learned from their peers who have solved big software challenges. With that knowledge, they can apply the solutions to their own work. It's not about reinventing the wheel, it's about solving challenges and making a good product.</p>
<h2 id="heading-we-all-have-our-own-unique-journeys-ahead">We all have our own unique journeys ahead</h2>
<p>No matter what anyone tells you, we all have our own unique code journeys. This is meant to encourage you and inspire you to become a better overall developer and understand how your work impacts the rest of the team.</p>
<p>While you certainly might succeed without taking these things into consideration, you could be missing out on core traits that could make people not want to work with you from a human being perspective.</p>
<p>Whatever your journey, keep these things in mind as you grow into becoming a better developer!</p>
<h2 id="heading-what-do-you-think-makes-a-good-senior-developer">What do you think makes a good Senior Developer?</h2>
<p>Do you think I'm spot on or way off? Share with me on <a target="_blank" href="https://twitter.com/colbyfayock">Twitter</a>!</p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Set Your Future Self Up for Success with Good Coding Habits ]]>
                </title>
                <description>
                    <![CDATA[ Think before you code. You have the power to make your future self's life Heaven on Earth or a living hell. In this article we'll explore what kinds of things you can do to make it a little easier on your future self. Revisiting "prior art" We've all... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/set-future-you-up-for-success-with-good-coding-habits/</link>
                <guid isPermaLink="false">66bee9536769d2581da6f951</guid>
                
                    <category>
                        <![CDATA[ Self-awareness ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 100Days100Projects ]]>
                    </category>
                
                    <category>
                        <![CDATA[ clean code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Code Quality ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code review ]]>
                    </category>
                
                    <category>
                        <![CDATA[ fundamentals ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Self Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Thu, 16 Apr 2020 14:45:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/04/set-up-for-success.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Think before you code. You have the power to make your future self's life Heaven on Earth or a living hell.</p>
<p>In this article we'll explore what kinds of things you can do to make it a little easier on your future self.</p>
<h2 id="heading-revisiting-prior-art">Revisiting "prior art"</h2>
<p>We've all been there. Six months into a project, you're trying to squash a bug, and what you find is shocking. You might be asking yourself, "who would write this kind of code?"</p>
<p>So you dig through your <a target="_blank" href="https://git-scm.com/">git</a> commit history using <code>git log -p filename.js</code> showing changes for a specific file, trying to see who would come up with something like that. And then your heart drops – you're the one who wrote it!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/04/tituss-burgess-shocked.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Tituss Burgess shocked</em></p>
<p>This is a common scenario for any developer, experienced or new. If you haven't hit that scenario, I promise if you stick with coding long enough, you will.</p>
<h2 id="heading-becoming-more-conscious-about-our-coding-habits">Becoming more conscious about our coding habits</h2>
<p>That six month reflection point is inevitable. That's a lot of time which you've most likely been using to work on other parts of the project or another project completely. Chances are, you've leveled up which has changed the way you write code.</p>
<p>On the other hand, sometimes it takes stepping outside of the code to see the bigger picture and get a better look at how all the pieces fit together. We can naturally dig ourselves too deep into a solution and can become a little narrowly focused as we work to solve those challenges.</p>
<p>But either way, while part of the code journey will simply be gaining more experience and learning more about your craft, there are other small habits you can get used to early on that will help you down the road.</p>
<p>So let's jump in.</p>
<h2 id="heading-improving-the-readability-of-your-code">Improving the readability of your code</h2>
<h3 id="heading-what-is-the-challenge">What is the challenge?</h3>
<p>Part of the fun about our craft is there are a ton of ways you can do the same thing. Think an <code>if</code> statement is too many lines? Well we can write it <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator">ternary</a> style!</p>
<pre><code class="lang-js"><span class="hljs-comment">// Example ternary statement</span>
<span class="hljs-keyword">const</span> isFreezing = temperature &lt;= <span class="hljs-number">32</span> ? <span class="hljs-literal">true</span> : <span class="hljs-literal">false</span>;
</code></pre>
<p>But sometimes this takes a toll on the readability of your code. While it might seem like it looks nice and super clean on one line, imagine that as that ternary gets more complex, someone will have to spend more time understanding what it means.</p>
<pre><code class="lang-js"><span class="hljs-keyword">const</span> minutes = <span class="hljs-number">30</span>;
<span class="hljs-keyword">const</span> cookie = {
  <span class="hljs-attr">color</span>: <span class="hljs-string">'black'</span>
};

<span class="hljs-keyword">const</span> cookieStatus = minutes &gt; <span class="hljs-number">20</span> ? cookie.color === <span class="hljs-string">'black'</span> ? <span class="hljs-string">'burned'</span> : <span class="hljs-string">'done'</span> : <span class="hljs-string">'not done'</span>;
</code></pre>
<h3 id="heading-what-can-we-do-better">What can we do better?</h3>
<p>Now I would imagine most of us can figure out what <code>cookieStatus</code> is in this example (spoilers: <code>burned</code>). But think about the time you spent figuring it out. Whether an extra 1s or 2s, it forces you to spend additional cognitive energy to read through the code.</p>
<p>On the other hand:</p>
<pre><code class="lang-js"><span class="hljs-keyword">const</span> minutes = <span class="hljs-number">30</span>;
<span class="hljs-keyword">const</span> cookie = {
  <span class="hljs-attr">color</span>: <span class="hljs-string">'black'</span>
};
<span class="hljs-keyword">let</span> cookieStatus;

<span class="hljs-keyword">if</span> ( minutes &lt;= <span class="hljs-number">20</span> ) {
  cookieStatus = <span class="hljs-string">'not done'</span>;
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> ( cookie.color === <span class="hljs-string">'black'</span> ) {
  cookieStatus = <span class="hljs-string">'burned'</span>;
} <span class="hljs-keyword">else</span> {
  cookieStatus = <span class="hljs-string">'done'</span>;
}
</code></pre>
<p>No, it may not be as clean or clever as the 1-line ternary statement, but the next time you visit it, the less you'll have to think about what the answer is. </p>
<p>It's also going to make it that much easier for bugs to creep up and get past your code reviewers when all of your code changes are in a 1-line git diff.</p>
<p>And yes, this is a simple example. But imagine this in a real world scenario with important business logic where you could run into these situations frequently.  </p>
<p>Say you need to add another condition – that ternary is just going to keep getting more complex! You're just making it more difficult to debug or extend, where the <code>if</code> statements can continue on in an easily readable way.</p>
<p>For what it's worth, ternaries and other shortcuts can be simple and effective in code, but don't abuse that effectiveness and end up making things more difficult.</p>
<h2 id="heading-keeping-things-consistent">Keeping things consistent</h2>
<h3 id="heading-what-is-the-challenge-1">What is the challenge?</h3>
<p>We all have our favorite way to code. Though I'd argue not including a semicolon at the end of your JavaScript is just completely wrong, you might prefer to write your code the wrong way without them.</p>
<pre><code class="lang-jsx"><span class="hljs-comment">// Jim's code style</span>

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">MyComponent</span>(<span class="hljs-params"></span>) </span>{
  <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleOnClick</span>(<span class="hljs-params"></span>) </span>{
    alert(<span class="hljs-string">'Click!'</span>)
  }
  <span class="hljs-keyword">return</span> (
    <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">onClick</span>=<span class="hljs-string">{handleOnClick}</span>&gt;</span>My Button<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span></span>
  )
}

<span class="hljs-comment">// Creed's code style</span>

<span class="hljs-keyword">const</span> MyComponent = <span class="hljs-function">() =&gt;</span> <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">onClick</span>=<span class="hljs-string">{()</span> =&gt;</span> alert('Click!')}&gt;My Button<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span></span>;
</code></pre>
<p>But it's not always about what <em>you</em> prefer. When working with a team, chances are, everyone's opinion on how code should look is slightly different. You might agree about the semi-colon, but disagree about whitespace.</p>
<p>And no one is wrong (except for the non-semi-coloners)! There are valid arguments to most code styles, whether for or against, but the solution isn't for everyone to write their code their own way.</p>
<h3 id="heading-what-can-we-do-better-1">What can we do better?</h3>
<p>Keeping code consistent is important to maintain code health. A typical goal is to "make the codebase look like one person wrote it."</p>
<p>The point isn't that one person gets their way, it's that the team came to a conclusion about a set of rules they would use that everyone would follow. Having this consistency provides less cognitive overhead as people work through the code. It gives everyone the ability to know what to expect when reading the code.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/04/linting-code.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Errors from linting code</em></p>
<p>And achieving this doesn't need to be hard. There are tools that can simply <a target="_blank" href="https://www.colbyfayock.com/2019/10/what-is-linting-and-how-can-it-save-you-time">check for these inconsistencies</a> like <a target="_blank" href="https://eslint.org/">Eslint</a> for Javascript. And even better, there is another level of tools like <a target="_blank" href="https://prettier.io/">Prettier</a> that <a target="_blank" href="https://www.colbyfayock.com/2019/11/dont-just-lint-your-code-fix-it-with-prettier">will fix it for you</a>!</p>
<h2 id="heading-commenting-your-code">Commenting your code</h2>
<h3 id="heading-what-is-the-challenge-2">What is the challenge?</h3>
<p>Keeping up with commenting your code is an important way to put context to complex logic. As much as we all want our code to be self-documenting, that's rarely the case.</p>
<p>Too often we find ourselves dealing with a block of code that just doesn't make sense. And even if it makes sense on its own, we might not be able to figure out how it fits in to the rest of the application.</p>
<h3 id="heading-what-can-we-do-better-2">What can we do better?</h3>
<p>By providing a good set of comments, you're setting up the next person who touches that code to have a better understanding of what the code is doing before they make a change.</p>
<pre><code class="lang-js"><span class="hljs-comment">// DONT CHANGE - WILL STOP MAKING MONEY</span>

<span class="hljs-keyword">const</span> shouldMakeMoney = <span class="hljs-literal">true</span>;

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">makeMoney</span>(<span class="hljs-params"></span>) </span>{
  <span class="hljs-keyword">if</span> ( shouldMakeMoney ) {
    <span class="hljs-keyword">return</span> noMoney;
  }
  <span class="hljs-keyword">return</span> moreMoney;
}
</code></pre>
<p>While this is a silly example, it brings up a real world case. Businesses are increasingly dependent on being able to maintain a reliable website to make money. Whether this is as an ecommerce business or an ad giant, these websites rely on business logic that determine things like cost, taxes, discounts, and other math related things we tend to not want to think about, but could make or break a business on the internet.</p>
<p>But it's not all about the company you work for. Touching old code can be scary. It's even scarier when no one on your team was around when it was written, so no one knows what it does!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/04/patton-oswalt-hands-over-mouth.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Patton Oswalt hands over mouth</em></p>
<p>While you might not be the next person who touches that code, try to help out your future friend who's tackling the next ticket involving that code. Because there's also a good chance you will be that person and you'll wish you remembered how it worked.</p>
<h2 id="heading-documenting-your-solutions">Documenting your solutions</h2>
<h3 id="heading-what-is-the-challenge-3">What is the challenge?</h3>
<p>Documentation is similar to commenting your code, but from a different perspective. Documentation and commenting are both about finding ways to describe a solution in a human-readable way that will ultimately give more context. But documentation is more about the overall solution rather than the implementation details.</p>
<p>Having a high performing application is everyone's goal. But how did we get there? There's a realistic chance that someone will have to be working on the same project you are like onboarding a new team member. How will they be able to maintain that high performance if they don't know how it works?</p>
<h3 id="heading-what-can-we-do-better-3">What can we do better?</h3>
<p>Whether it's introducing that new team member to the project or trying to share knowledge with another project team, documentation is an important part of maintaining a project. It helps keep everyone on the same page so we all confidently know what we're working towards.</p>
<p>For example, if we're still working with our ecommerce project with our business logic, there will be rules that the code needs to implement. While commenting might give details inline about how the rules were implemented, the documentation would define those rules.</p>
<pre><code class="lang-js"><span class="hljs-comment">/**
 * DOCUMENTATION
 * Order Total &gt;= 25: Discount %10
 * Order Total &gt;= 50: Discount %15
 * Order Total &gt;= 100: Discount %20
 * Order Total &gt;= 75: Free Shipping
 */</span>

<span class="hljs-keyword">const</span> orderSubTotal = <span class="hljs-number">84.00</span>;
<span class="hljs-keyword">let</span> orderTotal = orderSubTotal;

<span class="hljs-comment">// If the order total is under 75, apply shipping discount</span>

<span class="hljs-keyword">if</span> ( orderTotal &lt; <span class="hljs-number">75</span> ) {
  orderTotal = addShipping(orderTotal);
}

<span class="hljs-comment">// If the order total reaches a threshold, apply given discount</span>

<span class="hljs-keyword">if</span> ( orderTotal &gt;= <span class="hljs-number">100</span>) {
  orderTotal = applyDiscount(orderTotal, <span class="hljs-number">.2</span>);
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> ( orderTotal &gt;= <span class="hljs-number">50</span> ) {
  orderTotal = applyDiscount(orderTotal, <span class="hljs-number">.15</span>);
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> ( orderTotal &gt;= <span class="hljs-number">25</span> ) {
  orderTotal = applyDiscount(orderTotal, <span class="hljs-number">.1</span>);
}
</code></pre>
<p>This is a minimal example, but we can see the difference between the rules at the top and how we apply them. The documentation should clearly explain what the rules are, but it shouldn't care about how those rules were implemented.</p>
<p>On the other hand, the comments might not care about what the rules are, but need to implement them in an efficient and logical way. We should be able to update the code with the business rules, such as changing the top level discount tier from $100 to $80, without having to rework the code.</p>
<p>But documentation is much more than business rules – it's providing a way for anyone to understand your work from a higher level. This could include anything from architectural diagrams to the theory behind your core algorithm.</p>
<p>While maybe code isn't the best place for details like this to live, it's really important information that can help instill confidence in your project and give others an opportunity to understand more about the work.</p>
<h2 id="heading-creating-effective-pull-requests">Creating effective Pull Requests</h2>
<h3 id="heading-what-is-the-challenge-4">What is the challenge?</h3>
<p>Pull requests (or merge requests) are a core part of any development team's project lifecycle. It provides a way to package and present your code in a consumable way for your peers to review and understand your work.</p>
<p>There's a lot that can go into a pull request from a single commit to the entirety of the next version of your website. That's a lot of context to expect someone to understand by reading through the commits alone.</p>
<h3 id="heading-what-can-we-do-better-4">What can we do better?</h3>
<p>Pull requests don't need to be an art. There should be one primary goal of the preparation you put into it – providing context into your changes. At a minimum, it should answer the questions of "what" and "why".</p>
<p>We can even use tools like pull request templates to push us in the right direction. <a target="_blank" href="https://www.freecodecamp.org/news/why-you-should-write-merge-requests-like-youre-posting-to-instagram-765e32a3ec9c/">Define an outline</a> of what you want explained and chances are, people will follow that outline. This helps avoid the 1-line "closes [ticket]" description or even worse, an empty description.</p>
<p>With my projects, I hope to have a few questions answered before I dive into a code review:</p>
<ul>
<li>What is the change?</li>
<li>What does it impact?</li>
<li>How do I reproduce or test the change?</li>
</ul>
<p>Just a few details around the change set can provide much needed context for those reviewing your code. It's easy to look at code, but it's harder to understand it without knowing how it fits into the bigger picture.</p>
<h2 id="heading-hardening-your-code-with-tests">Hardening your code with tests</h2>
<h3 id="heading-what-is-the-challenge-5">What is the challenge?</h3>
<p>Tests are a way to ensure your code runs the same way each time. Being able to prove that the same input will always have the same output will help provide you and your team with a higher level of confidence that your application won't come crashing down with the next small change.</p>
<p>Without them, we're left with human error, where no matter how good your QA Engineer is (shoutout to my testers out there), something will always slip through. And that's not to say your tests will always catch every problem, but we can use the tools available to help prevent it.</p>
<h3 id="heading-what-can-we-do-better-5">What can we do better?</h3>
<p>Where comments are a way of providing the context of how something works, test are a way to ensure they work. Providing test cases that are repeatable helps enforce that.</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">applyDiscount</span>(<span class="hljs-params">value, discount</span>) </span>{
  <span class="hljs-keyword">const</span> discountAmount = value * discount;
  <span class="hljs-keyword">return</span> value - discountAmount;
}

expect(applyDiscount(<span class="hljs-number">10</span>, <span class="hljs-number">.1</span>)).toEqual(<span class="hljs-number">.9</span>);
expect(applyDiscount(<span class="hljs-number">532151235</span>, <span class="hljs-number">.1054</span>)).toEqual(<span class="hljs-number">476062494.831</span>);
</code></pre>
<p>If I fudge the math on our <code>applyDiscount</code> function above, there's a high probability that the test would fail (never say never).</p>
<p>But testing doesn't need to be hard. There are many tools out there that help from different perspectives. For example, you might use <a target="_blank" href="https://jestjs.io/">Jest</a> to run your unit tests or add <a target="_blank" href="https://enzymejs.github.io/enzyme/">Enzyme</a> on top to test your React components. But you can also bring in <a target="_blank" href="https://www.cypress.io/">Cypress</a> as an integration test solution that will work like a robot clicking through your application to make sure all the components actually work together.</p>
<p>There's also different methodologies of testing. While you probably see most teams write their tests after they have a working solution, some people swear by <a target="_blank" href="https://en.wikipedia.org/wiki/Test-driven_development">test-driven development</a>. They might write their tests first where the code has to pass the tests rather than the other way around. This is a great way to define the requirements of the code before diving right in.</p>
<p>Whatever the method, capture the points that are most likely to break or the functions that add the most business value. You'll be helping to prevent a potential business loss or even simpler, a headache.</p>
<h2 id="heading-what-can-we-learn-from-this">What can we learn from this?</h2>
<p>That might be a lot to digest, but they're important points to consider as you grow as a developer. Starting these habits early in your career will help you naturally build these skills and work that way by default.</p>
<p>And if you're late in your career, it's never too late to start. We should all want to strive to be the best developer we can be and do our best to help make our teammate's lives easier, as we're all in this together.</p>
<h2 id="heading-looking-for-more-to-learn">Looking for more to learn?</h2>
<ul>
<li><a target="_blank" href="https://www.colbyfayock.com/2019/08/put-down-the-javascript-learn-html-css">Put Down the Javascript - Learn HTML &amp; CSS</a></li>
<li><a target="_blank" href="https://www.colbyfayock.com/2020/02/how-to-become-a-full-stack-web-developer-in-2020">How to Become a Full Stack Web Developer in 2020</a></li>
<li><a target="_blank" href="https://www.colbyfayock.com/2020/02/what-is-the-jamstack-and-how-do-i-get-started">What is the JAMstack and how do I get started?</a></li>
<li><a target="_blank" href="https://www.colbyfayock.com/2019/10/what-is-linting-and-how-can-it-save-you-time">What is linting and how can it save you time?</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/why-you-should-write-merge-requests-like-youre-posting-to-instagram-765e32a3ec9c/">Why you should write merge requests like you’re posting to Instagram</a></li>
</ul>
<h2 id="heading-whats-your-advice-for-growing-as-a-developer">What’s your advice for growing as a developer?</h2>
<p><a target="_blank" href="https://twitter.com/colbyfayock">Share with me on Twitter!</a></p>
<div id="colbyfayock-author-card">
  <p>
    <a href="https://twitter.com/colbyfayock">
      <img src="https://res.cloudinary.com/fay/image/upload/w_2000,h_400,c_fill,q_auto,f_auto/w_1020,c_fit,co_rgb:007079,g_north_west,x_635,y_70,l_text:Source%20Sans%20Pro_64_line_spacing_-10_bold:Colby%20Fayock/w_1020,c_fit,co_rgb:383f43,g_west,x_635,y_6,l_text:Source%20Sans%20Pro_44_line_spacing_0_normal:Follow%20me%20for%20more%20JavaScript%252c%20UX%252c%20and%20other%20interesting%20things!/w_1020,c_fit,co_rgb:007079,g_south_west,x_635,y_70,l_text:Source%20Sans%20Pro_40_line_spacing_-10_semibold:colbyfayock.com/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_68,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_145,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_222,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/w_300,c_fit,co_rgb:7c848a,g_north_west,x_1725,y_295,l_text:Source%20Sans%20Pro_40_line_spacing_-10_normal:colbyfayock/v1/social-footer-card" alt="Follow me for more Javascript, UX, and other interesting things!" width="2000" height="400" loading="lazy">
    </a>
  </p>
  <ul>
    <li>
      <a href="https://twitter.com/colbyfayock">? Follow Me On Twitter</a>
    </li>
    <li>
      <a href="https://youtube.com/colbyfayock">?️ Subscribe To My Youtube</a>
    </li>
    <li>
      <a href="https://www.colbyfayock.com/newsletter/">✉️ Sign Up For My Newsletter</a>
    </li>
  </ul>
</div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Navigating my seat at the product table as a self-taught designer. ]]>
                </title>
                <description>
                    <![CDATA[ By Kim Thuy Tu Two years ago, I switched from medicine and redesigned Instagram. Three months after, I packed what I could fit into my carry-on and two moving boxes, and flew to Saigon to become Christina’s second product designer. Fast forward to to... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/navigating-my-seat-at-the-product-table-as-a-self-taught-designer/</link>
                <guid isPermaLink="false">66d45f6738f2dc3808b790bd</guid>
                
                    <category>
                        <![CDATA[ leadership ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Self Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ UX ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 27 Sep 2019 03:44:41 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/09/1_gc1cMHEivelCAmhr4Z33sw.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Kim Thuy Tu</p>
<p><strong>Two years ago, I switched from medicine and</strong> <a target="_blank" href="https://medium.com/free-code-camp/i-wanted-to-see-how-far-i-could-push-myself-creatively-so-i-redesigned-instagram-1ff99f28fa8b"><strong>redesigned Instagram</strong></a><strong>.</strong></p>
<p>Three months after, I packed what I could fit into my carry-on and two moving boxes, and flew to Saigon to become <a target="_blank" href="http://christinas.vn">Christina’s</a> second product designer. Fast forward to today and I am now their Head of Product.</p>
<p>I can still remember my first task on the job: creating color swatches for our tour guide’s awesome new helmets. It might sound like a simple feat, but after trying out hundreds of color combinations and learning a thing or two about color theory, I was pretty proud of the results.</p>
<p>As Christina’s grew from 100 to well over 450+ team members spanning all across Vietnam, so did my responsibilities. From tour guide helmets to redesigning the company’s flagship communication app to then launching it for <a target="_blank" href="https://www.twohearts.app/inbox-app/">Airbnb hosts all over the world to use</a>, its been a crazy (but fun) ride.</p>
<p>As I look forward to my next journey back to the States, I wanted to reflect on my experiences by sharing what I’ve learned along the way as someone who started with zero knowledge about product design and technology.</p>
<p>Let’s be clear — I still feel like I know nothing. I just know <em>a little bit less of nothing</em> than the day before.</p>
<hr>
<h2 id="heading-trust-your-gut-when-it-comes-to-recruitment">Trust your gut when it comes to recruitment.</h2>
<p>If you, your team, and your culture are playing to the same tune — you <strong>will</strong> know whether the candidate is a good fit (or not). As a rule of thumb, my go-to question after assessing a candidate’s technical skill is:</p>
<blockquote>
<p><em>“How did this person make me</em> <strong><em>feel</em></strong><em>?”</em></p>
</blockquote>
<p>My goal for going into any interview is to gain a better understanding of who the candidate is beyond what is on their resume and what their motivations are for arriving in this room with me. If I left the interview feeling more confused and conflicted than I did going in, it’s probably a good sign that this candidate is not the one. If I left the room feeling energized and excited, s/he is most likely a keeper.</p>
<p>Hire someone you would be excited to work with and most importantly, trust your gut instinct.</p>
<h2 id="heading-be-consistent-in-expressing-your-values">Be consistent in expressing your values.</h2>
<p>From creating wireframes to leading a team of developers, I knew it was important to establish our design and engineering principles early. It helps guide us in making product decisions, examining trade-offs during development, and uniting us stronger as a team.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/09/0_rBRGudVZsC_HHsVi.png" alt="Image" width="600" height="400" loading="lazy">
<em><em>Our team’s north star ?</em></em></p>
<p>An example of when we put our principles to the test was when my CTO had fixed a bug only to have it spam our users with <strong>hundreds</strong> of push notifications within a span of minutes.</p>
<p>I suggested to my CTO that he should write a post to be considerate of our users, take accountability, and explain what had happened so that our users can empathize with us through our immediate transparency. It will also be the kind of leadership that our junior engineers can learn from. And he did.</p>
<p>Instead of receiving any backlash, his post was received with likes and heart-eye emojis. Not only did our principles became a model for how we communicated as a team and developed our products, but it also forged the path for building a trusting relationship with our users.</p>
<blockquote>
<p>It goes without saying that leaders lead best through their actions, and not only by what they have to say.</p>
</blockquote>
<p>Now whenever there’s a bug (not saying it happens often), <a target="_blank" href="https://en.wikipedia.org/wiki/Desensitization_%28psychology%29">our users are much more forgiving and understanding of it</a>. Not only that, but the other engineers on our team started to follow his example and took accountability for their own missteps as well.</p>
<h2 id="heading-dont-underestimate-the-power-of-11-meetings-because-they-are-so-so-important">Don’t underestimate the power of 1:1 meetings, because they are so, so important.</h2>
<p>Whether you’re a designer or the CEO of a company, 1:1 meetings will always be the bread and butter for building a personal connection with your team. My engineers and I have weekly 1:1 meetings to QA the state of our product and pending features. To my engineers, it might be just a routine product QA. To me, it’s a perfect window of opportunity for me to get to know them on a personal level, address concerns they might have, and provide insights to help them find more value in their work.</p>
<p>If you’re looking for mentorship or growth in your career, I suggest scheduling 1:1 meetings with your team leader. First, it shows initiative. Second, you might also be surprised by the feedback and support you get in return. Before reaching out, make sure you understand what your goal is for the meeting. Is it to understand how you’re doing in your role? Is it to ask for additional remote days? After figuring out what your objective is, <strong>make sure to communicate it</strong>. This will help give your team leader ample time to prepare and keep the meeting focused.</p>
<h2 id="heading-creating-a-process-is-great-but-staying-flexible-is-even-better">Creating a process is great, but staying flexible is even better.</h2>
<p>Create processes, but <strong>plan for disruption</strong>. This can mean one of two things. One, the process you created didn’t work out as intended. Two, the process you created worked, but it ended up being discarded somewhere along the ever-evolving development process. This is especially true for startups during their <a target="_blank" href="https://hackernoon.com/navigating-the-stages-of-hyper-growth-6201d65eaaa8">hyper-growth stage</a> when you have many cross-functional teams working together to build and ship a product. When this happens, you have to be able to quickly switch gears, and adopt new <a target="_blank" href="https://fs.blog/mental-models/">mental models</a>, while pushing the overall product vision forward.</p>
<p>So instead of looking for an evergreen process, make your process of implementing and iterating <em>evergreen</em>.</p>
<h2 id="heading-figma-is-king">Figma is king.</h2>
<p>This article is not sponsored by <a target="_blank" href="https://medium.com/u/bf1152b11387">Figma</a>, but I figured this would be a great chance for me to give this amazing team (and product) a shoutout. Before Figma, our design team at Christina’s was getting around with using Sketch for design, Zeplin for hand-off, and Abstract for version control. It was a lot of tools but we had figured out a process that worked for us. Intrigued by Figma’s approach to design and collaboration, I decided to test out the tool to see for myself.</p>
<p>With Figma, design to developer handoff became almost instantaneous. In addition to the speed and efficiency, we also saved a lot of money in not having to use multiple software to maintain our design system, version control, and hand-offs. Since then, our entire product team has switched over to using Figma, and we haven’t looked back since.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/09/1_VnqX4GVtfIs4pPPl37172w.png" alt="Image" width="600" height="400" loading="lazy">
<em>Thanks Figma ✌?</em></p>
<h2 id="heading-work-politics-will-always-be-a-thing-but-it-doesnt-mean-you-have-to-be-a-part-of-it">“Work politics will always be a thing, but it doesn’t mean you have to be a part of it.”</h2>
<p>My COO said this to me during one of our lunch conversations after I had told him my reason for not wanting to accept the promotion to Head of Product.</p>
<p>With my previous role as a product designer/owner, I was able to influence business decisions, resolve problems, and focus on building products from behind the shadows, politics-free. However, when he said this to me, it made me realize that it’s not about the situation or the environment, but rather how I choose to react (or not react) to it.</p>
<p>More importantly, he made me realize that my new role will only put me in a better position to squash any office politics (with my killer resting face), reinforce our core values, and further protect the positive and empowering culture we have built together.</p>
<h2 id="heading-start-building-your-persona-capital-early">Start building your persona capital early.</h2>
<p>A persona is in short — a representation of a target audience or a person. Research shows it takes about 3 seconds for people to form a perception of you upon the initial meeting. <a target="_blank" href="https://www.businessinsider.com/science-of-first-impressions-2015-2">Sometimes even before you’ve even spoken a word</a>. Now consider this in terms of all the micro-interactions you might have with your colleagues, clients, and business partners day-to-day. Add in impromptu slack messages, random hallway exchanges, desk drop-ins, meetings, and company events — now you have given every person you’ve interacted with countless seconds to form their opinion of you.</p>
<p>What kind of team member would you like to be? What kind of leader do you want to be perceived as? What do you want to be known for? Have these questions answered before you join any team or company — or someone else will answer them for you.</p>
<blockquote>
<p><em>If you want to be perceived as a competent, reliable, and self-sufficient person — show it and own it every opportunity you get.</em></p>
</blockquote>
<p>Once you build your persona capital, it’ll be one of your most valuable assets when communicating with stakeholders, influencing key decisions, and working with cross-functional teams.</p>
<h2 id="heading-imposter-syndrome-never-truly-goes-away-but-it-does-get-easier">Imposter syndrome never truly goes away, but it does get easier.</h2>
<p>Several months after joining Christina’s, I had a heart-to-heart with my CTO. <a target="_blank" href="https://medium.com/the-year-of-the-looking-glass/the-imposter-syndrome-9e23e2326d88">I told him how I felt like an imposter</a>. I told him how I felt like everything I’ve achieved up to this point had all been attributed to luck. It also didn’t help that I’ve never had any formal design education. I’m afraid that I was going to be exposed as a fraud one day. I was upfront about my personal assessment, and honestly, it felt good to finally say it out loud.</p>
<p>What he said next shocked me:</p>
<blockquote>
<p>he told me he felt the same.</p>
</blockquote>
<p>I was in disbelief and all I could muster was… really? This made me realized that this so-called imposter syndrome is perfectly normal, and it can happen to anyone regardless of age, sex, and experience. If anything, it just means you’re a humble person with <em>really</em> high expectations of yourself.</p>
<p>It’s been a couple of years since that exchange, and since then, I’ve felt less and less like an imposter. If you’re feeling these insecurities, share it with someone you trust. It’ll help relieve some of the burden and guilt.</p>
<p>One reassuring thing I’ll add is this — it will only get easier with time as long as you show up, put in the work, and commit to continuously learn.</p>
<p>Remember, you’ve earned your spot at the table. The only person that you need to convince now is <strong>yourself</strong>.</p>
<h3 id="heading-your-harshest-critic-is-always-going-to-be-yourself-dont-ignore-that-critic-but-dont-give-it-more-attention-than-it-deserves">“Your harshest critic is always going to be yourself. Don’t ignore that critic but don’t give it more attention than it deserves. </h3>
<p>— <a target="_blank" href="https://www.brainyquote.com/quotes/michael_ian_black_494912">Michael Ian Black</a>”</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
