{"id":372,"date":"2020-11-28T20:42:40","date_gmt":"2020-11-28T20:42:40","guid":{"rendered":"http:\/\/www.afternerd.com\/blog\/?p=372"},"modified":"2020-11-28T20:45:34","modified_gmt":"2020-11-28T20:45:34","slug":"first-programming-language","status":"publish","type":"post","link":"https:\/\/www.afternerd.com\/blog\/first-programming-language\/","title":{"rendered":"What Programming Language Should I Learn First?"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">What programming language to start with? Ever since I started my blog, I have been consistently getting this question from aspiring programmers who are overwhelmed by all the different programming languages out there.<\/span><\/p>\n<p>Quite honestly, I get it. There are a gazillion programming languages out there. Picking one can be a challenging, overwhelming, and frustrating experience.<\/p>\n<p>Not to mention that some languages gain viral popularity, and then they start slowly dying out (I am looking at you Ruby) \ud83d\ude42<\/p>\n<p>So how do you make sure you are picking the right programming language when you are starting out?<\/p>\n<p><iframe loading=\"lazy\" title=\"What Programming Language Should I Learn First? (Let&#039;s Settle This!)\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/9NL55w41fsA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<h1>Software Engineering vs Programming<\/h1>\n<p>Before I answer this question about what programming language you should pick up first, Let me lay some foundational concepts.<\/p>\n<p><span style=\"font-weight: 400;\">Software engineering is not <em>just<\/em> programming. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">You don&#8217;t become a solid software engineer by mastering a language or two. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The goal of a software engineer is to build software that is useful, reliable, and scalable. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Programming languages are the tools that make this happen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Think about like this, i<\/span><span style=\"font-weight: 400;\">magine you want to be a really good carpenter. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">You don&#8217;t become a good carpenter by only learning how to use a hand saw, right? <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In order to be a good carpenter, you also need to learn how to use different types of saws, chisels, nail guns, etc..<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2656\" src=\"https:\/\/www.afternerd.com\/blog\/wp-content\/uploads\/2020\/11\/carpenter-1024x576.jpg\" alt=\"\" width=\"1024\" height=\"576\" srcset=\"https:\/\/www.afternerd.com\/blog\/wp-content\/uploads\/2020\/11\/carpenter-1024x576.jpg 1024w, https:\/\/www.afternerd.com\/blog\/wp-content\/uploads\/2020\/11\/carpenter-300x169.jpg 300w, https:\/\/www.afternerd.com\/blog\/wp-content\/uploads\/2020\/11\/carpenter-768x432.jpg 768w, https:\/\/www.afternerd.com\/blog\/wp-content\/uploads\/2020\/11\/carpenter-1536x864.jpg 1536w, https:\/\/www.afternerd.com\/blog\/wp-content\/uploads\/2020\/11\/carpenter-2048x1152.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Now if you want to be a carpenter and you are asking: <em>what tool should I learn first?<\/em> <\/span><\/p>\n<p><span style=\"font-weight: 400;\">What do you think the answer is going to be?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Quite frankly, it doesn&#8217;t really matter. You just need start somewhere and then keep learning and adding to your skills until you become a good well-rounded carpenter.<\/span><\/p>\n<h1>Does your first programming language really matter?<\/h1>\n<p><span style=\"font-weight: 400;\">Now let&#8217;s go back to software engineering, I feel the reason why many of you get stuck in this question is that you are scared of investing so much time in learning a language that might not be in demand or give you the job that you really need.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Great thinking. Let me put you at ease.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1- Remember that your job title is &#8220;Software Engineer&#8221;<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Again your job title is never going to be &#8220;Python developer&#8221; or &#8220;Javascript developer&#8221;. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Your job title is: &#8220;Software Engineer&#8221;. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">If we go back to the carpenter analogy. everyone wants to hire a good, well-rounded carpenter who can get the job done. No one just hires a person just because they are very good at using a measuring tape.<\/span><\/p>\n<p>Similarly, good software companies want to hire solid software engineers who can get the job done. They understand that if you are a good engineer, learning a new language shouldn&#8217;t take more than a couple of weeks. So in the grand scheme of things, the programming languages you already know don&#8217;t matter that much.<\/p>\n<h3>2- You are learning fundamental programming concepts<\/h3>\n<p><span style=\"font-weight: 400;\">Any programming language that you learn will teach you the fundamental programming concepts that you need in order to be a good software engineer.<\/span><\/p>\n<h3>3- You will be using multiple programming languages anyways.<\/h3>\n<p><span style=\"font-weight: 400;\">Facts. You are going to be using multiple programming languages to get your job done.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This can happen in the same company, and sometimes even in the same project you are working on.<\/span><\/p>\n<p>It is extremely uncommon for a software engineer to only code in one language for the span of their career.<\/p>\n<h1>Cool but I still want recommendations for my first programming language<\/h1>\n<p><span style=\"font-weight: 400;\">With all that said, there is no harm in learning languages that are already widely used in the industry and likely to be used in the future.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For this purpose, I highly recommend these three languages:<\/span><\/p>\n<ol>\n<li>C++<\/li>\n<li>Java<\/li>\n<li>Python<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">I can guarantee you will not go wrong by learning one or more of these languages as they will teach you the fundamental programming concepts that you need to learn to be a good software engineer. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">And they also have the added benefit of being very popular languages that are being used by a lot of companies.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I personally believe that if you are a complete beginner to programming, Python is one of the easiest languages to get started with. It is beginner-friendly and relatively easier to learn than the other programming languages in this list.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I hope this answer was useful, and that we can settle this once and for all.<\/span><\/p>\n<h1>Resources<\/h1>\n<ol>\n<li>If you want to check what programming languages are popular, check out the <a href=\"https:\/\/www.tiobe.com\/tiobe-index\/\" target=\"_blank\" rel=\"noopener noreferrer\">TIOBE index<\/a>. It is created and maintained by the TOIBE company in the Netherland.<\/li>\n<li>Another good resource is to check the &#8220;Top Programming Languages&#8221; section in <a href=\"https:\/\/octoverse.github.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Github&#8217;s Octoverse<\/a>.<\/li>\n<\/ol>\n<h3>Learning Python?<\/h3>\n<p>Check out <a href=\"https:\/\/courses.afternerd.com\/\">the Courses section!<\/a><\/p>\n\n<h2>Featured Posts<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.afternerd.com\/blog\/learn-python\/\">The Python Learning Path (From Beginner to Mastery)<\/a><\/li>\n<li><a href=\"https:\/\/www.afternerd.com\/blog\/learn-computer-science\/\">Learn Computer Science (From Zero to Hero)<\/a><\/li>\n<li><a href=\"https:\/\/www.afternerd.com\/blog\/coding-interview\/\">Coding Interview Preparation Guide<\/a><\/li>\n<li><a href=\"https:\/\/www.afternerd.com\/blog\/stock-investing-for-beginners\/\">The Programmer&#8217;s Guide to Stock Market Investing<\/a><\/li>\n<li><a href=\"https:\/\/www.afternerd.com\/blog\/start-programming-blog\/\">How to Start Your Programming Blog?<\/a><\/li>\n<\/ul>\n<div class=\"after-post-box\">\n<h2>Are you Beginning your Programming Career?<\/h2>\n<h3>I provide my best content for beginners in the newsletter.<\/h3>\n<ul>\n<li>Python tips for beginners, intermediate, and advanced levels.<\/li>\n<li>CS Career tips and advice.<\/li>\n<li>Special discounts on my premium courses when they launch.<\/li>\n<\/ul>\n<p>And so much more&#8230;<\/p>\n<h3>Subscribe now. It&#8217;s Free.<\/h3>\n<p><script type=\"text\/javascript\" src=\"\/\/mautic.afternerd.com\/form\/generate.js?id=2\"><\/script><\/p>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":2663,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[636,12],"tags":[13],"yst_prominent_words":[958,1760,1755,1401,1696,1759,1754,68,1123,1761,64,1124,53,1122,651,63,331,1762,1758,1763],"_links":{"self":[{"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/posts\/372"}],"collection":[{"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/comments?post=372"}],"version-history":[{"count":9,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/posts\/372\/revisions"}],"predecessor-version":[{"id":2666,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/posts\/372\/revisions\/2666"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/media\/2663"}],"wp:attachment":[{"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/media?parent=372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/categories?post=372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/tags?post=372"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.afternerd.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}