<?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[ skills 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[ skills development - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Wed, 17 Jun 2026 16:19:34 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/skills-development/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ 5 Valuable Skills Developers Should Learn ]]>
                </title>
                <description>
                    <![CDATA[ By Chaitanya Prabuddha Everyone should learn three skills that can help them make money in their life. This means that you won't have to rely on one skill to make money, and it gives you a chance to make a side income, too. The value you can add at y... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/5-valuable-skills-developers-should-learn/</link>
                <guid isPermaLink="false">66d45e043dce891ac3a967ca</guid>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 30 Nov 2021 01:12:15 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/11/Add-a-heading--1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Chaitanya Prabuddha</p>
<p>Everyone should learn three skills that can help them make money in their life. This means that you won't have to rely on one skill to make money, and it gives you a chance to make a side income, too.</p>
<p>The value you can add at your job or to your side hustle is proportional to the skills you've acquired. The more tools, technologies, and tricks you learn, the better you'll be able to present your marketable skills. Which means you can make more money.</p>
<p>Acquiring additional skills – those related to coding and software development – is one of the most important things you will do.</p>
<p>In this article, I'll discuss some high-paying skills you can learn as a developer to broaden your skillset and make yourself more valuable.</p>
<h2 id="heading-video-editing">Video Editing</h2>
<p>Video production is becoming increasingly crucial in marketing, content generation, and other facets of business.</p>
<p>It's one of the first activities that causes a company to hire a freelancer or consultancy, because it's usually a time-consuming task that requires particular knowledge and talent.</p>
<p>To get started, you should learn how to use a good video editing software. If you really want to dive deep into this, I recommend that you learn <strong>Final Cut Pro</strong> (Mac Only) or <strong>Adobe Premiere Pro</strong> (Windows &amp; Mac).</p>
<p>Make a <strong>Fiverr</strong> account after learning how to use the video editing software. You can edit videos for online classes, make video advertising projects, or do any other type of video production to practice your new skills.</p>
<h2 id="heading-marketing">Marketing</h2>
<p>It's not enough to have good products or services – you also need good marketing to grow. Your potential clients will be unaware that you exist if you do not sell yourself and your product.</p>
<blockquote>
<p>How will someone know that your product exists?</p>
</blockquote>
<p>Marketing includes email marketing, SEO marketing, content marketing, and social media marketing. These are really high-value skills, and you can charge a premium for doing this type of work as a freelancer.</p>
<p>You can start learning the basics of marketing by watching videos on YouTube and Skillshare. But nothing beats real-world experience as a teacher. Consider creating an internet side business to put your marketing knowledge into practise.</p>
<p>Better marketing = more sales = more profit. 😊</p>
<h2 id="heading-graphic-design">Graphic Design</h2>
<p>Graphic design, like video creation, is such a specialised ability that it is in high demand. Whether it's logo design, graphic marketing assets, or even PowerPoint presentations, there are lots of ways to add to your skillset.</p>
<p>When you can create stunning designs, you are usually well compensated. And brands want that. Engagement is the key to get more sales.</p>
<p>To get started as a freelancer, you can make an account on <a target="_blank" href="https://www.freecodecamp.org/news/p/8abab1e3-6ec0-425b-80fb-3229d2b609df/fiverr.com"><strong>Fiverr</strong></a> or <a target="_blank" href="https://www.freecodecamp.org/news/p/8abab1e3-6ec0-425b-80fb-3229d2b609df/upwork.com"><strong>Upwork</strong></a><strong><em>.</em></strong> You should also try to get some simple projects to get started. Having some projects to show on your profile really increases your chance of getting clients.</p>
<h2 id="heading-content-creation">Content Creation</h2>
<p>In the creator economy, there's a lot of money to be made. And, no, you don't need a large number of followers to generate money on the internet. And the competition of getting started is also low in this niche.</p>
<p>Writing online is a full-time job for many, and believe me or not it's not that hard. What matters is that you're getting started by honing your content-creation abilities. You've become a part of the creator economy.</p>
<p>To start a blog, you can either start writing on <a target="_blank" href="https://www.freecodecamp.org/news/p/8abab1e3-6ec0-425b-80fb-3229d2b609df/medium.com">Medium</a> or <a target="_blank" href="https://www.freecodecamp.org/news/p/8abab1e3-6ec0-425b-80fb-3229d2b609df/hashnode.com">Hashnode</a>. If you like to invest some money, then you could buy a domain to make a personal brand on your name. Then you can write about what you like or what you are learning.</p>
<p>For example, are you learning HTML? Then write about it.</p>
<p>You can also start a YouTube channel if you're not a great writer but can keep people interested in your stories. The more you play to your strengths, the more views and fans you'll get. You'll get more money if you get more views and follows.</p>
<h2 id="heading-podcasting">Podcasting</h2>
<p>Do you listen to podcast? They've become very popular over the last decade or so. Listening to something is a great way to learn and stay updated with your community.</p>
<p>Have you ever thought of starting a podcast? It's pretty easy to get started. You could ask your team mates to talk about something for 10 - 20 minutes and put it online. There is always someone on the internet, who is ready to listen and get value from your thoughts.</p>
<h3 id="heading-how-to-set-up-a-podcast">How to set up a Podcast:</h3>
<ol>
<li><p>Make an account on <a target="_blank" href="https://anchor.fm/">Anchor</a>.</p>
</li>
<li><p>Create a logo, and add a few pictures of yourself.</p>
</li>
<li><p>You will need to invest some money in buying a good microphone.</p>
</li>
<li><p>Yay! Now you can make your own podcast to share it with the world.</p>
</li>
</ol>
<p>You can monitize your podcast by selling ads and doing brand sponsorships. You could also start a small group (like a premium membership) which you can charge for early access to your podcast. Mentorship is also an option.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>In this guide, we discussed some of the best skills you can learn as a programmer to make side income. These skills don't need a collage degree to get started, all you need is a computer and an internet connection.</p>
<p><strong>TL;DR:</strong></p>
<blockquote>
<p>5 Valuable Skill You Can Learn as a Programmer: 🚀  </p>
<p>1⃣ Video Editing<br>2⃣ Marketing<br>3⃣ Graphic Designing<br>4⃣ Content Creation<br>5⃣ Podcasting</p>
<p>— Chaitanya 👾 (@chp_it) <a target="_blank" href="https://twitter.com/chp_it/status/1464931875026178064?ref_src=twsrc%5Etfw">November 28, 2021</a></p>
</blockquote>
<hr>
<p>Thanks for stopping by and reading this article. I hope you found something interesting.</p>
<p>If you like my content, I’m active on Twitter <a target="_blank" href="https://twitter.com/chp_it">@Chp_It</a>. I tweet about Web development, Content Creation, Block Chain and No-Code Hacks to make the developer’s life easy.</p>
<p>Happy learning! 💻 😄</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Become a Better Developer – Tips to Grow Your Coding Skills ]]>
                </title>
                <description>
                    <![CDATA[ As a developer, you probably want to improve your skills constantly. Be the best developer you can possibly be. But how you can actually improve is a tricky question to answer.   The Software industry is obsessed with the idea of 10x engineers. These... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-become-a-better-developer/</link>
                <guid isPermaLink="false">66bc55dae35f27b35395075a</guid>
                
                    <category>
                        <![CDATA[ coding ]]>
                    </category>
                
                    <category>
                        <![CDATA[ personal development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Kealan Parr ]]>
                </dc:creator>
                <pubDate>Tue, 21 Sep 2021 15:52:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/09/Tips-to-improve--3-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>As a developer, you probably want to improve your skills constantly. Be the best developer you can possibly be. But <strong>how</strong> you can actually improve is a tricky question to answer.  </p>
<p>The Software industry is obsessed with the idea of <a target="_blank" href="https://www.7pace.com/blog/10x-engineers">10x engineers</a>. These are engineers who are supposedly 10 times better at their job than their peers. But how does anyone become so talented?</p>
<blockquote>
<p>"The best programmers are not marginally better than merely good ones. They are an order-of-magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability." – Randall E. Stross</p>
</blockquote>
<p>Here are four actionable steps I have used myself, or seen others use to succeed in improving their skills.</p>
<p>If you are new to programming, I think <a target="_blank" href="https://stackoverflow.blog/2019/08/07/what-every-developer-should-learn-early-on/">this</a> is a great thing to read first.</p>
<h1 id="heading-teach-and-write-as-much-as-possible">Teach and Write as Much as Possible</h1>
<blockquote>
<p>“What many people underestimate is that being a good writer, whether that is through emails or through documents, allows you to be more impactful. I see many engineers ignore that skill.   </p>
<p>You might be proud about your code. You should also be equally proud of the craft of writing… Writing is a highly underestimated skill for engineers.” – Urs Hölzle (Google’s first VP of Engineering)</p>
</blockquote>
<p>You are the person who's the most responsible for your skills and development. Being a better developer is largely up to you. It's your job to improve your weaknesses and hone your craft. Being a better developer is an ongoing process that never stops, and writing helps you learn more.</p>
<p>By writing, you force the boundaries of your comfort zone. You learn about new topics to discuss, and you "<strong>put yourself out there</strong>". You start a discourse where when you're wrong, people are very happy to correct you and offer feedback.</p>
<p>The best way to become a better engineer is to teach 10 people what you know, and empower them in their development skills.</p>
<p>Put your expertise online and open source what you know. Your technical writing acts as <a target="_blank" href="https://training.kalzumeus.com/newsletters/archive/do-not-end-the-week-with-nothing">portable capital</a> as you move job to job, to show the depth and breadth of your knowledge. Writing not only showcases your skills, but <strong>develops</strong> them, too.</p>
<h1 id="heading-read-a-lot">Read A Lot</h1>
<p>Mark Twain said that the person who can read good books but chooses not to do so has no advantage over the person who actually can't read a book.</p>
<p>Reading is such a powerful tool. <a target="_blank" href="https://github.com/kealanparr/Every-link-I-wish-I-had-as-a-beginner#Read-a-big-well-documented-codebase">Read a big well documented open source codebase</a>, read technical books, read your colleague's code and read technical documentation.</p>
<p>Find the brightest minds on Twitter, engineers with decades of experience and people who create the specs you love. Be a fly on the wall for their conversations.</p>
<p>As a starting challenge, change your <a target="_blank" href="https://docs.github.com/en/free-pro-team@latest/github/managing-subscriptions-and-notifications-on-github/viewing-your-subscriptions">watch preferences</a> on a codebase you are most familiar with (a work repo, or an open source one). Then review and read every change (or as many as you're comfortable with) that goes into <code>master</code>/<code>main</code>.</p>
<p>If there is syntax/code you don't understand or can't work out, ask the person who did it. Learn from everyone. It will help the coder clarify what the code is doing (if you can't work it out, it mustn't be very clear!) and will help you have more context on the changes for the ecosystem you work in.</p>
<h1 id="heading-work-on-passion-projects-andor-contribute-to-oss">Work on Passion projects and/or Contribute to OSS</h1>
<blockquote>
<p>"We are what we repeatedly do. Excellence, then, is not an act, but a habit." – Aristotle</p>
</blockquote>
<p>One of the largest jumps in my skills and confidence came when I made my first major program that <a target="_blank" href="https://github.com/AnonRobot/pathFinder.js/blob/master/PathFinder.js">visualised path finding algorithms</a>. I started with Djikstra and did A* too.</p>
<p>It forced me to:</p>
<ul>
<li>plan something out start to end</li>
<li>give estimates</li>
<li>hold myself accountable</li>
<li>work on new API's I was unfamiliar with</li>
<li>plan out my own architecture</li>
<li>consider how to implement clean design patterns</li>
</ul>
<p>If you aren't sure where to start, that's ok. <a target="_blank" href="https://github.com/public-apis/public-apis">Here's</a> a link to lots of public API's you can dev against, or some project ideas I collated <a target="_blank" href="https://github.com/kealanparr/Every-link-I-wish-I-had-as-a-beginner#Find-project-ideas-1">here</a>.</p>
<p>If you haven't got a <a target="_blank" href="https://kealanparr.com/">personal website</a>, start there!</p>
<p>Even just publishing my personal project was an amazing educational experience in itself. You end up learning the entire SDLC start to end, and fill in the gaps in your knowledge. </p>
<p>For me it was deployments and CI builds that I didn't know a lot about (I use <a target="_blank" href="https://www.netlify.com/">Netlify</a>). Working out things like:</p>
<ul>
<li>How do you want to test your project?</li>
<li>How will you release it?</li>
<li>Do you want automated builds?</li>
<li><p>Do you want to buy a domain for it? </p>
<p>You begin to self-educate in an intensely practical way, as you have an end goal in sight – getting the thing online!</p>
</li>
</ul>
<p>Everyone's passion projects look different. Plough away on some open source project for a few months, and see how much you grow. When you begin to interact with people from different countries, who have their own formed opinions and who don't know you, you can't help but learn from your mistakes. </p>
<p>You get the added benefit of identifying one smart person you get on well with, from whom you can glean valuable insight based on their years of coding and expertise. </p>
<p>If this works well for you – that is, having someone with whom to discuss your tech progress – you can apply for a mentor (for free) <a target="_blank" href="https://mentors.codingcoach.io/">here</a>.</p>
<p>You don't even have to code an entire program or app, but just work on something that you enjoy. Solve <a target="_blank" href="https://leetcode.com/problemset/all/">Leetcode problems</a> or <a target="_blank" href="https://www.codewars.com/">Codewars kata</a>s. <a target="_blank" href="https://compilers.iecc.com/crenshaw/">Write a compiler and a language</a>. Or read through almost 400 ideas <a target="_blank" href="https://github.com/danistefanovic/build-your-own-x">here</a>. </p>
<p>The biggest jumps in growth came when I had a few small projects I was trying to implement. Having lots to do (<strong>that I enjoyed!</strong>) forced me to adapt to become more time-efficient and made me code quicker.</p>
<h1 id="heading-make-sure-to-exercise-and-get-plenty-of-sleep">Make Sure to Exercise and Get Plenty of Sleep</h1>
<blockquote>
<p>"It is a shame for a [person] to grow old without seeing the beauty and strength of which [their] body is capable." – Socrates</p>
</blockquote>
<p>Exercise <a target="_blank" href="https://www.health.harvard.edu/blog/regular-exercise-changes-brain-improve-memory-thinking-skills-201404097110">helps your memory and your thinking, directly and indirectly</a>. The direct benefits of exercise are many, but among other things it:</p>
<ul>
<li>allows your body to reduce insulin resistance and inflammation </li>
<li>stimulates chemicals in your brain to affect the health of brain cells</li>
<li>encourages the growth of new blood vessels in the brain, and </li>
<li>even increases the quantity and survival rate of new brain cells.</li>
</ul>
<p>Indirectly, it can help you improve your mood and sleep and reduce stress and anxiety (which, research indicates, can impair cognitive function). </p>
<p><a target="_blank" href="https://www.health.harvard.edu/blog/regular-exercise-changes-brain-improve-memory-thinking-skills-201404097110">Studies have also suggested</a> that the prefrontal cortex (clarity of thinking) and the medial temporal cortex (memory) have greater volume in people who exercise versus people who don’t.</p>
<p>Just as it's important to look after your mental health, you need to look after your physical health as well. IQ drops off as we age, and one <a target="_blank" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4587595/#:~:text=Advancing%20age%20is%20associated%20with,ultimately%20affects%20quality%20of%20life.&amp;text=Clinically%2C%20these%20changes%20will%20present,and%20the%20onset%20of%20dementia.">theory</a> is that the amount of oxygen our brain receives slowly declines if we get old without staying in good cardiovascular health.</p>
<h1 id="heading-conclusion">Conclusion</h1>
<p>My final bit of advice that ties all of this together is to try and consistently challenge yourself.  </p>
<p>There is a middle ground while you're working normally referred to as <a target="_blank" href="https://en.wikipedia.org/wiki/Flow_(psychology)">flow</a>. It happens when you're feeling fully energized and <strong>"in the zone"</strong>. </p>
<p>If you start something too difficult <a target="_blank" href="https://99u.adobe.com/articles/18486/not-too-hard-not-too-easy-finding-flow-in-your-work">you won't complete it due to feeling overwhelmed</a>. If you start something too easy, you won't complete it due to boredom. </p>
<p>You need to do your best to balance something being difficult enough to challenge you to learn new things and make you grow your skills versus being bored to death doing something well below your skill level.  </p>
<p>This is hard to accomplish when you first begin, because everything just feels too difficult. If you find yourself here, I'd recommend starting the <a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp curriculum</a> at the very beginning and working your way through the certifications.</p>
<p>Keep a notebook of ways you can grow and what you would have done differently when you make mistakes. Be kind to yourself, and keep moving forward learning all the way.</p>
<p>I tweet my articles <a target="_blank" href="https://twitter.com/kealanparr">here</a> if you would like to read more of my writing.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Developer Communities to Join to Help You Grow Your Tech Career ]]>
                </title>
                <description>
                    <![CDATA[ Alone, we can do so little; together, we can do so much. Helen Keller It’s true – when you lend someone a helping hand, you feel a lot better about yourself, and you will likely learn something new.  Helping others feels so rewarding because you kno... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/developer-communities-to-join-to-grow-your-career/</link>
                <guid isPermaLink="false">66b8dbbcabe19f6180038a29</guid>
                
                    <category>
                        <![CDATA[ community ]]>
                    </category>
                
                    <category>
                        <![CDATA[ community building ]]>
                    </category>
                
                    <category>
                        <![CDATA[ networking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Hillary Nyakundi ]]>
                </dc:creator>
                <pubDate>Tue, 03 Aug 2021 19:33:16 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/08/uide-to-writting-a-good-readme-file--3-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <blockquote>
<p>Alone, we can do so little; together, we can do so much.
Helen Keller</p>
</blockquote>
<p>It’s true – when you lend someone a helping hand, you feel a lot better about yourself, and you will likely learn something new. </p>
<p>Helping others feels so rewarding because you know that you have contributed something very important to humanity. And what better way to help your fellow developers than to join one of the many developer communities out there?</p>
<h2 id="heading-what-are-developer-communities">What are Developer Communities?</h2>
<p>Over the past few years lots of developer communities have come together with different goals and missions. But you'll probably agree with me that they all have several things in common:</p>
<ul>
<li>They help you learn,</li>
<li>They share ideas</li>
<li>They offer support to newbies, and</li>
<li>You can freely interact with them and within them.  </li>
</ul>
<p>There are many different types of developer communities out there – front-end focused, back-end focused, and specific language-based. We also have general communities which include all of the above under one platform.  </p>
<h3 id="heading-what-are-the-benefits-of-developer-communities">What are the benefits of developer communities?</h3>
<p>The benefits offered by these communities are 'on another level' as I would say. They have helped people start from scratch and eventually land jobs in big tech companies like Google and Microsoft. They have also developed mentors and have helped improve their code writing and reviewing skills.</p>
<p>In other words, being part of a developer community can really help you learn how to code.</p>
<h2 id="heading-how-do-you-pick-a-developer-community-to-join">How Do You Pick a Developer Community to Join?</h2>
<p>I want to help those of you who are looking for a good community to join according to your interests and skills. So I've gathered a few of the top communities that focus on the front-end, back-end, blogging, and more to help you get started and meet your fellow developers. </p>
<p>I may have not included all the communities out there because we have a ton of them. So feel free to message me with any others that you feel are really helpful and important. </p>
<h2 id="heading-web-development-amp-design-communities">Web Development &amp; Design Communities</h2>
<h3 id="heading-the-freecodecamp-forumhttpsforumfreecodecamporg"><a target="_blank" href="https://forum.freecodecamp.org/">The freeCodeCamp Forum</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/screenshot-forum.freecodecamp.org-2021.08.03-08_00_49.png" alt="screenshot-forum.freecodecamp.org-2021.08.03-08_00_49" width="600" height="400" loading="lazy"> 
The good thing about this community is that you can not only ask questions and get programming tips, but you also get career advice and learn how to get started coding.</p>
<p>The forum is divided into different sub-forums, where you can participate according to your interests – HTML &amp; CSS, Career Advice, Motivation, a general group where you meet other developers to have a chat, and so on. </p>
<p>The community does not require any membership fee. All you need to do is sign up using your email and you can be part of the community.</p>
<h3 id="heading-web-developer-forumhttpswwwwebdevelopercom"><a target="_blank" href="https://www.webdeveloper.com/">Web Developer Forum</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-www.webdeveloper.com-2021.07.30-08_57_47.png" alt="screenshot-www.webdeveloper.com-2021.07.30-08_57_47" width="600" height="400" loading="lazy">
The Web Developer Forum is a simple site focused on learning web development and programming. It's categorized into sections where web developers and designers learn and share how to design websites, build mobile applications, create WordPress themes, write HTML and JavaScript, and more.</p>
<p>It is easy to use, and it covers almost all questions you might have about the sections. It is a great place for developers starting out with web development. </p>
<p>To start a discussion all you need to do is sign up and you are good to go. </p>
<h3 id="heading-the-sitepoint-communityhttpswwwsitepointcomcommunity"><a target="_blank" href="https://www.sitepoint.com/community/">The SitePoint community</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wwmzu7mp8e7hnjbuejki.png" alt="Alt Text" width="1260" height="814" loading="lazy"> 
On SitePoint, you can find answers to questions about CSS, HTML, marketing, PHP, JavaScript, design and UX, databases, web hosting and more.</p>
<p>The good thing about this community is that it does not only talk about finding solutions, it also has books on web development, articles on these topics, and more (but some of these features are only available under the premium subscription).</p>
<p>The community has two plans, free and the premium. With the free plan you get limited resources in the community, but with the premium you get unlimited access to courses, books, featured tech talks, and more. </p>
<p>To be part of the community all you need is to sign up by either your email, GitHub, or Facebook.</p>
<h3 id="heading-talk-grapicshttpswwwtalkgraphicscom"><a target="_blank" href="https://www.talkgraphics.com/">Talk Grapics</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vywunnkt6xjynf4gjhzx.png" alt="Alt Text" width="1261" height="629" loading="lazy"> </p>
<p>Just as the name says, this is a community of graphic designers and 3D artists.  </p>
<p>The forum is divided into different sub-forums to make it easy for new members to find their category of design, whether it's web or graphic. </p>
<p>Here you will find the latest and trending topics at the top of the list for modern web designers and graphic artists.</p>
<p>In order to be part of the community you will have to register with your email and it's absolutely free of charge.</p>
<h3 id="heading-coffeecuphttpswwwcoffeecupcomforums"><a target="_blank" href="https://www.coffeecup.com/forums/">CoffeeCup</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12b3uo1i2154kf86qugm.png" alt="Alt Text" width="1265" height="900" loading="lazy"> 
CoffeeCup was started back in 1996 with a simple HTML editor inside a coffee shop. </p>
<p>This community helps designers create better sites. Their main goal is to make life easier by providing customers with great yet affordable software.</p>
<p>Just like most communities, it's in the forum where you get to post different questions and find solutions to other questions. </p>
<p>To join an ongoing conversation or be part of the community all you need to do is to create an account by signing up with your email. </p>
<h3 id="heading-bootstraphttpsbootstrap-slackherokuappcom"><a target="_blank" href="https://bootstrap-slack.herokuapp.com/">Bootstrap</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rpfzx4qs60hq9pyjf2wx.png" alt="Alt Text" width="833" height="539" loading="lazy"> 
Bootstrap is a popular HTML, CSS, and JS framework for UI components and interactions. The community focuses on and discusses the latest trends and tips ragarding development using Bootstrap. </p>
<p>This framework is good for building responsive sites with the help of popular front-end component libraries. </p>
<p>To join, use the slack channel or subscribe to their official blog. </p>
<h3 id="heading-indiehackershttpswwwindiehackerscom"><a target="_blank" href="https://www.indiehackers.com/">IndieHackers</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2ww81ifob22vecvo7jx.png" alt="Alt Text" width="1126" height="630" loading="lazy"> 
IndieHackers is an emerging online community of developers. It's a platform where the founders of successful startups share their stories and experience with others. </p>
<p>It's main aim is to help those who want to begin their tech startups and side projects by providing guidance and outlines on how to. You get advice from successful tech entrepreneurs.</p>
<p>It is an open forum where each member is able to share experience, explore ideas, and offer support to upcoming developers. </p>
<p>It is an invite-only platform for now, meaning to join you have to have a invite code for signup.</p>
<h4 id="heading-daily-uihttpswwwdailyuico"><a target="_blank" href="https://www.dailyui.co/">Daily UI</a></h4>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oonrvk6xxxjuwrswt9y5.png" alt="Alt Text" width="1164" height="698" loading="lazy"> 
If you want to be a UI &amp; UX Designer, this platform is for you. Daily UI is a series of UI challenges that, as the name suggests, are posted every day to help designers improve and perfect their skills. </p>
<p>You'll find design inspiration and when you complete projects you get rewards. All this is to help you become a better designer within a period of 100 days. The amazing support from the community will motivate you to keep learning.</p>
<p>It is absolutely free, all you need to get started is to sign up with your email.</p>
<h2 id="heading-blogging-communities">Blogging Communities</h2>
<h3 id="heading-devtohttpsdevto"><a target="_blank" href="https://dev.to/">Dev.to</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jg6j15e4p0sjlvos18od.PNG" alt="Alt Text" width="992" height="488" loading="lazy"> 
If you are trying to start writing and publishing tech-related articles and do not have your own domain, this is where to get started. You'll also get to meet a community of passionate writers starting out.</p>
<p>It is an open source community of more than 600k developers who share, learn, and stay updated with latest technology trends. It has resources like podcasts, articles, videos, real-world examples, hackathons, and more. </p>
<p>To get started join by either signing up with email or GitHub account. You will get your own dashboard to post your article, like this <code>https://dev.to/larymak</code></p>
<h3 id="heading-freecodecamphttpswwwfreecodecamporgnews"><a target="_blank" href="https://www.freecodecamp.org/news">freeCodeCamp</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cof79ebwkdybsbo73dnb.png" alt="Alt Text" width="987" height="609" loading="lazy"> 
freeCodeCamp is a non-profit platform where you can learn and practice coding for free – and they also have a blogging platform where developers contribute by sharing knowledge through writing articles. </p>
<p>The community <a target="_blank" href="https://forum.freecodecamp.org/">also has a forum</a> where you can meet other developers and share ideas, ask questions, solve problems and figure out errors, and enhance your knowledge.</p>
<p>The freeCodeCamp publication is not an open publishing platform. But if you are accepted as a writer, the editorial team will carefully review and edit your articles, and then publish and publicize them to a large audience.</p>
<p>If you want to apply to write for freeCodeCamp's publication, this article will show you how: <a target="_blank" href="https://www.freecodecamp.org/news/how-to-write-for-freecodecamp/">Article</a> </p>
<h4 id="heading-hashnodehttpshashnodecom"><a target="_blank" href="https://hashnode.com/">Hashnode</a></h4>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k1of28yk5ew5shv2tvf9.PNG" alt="Alt Text" width="1248" height="625" loading="lazy"> 
Hashnode is a global community of developers where you can share ongoing projects, ask questions, suggest ideas, and help others solve their problems. </p>
<p>It is a free platform that helps you stay connected with the latest tech trends. </p>
<p>You can publish blogs, get your own sub-domain like this one <code>https://larymak.hashnode.dev/</code> or add your own, follow your favorite authors, and even back up your blog on your GitHub. You can also participate in hackathons and win prizes. </p>
<p>To join you will need to create an account with Facebook, LinkedIn, Google or GitHub and you get you subdomain for free.</p>
<h3 id="heading-hackernoonhttpshackernooncom"><a target="_blank" href="https://hackernoon.com/">Hackernoon</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ttyn4jjittp9f512jp2a.PNG" alt="Alt Text" width="1260" height="517" loading="lazy">
Hackernoon is a site where you can read, write, and publish articles. It's a community of 15k + writers and over 3 million readers. Top tech companies use this platform to share their expertise. </p>
<h3 id="heading-code-newbiehttpswwwcodenewbieorg"><a target="_blank" href="https://www.codenewbie.org/">Code Newbie</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ghpe2gu5p3w3upp4vsxq.PNG" alt="Alt Text" width="984" height="615" loading="lazy"> 
Code Newbie started out as a weekly twitter chat providing helpful support to people learning to code. </p>
<p>Since then it has grown into a supportive community of developers where you can publish articles, too. </p>
<h3 id="heading-blogging-for-devshttpsbloggingfordevscom"><a target="_blank" href="https://bloggingfordevs.com/">Blogging for Devs</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/baod3tst912vvcs1eir6.png" alt="Alt Text" width="977" height="490" loading="lazy"> 
This is a private community for developers, freelancers, and tech creators who want to grow their audience through writing online. </p>
<p>The only thing is that it's not free – you need to pay a fee to be a part of it. </p>
<h2 id="heading-general-tech-communities">General Tech Communities</h2>
<p>Remember earlier I mentioned that there are some communities that have all these features under one roof? Well, in this section we will have a look at some of them. </p>
<p>Once you're a registered member, you'll just need to choose your category and you will be good to go.</p>
<h3 id="heading-stack-overflowhttpsstackoverflowcom"><a target="_blank" href="https://stackoverflow.com/">Stack Overflow</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ev4i8f0ewemzez8qb3o0.png" alt="Alt Text" width="1185" height="826" loading="lazy"> 
For anyone who is into programming, Stack Overflow is a great resource. You can join the community to learn, share, and build your career. </p>
<p>It hosts developers from around the globe who come to seek answers to their coding challenges and ask questions about their errors. </p>
<p>And here is the amazing part: according to their analysis, a question is posted every 12 seconds, and it is always answered by developers who already know how to solve it. </p>
<h3 id="heading-stack-exchangehttpsstackexchangecom"><a target="_blank" href="https://stackexchange.com/">Stack Exchange</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ciffc9a0mr8ly5lj65j2.png" alt="Alt Text" width="963" height="789" loading="lazy"> 
Stack Exchange was launched in 2010 by the Stack Exchange network.
It's made up of 173 Q&amp;A communities including Stack Overflow which we just discussed.</p>
<h3 id="heading-reddithttpswwwredditcom"><a target="_blank" href="https://www.reddit.com/">Reddit</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7i3tws3j89k8ffk0ypw7.png" alt="Alt Text" width="1133" height="779" loading="lazy"> 
Reddit is a global community with a lot of sub-groups or sub-reddits, and there are endless conversations going on. </p>
<p>It has threads about nearly all trending topics, opportunities for meet ups, how to debug your code, and job listings, among many other things. </p>
<p>Now to help you get started on the right path, here are some of the common sub-reddits where you can subscribe and get notified on updates: </p>
<p><a target="_blank" href="https://www.reddit.com/r/webdev">WebDev</a>, <a target="_blank" href="https://www.reddit.com/r/reactjs">ReactJS</a>, <a target="_blank" href="https://www.reddit.com/r/Python/">Python</a>, <a target="_blank" href="https://thehiveindex.com/communities/r-javascript/">Javascript</a> and more others.</p>
<h3 id="heading-githubhttpsgithubcom"><a target="_blank" href="https://github.com/">GitHub</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/co4lv80q3ldlapkl8j0m.PNG" alt="Alt Text" width="1253" height="842" loading="lazy"> 
GitHub is a very popular site amongst developers. The Community Forum is the place where you as a developer can share ideas and follow up on discussions. </p>
<p>You can also easily share your code, as well as collaborate with others on their code. This feature makes it both a very useful and interesting programming and coding community. </p>
<h3 id="heading-digital-oceanhttpswwwdigitaloceancomcommunity"><a target="_blank" href="https://www.digitalocean.com/community">Digital Ocean</a></h3>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j6eu5ovxrtb1nwjpbd5d.png" alt="Alt Text" width="1207" height="642" loading="lazy"> 
Digital Ocean is a place where developers can find or lend support and contribute to the community. The community provides guides, tutorials, trends for developers, a Q/A section, and much more. </p>
<h3 id="heading-code-projecthttpswwwcodeprojectcom"><a target="_blank" href="https://www.codeproject.com/">Code Project</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-www.codeproject.com-2021.07.31-14_26_24.png" alt="screenshot-www.codeproject.com-2021.07.31-14_26_24" width="600" height="400" loading="lazy">
Code Project is a community for computer programmers with articles on different topics and programming languages such as web development, software development, C++, Java, and other topics.</p>
<h3 id="heading-devranthttpsdevrantcom"><a target="_blank" href="https://devrant.com/">DevRant</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-devrant.com-2021.07.31-14_33_43.png" alt="screenshot-devrant.com-2021.07.31-14_33_43" width="600" height="400" loading="lazy"> 
devRant is a fun community for developers to share and bond over their successes and frustrations with code, tech, and life as a programmer. DevRant has an iOS and Android app for the community.</p>
<h3 id="heading-discordhttpsdiscordcom"><a target="_blank" href="https://discord.com/">Discord</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-discord.com-2021.07.31-14_36_50.png" alt="screenshot-discord.com-2021.07.31-14_36_50" width="600" height="400" loading="lazy"> 
Just like Reddit, Discord is organized into groups called servers. These are organized into topic-based channels where you can collaborate, share, and just talk about your day without clogging up a group chat.</p>
<h2 id="heading-tech-communities-specifically-for-women">Tech Communities Specifically for Women</h2>
<p>Over the past few years many organizations have been founded that advocate for women's empowerment in tech. They call for equal opportunities among all genders. </p>
<p>The main aim of these communities is to offer support and create a environment where women can feel comfortable to learn.</p>
<h3 id="heading-women-who-codehttpswwwwomenwhocodecom"><a target="_blank" href="https://www.womenwhocode.com/">Women Who Code</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/Bl9cmrbm3.png" alt="Bl9cmrbm3" width="600" height="400" loading="lazy">
Women Who Code is an international nonprofit organization that provides a global community for women in tech through events, coding resources, jobs, mentorship, and more. </p>
<p>They aim to inspire, support, and help women develop technical skills and excel in their careers.</p>
<h3 id="heading-women-in-technologyhttpswitchatgithubio"><a target="_blank" href="https://witchat.github.io/">Women in Technology</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-witchat.github.io-2021.07.31-14_56_16.png" alt="screenshot-witchat.github.io-2021.07.31-14_56_16" width="600" height="400" loading="lazy"> 
Women in Technology is a safe, confidential space for women who work in technology to chat and support each other. They welcome both those who already have significant programming knowledge as well as those just starting out so they can help each other grow as a community. </p>
<h3 id="heading-girls-who-codehttpsgirlswhocodecom"><a target="_blank" href="https://girlswhocode.com/">Girls who Code</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-girlswhocode.com-2021.07.31-15_03_59.png" alt="screenshot-girlswhocode.com-2021.07.31-15_03_59" width="600" height="400" loading="lazy">
Girls Who Code programs work to inspire, educate, and equip girls with the computing skills to pursue 21st century opportunities. </p>
<p>The organization helps hundreds of thousands of women get into the education sector of computer science. The goal is to provide computer science education to more than 1 million young women.</p>
<h3 id="heading-djangogirlshttpsdjangogirlsorg"><a target="_blank" href="https://djangogirls.org/">DjangoGirls</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-djangogirls.org-2021.07.31-15_07_23.png" alt="screenshot-djangogirls.org-2021.07.31-15_07_23" width="600" height="400" loading="lazy"> 
Django Girls is a non-profit organization and a community that empowers and helps women to organize free, one-day programming workshops by providing tools, resources, and support.</p>
<h3 id="heading-rails-girlshttprailsgirlscom"><a target="_blank" href="http://railsgirls.com/">Rails Girls</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-railsgirls.com-2021.07.31-15_11_12.png" alt="screenshot-railsgirls.com-2021.07.31-15_11_12" width="600" height="400" loading="lazy">
The Rails Girls community is similar to that of Django Girls, and strives to provide self-hosted events that can help young and adult women to get into the game of coding, with the knowledge that there is support and advice available at all times. Otherwise, the journey can sometimes seem a little bleak.</p>
<h3 id="heading-pyladieshttpspyladiescom"><a target="_blank" href="https://pyladies.com/">Pyladies</a></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/screenshot-pyladies.com-2021.07.31-15_13_16.png" alt="screenshot-pyladies.com-2021.07.31-15_13_16" width="600" height="400" loading="lazy"> 
The name says it all:</p>
<blockquote>
<p>WE ARE…
…a group of women developers worldwide who love the Python programming language. We write code by day or night. Some of us hack on Python projects on the side, while others work full-time on Python development. But it doesn’t matter. We all just like writing Python code, and that’s what brings us together.</p>
</blockquote>
<p>PyLadies is a straightforward community of women Python developers.
It aims to provide a friendly support network for women and a bridge to the larger Python world. Anyone with an interest in Python is encouraged to participate!</p>
<h2 id="heading-language-specific-communities">Language-Specific Communities</h2>
<h3 id="heading-pythonhttpswwwpythonorgcommunity"><a target="_blank" href="https://www.python.org/community/">Python</a></h3>
<p>This community is run by the Python organization, and its main aim is to help Python developers boost their skills.</p>
<p>Their aim is to be open about how transparency can be improved, provide the community with opportunities to interact with the organization, and be responsive to any suggestions community members ask.</p>
<p>If you want to specialize in Python and stay up with the language's latest features, this is the right community for you to join.</p>
<h3 id="heading-javahttpswwworaclecomjavatechnologiesjavacommunityhtml"><a target="_blank" href="https://www.oracle.com/java/technologies/javacommunity.html">Java</a></h3>
<p>The Java community is millions of members strong, and there are many ways to get involved.</p>
<p>You can join their different sub-forums and get to interact with other developers, or you can share technical articles related to Java (which, by the way, you can get paid for sharing).</p>
<h3 id="heading-cchttpscppallianceorgslack"><a target="_blank" href="https://cppalliance.org/slack/">C/C++</a></h3>
<p>This community's mission is to make the C++ programming language accessible and useful to anyone who wishes to learn and apply the language. </p>
<p>The community gathers users of C++ from around the world into the same place so they can all learn from each other.</p>
<p>In order to be part of the community you need to have an invite code, which you can request upon signing up for the community.</p>
<h3 id="heading-chttpscsharpforumsnet"><a target="_blank" href="https://csharpforums.net/">C#</a></h3>
<p>This is a community of C# and .NET developers, sharing tips on how to get started and how to use the language. </p>
<p>The community is also divided into sub-forums, where you are able to ask questions, follow up on conversations, and also share ideas and any issues you've encountered while working.</p>
<p>To join, you need to sign up either with a Google, Facebook, or Microsoft account, and it's absolutely free to get started.</p>
<h3 id="heading-phphttpsphpcommunityorg"><a target="_blank" href="https://phpcommunity.org/">PHP</a></h3>
<p>This is an active and vibrant community of programmers that has grown up around an affinity for the PHP programming language. The community is all about friendship and helping each other become better at PHP.</p>
<h3 id="heading-kotlinhttpskotlinlangorgcommunity"><a target="_blank" href="https://kotlinlang.org/community/">Kotlin</a></h3>
<p>You can be part of the Kotlin community by either joining their User movement groups, planning a kotlin event, or joining an existing one. You can also contribute to the language and ecosystem. </p>
<p>In the community you can learn the essentials and best practices of Kotlin in Android, the Google Cloud Platform, and multi-platform development.</p>
<h3 id="heading-swifthttpsforumsswiftorg"><a target="_blank" href="https://forums.swift.org/">Swift</a></h3>
<p>In the Swift forums, which are public by the way, public conversations are encouraged, and active developers of the Swift language are encouraged to monitor the relevant forum categories.</p>
<h3 id="heading-luahttpswwwluaorgcommunityhtml"><a target="_blank" href="https://www.lua.org/community.html">Lua</a></h3>
<p>The main aim of the Lua community is to get together and meet new developers and talk about the Lua language, its uses, and its implementation. </p>
<p>Another goal is to help spread the word about Lua to the tech industry and academia.</p>
<h3 id="heading-ios-developershttpsios-developersio"><a target="_blank" href="https://ios-developers.io/">iOS Developers</a></h3>
<p>This community has around 30k+ members. Their main aims are being open, helping each other, and sharing knowledge. </p>
<p>You can either join by email, Google, or Apple ID. When you join, you get to ask for an invite and in no time you will be a member.</p>
<h3 id="heading-mobile-developershttpsforumxda-developerscom"><a target="_blank" href="https://forum.xda-developers.com/">Mobile Developers</a></h3>
<p>This group was founded by developers, for developers. It is a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality.</p>
<p>It is open for all kinds of mobile app developer from Android, iOS, games and so on. It is divided into sub-forums where you get to join according to your skills</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>“Volunteers don’t get paid, not because they’re worthless, but because they’re priceless.” – Sherry Anderson</p>
<p>These are the kind of people you'll find in all the above listed communities, ready to help you move up to the next level.</p>
<p>Through participating in developer communities, many devs have landed their dream jobs and created lasting friendships. These communities have changed lots of peoples' lives. </p>
<p>Are you a part of on ? If not, what are you waiting for?</p>
<p>True community requires commitment and openness.</p>
<p>Do share your valuable opinion, I appreciate your honest feedback!  </p>
<p>Enjoy Coding ❤</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ We Sent 304,654 Coding Tests to Developers from 156 Countries – Here’s What We Learned ]]>
                </title>
                <description>
                    <![CDATA[ By Tom Winter At DevSkiller, we are known for our detailed industry reports that assist IT recruitment professionals with their hiring decisions. And this past year has been the most diverse and data-heavy set of information ever compiled by our team... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/developer-skills-report-insights-from-coding-tests/</link>
                <guid isPermaLink="false">66d4614ab3016bf139028d96</guid>
                
                    <category>
                        <![CDATA[ hiring ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ jobs ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 03 Mar 2021 16:39:07 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/03/DevSkiller-it-skills-report-2021.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Tom Winter</p>
<p>At DevSkiller, we are known for our detailed industry reports that assist IT recruitment professionals with their hiring decisions. And this past year has been the most diverse and data-heavy set of information ever compiled by our team. </p>
<p>Despite the circumstances that 2020 brought us, the show must go on. We have compiled <strong>304,654 coding tests</strong> sent to developers in 156 countries to create the <a target="_blank" href="https://devskiller.com/it-skills-report/">2021 DevSkiller IT skills report</a>.</p>
<p>Whilst it’s easy to point to the big tech multinationals that will indeed profit from a crisis like we’ve had, many other <a target="_blank" href="https://www.mckinsey.com/business-functions/strategy-and-corporate-finance/our-insights/how-covid-19-has-pushed-companies-over-the-technology-tipping-point-and-transformed-business-forever">small businesses will have a hard time adapting</a> to the market’s fluctuating demands. </p>
<p>Innovative tech can help alleviate a lot of the unforeseen burdens in this pursuit, but businesses are <a target="_blank" href="https://www.ciodive.com/news/risk-management-governance-pandemic-ally-financial/584046/">wary of the risks involved</a> by relying on unfamiliar technologies.</p>
<p>To make it easier to process how our world in tech has changed during the past year, I will provide insights into the dataset and emphasize some of the more relevant findings from the report this year.</p>
<h2 id="heading-1-java-and-javascript-are-the-most-in-demand-it-skills-for-2021">1) Java and JavaScript are the most in-demand IT skills for 2021</h2>
<p>One of this year's most significant developments is that Java has rejoined JavaScript for the top spot in IT skills. The two popular languages were seen in 43% of test invites. </p>
<p>The remainder of the top 5 are SQL, .NET/C#, and CSS/HTML for the second year running.</p>
<p>With Java once again asserting its relevance, this trend indicates that despite the importance of front-end architecture in software development, many companies seek developers who are skilled in back-end technologies.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/top-5-languages-tested-on-devskiller.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>As we found in last year's report, the top 5 IT skills are commonly tested with other languages across DevSkiller’s platform. However, it goes to show that more and more companies are searching for developers competent in these IT skills. </p>
<h2 id="heading-2-75-of-companies-are-looking-for-javascript-developers">2) 75% of companies are looking for JavaScript developers</h2>
<p>Interestingly, the top 5 desired IT skills have remained unchanged from last year. There has been a slight shift in their overall percentages, but the list has more or less stayed the same. </p>
<p>This past year, 75% of companies were looking for JavaScript developers. SQL took out second place with 63%, while Java has dropped slightly to 51%. HTML/CSS and .NET/C# have both seen minimal improvements from last year registering 48% and 41%, respectively.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/top-5-technologies-companies-are-looking-for.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>These numbers are also backed up in the <a target="_blank" href="https://insights.stackoverflow.com/survey/2020">Stack Overflow 2020 Developer Survey</a>, where it also holds the top spot. This is enough evidence to suggest that JavaScript remains the go-to front-end IT skill. </p>
<p>We’d like to point out the growing shift towards TypeScript as a replacement for JavaScript. The distinction between the two is not specified in this report as we classify most TypeScript coding test invitations as JavaScript on our platform. In forthcoming years, we'll make a clearer distinction.  </p>
<p>For another year in a row, SQL reigns supreme as the most popular database IT skill. While companies are increasingly choosing .NET/C# to solve technical issues, Java still remains the preferred option. The rise in popularity of HTML/CSS points to the ever growing need for skilled web developers.</p>
<h2 id="heading-3-google-chrome-and-windows-10-are-the-most-popular-browser-and-operating-system-on-our-platform">3)  Google Chrome and Windows 10 are the most popular browser and operating system on our platform</h2>
<p>Over the past year, we decided to run an analysis on the most popular browsers and operating systems used by candidates on our system. </p>
<p>Rather unsurprisingly, Google Chrome (68.84%) was the preferred browser by a considerable margin. This finding mirrors data from <a target="_blank" href="https://gs.statcounter.com/">StatCounter Global</a>, which lists Google Chrome as the most popular web browser (63.54%) at the time of publication.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/most-popular-browser-used-for-coding-tests.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Mozilla Firefox (15.28%) came in second place on our list, followed by Edge-chromium (6.01%) and Safari (3.93%). Our supplementary source, StatCounter, has Safari in second place while Firefox sits at third. </p>
<p>This suggests that developers have different needs that are better met by Firefox - suggesting that developers don’t necessarily follow the same trends as the general public.</p>
<p>Taking the top spot for the most popular operating system was Windows 10, with 54.13% of developers using this operating system. Again unsurprisingly, this was in line with the <a target="_blank" href="https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-other-frameworks-libraries-and-tools-wanted3">2020 Stack Overflow Developer Survey,</a> where almost half of the developers surveyed used Windows as their primary operating system. </p>
<p>Following that was macOS (23.01%), Linux (12.64%), while Windows 7, Windows 8.1, Android OS, and iOS were all used by less than 5% of developers.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/most-popular-operating-system-used-for-coding-tests.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-4-more-candidates-are-taking-coding-tests-than-ever-before-69">4) More candidates are taking coding tests than ever before (69%)</h2>
<p>This past year a record 69% of tests were sat by candidates, resulting in our highest uptake rates ever. Last year, only 41% of candidates took the test. If you take into account the fact that companies sent out DevSkiller coding tests to a greater number of candidates than last year, it is an even more impressive feat. </p>
<p>We believe the higher uptake in this year's report is likely due to the COVID-19 pandemic. Candidates who have either been forced into unemployment or are uncertain about their job security are not ignoring their coding invitations.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/countries-with-highest-uptake-rates.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-5-react-mysql-spring-aspnet-data-analysis-html-laravel-and-bash-are-the-most-popular-technologies-in-their-respective-tech-stacks">5) React, MySQL, Spring, ASP.NET, Data Analysis, HTML, Laravel, and Bash are the most popular technologies in their respective tech stacks</h2>
<p>Since our tests were created with the tech stack in mind, we are able to see what the most popular IT skills, resources, and technologies are in their respective stacks.</p>
<h3 id="heading-react-is-the-most-popular-technology-used-in-the-javascript-tech-stack-present-in-35-of-tests">React is the most popular technology used in the JavaScript tech stack, present in 35% of tests.</h3>
<p>React leads the way for the second year running as the most popular technology within the JavaScript tech stack. </p>
<p>Just as it did last year, React tops the Hacker News <a target="_blank" href="https://www.hntrends.com/2019/dec-another-year-on-top-for-react.html">hiring trends</a> extending its streak to 31 consecutive months at the time of publication.</p>
<h3 id="heading-mysql-is-used-in-more-than-half-of-sql-tests-at-53">MySQL is used in more than half of SQL tests at 53%.</h3>
<p>MySQL has increased in popularity year after year, with a near 16% increase for the database management system in 2020. SQL Server and HSQLDB placed in second and third. </p>
<h3 id="heading-spring-is-the-most-used-tool-in-the-java-tech-stack-with-36-of-tests">Spring is the most used tool in the Java tech stack with 36% of tests.</h3>
<p>Spring is still the most popular tool here but has lost some ground compared to last year (47%). The user-friendliness and functionality of Spring Boot placed the popular framework in second position.</p>
<h3 id="heading-aspnet-is-seen-in-almost-half-of-all-netc-tech-stack-tests">ASP.NET is seen in almost half of all .NET/C# tech stack tests.</h3>
<p>The leader from last year once again tops the list for the .NET/C# tech stack with a whopping 45.93%. SQL Server (36.90%) overtook MVC (36.35%) by a narrow margin to come in second place this year.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/technology-stakcs-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-data-analysis-tops-the-python-tech-stack-being-used-in-3522-of-tests">Data Analysis tops the Python tech stack, being used in 35.22% of tests.</h3>
<p>Holding its place for the second year running is the popular open-source web framework Django with 20.96%. </p>
<h3 id="heading-html-was-present-in-94-of-all-css-tests">HTML was present in 94% of all CSS tests.</h3>
<p>As the two technologies are so interchangeable, it's little surprise that HTML featured so predominantly in the CSS tech stack. </p>
<h3 id="heading-laravel-remains-the-most-popular-resource-in-the-php-tech-stack-with-2665-of-tests">Laravel remains the most popular resource in the PHP tech stack with 26.65% of tests.</h3>
<p>Despite dropping slightly from last year, Laravel remains the most popular framework of the PHP tech stack. Symfony was the other clear standout seen in 17.07% of tests.</p>
<h3 id="heading-bash-is-the-industry-leader-in-the-devops-tech-stack-present-in-7061-of-tests">Bash is the industry leader in the DevOps tech stack, present in 70.61% of tests.</h3>
<p>This is the first year that we've included the DevOps tech stack in this report, and it's popularity in recent years has quickly increased. Following Bash was networking (65.31%), and then Docker and System Administration tied at 54.69%.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/technology-stacks-2.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-6-countries-are-looking-abroad-more-than-ever-for-their-technical-hiring-needs">6) Countries are looking abroad more than ever for their technical hiring needs</h2>
<p>The COVID-19 pandemic has caused significant changes in company hiring patterns. As a result, most companies have undergone rapid transformations into remote-friendly or even remote-first workplaces, which has prompted a substantial rise in international hiring. </p>
<p>This year, the UK, Canada, Australia, Indonesia, Denmark, and Chile all saw increases in their international hiring percentages.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/international-tech-hiring-by-country.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-7-australian-developers-scored-the-highest-on-coding-tests">7) Australian developers scored the highest on coding tests</h2>
<p>In previous years, we used the mean score to determine the highest scoring developers by country. </p>
<p>This year, we have analyzed the 90th percentile — which demonstrates the results that only the top 10% of candidates in a given country scored better than. We made this change because the mean score includes outliers that often influence averages and skew results.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/countries-developers-score-highest.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Australia took the top spot for IT skills this past year, with 10% of Australian developers scoring higher than 93.56% on their coding test. Developers from the US came in second (90.91%). Rounding out the top 5 were Sweden (90.35%), Portugal (89%), and Poland (87.50%)</p>
<h2 id="heading-8-the-us-is-driving-international-recruitment-but-has-only-the-5th-largest-labor-market-for-overseas-recruitment">8) The US is driving international recruitment but has only the 5th largest labor market for overseas recruitment</h2>
<p>The US is the global leader in international hiring but has slipped to the 5th largest labor market. In 2020, we saw the US drop from second position to fourth, forming part of a continuing downward trend. </p>
<p>These statistics are testament to the improving quality of developers from other markets. Brazil holds its position in the top 5, while developers from Russia and Canada are becoming increasingly popular sources for overseas recruitment. </p>
<p>The other trend we see is that companies are concentrating on allocating IT skills to outsourced-focused countries. This trend is likely to continue for years ahead.</p>
<p>Interestingly, Canada and Brazil are in first and second position for the top countries from which the US recruits its developers. As we noted last year, the proximity and the relative time difference makes them desirable for US companies to source developers from those countries.</p>
<h2 id="heading-what-do-these-it-skills-numbers-mean-for-us-moving-forward">What do these IT skills numbers mean for us moving forward?</h2>
<p>2020 challenged us in every way possible. The consequences of its impact will undoubtedly take years to recover from, including the tech world. </p>
<p>Despite this sobering reality, The Bureau of Labor Statistics projects an 11% growth in the IT industry over the next ten years. An even greater uplift is forecasted <a target="_blank" href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm">in the field of software development.</a> </p>
<p>We’ve also analyzed the state of the global IT market for 2020 and the outlook for 2021. As reported by <a target="_blank" href="https://www.comptia.org/content/research/it-industry-trends-analysis">CompTia</a>, research consultancy firm IDC projected global IT revenue to be $4.8 trillion for 2020 back in August, however due to the COVID-19 pandemic it failed to reach that mark.</p>
<p>As expected, in 2021 the US will be the largest tech market in the world with 33% of the total revenue or $1.6 trillion. Outside of the US, Western Europe (19%) and China (14%) are the next two largest technology markets projected for 2021.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/03/global-tech-industry-idc.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>While all of our data was compiled over the past year, it holds some interesting insights for the year ahead:</p>
<ul>
<li>The developer labor market in the US is shrinking — whilst still the global leader for technical hiring, it now is in fifth place in regards to providing professionals with IT skills to the global market.</li>
<li>Australian developers have staked their claim as some of the best developers in the world.</li>
<li>JavaScript is not going anywhere, and the legacy technology’s popularity and demand only seems to be rising.</li>
<li>The pandemic afforded more time for candidates to take and finish their coding tests.</li>
<li>Familiarity with database languages such as SQL will go a long way and Spring Boot is also slowly rivaling Spring as the most popular resource in the Java tech stack.</li>
</ul>
<p>These are just some of the findings in the report. Check out the full <a target="_blank" href="https://devskiller.com/it-skills-report/">2021 DevSkiller IT skills report</a> if you want to get the complete picture of these insights and more.  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Become a Better Front-end Developer by Building Projects (Ideas Included) ]]>
                </title>
                <description>
                    <![CDATA[ By Kyle Prinsloo If you want to fast-track your growth as a front-end developer, nothing beats doing real development projects.   The truth is you can watch all the tutorials and courses in the world, but without application and practice, you won’t r... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/become-a-better-developer-by-building-projects/</link>
                <guid isPermaLink="false">66d46015e39d8b5612bc0db2</guid>
                
                    <category>
                        <![CDATA[ Front-end Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ projects ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 03 Jul 2020 15:36:28 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c99e1740569d1a4ca223a.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Kyle Prinsloo</p>
<p>If you want to fast-track your growth as a front-end developer, nothing beats doing real development projects.  </p>
<p>The truth is you can watch all the tutorials and courses in the world, but without application and practice, you won’t really learn skills that you need to work on real projects.  </p>
<p>Client projects don’t come with step-by-step instructions because otherwise, they wouldn't need you at all. You’ll have to think outside the box, find solutions, compromise, and hack your way to the finish line.  </p>
<p>The best way to learn these skills is to do some front-end developer projects and learn along the way. And the best part? You don’t even need a client to get started because you can do these projects by yourself.</p>
<h2 id="heading-how-to-choose-a-personal-front-end-development-project">How to Choose a Personal Front-End Development Project</h2>
<h3 id="heading-ia"> </h3>
<p>Keep your skill level in mind</p>
<p>Don’t choose a project that’s too advanced for your skill level, especially if you’re the type to lose motivation when things get too hard.  </p>
<p>But don’t forget that since the goal here is to help you master front-end development, choose a project that reaches beyond your current skill level but is still doable.  </p>
<p>For example, if you’ve recently learned HTML and CSS, it’s time to level up by learning JavaScript.</p>
<h3 id="heading-solve-a-personal-problem-or-a-problem-you-care-about">Solve a personal problem or a problem you care about</h3>
<p>You’re also more likely to enjoy and stick with a project if it solves your own problems or fulfills your own desires.  </p>
<p>Maybe you always lose track of time when you’re scrolling through your Facebook news feed, or you want a website where you can automatically generate engaging YouTube thumbnails.  </p>
<p>Think of a personal problem that you can solve with technology and start from there. The suggestions in this article are only meant to be a starting point. It will be much better if you alter it to add your unique twist.</p>
<h2 id="heading-4-fun-front-end-development-projects">4 Fun Front-End Development Projects</h2>
<h3 id="heading-build-a-clone-of-a-website">Build a clone of a website.</h3>
<p>Skills to learn: HTML, CSS, JavaScript, and/or Bootstrap.  </p>
<p>Building a clone of a website is a great way to explore how it is constructed and learn the basics of page structure, colors, fonts, media, tables, and more. Go into as much detail as you can to replicate the original.  </p>
<p>Choose a website that you like and build a clone of it yourself. Don’t look at the source code as much as possible to get the most out of it.  </p>
<p>Cloning Google is actually one of <a target="_blank" href="https://studywebdevelopment.com/thinkful-bootcamp-review.html">Thinkful’s</a> exercises for their coding workshop students. Thinkful is an educational company that offers technology courses including a web development bootcamp.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/07/Screen-Shot-2020-07-03-at-11.49.20-AM.png" alt="Image" width="600" height="400" loading="lazy">
<em>Thinkful Google Clone</em></p>
<p>You can also follow <a target="_blank" href="https://www.thinkful.com/projects/karma-landing-page-clone-129/">this exercise</a> to help you clone the landing page of an app called Karma WiFi. It was created by Kyle Koski, one of Thinkful’s mentors, and uses HTML and CSS.  </p>
<p>What’s good about cloning a website is you can choose the level of complexity of the website. If you’re just starting out, a simple website that only needs HTML and CSS is a good place to start. If you’re more advanced, pick a website that requires JavaScript or React.</p>
<h3 id="heading-create-a-javascript-quiz-game">Create a JavaScript quiz game.</h3>
<p>Skill to learn: JavaScript  </p>
<p>JavaScript is a programming language that allows you to make interactive webpages. It’s the language you use when creating responsive elements like menus, video players, animations, interactive maps, and even in-browser games.  </p>
<p>But before we proceed, it’s important to know why you would want to build a quiz.<br>It’s more than fun and games. Quizzes are actually gaining popularity as content marketing tools. Ever seen these kinds of things?</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/07/quiz-example.png" alt="Image" width="600" height="400" loading="lazy">
<em>Quiz Examples</em></p>
<p>Quizzes are terrific marketing tools because they are interactive. According to a poll by Content Marketing Institute, <a target="_blank" href="https://www.pointvisible.com/blog/using-personalized-quizzes/">81%</a> of marketers agree that interactive content – which is any kind of content that requires the user to participate – grabs attention more effectively than static content.  </p>
<p>For this reason, quizzes are used for different marketing purposes. Trivial quizzes, like the one on the left, are used to boost traffic to a website. Some marketers also use quizzes to qualify leads, segment leads, and increase engagement.  </p>
<p>I’m explaining this because as a developer, your job is to not only make sure things look pretty, but also to create features that are user-friendly and will make your client’s website more effective in achieving its sales and marketing goals.  </p>
<p>To create a quiz, check out these tutorials on making JavaScript quizzes from <a target="_blank" href="https://webdevtrick.com/create-javascript-quiz-program/">WebDevTrick</a> and <a target="_blank" href="https://www.sitepoint.com/simple-javascript-quiz/">SitePoint</a>. Here’s what your JS quiz can look like:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/07/sample-javascript-quiz.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Quiz example by SitePoint</em></p>
<h3 id="heading-create-your-own-mobile-qr-reader">Create your own mobile QR reader.</h3>
<p>Skill to learn: JavaScript  </p>
<p>Barcodes and QR codes have changed the way we do shopping. Customers can now scan a product with their smartphones and find out various information about it such as the price or where they can buy it.  </p>
<p>It also eliminates the need to type in long codes on a website like activation codes or model numbers, making their shopping experience easier and hassle-free.  </p>
<p>Contrary to what others think, you don’t need a native phone app to scan QR codes. </p>
<p>Websites running on a smart device with a camera can do the trick.  </p>
<p><a target="_blank" href="https://www.sitepoint.com/create-qr-code-reader-mobile-website/">This guide</a> shows you the step-by-step process of creating your own QR code reader. </p>
<p>You will use HTML and JavaScript, but the most important part is using a JS library that can interpret the QR code. The good news is you won’t have to create it from scratch because there are plenty of great libraries out there for this exact purpose.</p>
<h3 id="heading-build-a-weather-app">Build a weather app.</h3>
<p>Skill to learn: Angular 8  </p>
<p>Angular is one of the three most popular front-end development frameworks alongside React and Vue.js. It’s commonly used to build form-based apps (where you have to sign up to create an account) but can also be used to build games and even apps with virtual reality elements.  </p>
<p>There’s a very detailed, <a target="_blank" href="https://medium.com/@hamedbaatour/build-a-real-world-beautiful-web-app-with-angular-6-a-to-z-ultimate-guide-2018-part-i-e121dd1d55e">step-by-step tutorial</a> on Medium that teaches beginners how to create a beautiful weather app with Angular 8 (the latest version of Angular). The weather app looks like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/07/weather-app-example.png" alt="Image" width="600" height="400" loading="lazy">
<em>Weather App</em></p>
<p>This app features a clean, minimalist design with stunning illustrations and a simple interface. It also has a nifty light and dark mode feature that adds more flair to it.  </p>
<p>What’s great about this project is you’ll get a feel of what it’s like to build a usable, responsive app from scratch. You’ll learn everything from installing Node.js and Angular CLI to testing your code with LightHouse.  </p>
<p>And although the creator of the tutorial obviously inserted his own design preference, you can add your own styling and be as creative as you want. You can play around with the CSS styling and animations and even use your own logo, icons, and other design materials.  </p>
<p>Do this right and you’ll have an impressive weather app on your portfolio.  </p>
<p>You can access the tutorial <a target="_blank" href="https://medium.com/@hamedbaatour/build-a-real-world-beautiful-web-app-with-angular-6-a-to-z-ultimate-guide-2018-part-i-e121dd1d55e">here</a>.  </p>
<p>While this tutorial is beginner-friendly, you still need a little Angular familiarity. If you want to learn Angular, the best place to start is on <a target="_blank" href="https://angular.io/start">Angular.io</a>.</p>
<h3 id="heading-design-and-code-your-own-portfolio-website">Design and code your own portfolio website.</h3>
<p>In a typical project, you’ll most likely be working alongside a web designer who calls the shots on how the website will look.  </p>
<p>Although design and development are arguably two different fields, getting a grasp on web design will not only add another skillset to your arsenal, but it will also equip you should you decide to go solo as a freelancer and work on projects from design to deployment.  </p>
<p>Designing and coding your own portfolio website will give you the freedom to showcase your artistic and technical side simultaneously.  </p>
<p>The first step is to think of your <strong>message or branding</strong>. What are your core services, who do you want to serve, and why should they choose you? (Read more about branding <a target="_blank" href="https://studywebdevelopment.com/branding-freelance-developer.html">here</a>.)  </p>
<p>Second is to create a <strong>mock design</strong> that will detail the layout, colors, and typography.   </p>
<p>Also, think of a theme. Is it minimalist or loud and funky? Is it monochrome or will it use bold colors? Then make a list of the pages you’ll need. This often includes a contact page, a few blog posts, an about me page, and a terms and conditions page.  </p>
<p>Third, <strong>code it</strong>! Use modern CSS to layout the site, add some animations, add some high-quality images, etc. The sky is the limit here – you can do whatever you want with your portfolio website because it’s yours – go for it!</p>
<h2 id="heading-where-can-i-practice-front-end-development">Where can I practice front-end development?</h2>
<p>Although the best way to practice front-end development is through building real apps ad websites yourself, it’s still great to have a go-to place to get tips, access tutorials, and get support when you get stuck or need an opinion on something.  </p>
<p>These are great places to get help as you’re practicing front-end development:</p>
<ol>
<li><a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp.org</a> – This is a website filled with free tutorials on web development theory, languages, and best practices. There’s also a great community here that can help out with your questions.</li>
<li><a target="_blank" href="https://click.linksynergy.com/deeplink?id=QqcN8lE0l0I&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fmodern-html-css-from-the-beginning%2F">Modern HTML &amp; CSS From the Beginning</a> – This is a Udemy course by Brad Traversy. It’s packed with useful info and can really teach you everything you need to get started with these languages.</li>
<li><a target="_blank" href="https://www.frontendmentor.io/">Frontendmentor.io</a> – You can find bite-sized free and premium “challenges” here that you can do in your spare time to develop your skillset. The difficulty of the challenges ranges from “junior” to “advanced”. Here are examples of the challenges you’ll find here:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/07/Screen-Shot-2020-07-03-at-12.14.42-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>Frontend Mentor Challenges</em></p>
<p>There are more resources that I’d love to share with you, but to keep this from being too long, you can check out <a target="_blank" href="https://studywebdevelopment.com/web-development-courses.html">this link</a> to see my full list of recommended courses.</p>
<p>Those are 5 fun front-end development projects you can try today. Again, these are meant as starting points. It’s ultimately up to you to customize it to add a little bit of your personal touch :)</p>
<p>Remember, it's all about practice. You NEED to build things to improve your skillset.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/study_web_dev/status/1275650860454948866"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Happy coding!  </p>
<p>Thanks for reading and cheers for now,  </p>
<p>Kyle  </p>
<p><a target="_blank" href="https://twitter.com/study_web_dev">Follow me on Twitter</a> for more tips.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How is Visual and UX Design Important as a Developer and What Can You Do to Level Up? ]]>
                </title>
                <description>
                    <![CDATA[ Design is a part of the product process that often gets pushed off. This can come at a cost that your customers or other developers have to pay. How is design important for those of us who aren't just pushing pixels in Photoshop or Figma and what can... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-is-design-important-as-a-developer-and-what-can-you-do-to-level-up/</link>
                <guid isPermaLink="false">66b8e32b9232d58aac300b13</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ design resources ]]>
                    </category>
                
                    <category>
                        <![CDATA[ design thinking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Lifelong Learning ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ UI Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ux design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ visual design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Colby Fayock ]]>
                </dc:creator>
                <pubDate>Thu, 28 May 2020 14:45:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/05/design.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Design is a part of the product process that often gets pushed off. This can come at a cost that your customers or other developers have to pay. How is design important for those of us who aren't just pushing pixels in Photoshop or Figma and what can we do to level up?</p>
<h2 id="heading-design-as-a-developer">Design as a developer</h2>
<p>Design is a term that can describe many parts of the process. Most often, it's probably thought of as the visual designers or UX designers who are actively working to make your product usable or beautiful.</p>
<p>A question that I commonly get asked or see online is where should one start to learn the basics of design?</p>
<p>This question makes me happy. It's an important part of the process that is constantly a secondary thought.  And when <a target="_blank" href="https://twitter.com/colbyfayock/status/1258456643274186753">I asked this on Twitter</a>, I received some thoughtful responses!</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/colbyfayock/status/1258456643274186753"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>We're living in an age where good UX is increasingly seen as important, but it's still nowhere near the top of the list for those who are learning their way through development. It's still an afterthought that's tossed over to the design team when you're at the 2nd half of your last sprint before launch.</p>
<p>So before I share with you some resources, I'm going to start by explaining why these things are important.</p>
<h2 id="heading-giving-something-for-your-visitors-to-use">Giving something for your visitors to use</h2>
<p>Starting from the top – you can have the best, most ingenious product that blows all competition away, but if no one knows how to use it, it realistically has no value.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/pied-piper-user-interface.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Fictional Pied Piper's app tanked because of a bad user experience</em></p>
<p>Our fictional friends at <a target="_blank" href="https://www.hbo.com/silicon-valley">Pied Piper</a> learned this the hard way when their product launch with a groundbreaking compression algorithm didn't go over too well because no one knew how to actually use it.</p>
<p>But this is a realistic scenario. We learned from <a target="_blank" href="https://craigslist.org/">Craigslist</a> that your website or app doesn't need to have a slick design, but it has to be usable.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/craigslist-2020-vs-2001.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Craigslist in 2001 vs 2020</em></p>
<p>For nearly 20 years, Craigslist really hasn't changed that much. A few tweaks to make things a little bit cleaner, but overall it's the same basic layout and experience.</p>
<p>Unfortunately, budget is a concern, and sometimes you can only stretch it so much which doesn't always include a designer. But try to at least get some outside perspective – it can even be a family member or a friend! You would be surprised how much insight you can gather by trying to get your family over the holiday to try to use your app.</p>
<p>The goal is ultimately to get your product in front of someone that hasn't been heads down in it for the past year to get a pair of fresh eyes and a new perspective.</p>
<h2 id="heading-becoming-more-productive">Becoming more productive</h2>
<p>Putting on my process hat – another overlooked aspect of prioritizing design time is the amount of overall time you can possibly save.</p>
<p>Designers don't always get it right the first time, let alone leaving developers to create the design. That's not even including the possibility that your customer or product owner doesn't like the direction you took.</p>
<p>Why spend a couple sprints building out a solution only to start from scratch when you have to throw it all away? Not only have you wasted your customer's time, you've wasted your whole team's time.</p>
<p>Get design feedback early. Work with the design resources you have to iterate and work in feedback as you go. It's important to solve the UI problems before you develop the solutions.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/design-prototyping.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Design sketches from <a target="_blank" href="https://unsplash.com/photos/MKDEMlPRoYU">Unsplash.com</a></em></p>
<p>And this can generally help your team flesh out ideas. Visually seeing an idea, even as a rough sketch on a piece of paper or a disposable prototype, can completely change the way you look at the solution.</p>
<p>All of this early feedback and brainstorming will help you achieve the end-goal of a better product and user experience.</p>
<h2 id="heading-developers-are-users">Developers are users</h2>
<p>Most of people reading this post probably have written code in one form or another. But have you ever thought about how your code impacts other developers?</p>
<p>There are many layers to how your code can provide a better experience for another developer. The basic being – is the documentation that you created readable and easy to understand?</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/strip-api-documentation.jpg" alt="Image" width="600" height="400" loading="lazy">
_<a target="_blank" href="https://stripe.com/docs/api/balance/balance_retrieve">Stripe's API documentation</a>_</p>
<p>While it's certainly important for your fellow teammates, they should typically be able to message you on Slack or hop on a call when they run into trouble. But how about those developers that only have your documentation?</p>
<p>Beautiful documentation isn't that which has a beautiful design, it's one that thoroughly walks through the code that you've created so that others can understand what it does and how they can use it. Just as a visitor to your app needs to know how to use the UI, a developer working with your services needs to know how to use the API.</p>
<h2 id="heading-a-little-extra-delight">A little extra delight</h2>
<p>But of course everyone wants something nice to look at. Not only can design treats make people happy and smile, it can also help avoid stress and tension.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/josh-w-comeau-website-heart-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Josh W. Comeau includes cute, happy graphics throughout his site</em></p>
<p>Having a page that's ugly or overly thick with data can be unsettling. Not only can it hurt the usability, but the clutter and color choices can make people feel uneasy, stressed, and full of anxiety.</p>
<p>While your team might not have the resources for full-time designers, taking a little time to learn the basics of design can help set you on your <a target="_blank" href="https://www.colbyfayock.com/2020/02/how-to-become-a-full-stack-web-developer-in-2020/">journey of becoming a well rounded developer</a>.</p>
<h2 id="heading-resources-for-learning-design-basics">Resources for learning design basics</h2>
<p>Like it or not – we're all "designers" in a way. We're all building tools and systems that ultimately will be used by another human being. We should do what we can to make our creations friendlier to use for everyone who comes next.</p>
<p>Since you're now inevitably inspired to spend some time and learn about design, there are luckily a lot of resources available for you to get started.</p>
<h3 id="heading-videos">Videos</h3>
<ul>
<li><a target="_blank" href="https://www.netflix.com/title/80057883">Abstract: The Art of Design</a> (Netflix)</li>
<li><a target="_blank" href="https://www.amazon.com/gp/video/detail/amzn1.dv.gti.fab0b754-6362-2da1-96a1-e3e538137141?tag=gmcs-fcc-20">Objectified</a> (Amazon)</li>
</ul>
<h3 id="heading-books">Books</h3>
<ul>
<li><a target="_blank" href="https://www.amazon.com/Design-Hackers-Reverse-Engineering-Beauty-ebook/dp/B005J578EW/?tag=gmcs-fcc-20">Design for Hackers</a> (Amazon)</li>
<li><a target="_blank" href="https://www.amazon.com/Non-Designers-Design-Book-Non-Designers-ebook/dp/B00PWDFWEE/?tag=gmcs-fcc-20">The Non-Designer's Design Book</a>  (Amazon)</li>
</ul>
<h3 id="heading-email-course">Email Course</h3>
<ul>
<li><a target="_blank" href="https://designforhackers.com/">Design for Hackers</a></li>
<li><a target="_blank" href="https://www.designacademy.io/free-course/">Design Academy</a></li>
<li><a target="_blank" href="https://hackdesign.org/">Hack Design</a></li>
</ul>
<h3 id="heading-misc">Misc</h3>
<ul>
<li><a target="_blank" href="https://twitter.com/i/events/994601867987619840">Design Tips from @steveschoger</a></li>
</ul>
<h2 id="heading-whats-your-take-on-design-as-a-developer">What's your take on design as a developer?</h2>
<p>Have any of these worked particularly well for you? Am I missing something that made design click for you? Please <a target="_blank" href="https://twitter.com/colbyfayock">share with me on Twitter</a>!</p>
<h2 id="heading-join-the-conversation">Join the conversation!</h2>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/colbyfayock/status/1265990400591966208"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<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 Use Deliberate Practice to Learn Programming More Efficiently ]]>
                </title>
                <description>
                    <![CDATA[ By Victor Cassone I truly believe anyone can learn to code. At the end of the day programming is a skill, and acquiring a skill is open to anyone. Sometimes getting good at something appears to be a magical process. But in reality, there are clear st... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-deliberate-practice-to-learn-programming-fast/</link>
                <guid isPermaLink="false">66d4617355db48792eed3fbb</guid>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 19 May 2020 15:32:24 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/05/proxy-image--3-.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Victor Cassone</p>
<p>I truly believe anyone can learn to code.</p>
<p>At the end of the day programming is a skill, and acquiring a skill is open to anyone.</p>
<p>Sometimes getting good at something appears to be a magical process. But in reality, there are clear steps to follow.</p>
<p>Anders Ericsson, a professor at Florida State University, is a leading researcher of expert performers. He studies the process of acquiring a skill and what it takes to become an expert.</p>
<p>Through his years of research, he concludes that what separates top performers from everyone else is the amount of time spent in something he calls Deliberate Practice.</p>
<p>He believes that “The right sort of practice over a sufficient period of time leads to improvement. Nothing else.”</p>
<p>I believe the Deliberate Practice framework developed by Dr. Ericsson can be used to help people learning to program.</p>
<p>Implementing Deliberate Practice has helped me in my personal life and I believe it can help you learn programming more efficiently.</p>
<p>Below I’ll explain each component of Deliberate Practice and how you can incorporate Deliberate Practice in your coding journey.</p>
<h2 id="heading-deconstruction">Deconstruction</h2>
<p>The first step of Deliberate Practice is to deconstruct and analyze your desired skill.</p>
<p>Deconstruction requires you to take a bird's eye view of your overall goal and break it down into small manageable components. You're trying to find the most efficient path from where you are to where you want to go.</p>
<p>There are two ways you can go about deconstructing a skill. You can either break down the components yourself or learn from someone who has already acquired the skill.</p>
<p>For someone learning to code, I'd recommend leveraging the knowledge of other developers instead of reinventing the wheel.</p>
<p>Most of the material out there (like freeCodeCamp) was created by people who have put effort into deconstructing the learning process and have iterated on the material.</p>
<p>You can leverage their expertise and effort when you're looking for your own path forward.</p>
<p>Flip through a few different coding websites or read the Table of Contents of various coding books (you can preview books on Amazon for free). Also, read a few blogs or ask a developer friend for their opinion.</p>
<p>After a while, you'll get a sense of the best path forward.</p>
<p>Also, make sure your interests have a vote. It's hard to learn quickly if you're not interested in the material.</p>
<p>The most efficient route to learning to code is at the intersection of what the experts recommend and what you're interested in.</p>
<p>Don't obsess about perfectly deconstructing the path to becoming a programmer. You'll never find the perfectly efficient route.</p>
<p>It's better to do a little research, start somewhere, and readjust as you go.</p>
<h2 id="heading-stretch-goals">Stretch goals</h2>
<p>The next key component of Deliberate Practice is creating stretch goals.</p>
<p>A stretch goal is a small task that pushes you outside your current abilities and moves you along your deconstructed learning path.</p>
<p>Creating stretch goals isn't so much about having a huge list of tasks you need to complete. The more important part is setting up your learning in a way that pushes the boundaries of your programming skills.</p>
<p>We humans naturally favor the things that are easy and automatic.</p>
<p>However, if we push ourselves outside our comfort zones for long enough, our body will try to normalize the new behavior and make it a habit.</p>
<p>The objective of a stretch goal is to consciously put yourself outside your comfort zone and wait for your body to adapt.</p>
<p>The trick to creating a stretch goal is making the task difficult but still achievable.</p>
<p>If the goal is too difficult, then you'll get lost and won't know how to move forward. If the goal is too easy then you won't develop as quickly as you could (or not at all).</p>
<p>It will take some time to find the sweet spot.</p>
<p>At the start, a stretch goal could simply be a lesson on freeCodeCamp. As time goes on, a stretch goal could be implementing a button on your portfolio website without using Google.</p>
<p>The key thing to remember is that if a task feels easy you're probably not pushing yourself enough.</p>
<h2 id="heading-focus-and-attention">Focus and attention</h2>
<p>Focus is a foundational component of memory and skill acquisition. </p>
<p>When you try to encode new information into your brain, the strength of the encoding is directly linked to the intensity of your focus.</p>
<p>When your focus is weak, new information will be less sticky which will result in slower learning and more time studying.</p>
<p>A common trait among people who learn programming quickly is they have the ability to intensely focus on whatever task they're performing for long periods of time.</p>
<p>Think about how any world-class performer practices. They're probably not checking their phone every 5 minutes. They're most likely mentally locked into whatever task they're performing.</p>
<p>Having good focus means eliminating all unwanted distractions.</p>
<p>There are two types of distractions, internal and external. Decreasing external distractions means shutting off your phone, going to a quiet room, and/or putting a site blocker on your computer.</p>
<p>Taming internal distractions means not letting internal thoughts consume your time. This can be done by practicing meditation or having a notebook to write down whatever is on your mind.</p>
<p>The key is to build a distraction-free environment and have a plan when a distraction inevitably pops up. You're probably already well aware of all the things that distract you.</p>
<p>(If you want more insights into where your time goes, I'd recommend using something like <a target="_blank" href="https://www.rescuetime.com/">RescueTime</a>.)</p>
<p>Improving your focus is a process. In the beginning, try to be fully focused for a few minutes. As time goes on, slowly dial up the duration of your focused coding.</p>
<p>When deliberately practicing your programming skill, it’s better to be 100% focused for a shorter amount of time than 70% focused for a longer amount of time.</p>
<p>It's might feel impossible to maintain focus since we live in a world that's constantly trying to grab our attention. Nonetheless, you must find a way.</p>
<h2 id="heading-perform">Perform</h2>
<p>The only way to get better at something is by actually doing it.</p>
<p>People often confuse acquiring knowledge with acquiring a skill. Knowledge is useful but it isn’t a substitute for actually attempting something.</p>
<p>Knowledge, in many ways, gives you a false sense of progress. You can watch 100 coding tutorials and feel like you're capable of coding your own website. However, once you go out and try to build one for yourself, you could end up falling on your face.</p>
<p>It's like the difference between watching baseball and playing baseball. Watching helps you play but you can't become a good baseball player just by watching your favorite professional baseball team.</p>
<p>Acquiring skills requires you to go out into the world and test your knowledge against reality.</p>
<p>This isn't always easy. Practicing something new will attack your ego and make you feel incompetent. You'll want to quit or go back to something that feels more comfortable.</p>
<p>Unfortunately, it's impossible to learn something new without looking incompetent (at least at first). You might as well get used to it.</p>
<p>As we talked about above, learning doesn't happen inside your comfort zone. Don't be surprised if you start to feel uncomfortable as you code. Discomfort is usually a sign you're headed in the right direction.</p>
<p>Make sure you're constantly testing out your knowledge against the real world. Don't settle for reading tutorials or watching videos. Put your fingers to the keyboard and write some code that you can run.</p>
<h2 id="heading-feedback">Feedback</h2>
<p>It's impossible to get better at anything without feedback.</p>
<p>Imagine trying to improve your golf game but you are unable to see where the ball lands. There'd be no way to know if you're getting better.</p>
<p>Feedback is the way reality communicates with you. It allows you to see the gap between what you think you know and what you actually know.</p>
<p>There are two ways to get feedback. You can get it through self-study or someone else can provide it.</p>
<p>Self-study requires you to compare what you attempted with the correct solution someone else posted.</p>
<p>This naturally happens when you go to websites like Stack Overflow or GitHub to find an answer to a problem. The feedback happens when you discover the gap between your answer and the correct answer.</p>
<p>When you go to websites like Stack Overflow, make sure you spend time understanding why a chunk of code works and how it’s different. Copying and pasting without understanding the difference will rob you of important feedback that will help improve and update your skills.</p>
<p>You can also read through someone's code on Github and compare it to your own code (or compare it to your current understanding of how to code).</p>
<p>Ben Franklin used a similar strategy when he was improving his writing skills.</p>
<p>He would read an article from his favorite newspaper a couple of times. Then he would deconstruct the techniques the author used. He would put the article away and try to replicate it in a similar fashion. After he wrote his version, he would compare the results and analyze his execution.</p>
<p>The other way to get feedback is by letting a more experienced developer see and comment on your code.</p>
<p>Having a fresh pair of eyes can help you solve individual problems and also can help you get back on track if you’re heading in the wrong direction.</p>
<p>It might be scary having someone else look at your code (or even having a conversation with an experienced developer). None of us want to look dumb. If you can get over your fear, getting feedback from others can have a big impact.</p>
<p>One of my biggest regrets when I was teaching myself to code was that I didn't get enough feedback. My code was a mess and I was wasting a lot of time on unimportant things.</p>
<p>Getting feedback from a more experienced developer would have saved me a lot of time and struggle. They would’ve instantly seen what I was doing wrong and put me on a straighter path.</p>
<p>Think of feedback from an experienced developer as a compass. They won’t physically get you to your destination, but they will make sure you are going in the right direction.</p>
<h2 id="heading-adjust">Adjust</h2>
<p>Feedback is worthless if you don’t actually use it.</p>
<p>Learning to code is like moving through a dark room. You start walking, bump into some furniture, adjust your route, and try again.</p>
<p>Based on the feedback you receive, it’s important to take some time to think about the gap between what you wanted to do and what actually happened. Based on that gap, make adjustments as you move forward.</p>
<p>If you don't make adjustments, you won't improve.</p>
<p>You'll need to adjust specific lines to code to make your program work. You'll also sometimes need to adjust your approach at a macro level.</p>
<p>Our initial instinct when we aren’t making progress is to try harder. This is only effective to a point.</p>
<p>If you are not getting the results you want, try attacking things from different angles. It might take some experimentation to get it right.</p>
<h2 id="heading-repeat">Repeat</h2>
<p>Performing a task once isn’t enough.</p>
<p>Our minds don't store information like computers. We tend to forget new information just as quickly as we learn it.</p>
<p>Learning something new requires you to repeat a task multiple times before it sticks.</p>
<p>Repetition is a signal to our brains that a new piece of information or a new behavior is valuable and shouldn't be forgotten.</p>
<p>The repetition stage of acquiring skill is not easy. It’s not supposed to be. You are consciously trying to reprogram your brain and your body will naturally want to do what's familiar.</p>
<p>You will need to consistently apply effort towards learning to become proficient.</p>
<p>The only sure-fire way to fail at learning to code is quitting. If you don't quit and maintain consistency, you will be able to repeat the important coding material and everything will eventually start making sense.</p>
<p>No matter how tough it feels, make sure you develop a consistent study habit. It is nearly impossible to learn coding without one.</p>
<p>For a deep dive into how you can be more consistent, <a target="_blank" href="https://www.freecodecamp.org/news/how-to-be-more-consistent-when-learning-to-code/">I wrote an article</a> about specifics techniques you can use.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The process of acquiring skill is simple, but it’s not easy. You are your biggest enemy in the process.</p>
<p>Old habits are hard to break. Each new skill is its own battle to be won.</p>
<p>Stay focused, make sure you're pushing yourself, adjust based on the feedback, rinse, and repeat.</p>
<p>If you follow the Deliberate Practice framework, I believe you’ll surprise yourself with the speed that you pick up programming.</p>
<p>Best of luck.</p>
<p><strong>If you want to hear about other insights I've learned along the way, <a target="_blank" href="https://twitter.com/zero2programmer">follow my account Zero to Programmer on Twitter</a>. The goal of the account is to help you learn programming more efficiently.</strong></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Building Alexa Skills in Swift ]]>
                </title>
                <description>
                    <![CDATA[ By Claus Höfele How to use Swift to develop custom skills for the Amazon Echo The Alexa Voice Service is Amazon’s cloud service that understands natural language and allows users to interact with devices by using their voice. You usually associate Al... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/building-alexa-skills-in-swift-3d596aa0ee95/</link>
                <guid isPermaLink="false">66c346c1c577a44239cd7b3c</guid>
                
                    <category>
                        <![CDATA[ Alexa ]]>
                    </category>
                
                    <category>
                        <![CDATA[ AWS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ aws lambda ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Swift ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 04 Dec 2016 17:00:19 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*1uxPyAsM7gCUf0YsWGYYgw.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Claus Höfele</p>
<h4 id="heading-how-to-use-swift-to-develop-custom-skills-for-the-amazon-echo">How to use Swift to develop custom skills for the Amazon Echo</h4>
<p>The Alexa Voice Service is Amazon’s cloud service that understands natural language and allows users to interact with devices by using their voice. You usually associate Alexa with Amazon’s voice-enabled speakers, such as the <a target="_blank" href="https://www.amazon.com/Amazon-Echo-Bluetooth-Speaker-with-WiFi-Alexa/dp/B00X4WHP5E">Echo</a>, but Alexa can potentially run on any connected device with a microphone and a speaker.</p>
<p>Unlike Apple’s Siri, whose extensions are <a target="_blank" href="https://developer.apple.com/library/prerelease/content/documentation/Intents/Conceptual/SiriIntegrationGuide/">limited to specific domains</a>, Alexa’s API enables developers to implement a broad range of custom voice services called “skills.” Using Swift allows iOS developers (like me) to expand their existing skill set to include server-side programming and take part in the trend towards voice user interfaces.</p>
<h3 id="heading-ingredients">Ingredients</h3>
<p>Simply put, Alexa sends your skill a JSON message with the user’s intent and your code answers with a JSON message that determines what Alexa will answer to the user.</p>
<p>Since I prefer to implement this functionality in Swift, I use <a target="_blank" href="https://github.com/choefele/AlexaSkillsKit">AlexaSkillsKit</a>, a Swift library that I wrote. It takes care of parsing JSON requests from Amazon, generating the proper responses and providing convenience methods to handle Alexa features.</p>
<p>The code for your custom skill can run as either a stand-alone web service or an AWS Lambda function. Using Lambda, Amazon’s serverless computing platform, Amazon will take care of scaling and running your Swift code — this is the reason I’ll use this deployment type for the finished skill. As you’ll see, however, the web service option is really useful while developing your skill.</p>
<p>Note that out of the box, Lambda only supports code written in JavaScript (Node.js), Python, and Java. But it’s easy to extend this to executables written in any programming language you want. My article <a target="_blank" href="https://medium.com/@claushoefele/serverless-swift-2e8dce589b68#.ts7aama46">Serverless Swift</a> provides a step-by-step guide on how to do this.</p>
<p>To summarize, you’ll need the following for your Alexa skill:</p>
<ul>
<li>An implementation of your skill’s functionality in Swift using <a target="_blank" href="https://github.com/choefele/AlexaSkillsKit">AlexaSkillsKit</a></li>
<li>A Lambda function set up with your Swift code using the <a target="_blank" href="https://aws.amazon.com/console/">AWS Console</a></li>
<li>An Alexa Skill configured in the <a target="_blank" href="https://developer.amazon.com/edw/home.html">Alexa Console</a> that triggers your Lambda function</li>
</ul>
<p>Note that the Alexa Console and the AWS Console are two separate services that you need to sign up for.</p>
<h3 id="heading-the-sample-project">The Sample Project</h3>
<p>To simplify your first steps, I created a repo with a sample app. <a target="_blank" href="https://github.com/choefele/swift-lambda-app">swift-lambda-app</a> contains code and scripts to quickly get you started with writing a custom Alexa skill in Swift and deploying it to AWS Lambda.</p>
<p>The sample app uses a standard Swift Package Manager directory layout and <a target="_blank" href="https://github.com/choefele/swift-lambda-app/blob/master/Package.swift">package file</a> thus <em>swift build</em>, <em>swift test</em> and <em>swift package generate-xcodeproj</em> work as expected. Check out the <a target="_blank" href="https://github.com/apple/swift-package-manager/blob/master/Documentation/Usage.md">SPM documentation</a> for more info.</p>
<p>There are three targets:</p>
<ul>
<li><strong>AlexaSkill</strong>: this is a library with the code that implements the custom Alexa skill. It’s a separate library so it can be used by the other two targets. Also, libraries have <code>ENABLE_TESTABILITY</code> enabled by default which allows you to access internal methods and properties in your unit tests.</li>
<li><strong>Lambda</strong>: The command line executable for deployment to Lambda. This program uses <em>stdin</em> and <em>stdout</em> for processing data.</li>
<li><strong>Server</strong> (macOS only): To simplify implementing a custom Alexa Skill, the server provides an HTTP interface to the AlexaSkill target. This HTTP server can be exposed publicly via <a target="_blank" href="https://ngrok.com/">ngrok</a> and configured in the Alexa console, which enables you to develop and debug an Alexa skill with code running on your development computer. This target is macOS only because it wasn’t possible to cleanly separate target dependencies and I didn’t want to link libraries intended for server development to the Lambda executable used for deployment.</li>
</ul>
<p>For development, I recommend a <a target="_blank" href="https://en.wikipedia.org/wiki/Test-driven_development">Test-driven Development</a> approach against the library target, because this results in the quickest turnaround for code changes. Uploading to Lambda to quickly verify changes isn’t really an option because of slow uploading times. Exposing your functionality via HTTPS as described below, however, enables you to test and debug your functionality in a slightly different way.</p>
<h3 id="heading-implementing-a-custom-alexa-skill">Implementing a Custom Alexa Skill</h3>
<p>Start with implementing the <em>RequestHandler</em> protocol. AlexaSkillsKit parses requests from Alexa and passes the data on to methods required by this protocol.</p>
<pre><code>public protocol RequestHandler {        func handleLaunch(request: LaunchRequest, <span class="hljs-attr">session</span>: Session, <span class="hljs-attr">next</span>: @escaping (StandardResult) -&gt; ())
</code></pre><pre><code>    func handleIntent(request: IntentRequest, <span class="hljs-attr">session</span>: Session, <span class="hljs-attr">next</span>: @escaping (StandardResult) -&gt; ())
</code></pre><pre><code>    func handleSessionEnded(request: SessionEndedRequest, <span class="hljs-attr">session</span>: Session, <span class="hljs-attr">next</span>: @escaping (VoidResult) -&gt; ())}
</code></pre><p>For example, a <a target="_blank" href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/custom-standard-request-types-reference#launchrequest">launch request</a> would result in AlexaSkillsKit calling the <em>handleLaunch()</em> method.</p>
<pre><code><span class="hljs-keyword">import</span> Foundationimport AlexaSkillsKit
</code></pre><pre><code>public <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">AlexaSkillHandler</span> : <span class="hljs-title">RequestHandler</span> </span>{    public init() {}    public func handleLaunch(request: LaunchRequest, <span class="hljs-attr">session</span>: Session, <span class="hljs-attr">next</span>: @escaping (StandardResult) -&gt; ()) {        <span class="hljs-keyword">let</span> standardResponse = generateResponse(message: <span class="hljs-string">"Hello Swift"</span>)        next(.success(standardResponse: standardResponse, <span class="hljs-attr">sessionAttributes</span>: session.attributes))    }}
</code></pre><p>In the request handler, your custom skill can implement any logic your skill requires. To enable asynchronous code (for example calling another HTTP service), the result is passed on via the <em>next</em> callback. <em>next</em> takes a enum that’s either <em>.success</em> and contains an Alexa response or <em>.failure</em> in case a problem occurred.</p>
<p>To keep things simple, we’ll pass back a message that Alexa will speak out loud to the user:</p>
<pre><code>func generateResponse(message: <span class="hljs-built_in">String</span>) -&gt; StandardResponse {    <span class="hljs-keyword">let</span> outputSpeech = OutputSpeech.plain(text: message)    <span class="hljs-keyword">return</span> StandardResponse(outputSpeech: outputSpeech)}
</code></pre><h3 id="heading-debugging-your-code-with-local-http-server">Debugging Your Code with Local HTTP Server</h3>
<p>Invocation of a <em>RequestHandler</em> as part of a Swift server is done via Amazon’s HTTPS API where the Alexa service calls your server with a POST request. In the following code, <a target="_blank" href="https://github.com/IBM-Swift/Kitura">Kitura</a> is used as a web framework, but any other web framework would work equally well:</p>
<pre><code><span class="hljs-keyword">import</span> Foundationimport AlexaSkillsKitimport AlexaSkillimport Kiturarouter.all(<span class="hljs-string">"/"</span>) { request, response, next <span class="hljs-keyword">in</span>    <span class="hljs-keyword">var</span> data = Data()    <span class="hljs-keyword">let</span> _ = <span class="hljs-keyword">try</span>? request.read(into: &amp;data)    <span class="hljs-keyword">let</span> requestDispatcher = RequestDispatcher(requestHandler: AlexaSkillHandler())    requestDispatcher.dispatch(data: data) { result <span class="hljs-keyword">in</span>        <span class="hljs-keyword">switch</span> result {        <span class="hljs-keyword">case</span> .success(<span class="hljs-keyword">let</span> data):            response.send(data: data).status(.OK)        <span class="hljs-keyword">case</span> .failure(<span class="hljs-keyword">let</span> error):            response.send(error.message).status(.badRequest)        }        next()    }}Kitura.addHTTPServer(onPort: <span class="hljs-number">8090</span>, <span class="hljs-attr">with</span>: router)Kitura.run()
</code></pre><p>To run a local HTTPS server:</p>
<ul>
<li>Make sure the sample builds by running <em>swift build</em></li>
<li>Generate an Xcode project with <em>swift package generate-xcodeproj</em></li>
<li>Open the generated Xcode project, select the Server scheme and run the product (CMD-R). This will start a server at port 8090</li>
<li>Install ngrok via <em>brew cask install ngrok</em>. This tool allows you to expose a local HTTP server to the internet</li>
<li>Run <em>ngrok http 8090</em> and copy the HTTPS URL generated by ngrok (it looks similar to https://c4ba192c.ngrok.io)</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/oTg3tdnBl-Ko4ksBBstFqLLFq29Ek2GcB-6g" alt="Image" width="800" height="412" loading="lazy"></p>
<p>ngrok exposes your local server to the public internet thus allowing the Alexa Voice Service to call into your custom skill running in Xcode.</p>
<h3 id="heading-configuring-the-alexa-skill">Configuring the Alexa Skill</h3>
<p>To hook up your custom skill to Alexa:</p>
<ul>
<li>Go to the <a target="_blank" href="https://developer.amazon.com/edw/home.html#/skills/list">Alexa console</a> and create a new skill</li>
<li>Skill type: Custom Interaction Model</li>
<li>Intent: <code>{"intents": [{"intent": "TestIntent"}]}</code></li>
<li>Sample utterances: “TestIntent test swift”</li>
<li>SSL Certificate: Select “My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority”</li>
<li>Service endpoint type: <em>HTTPS (use the URL from ngrok)</em></li>
</ul>
<p>Now you can test the skill in the Alexa Console’s Service Simulator using the utterance “test swift”. This will call your local server allowing you to modify and debug your code while interacting with the Alexa service.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/eQLxWIDrhg7aBhMOERXzLRPohltuzaqNim54" alt="Image" width="800" height="497" loading="lazy"></p>
<h3 id="heading-running-tests-for-your-code">Running Tests for Your Code</h3>
<p>Before uploading to Lambda, it’s worthwhile to run your unit tests in a Linux environment and run integration tests that simulate the execution environment. The sample provides <a target="_blank" href="https://github.com/choefele/swift-lambda-app/blob/master/run-unit-tests.sh"><em>run-unit-tests.sh</em></a> to do the former and <a target="_blank" href="https://github.com/choefele/swift-lambda-app/blob/master/run-integration-tests.sh"><em>run-integration-tests.sh</em></a> to do the latter.</p>
<p><em>run-unit-tests.sh</em> builds and tests the Lambda target inside a Swift Docker container based on Ubuntu because there's currently no Swift compiler for Amazon Linux (based on RHEL). Executables built on different Linux distributions are compatible with each other if you provide all dependencies necessary to run the program. For this reason, the script captures all shared libraries required to run the executable using <em>ldd</em>.</p>
<p>To prove that the resulting package works, <em>run-integration-tests.sh</em> runs a release build of the Swift code inside a Docker container that comes close to Lambda’s execution environment (unfortunately, <a target="_blank" href="https://hub.docker.com/_/amazonlinux/">Amazon only provides a few Docker images</a> that don't necessarily match what <a target="_blank" href="http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html">Lambda is using</a>).</p>
<p>The integration with Lambda is done via a small <a target="_blank" href="https://github.com/choefele/swift-lambda-app/blob/master/Shim/index.js">Node.js script</a> that uses the _child<em>process</em> module to run the Swift executable. The script follows Amazon's recommendations to <a target="_blank" href="https://aws.amazon.com/blogs/compute/running-executables-in-aws-lambda/">run arbitrary executables in AWS Lambda</a>.</p>
<p>After <a target="_blank" href="https://github.com/choefele/swift-lambda-app/blob/master/.travis.yml">configuring Travis</a>, you can run the same integration script also for every commit.</p>
<h3 id="heading-deploying-your-code-to-lambda">Deploying Your Code to Lambda</h3>
<p>For Lambda, you need to create an executable that takes input from <em>stdin</em> and writes output to <em>stdout</em>. This can be done with the following code:</p>
<pre><code><span class="hljs-keyword">import</span> Foundationimport AlexaSkillsKitimport AlexaSkilldo {    <span class="hljs-keyword">let</span> data = FileHandle.standardInput.readDataToEndOfFile()    <span class="hljs-keyword">let</span> requestDispatcher = RequestDispatcher(requestHandler: AlexaSkillHandler())    <span class="hljs-keyword">let</span> responseData = <span class="hljs-keyword">try</span> requestDispatcher.dispatch(data: data)    FileHandle.standardOutput.write(responseData)} <span class="hljs-keyword">catch</span> <span class="hljs-keyword">let</span> error <span class="hljs-keyword">as</span> MessageError {    <span class="hljs-keyword">let</span> data = error.message.data(using: .utf8) ?? Data()    FileHandle.standardOutput.write(data)}
</code></pre><p>Note that this code uses the same <em>RequestHandler</em> that was used for the HTTP server thus minimizing the differences to the development environment.</p>
<p>To deploy your code to Lambda:</p>
<ul>
<li>Run <em>run-integration-tests.sh</em> to produce a zip file at .build/lambda/lambda.zip with all required files to upload to Lambda</li>
<li>Create a new Lambda function in the <a target="_blank" href="https://console.aws.amazon.com/lambda/home">AWS Console</a> in the US East/N. Virginia region (for Europe use EU/Ireland)</li>
<li>Use an Alexa Skills Kit trigger</li>
<li>Runtime: NodeJS 4.3</li>
<li>Code entry type: ZIP file (upload the lambda.zip file from the previous step)</li>
<li>Handler: index.handler</li>
<li>Role: Create from template or use existing role</li>
</ul>
<p>Once you uploaded the Lambda function, you can use the test actions in the AWS Console, for example by using a Start Session action.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/HB448STSmeJW0tYbqsWJToGOV2gJjRQsWkcV" alt="Image" width="800" height="554" loading="lazy"></p>
<h3 id="heading-configuring-the-alexa-skill-for-lambda">Configuring the Alexa Skill for Lambda</h3>
<p>After creating the Lambda function, you can now create an Alexa skill. If you have previously created an Alexa skill for the local HTTP server — the only difference is the service endpoint:</p>
<ul>
<li>Go to the <a target="_blank" href="https://developer.amazon.com/edw/home.html#/skills/list">Alexa console</a> and create a new skill</li>
<li>Skill type: Custom Interaction Model</li>
<li>Intent: <code>{"intents": [{"intent": "TestIntent"}]}</code></li>
<li>Sample utterances: “TestIntent test swift”</li>
<li>Service endpoint type: <em>AWS Lambda ARN</em> (use the ARN for the Lambda function from the AWS Console)</li>
</ul>
<p>Now you can test the skill in the Alexa Console using the utterance “test swift”. More details on configuring Alexa skills can be found on <a target="_blank" href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/overviews/steps-to-build-a-custom-skill">Amazon’s developer portal</a>.</p>
<h3 id="heading-wrapping-up">Wrapping Up</h3>
<p>Check out the <a target="_blank" href="https://github.com/choefele/swift-lambda-app">swift-lambda-app</a> repo on GitHub for the code and scripts to develop and deploy a simple Alex skill in Swift. In future articles, I’ll provide more details on how to write useful skills. Meanwhile, you can browse <a target="_blank" href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference">Amazon’s documentation</a> or contact me on <a target="_blank" href="https://twitter.com/claushoefele">Twitter</a> if you have any question.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
