<?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 - 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 - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 27 Jul 2026 10:32:06 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/skills/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Practical Skills for Open Source Maintainers – How to Effectively Maintain OSS ]]>
                </title>
                <description>
                    <![CDATA[ Open source software is used by organizations large and small around the world. And it's become very popular in the tech industry. Many people want to be involved in this open side of tech, and luckily there are many different ways to contribute. Sti... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/practical-skills-for-open-source-maintainers/</link>
                <guid isPermaLink="false">66d4608d47a8245f78752aa1</guid>
                
                    <category>
                        <![CDATA[ Collaboration ]]>
                    </category>
                
                    <category>
                        <![CDATA[ community ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Njong Emy ]]>
                </dc:creator>
                <pubDate>Mon, 14 Nov 2022 14:51:31 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/11/Purple-Minimal-We-Are-Hiring-Twitter-Post--9-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Open source software is used by organizations large and small around the world. And it's become very popular in the tech industry.</p>
<p>Many people want to be involved in this open side of tech, and luckily there are many different ways to contribute.</p>
<p>Still, open source can be scary at first sight. My first official contribution was during Hacktoberfest 2021, and even after that, it took me while to really feel welcome.</p>
<p>The open source community helped a ton, and it's the route I would advise any new techie to take – get involved with the community around a project you care about.</p>
<p>In addition to being a contributor – making updates to open source code bases, updating documentation, and so on – you can also eventually become a project maintainer. Maintainers are responsible for the thrill you experience when your pull requests get merged.</p>
<p>As daunting as it is to become a first time contributor, it is also quite scary becoming a first time maintainer. So in this article, I'll discuss some of the soft skills project maintainers should cultivate to be successful.</p>
<h2 id="heading-a-little-background">A Little Background</h2>
<p>After open sourcing a project very close to my heart, I was lucky enough to gain some much needed experience. I also held a Twitter space with some amazing folks, and they had much to share as well. Hence, this article.</p>
<p>I won't say I am an expert, but to successfully scale an open source project, no matter how big or small, there are certain skills you need to have. And some of these I didn't pick up until after I had been a maintainer for a while.</p>
<h2 id="heading-skills-you-need-to-maintain-an-open-source-project">Skills You Need to Maintain an Open Source Project</h2>
<h3 id="heading-develop-good-time-management-skills">Develop Good Time Management Skills</h3>
<p>On day one of releasing the project, my email was flooded with GitHub notifications.</p>
<p>I was happy people where checking the project out, but it was too much for me to handle. I was putting off work to attend to issues, assigning, labeling, merging pull requests, fixing conflicts... It quickly became too much to manage. I needed to allocate time and set boundaries.</p>
<p>If you are running a big project, notifications are probably nothing new. If you're running the project alone (like I was at that point), it is way worse.</p>
<p>Putting aside specific time to attend to GitHub tasks was the best way out. It could be in the morning before work, or after work, or only on weekends, depending on what works for you and the project.</p>
<h3 id="heading-be-patient">Be Patient</h3>
<p>I hear people advise contributors that they shouldn't spam maintainers if those maintainers can't attend to their issues/pull requests in time. This level of understanding should go both ways.</p>
<p>Contributors also have lives. If a contributor claims an issue, it is important to give them time to actually submit a pull request. Open source is fun (we've agreed on that already, but just for emphasis), but some people can only contribute in their spare time.</p>
<p>If a claimed issue is taking too long to address, a subtle reminder is fine. Constantly reminding a contributor that they need to submit a pull request could be off-putting, and it isn't a good look for you or your project.</p>
<p>On some rather large projects, however, a time frame is given to contributors who claim issues. I've seen cases where a contributor has about seven days to raise a pull request. While this is understandable because of the fast paced nature of these projects, I personally feel that it's too much pressure, especially for new contributors.</p>
<h3 id="heading-be-empathetic">Be Empathetic</h3>
<p>For me, this is the most important skill. I can remember my first open source contribution. The joy I felt when my pull request got merged and the immense support from the community were wonderful.</p>
<p>Think of this when you merge pull requests. It could be the contributor's first time too. I try to close off pull requests with a message other than just 'LGTM'. It can be as simple as throwing in a bomb emoji, and thanking them.</p>
<p>People come back to a place where they feel welcome.</p>
<h3 id="heading-be-firm">Be Firm</h3>
<p>This can be hard, but it's also important. You won't merge every pull request that is opened, and that's a fact. But abruptly closing off a pull request without justification isn't exactly good practice either.</p>
<p>If a pull request is too big, or it doesn't add to the project like you would've wanted, it is okay to close it. But do not be afraid to kindly explain to the contributor why it can't be merged. Don't leave a pull request open forever because you feel guilty about closing it.</p>
<p>People can be more understanding than you think if you give them simple common courtesy.</p>
<h3 id="heading-work-on-communication-skills">Work on Communication Skills</h3>
<p>Collaboration is the basic foundation of open source as a whole. And to collaborate effectively, you need to be a good communicator.</p>
<p>Having people come in and work with you on your project is cool and all – but if you can't properly communicate with these people, you'll end up with a closed open source project (if that makes sense).</p>
<p>Collaboration doesn't have to be you spinning up some huge discord server for the project. It could just be you sharing messages in your code reviews.</p>
<p>If the comment sections under your issues are too small, then GitHub has a discussion tab for each repository. This is a great place to spin up new ideas and start some great connections.</p>
<p>You never know whom you might meet!</p>
<h3 id="heading-listen-and-learn">Listen and Learn</h3>
<p>After open sourcing my app, I've probably learnt more React than I would've if I was watching tutorials and building in private.</p>
<p>Smart people will come along and open your eyes to ideas that you couldn't have thought of on your own. My project has improved so much, mainly because I wasn't afraid to try out new things.</p>
<p>The community wants to help – so let them.</p>
<h3 id="heading-cultivate-a-community-spirit">Cultivate a Community Spirit</h3>
<p>Someone recently reached out to me, saying they wanted to get involved in reviewing pull requests because it was fun. They aren't officially a maintainer, but I would like to think that they enjoy being a part of the project.</p>
<p>Building an open source project is a community effort. And as a maintainer, you will need that community spirit.</p>
<p>You need to be excited with what you do. Collaboration should be fun. You are happy that the contributor added something, but let them also be happy that they contributed.</p>
<p>People love good, honest feedback. And it also helps you build up your little community.</p>
<h3 id="heading-be-responsible">Be Responsible</h3>
<p>If the open source project is your idea, then you're the pioneer. If you decide to be the lead maintainer, be the lead maintainer. Be reliable, and most importantly, be present.</p>
<p>Even if you are a supporting maintainer for some big project, it is good to show that you know what you're doing and that you're committed to the project.</p>
<p>Some projects go stale because the maintainers stop responding to issues and pull requests. It's true that life catches up to us sometimes. If you decide to commit to a project, though, it's important to always show that the project is alive.</p>
<p>But how? Well, everything leads back to collaboration. Keep your collaborators involved and they'll help you out.</p>
<h3 id="heading-be-nice-and-welcoming">Be Nice and Welcoming</h3>
<p>People are coming from different backgrounds to check out your project. Whoever they are, they won't come back if their first experience was a mean maintainer, whose project had poor documentation.</p>
<p>No matter how easy you make things, expect questions. Be ready to answer these questions. Point people to the right resources, no matter how obvious the solution could be.</p>
<p>If a contributor is having a hard time, check your documentation. Most times, it's not them, it's us (pun intended). The README might've skipped some steps, or a screenshot wasn't clear enough. Instead of telling them off, point them in the right direction and update your docs if need be.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>All in all, being a maintainer is hard work. Whether you're going solo on your project, or working with other maintainers, the goal is the same: collaborating to build great products.</p>
<p>Projects with poorly structured management and responses are one of the main reasons some people feel discouraged when it comes to contributing to open source.</p>
<p>The skills I've covered here are mostly based on personal experience, but I hope they help anyone maintaining a project, or thinking of being an open source maintainer.</p>
<p>If you want to check out my open source project, you can do so <a target="_blank" href="https://github.com/Njong392/Abbreve">here</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The 10 things you don't need to have to become a programmer ]]>
                </title>
                <description>
                    <![CDATA[ By Syk Houdeib Do you have what it takes to become a programmer? Chances are, you will base your answer on a bunch of untrue stereotypes and misconceptions. Those are harmful because they stop you from trying out this career path.  Let's take a look ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-10-things-you-dont-need-to-become-a-programmer/</link>
                <guid isPermaLink="false">66d4614bbd438296f45cd3ba</guid>
                
                    <category>
                        <![CDATA[ Career Change ]]>
                    </category>
                
                    <category>
                        <![CDATA[ front end ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 13 Feb 2020 23:01:59 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9c97740569d1a4ca330f.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Syk Houdeib</p>
<p>Do you have what it takes to become a programmer? Chances are, you will base your answer on a bunch of untrue stereotypes and misconceptions. Those are harmful because they stop you from trying out this career path. </p>
<p>Let's take a look at some of the things that you do not need to become a programmer.</p>
<h2 id="heading-intro">Intro</h2>
<p>I have always found programming fascinating since I started using the internet in the late 90s. I was enthralled by the amazing things developers could do. And my admiration only grew as new websites and later apps started to radically change the world around us. </p>
<p>And yet, I never tried programming myself. Never even tried to take a look at how it worked. But I am generally a curious person who loves getting into things and learning about them. So what happened there? How was it possible to be fascinated by programming for decades and not even try it out?</p>
<p>The reason, in my case, is what I call the "Hollywood hacker" stereotype. Those of us who did not come into contact with the reality of the field only have media stereotypes to go by. I believed that programming was the activity of an elite, a select few. People who attended exclusive universities and completed very expensive and long degrees. People who had privileged minds who could do superhuman feats of mathematical genius. </p>
<p>I now know this is not true. It's not based on reality. And I wish I had known that earlier.</p>
<p>I eventually understood that this was a much more accessible career path than I had originally thought. I followed a few YouTube tutorials, and got really excited about programming. I got serious about learning, and in 10 months did a career switch from an unrelated field. </p>
<p>It wasn't a walk in the park, it was a lot of hard work. Like any skill that we learn, it takes time and practice. But it doesn't take special powers. <a target="_blank" href="https://www.freecodecamp.org/news/how-i-switched-careers-and-got-a-developer-job-in-10-months-a-true-story-b8895e855a8b/">Here's the story</a> of how I made that switch.</p>
<p>Now that I'm working as a front-end developer, I want to help others. I want to encourage those who are thinking about programming as a possible career but are not sure if they "have what it takes", or think there are obstacles that aren't actually there. </p>
<p>So let's explore together 10 things you do not need to become a programmer.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/hello-i-m-nik-MAgPyHRO0AA-unsplash.jpg" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>These are the things that are rightly or wrongly connected with our popular image of what it takes to be a programmer. They are the kinds of things that are nice to have, and they can be useful. </p>
<p>Aspiring developers can dedicate time to attaining some of these skills. But none of them is essential to start, to learn, to get a job, or to have a great career in computer programming.</p>
<h3 id="heading-be-a-genius-be-a-mathematician">Be a genius. Be a mathematician.</h3>
<p>This one is the most important myth to dispel – the myth of the privileged mind. There is no special thing your brain must have to become a programmer. </p>
<p>Programming is a skill like playing the guitar or running a marathon. You get better at it by doing it. By dedicating time and effort. By learning from others. It's a skill that you develop and grow the more you do and the more productive effort you put into it. </p>
<p>If you see a programmer who is capable of doing amazing stuff with a computer, it is always the result of dedicating time and energy into their craft. It's not some innate talent they were born with, or some divine inspiration.</p>
<p>Also, let's talk about math. Even though mathematics is at the heart of programming, you don't need it in your day to day work. The majority of programming languages used today for most jobs are high-level languages. These are closer to human languages than numbers, and don't need any special knowledge in math. </p>
<p>Programming is much more like writing than doing calculus. If you are good with math, it will help you solve certain problems faster. If like me, you didn't fall in love with it at school and never looked back, this won't be a hindrance.</p>
<h3 id="heading-be-a-computer-wiz">Be a computer wiz</h3>
<p>Programming requires you to write programs that run on a computer. You do so using a computer. It's the medium you work in. </p>
<p>But, you don't need to be able to build a computer from scratch by hand to be a programmer. You don't need to be able to understand the inner workings of a computer. Or be that person all your friends come to with their computer problems. </p>
<p>It's one thing if you use a car to do your job, but it's a different thing to actually be a car mechanic. Of course the more you know about your tool the more independent you'll be at tackling up and resolving problems. But you can be an effective programmer without first learning how to fix your aunt's virus-infected machine!</p>
<h3 id="heading-have-an-elite-university-degree-have-a-cs-degree-have-any-university-degree">Have an elite university degree. Have a CS degree. Have any university degree.</h3>
<p>A university degree is a great thing to have. It teaches you methodologies and investigation. It teaches you about your own learning style. </p>
<p>Being a graduate, if you are lucky enough to have access to a university, is a good thing in general. Being a Computer Science graduate is even better for programming. It gives you great depth and breadth of knowledge. An elite university will open doors and give you contacts.</p>
<p>However, none of the above is actually necessary to be a programmer. The field is packed with brilliant programmers who don't have a CS degree, or any degrees at all. If you put your mind to it, you can become a good programmer without any of it. </p>
<p>There are lots of different paths to becoming a developer nowadays. The traditional university route is only one of them. There are bootcamps that condense the essential knowledge into a few months of intense work. There's a wealth of online resources for those who want to go the self-directed route. This is a great option for people who need to continue holding a  job while preparing the career change. And there are plenty of free or cheap options that remove the economic barriers too.</p>
<h3 id="heading-have-a-state-of-the-art-computer-or-expensive-software">Have a state of the art computer or expensive software</h3>
<p>This might be a bit silly. But for many people living in difficult economic situations, it means the difference between taking that first step or not. </p>
<p>I used to imagine that programmers needed the most advanced computer with the highest processing power since they are the ones who write the software and apps that run computers. I imagined that to develop software you needed specialized and expensive software. A bit like the toolkit needed by those doing design or video work.</p>
<p>So I was surprised when I followed my first tutorial and all I needed to build my first website was Windows's built-in Notepad. Notepad!! The humblest and most boring piece of software on any computer. A text editor that is as bland and basic as can be. </p>
<p>Well yes, you can do all the basic stuff on an old machine with no bells and whistles at all. One expects to have a good machine when working professionally. But as a learner, you can go very far with an internet connection and a basic computer that can run a text editor.</p>
<p>And besides, there are free versions of every tool you need to use along the way. </p>
<h3 id="heading-be-fluent-in-english">Be fluent in English</h3>
<p>As with most of the above, being fluent in English helps. Programming languages were invented and flourished in English speaking countries. So for better or worse English dominates the field. </p>
<p>The words used in programming languages are English. And the majority of documentation, tutorials, articles, and resources about the subject are in English. So it helps a lot if you have a decent level of comprehension. </p>
<p>But, this shouldn't be the barrier that's holding you back from programming. You can learn and become good at it with an intermediate level of English. Many people get by only with being able to read and comprehend English.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/mark-fletcher-brown-nN5L5GXKFz8-unsplash.jpg" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-stereotypes">Stereotypes</h2>
<p>There are a lot of stereotypes associated with programmers in the public imagination. Now let's be clear, I'm not saying these stereotypes aren't sometimes real, or that they are negative in any way. Only that you don't need those to fit in.</p>
<h3 id="heading-be-a-nerd-be-a-gamer">Be a nerd. Be a gamer</h3>
<p>Let me repeat, nerds are great, gamers are wonderful. But you can be part of a tech team without being either of these things. This is not the 90s – people of every style now work in the industry. </p>
<p>When you are looking for a job for the first time, the team you end up with is one of the biggest factors in your success. So finding a supportive team with a good atmosphere is most important. Far more important than the hobbies you might or might not share with the other programmers.</p>
<h3 id="heading-be-an-introvert">Be an introvert</h3>
<p>Same as above. There is no particular personality type that is well-suited for this profession. Don't go looking for personality traits that might show you whether this is for you or not. Your attitude is far more important. </p>
<p>Being able to deal with frustration and persist is a key ingredient. And that's a learned skill, not part of a fixed personality.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/james-pond-26vBUtlufFo-unsplash.jpg" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-diversity">Diversity</h2>
<p>The following items are not stereotypes, they are statistics. Looking at the face of the industry as it is now, you might not see yourself represented. This might lead you to think that this is not for "people like you", however you identify yourself. </p>
<p>But our attitude should be the contrary. The lack of representation is all the more reason to get into it and put yourself out there. The industry has become much wiser about the importance of diversity in teams. Many companies and individuals are putting a lot of effort into making the industry more inclusive.</p>
<h3 id="heading-be-young">Be young</h3>
<p>You do not need to be young to work in tech. You do not need to start young to be a good programmer. </p>
<p>I started learning at 39 and I was 40 when I got my first job. And there are people of every age group who have successfully made the transition. </p>
<p>It's never too late to learn. Never too late to change careers. Besides, a company that only wants to hire young people is probably not a good place to work for anyway. If you need some more inspiration, check out <a target="_blank" href="https://www.freecodecamp.org/news/stories-from-300-developers-who-got-their-first-tech-job-in-their-30s-40s-and-50s-64306eb6bb27/">this story</a> about developers who got their first tech jobs in their 30s, 40s, and 50s.</p>
<h3 id="heading-be-a-man">Be a man</h3>
<p>This should be clear. But it has to be said. You don't have to be a man to be a programmer. And while men still make up the majority of programmers, this is hopefully rapidly changing. </p>
<p>Any company with insightful leadership has understood the importance of gender-diverse teams.  It is not just good for "equality" (which is reason enough), but also gender-diverse teams make better decisions and are less likely to be biased. </p>
<p>Gender is not a factor in how good of a programmer you can be. There is no chromosome or brain configuration that is better suited. Programming is mostly about problem-solving. And we need as many perspectives as possible to solve a problem in the best way.</p>
<h3 id="heading-be-privileged">Be privileged</h3>
<p>One of the things I loved the most when I first started learning to program was how democratic, open and inclusive the community is. </p>
<p>The programming world is filled with wonderful people. They dedicate time to help others become better programmers. They create resources and maintain open-source projects that benefit everyone. </p>
<p>Many groups and collectives are still underrepresented. Especially those who have historically been marginalized, or had difficulty accessing opportunity. But the community itself is much more welcoming and inclusive than it might seem from the outside. And it is continuing to change.</p>
<p>You may not see yourself represented in the popular images or the statistics about programmers. But this should not be a factor in being able to become a programmer. Your sexual orientation, your social class, your ethnicity, your disability, whether you don't live in the industrialized world, whether you are poor. These are all factors that are not a hindrance but a benefit. For the same reasons as mentioned above. </p>
<p>The greater the diversity of the team, the better it is at solving problems in a way that transcends biases. And that's always a good thing. And you can be part of the changing image of this industry.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/patrick-amoy-0Vc8UJenzm0-unsplash.jpg" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-outro">Outro</h2>
<p>I hope this article helps you in breaking myths about programmers and removing barriers to entry. I hope that if you are intrigued by programming that you give it a go. And if you find yourself excited by it and interested in pursuing a career that you will try it. </p>
<p>Ignore the self-doubt that comes disguised as one of these barriers that we think are in our way. Programming is complex and requires hard work. But everything about it is made up of skills anyone can learn if they persist. </p>
<p>Life can be tough and can put lots of obstacles in our way. The challenge is to react to these obstacles and find our way around them. So let's at least remove from our path all the clutter that isn't actually real obstacles.</p>
<p>If you know anyone who is thinking about whether programming is for them or have recently started learning, please share this article with them.</p>
<p>How about you? Do you have any other stereotypes and misconceptions about what it takes to become a programmer? Do you see things in the popular imagination about programmers that aren't true?  Tweet me your comments, I would love to keep this discussion going on Twitter. <a target="_blank" href="https://twitter.com/Syknapse">Find me on Twitter</a> and say hello.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/profile-2.png" alt="Syk Houdeib" width="600" height="400" loading="lazy"></p>
<p>My name is Syk and I’m a front-end developer based in Madrid. I career-changed into web dev from an unrelated field, so I try to create content for those on a similar journey. My DMs @Syknapse are always open for aspiring web developers in need of some support.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What you need to know for your first developer job that you won’t learn in school ]]>
                </title>
                <description>
                    <![CDATA[ By Vinicius Marchesin Araujo There’s a lot of important topics to learn as a developer. Algorithms, data structures, programming languages, there’s too many to count. That’s before we start on programming languages. Go is trending right now. JavaScri... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-you-need-to-know-for-your-first-developer-job-that-you-wont-learn-in-school-2ab39551026/</link>
                <guid isPermaLink="false">66c3662d693ce41cd86e799e</guid>
                
                    <category>
                        <![CDATA[ jobs ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ skills ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 13 Feb 2019 17:17:48 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/0*VHgxUC9DIEzgJ2s7.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Vinicius Marchesin Araujo</p>
<p>There’s a lot of important topics to learn as a developer. Algorithms, data structures, programming languages, there’s too many to count. That’s before we start on programming languages. Go is trending right now. JavaScript is the most popular language of 2018. 3 billion devices run Java (since the 90’s apparently). It’s hard to pick a language when you don’t know what it’s used for.</p>
<p>This article isn’t about these topics, because these are often taught at computer science schools and similar courses. This article is about the tools and skills that aren’t taught at schools and will make a huge difference when you get your first job. You’ll be able to apply these no matter if you end up being a web developer or a data scientist.</p>
<h3 id="heading-git">Git</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/kU4YuTV9fp8UpbWHTs4UIG1wxhX15Q4YdnNr" alt="Image" width="800" height="665" loading="lazy">
<em>Octocat, Github’s mascot</em></p>
<p>This is as much of a tool as it is a skill. Doesn’t matter what kind of developer you are or what language you use, you’ll use it almost every day.</p>
<p>Git is a Source Control Manager or SCM for short. In other words, it allows you to work with different versions of your code. Git provides tools that make working with many people on the same project a less painful experience.</p>
<p>If you’re working on a project by yourself it’s a great idea to use Git for many reasons. The obvious one is that you can store your code in the cloud for free. Many companies offer free public repositories, such as <a target="_blank" href="https://github.com/">Github</a>, <a target="_blank" href="https://about.gitlab.com/">Gitlab</a> and <a target="_blank" href="https://bitbucket.org/">Bitbucket</a>. But if you’re working in a team odds are you’ll end up using Git sooner or later, so it’s better to learn it beforehand.</p>
<p>A great way to learn git is by using <a target="_blank" href="https://learngitbranching.js.org/">learngitbranching</a>. The fact that it uses a visual canvas to explain how the commands behave is incredibly helpful. You can learn the basics in less than a day, but you’ll be learning new powerful commands for a long time.</p>
<h3 id="heading-communication">Communication</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ZekxiEsvXvw7enlyCCYSsf3LKzKBLVir5FNf" alt="Image" width="800" height="533" loading="lazy">
_Photo: [Unsplash](https://unsplash.com/photos/ASKeuOZqhYU" rel="noopener" target="<em>blank" title="). Pro tip: don’t scream at your colleagues.</em></p>
<p>A very underrated soft skill is communication. We developers are so focused on the tech aspects of our jobs that we often forget that to achieve great things we must work with other people.</p>
<p>There are many points to improve when talking about communication. I’d say one of the most important ones, for developers, is <em>how to properly describe issues</em>. You’ll ask someone for help eventually, and in order to receive actual help you’ll need to first describe what’s wrong.</p>
<p>Your coworkers are probably just as busy as you are, and probably have a lot going on in their heads. Do not drop questions like bombs at people, instead give context before asking for help.</p>
<p>Let me demonstrate:</p>
<blockquote>
<p><strong>DON’T DO THIS</strong></p>
<p>Hey $coworker, the $service isn’t working as expected when I run $command, can you give me a hand?</p>
<p><strong>INSTEAD, DO THIS</strong></p>
<p>Hey $coworker, what’s up? I need some advice. I’m working with $service right now, because of $reason. It’s supposed to do $behavior to achieve $goal but instead it’s doing $wrong_behavior. I read the docs and I couldn’t find the issue. Since you’re more familiar with this topic, could you give me a hand when you’re free? Coffee is on me.</p>
</blockquote>
<p>Coworkers are not always familiar with the subject you’re working with. More often than not are working on something unrelated to your specific issue. By being friendly and giving context before asking a question you’ll find that conversations run a lot more smoothly. You’ll get your problems solved faster too.</p>
<p>To improve on this try talking to yourself when you are facing a problem. Try to describe as much as you can about the situation at hand. Unconsciously you’ll do the same when you’re talking to someone else in the future.</p>
<h3 id="heading-writing">Writing</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/UIRCLCFmUHLCDNaXI-Ko7DeHpuVgtZDiGR3V" alt="Image" width="800" height="533" loading="lazy">
_Photo: [Unsplash](https://unsplash.com/photos/Yi9-QIObQ1o" rel="noopener" target="<em>blank" title=")</em></p>
<p>Writing code is easy. If your code isn’t working the machine will tell you. Writing for people is the true challenge.</p>
<p>Doesn’t take long when you start working to find that writing is a huge part of your job, I’d say as important as programming. You need it to document changes in your code, to send emails to coworkers, to define technical requirements and even to describe how your code works using comments.</p>
<p>Writing is about transforming your thoughts and emotions into words. When you write something you need to take into account the subject, the audience and the channel you’re using.</p>
<p>If you’re talking to a fellow developer it’s OK to be more technical. When you’re explaining how the system works to the marketing team words like <em>callback</em> and <em>API</em> might make zero sense<em>.</em> You’ll find that when sending a message <em>how you say it</em> is often more important than <em>what you say</em>.</p>
<p>This extends to verbal communication as well, but writing is much harder because when you write for big audiences, instead of a one-on-one conversation, you only have one chance of sending the message right. If someone doesn’t get what you mean at first, they don’t have an opportunity to ask you the same instant.</p>
<p>This is particularly important when you write code documentation and articles (like this one). It’s important to be as clear as possible to the audience you’re working with.</p>
<p>To improve your writing skills my advice is to write as much as you can about things you know and love and to read <em>a lot</em>. Always take some time every day to read about new tech, for example. You’ll not only improve your writing but you’ll learn lots of new things too.</p>
<p>Here’s <a target="_blank" href="https://medium.freecodecamp.org/why-developers-should-know-how-to-write-dc35aa9b71ab">a great article</a> about this subject.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Developers often think that their jobs are about computers, and that’s as wrong as it can be. A developer job is about people, computers are just our tools. You create solutions that make people’s lives easier and better, and that requires a great amount of empathy.</p>
<p>If you ask me the most important skill to learn as a junior developer I’d say <strong>you should learn how to work in a group</strong>. All skills in this article help with that goal.</p>
<p>You might change your field of expertise in a few years. You might drop programming for a management position, but you’ll be working with people until you die. And being a team-player is much more desirable to employers than being a rockstar developer.</p>
<p>Thanks for reading my article.</p>
<p>If you liked it give it a few claps and connect with me on my social media.</p>
<p>What are some skills that you wish you had when you first started working?</p>
<p><a target="_blank" href="https://vmarches.in"><strong>Vinicius Marchesin</strong></a><br><a target="_blank" href="https://vmarches.in">_Vinicius Marchesin — Frontend Developer_vmarches.in</a></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
