Top 3 Programming Languages to Learn in 2020 [For Complete Beginners]

Learning to Become a Software Developer: A Step-by-Step Guide

When it comes to learning to become a software developer, there are several key steps and considerations that can help guide you on your journey. In this article, we'll explore the three languages that are essential to learn first, as well as other important topics such as frameworks, APIs, and resume writing.

The First Language: Python

When it comes to learning programming languages, Python is a great place to start for beginners. It's very easy to use, with a clean syntax that makes it simple to implement programs quickly. One of the benefits of Python is that it has a wide range of applications, from web development and data science to numerical computing and more. With Python, you can also leverage libraries like NumPy and pandas to perform complex calculations and data analysis.

Another advantage of learning Python first is that it's a popular language with many job opportunities available. Many companies use Python for various tasks, including web development, scientific computing, and automation. Additionally, Python is an excellent language for beginners because it has a gentle learning curve and a vast array of resources available online.

The Second Language: JavaScript

After mastering Python, the next language you should learn is JavaScript. However, before diving into JavaScript, make sure you have a solid understanding of HTML and CSS. These two languages are essential for web development, which is a major area where developers are in high demand. Learning HTML and CSS first will help you understand how to structure and style your code, making it easier to learn more complex languages like JavaScript.

JavaScript is the language of the web, and knowing it well can open doors to many job opportunities. You'll be able to create full-stack web applications, leveraging frameworks like React or Angular to build responsive and interactive interfaces. With JavaScript, you can also explore mobile app development, game development, and other exciting areas of programming.

The Third Language: C

Finally, after learning Python and JavaScript, the next language you should focus on is C. This language provides a deeper understanding of how computers actually work, allowing you to appreciate the intricacies of software development. While C may seem daunting at first, it's an essential language for many industries, including operating systems, embedded systems, and more.

Learning C also helps you develop problem-solving skills, which are crucial in any programming language. By understanding how to write efficient code, debug programs, and optimize performance, you'll be better equipped to tackle complex projects and challenges.

Other Essential Topics

In addition to learning these three languages, there are several other essential topics to explore as a software developer:

* **Frameworks**: A framework is a set of pre-built components that help developers build applications quickly. Popular frameworks like React, Angular, and Vue.js can save you time and effort when building web applications.

* **APIs**: An API (Application Programming Interface) allows different systems to communicate with each other. Learning about APIs will help you understand how to access external resources, integrate with third-party services, and more.

* **Resume Writing and Portfolios**: As a software developer, your resume and portfolio are crucial for showcasing your skills and experience to potential employers or clients. Learn how to write an effective resume, build a strong portfolio, and use social media platforms like LinkedIn to network with other developers.

Conclusion

Becoming a software developer requires dedication, hard work, and a willingness to learn new technologies. By starting with Python, learning JavaScript next, and then diving into C, you'll be well on your way to building a strong foundation in programming languages. Don't forget to explore essential topics like frameworks, APIs, resume writing, and portfolio-building to further enhance your skills and career prospects.

To get started with any of these languages or topics, visit the official Python website to download Python 3 (since Python 2 is no longer supported). You can also utilize online communities like Stack Overflow for questions, answers, and support from experienced developers.

"WEBVTTKind: captionsLanguage: enhey what's up you guys aaron here from clever programmer calm and in this video we're going to be going over the top three programming languages that you should learn in 2020 if you're a beginner alright so I'm gonna be going through this video based on a big assumption and that is that you are new to coding or you're a complete beginner or something because if you're advanced and experienced I don't know why you'd be here besides entertainment hopefully you enjoy it but to get actually bite value out of this kind of topic I think you probably need to be a beginner so I'm just gonna go on that assumption alright if you don't know me I am a software developer here at clever programmer I've been here for about a year now I'm a currently a Georgia Tech graduate student studying AI yeah I just want to take my stab at this top three programming language on video because a lot of the other ones that I see it kind of just say like hey these are the top three languages for these reasons blah blah blah just go pick one and go do it alright but for me I kind of want to make something a little bit more comprehensive for a beginner so instead of Oh top three and then pick these and go whatever I'm actually gonna pick three languages that I think you should learn first and in a specific order to fully set you up to be a software developer when they want to be a freelancer or a full-time developer or whatever so I'm actually gonna be giving you like a roadmap as a beginner and I think that's actually the best I'll also be giving a little bit of context with things because I know you're a beginner so like when I use certain words I'll explain a little bit I'm just enough to kind of so you're not fully confused but I'm not gonna be going into depth I'll just be focusing on the languages and why they're good you might get it a little bit lost with some of the words but just follow along and take my word for and hopefully why the end of it you'll understand why I think this is the best roadmap for you and then right after this video just jump in and start coding alright that's why you're here right so without any further ado let's get started before we get started though Before we jump into it I want to tell you that we have an epic free three-part master class it teaches you how to go from being a complete beginner and programming not knowing anything if you've never written a single line of code and the steps you can take to become a six-figure freelancer or a software developer so if you want to learn how to go from there to there click the link in the description down below it should be down there just gonna pop in your email address in your name and it will send you an email to the login page for that and you can access it completely for free and it ends with a an exclusive webinar if you want to check that out too after the three parts so if I guess it's kind of like a four part master class but I definitely check it out all right it'll it's just a lot of free value and just we want to offer that to you so check it out all right you guys so I want to let you know that this video is sponsored by Skillshare Skillshare is a website kind of more like a community of creatives and intellectuals that can create courses for each other okay so you go in there and then you can post your courses whatever you can take courses um you can actually sign up as an instructor but I mean usually you'd be taking the courses yourself but you can go in there and you can learn things on any topic pretty much anything really I mean eat including like software development so you can learn things like there's some Java courses and there's probably JavaScript courses as well as Python courses if you want to go through there you can learn other things like photography and like pretty much anything that you want but basically it's just a community where you can really dive into your passions no matter what industry it's in whatever hobby you have and you can just go in and check it out okay so there's a bunch of fair just go check it out they just rebranded their whole website looks really clean and nice it was different like last month right it was like different last month what looks great now so go check it out is like nice and juicy and fresh for 2020 profs the skill shell for that it's pretty cheap too like I think there is subscriptions for like less than 10 bucks a month or something if you want to do that however because you're watching this video and because they're a sponsor if you click the link in the description then you can actually get to three months to completely free months of premium membership to really explore whatever creative endeavor is that you're interested in in your life okay so I mean doesn't hurt just try out two three months and yeah just click on the link in the description you're good to go so check out Skillshare so programming language number one the first one I think you should learn if you're beginner is definitely definitely Python okay so python is a very general purpose very clean very minimalistic very easy high-level language and basically what that means is it's just very beginner friendly okay so most of my classes at Georgia Tech right now I'm actually using Python for whatever it is just because it's you can get your ideas into code the fastest you'll have to worry about like computer e stuff there's like no you don't have to like allocate your memory like other program languages you actually have to be like hey save this much memory like save one megabyte of memory over here like save this and then I'm gonna put like a few numbers in there okay cool save it for later do some computations over here in this memory and then come back and beg to get it back and then wipe it clean like you have to do that manually like Oh allocate this and that like in C or C++ but pipe or in a little bit less so in other languages like as you get more higher level up but Python is the most high level one and clean and just the best to use all right it's the best one to get your hands to do back oh and you can learn all about like the biggest ideas and programming and then you'll just kind of have like a big overall understanding of what programming really is and then you can go forward with that so another another great thing about Python is once you know Python I mean if you know the basics then I mean it's kind of useless to be honest like you it's you can do things but to actually like be a full-blown developer after programming languages you must learn further things like frameworks libraries and other things like algorithms and how to connect to api's and how to do version control which is like saving copies of your code like so you can go back and like how to develop on a team like there's so many other things passed just learning a programming language that you need to know to actually be successful as a developer once you know Python it's really cool because with Python you can do so many things you can do web development with frameworks like Django or flats all the framework is I'll explain really click if you don't know what that word means it's just you learn Python you have these things like how do you code in Python like core Python and then on top of Python they add like more like code things that you have to learn but it's in Python so you understand how everything works but there's just like some extra stuff piled on to it it's like advanced Python I guess and then within that framework you can develop even more cool things but like before you can learn the framework you gotta learn the language so you can do web development with Python but you can also do a lot of data science things and scientific computing with libraries like numpy which is like numeric Python or Syfy which is like science Python or pandas which is a library where you can do a lot of like number crunching or data science like machine learning you can use pi torch or tensorflow and latin frameworks like those libraries like those to do things down the road so once you know Python you're basically set up to branch out to things down the road once you have gotten a little bit more experience so Python is definitely the best start with that oh and the last thing also it's great for coding interviews because if you want to get a job at a big tech company like a fain company then Python is a very popular language to do the coding interviews is because you can implement things very quickly cleanly and they accept Python it's very well-established alright alright so that was the first one Python if you want to shortcut your path on actually making a profit with Python then we have a free three-part master class on how you can go from zero to six figures potentially with as a Python full stack web developer jump in there it's free just check it out we also have free Python courses on our own channels and you'll learn Python you can learn from us for free ok we have multiple courses as a twenty twenty one go check it out I'm in a lot of that check it out you can learn the Python basics there so yeah just check out that stuff we a lot we have a lot of stuff on Python that's kind of what this channel is about so go learn it and yeah now we're gonna be going onto the next language so after you're done learning Python okay uh you might want to branch into my view framework or two of here if you're curious but if you just went on start learning a second language which I actually think is a good idea because then you can kind of understand the general idea of programming you're not just like stuck in like oh Python write these words and letters and numbers and I can do this thing oh I understand this but then if you understand how to do the same thing like if you can write the same program in Python and a second language then you your brain starts understanding coding as a whole instead of just oh I get Python it's oh I get coding which is actually what you want because there's always new languages coming up but I think this is the best course to go so going on the programming language number two this is going to be JavaScript so after you're done learning Python okay javascript is number two and the reason for that is because javascript is a language of the web okay it's a programming language that is deeply ingrained in like the Internet so on webpages like rub pages are ran on JavaScript herbs anything animated or anything like interactive on a webpage or website it's run by JavaScript okay and another thing that you should know is like 50% or more of all developer jobs or web development so if you want to get a job as a software developer you're gonna need web development okay you're going to have JavaScript you're gonna need to know this to be actually be able to succeed this is because probably like a lot of like business and other things and things that the things that run the world like they want it to be online like businesses want websites people want to be able to distribute things across the internet and everything so everything is web-based now it's gonna be going more and more there so you're definitely gonna want to learn JavaScript okay one caveat though to JavaScript is you will not understand JavaScript on me you can't like fully use JavaScript to its fullest potential if you do not know HTML and CSS okay so actually these three languages as a whole I'm actually packaging in my son for two so i a little coffee out there but you need to know HTML to know how what's what web pages are built and then CSS to make i'm CSS to know how the web pages look so you can like style them and then javascript have added functionality and code to it so you're gonna you're gonna need to know all three so actually number two and you should learn them in this order is learn HTML then CSS then JavaScript so learn Python first and then these three in that order all right what's great about JavaScript though is there are a lot of really really great frameworks that have been coming up in recent years that allow you to build full applications from using just JavaScript so there's something in some for development called full stack development and all that means is like you have a full stack to something which means like on the top you have your front-end which is like how stuff looks on the screen to the user and then like in the middle of the stack you might have like some processing and stuff and then on the bottom of the stack you might have like a database where like data is stored where you can like shuffle around data retrieve data like Instagram posts from what from from your account and then display to the screen that's the front-end but then like storing it is the backend so we have front and plus back-end then you have everything is called a full stack web developer what's cool about JavaScript though is although you can do while diliman with Python or Django and flask and stuff can't be like like a fully fully fledged full stack full stack web developer if you don't know JavaScript but with JavaScript you can actually be a complete full stack web developer from end to end like from all the way down at the bottom like their string works you can use like for the for the front end on JavaScript you can use frameworks like react or angularjs or vue.js look those up if you're curious and then for your back-end you can also use like something like nodejs to get it done so you can have like you can hold like some data in a database whatever you need it when I say JSA means dot JavaScript okay so these are just frameworks are gonna learn after you learn core JavaScript you can go on and learn these frameworks on top of it feel free to branch out and learn those if you're interested when you hit it but I think you should definitely definitely learn JavaScript HTML CSS and JavaScript second great after you've learned Python because it's the web is the future and it's just so versatile and Python was the limit with django and flask plus javascript and all these frameworks makes a killer killer combo so you're gonna be like set up after just learning these two languages and then I guess HTML and CSS they're not languages but they're like supplemental things that you need to learn then you will you'll be set up to be a full stack web developer and go on and one other cool thing is with these with these web frameworks and things like react native you can actually create kind of hybrid mobile apps even if you want to get into that but mobile app developments a little bit advanced so I don't want to mention that here I wouldn't recommend getting into that first it's fun but I would actually recommend going with Python first and just learning how to code on a computer before you get into like all this crazy swiss stuff or flutter or anything but on the third language i'm gonna go into i do touch on it a little bit so we're gonna get that shortly so after you have learned python and HTML and CSS and javascript if you haven't already like gotten interested and like one off to learn your own frameworks and completely forgot about this video and did your own thing I think the third language that you should learn is definitely Java okay so yes Java and JavaScript sounds similar they're not really that related at all that much maybe a little bit I don't know the details exactly but you can pretty much treat them as completely different languages okay just know that they sound similar but they're actually distinct okay so just ignore the names it should be named something different in my opinion but maybe there's some like connection that I don't know about but it's never been relevant to me so I mean it's probably not relevant to you because it's not good coding eight years but the reason I go into Java is because actually this was my first language that I learned when I was in undergraduate in college it's a very academic language and the reason for that is I think it's an interesting middle ground I still think pythons better to learn first but Java is not bad the reason being is it's a little bit easier to use but it's not super low level but you still get up your hands a little bit dirty with some other things that are really important with software development in general things like compiling or like typing your data I'm gonna explain these a little bit briefly so you understand what they mean but you don't have to worry about this in Python okay and a little bit in JavaScript but not as much like python is like non-existent you have to worry about it javascript a little bit but the Java is like a bit more and then like if you go like to see or C++ you have to like handle all of it like crazy but let's not worry about that for focusing on Java so what typing is is like when you have data in your code then you might want to oh we got a little doggie here spooked me but my Kingston so typing and a couple sentences is pretty much just like you have data in a computer okay but there's like different types of data like you might want to save though the word clever programmer like the phrase clever programmer that's data you can say that as a string or something or I might you might want to save the number 10 okay like those are two different data types that can be housed in the computer and then it's just represented I mean everything's ones and zeroes at like the lowest level okay it's like it's just circuits and electricity in the computer but it's structured a certain way so that the computer can understand it and in Java you actually have to specify these things but then you also have more control okay and things are a little bit more like you have more control over it versus Python where you don't have to even worry about this stuff I'm also compiling your code so like I said like computers runs on one and zero ones and zeros like you should probably know that if you don't Ben well now you do something like the you read of your code right those writing code which is just words like literally just words you get but you could write code in like a text document like like Microsoft Word or pages if you're on Mac or just like whatever anything you could write code on paper it's just letters and numbers okay string together but then how does the computer understand that what you have to do is you have to take the code that you wrote and then you run a program that interprets and reads that and changes that to ones and zeros pretty much it goes through multiple levels but that's called compiling your code into something that the computer will understand it's like here's a bunch of ones and zeros right all these ones and zeros so you don't have to worry about that in Python like everything is just it just runs nice and cleanly so you don't worry about these low-level like nasty things but it's very important that you do learn them to be a full fledged software developer and that's why I think Java should be third and not first because it was little bit frustrating for me and it's just like uglier and there's more like weird use cases and it's just like look it is very good for being portable which means which is a word we use in software element that you can code one program in Java and it can run on many different things so you can run it on a computer like all windows a Mac a phone a smart TV a refrigerator like those kinds of things um it's very portable because it can be portable to different platforms like those things okay it's like the internet of thing the Internet of Things I mean most of those actually coded and see so that's a bad example but it's just an example that like Java is very portable more portable than some other languages alright so one other thing is Java is actually a language that you can use to do android mobile development so mobile development is a little bit more advanced you definitely want to i somebody's walking by a little girl yeah Java you can actually use it for Android mobile development I mean Colin has taken over in recent years but you can still use Java to get your hands dirty in mobile and you definitely want to learn how to do native mobile development because you could do things like using web apps and stuff to make a kind of hybrid mobile app but if you're gonna be serious about mobile development you definitely want to learn how to actually code on the local platform because when you're making an app you want it to be as high quality as possible you don't want this like wishy-washy hybrid thing okay so it'll it'll work for some things but like true mobile development you're gonna want to let me get into it honestly you should probably learn Carlin in Finnegan's Android or Swift you want to get into iOS or flutter which is up and coming one it still needs to be able to be a little bit more established but I mean if you know Java and I think it's still the best language to learn third to learn all these things like memory management and low blow and things then at least you can go down that Avenue a little bit and then you might want to pick up Swift or something on the line but I think after you've learned Java you'll be like you have so much experience in coding after you learn all these languages that you can really make your own decisions you can start learning frameworks tours endless trademarks you'll never learn them all you might have a job ready you might be in school but like I think your path from this point on will be just kind of very self defined you'll define it yourself I think that sums it up pretty much for Java it's a little bit it's more of like a legacy kind of language very academic based you can also use Java for interviews it's very useful if you need to pass things like on using leak but I'll probably use like Python over Java just because it's better but I mean you have the option like if you if you just happen to like Java better then you can definitely use those bleep code is a website just check it out it's a very good place to like practice how to get past coding interviews if you want to get jobs at faint companies like Facebook Google Netflix Apple whatever you want like anything big Microsoft etc Instagram snapchat so yeah so Java is definitely number three and lastly I just want to mention that the reason I didn't put anything more modern in a 2020 up-to-date programming language video is because I actually don't think it's a good idea to learn new languages first when you're a beginner because there isn't as much support on the Internet so yeah flutter is really cool I think like learning flutter first could be good so it could be super cool learning Swift first could be super cool and fun but it actually doesn't set you up best to understand coding as a whole and everything these language these three languages are extremely well established they're all decades old already and and the reason for that reason I say that is when you have an issue with one of these languages you can look it up on Google and find an answer all right if you have a flutter issue and you're like oh what is this bug the chances of you finding a solution are much much lower than if you're like Cody and Java when you're like oh this thing happened because there's just so much more history and then like in on the planet regarding these languages yeah and there's also developer communities and there's just like there's so much more resources so many more books so many more projects that are out there someone you have more open source things so many more forums it's just it's older it's more well-established I mean I think you get the idea but I choose these because you should start with these and then once you have these under wraps like you've kind of like paid your dues you know you've gone through rite-of-passage then you can go like learn dart and flutter and Swift and all these cool badass things or you can go crazy and go learn and C and C++ and do some really crazy high-performance computing stuff so you can like really crunch numbers and do some crazy algorithms and stuff but that's really advanced before you get into that stuff I would actually recommend doing learning other things that are very important in software development things like Theory learning algorithms and data structures which are actually just ideas that we implement in code it doesn't matter what language you use like you can you can implement like a sorting algorithm in any language so you're actually going to need - you'll probably be learning these along the way as you're learning the languages but you probably want to learn those before you learn like 70 languages if you know these three like you have like a really strong core you can probably land a lot of jobs as a freelancer or as a full-time developer but you want to learn those other things first so I just go through those really quick so you kind of have like awareness of everything that you need as a software developer so like I said you need to know algorithms which is like sorting okay like how do you sort a list of numbers like oh you removing the numbers around and which way you have to know like in your head like what is the mathematical things you would do and then you implement it in your code - how to UM to do that or another thing is data structures so like how do you structure your data so one could just be like a list of numbers is very simple okay just like an ordered list of numbers like they're in order and they're there together or maybe you want to have a tree which is like you have one number and then um then you can go down and then there's two numbers connected to that and then you go down more and then this is how like you could like you can map a family tree or something in this way using a data structure like that so there's different ways to organize your data because like in a list you could just go straight through and that's pretty much it but a tree you could go down like a different specific leg so it's a very high-level explanation of what a data structure is but you're gonna have to learn these things in order to actually get things done like you need you need to use data structures to implement algorithms and so they kind of go hand in hand so you definitely do know both of those things alright and you're also gonna want to learn some things like get so git is a thing where you can do version control and what version control means is when you're working on a big codebase on a team or on your own personal project that whenever you you want to have like one working set of code so like you have this application whatever it is a mobile app online app video game whatever you're working on and it works okay but like you want implement the new feature so when you're starting working on the new feature you're gonna want to be like make a copy of it and then and then work on it and make sure it's working and then implement it and then ship it to all the customers or deploy it or something but now you have two versions of code you see so you could actually roll back to this one if the new one gets screwed up if you make a mistake or something completely crashes then you have like a basically a time machine and you keep you can keep going back in your code so it's a way to like save versions of code that's why it's called version control you control over the version of the code and using that you definitely gonna need to know that after these after you're learning languages alright and you're gonna have to know a few other things too ok if you want to be a full-fledge fully fledged software developer you're gonna want to learn about dependencies which is how you like like your program is gonna require different frameworks and libraries and things that other like other code that other people have written and then you're gonna have to like import it into your program because you're not gonna write everything from scratch you just keep you're using like other people's frameworks other people's libraries because like you don't want to code everything from scratch it's kind of silly but you're gonna need to know how to like make sure that this is all correct so that as a full package you have like your the thing that you worked on and then all your frameworks and libraries and other pieces of code that you had and maybe like some images and stuff and you don't know how to like put it all in together into one hole so that it's an actual full like full application so it has everything it needs to run and then you can actually ship that so that's like considered a fully shippable application or something and then with that of course you can have like fully version fully built versions in version control I get I said earlier but you're gonna need to know that and to know that you're gonna need to know command line okay so what the hell is command line command line is a way to talk to the computer so instead of like oh you're like with your mouse and you're clicking on buttons and you're dragging things around it looks pretty command line is like the lowest level way you can talk to your computer so basically it's like oh do this thing copy this file over here and this is how computers were run in the 80s like you could only use a computer keyboard and then write certain commands and hit enter so there's a bunch of different commands they're very ugly and old-looking but you need to know how to do it to use git you need to you need to know how to do it to download frameworks do this to do everything I mean eventually I think we'll get away from command-line like way down the line maybe but actually probably not it's probably gonna be around like to some extent forever but I mean like a lot of frameworks you can just download from the website it's just like hey it's done it's there but I mean a lot of stuff you have to go through command-line so that's a completely owned topic topic on its own but you're definitely gonna need I'm definitely gonna need to know it in addition to programming languages and all the theory and algorithms and data structures etc and that's kind of the one of the last things oh one other thing is api's so api's are just kind of another way to use other people's code online so like if you want to use YouTube's code like if you wanna make an application that can post YouTube comments manually like through the program then you need to like access their API so it's kind of like a framework kind of like a library in the sense that you're using somebody else's code to achieve something but you're giving me to learn to UM you're gonna need to learn about api's as well so definitely look into that and the very very last thing that I want to say is once you have all this you're gonna need to know how to write a freaking resume and make a portfolio so that you can get jobs at companies or land clients as a freelancer alright so you're gonna need to know how to format your resume you're gonna need you're gonna need to know how to traverse the social media and LinkedIn and stuff like that how to email people I mean you probably have a lot of these skills already if you're just a human that's been on the internet but just mentioning it you're getting to know that and all you definitely want to build some projects on your own not school projects build your own projects using these languages like build build a cool website build a cool full-size web app build a cool mobile app build a cool whatever whatever you want and then just put these into a portfolio have try to have like one big project that you work on for months and once I can do something amazing and maybe some small ones whatever just have something together so that you can actually apply everything you've learned and actually get the job to make this useful unless you're just doing it for fun then yes through the resume screw the job just have fun coding but that's pretty much it for the three languages that I think you should learn first in that order so let's go over a quick quick recap all right so the first thing we should learn is Python alright it's very very easy and clean to use there's nothing you have to worry about anything very high-level you can implement things very quickly you can do leak code you can get jobs at Fame and stuff you can do web development okay you can do data science you can do numeric stuff and like number crunching with Python it's great okay so definitely that first and the second language you want to learn is definitely JavaScript but you need to learn HTML and CSS before that learn it in that order that makes the most sense and the reason is because 50% or more of all software developer jobs are web development jobs and javascript is the language of the web so you are gonna want to learn how to make full stack web apps with javascript and everything okay there's a lot of frameworks great frameworks you can do everything you want with JavaScript and it makes a killer combo with Python and then third is jobless so that you gain a better deeper understanding of how computers actually work but not too deep so that it's like boring and nasty and too confusing but just enough to sell you that you're aware of what's actually happening so you're not just like hey run program make program you actually have to go into the details to understand stuff plus you can get a little bit of mobile development in there okay and then all the other stuff I would mention like algorithms data structures version control what else did I say command line dependencies api's and resume writing and portfolios okay so those are all very important things oh and compiling and stuff too and like all these ideas you need to know all these things to be equipped to be a software developer so with all that said that was a lot of information I'm glad if you got to the end but now you're kind of equipped with the context that you need to become a software developer and to kind of just pursue your own path just take this information and just start start with Python if you have a Mac it's already downloaded all right or go to the website and download Python 3 Python 2 is going out of there like not continuing support soon so just go to Python 3 figure out if that's downloaded you stackoverflow or something that's a website where community developers can interact and ask questions they did a lot of good quest a lot of good answers there you just start okayhey what's up you guys aaron here from clever programmer calm and in this video we're going to be going over the top three programming languages that you should learn in 2020 if you're a beginner alright so I'm gonna be going through this video based on a big assumption and that is that you are new to coding or you're a complete beginner or something because if you're advanced and experienced I don't know why you'd be here besides entertainment hopefully you enjoy it but to get actually bite value out of this kind of topic I think you probably need to be a beginner so I'm just gonna go on that assumption alright if you don't know me I am a software developer here at clever programmer I've been here for about a year now I'm a currently a Georgia Tech graduate student studying AI yeah I just want to take my stab at this top three programming language on video because a lot of the other ones that I see it kind of just say like hey these are the top three languages for these reasons blah blah blah just go pick one and go do it alright but for me I kind of want to make something a little bit more comprehensive for a beginner so instead of Oh top three and then pick these and go whatever I'm actually gonna pick three languages that I think you should learn first and in a specific order to fully set you up to be a software developer when they want to be a freelancer or a full-time developer or whatever so I'm actually gonna be giving you like a roadmap as a beginner and I think that's actually the best I'll also be giving a little bit of context with things because I know you're a beginner so like when I use certain words I'll explain a little bit I'm just enough to kind of so you're not fully confused but I'm not gonna be going into depth I'll just be focusing on the languages and why they're good you might get it a little bit lost with some of the words but just follow along and take my word for and hopefully why the end of it you'll understand why I think this is the best roadmap for you and then right after this video just jump in and start coding alright that's why you're here right so without any further ado let's get started before we get started though Before we jump into it I want to tell you that we have an epic free three-part master class it teaches you how to go from being a complete beginner and programming not knowing anything if you've never written a single line of code and the steps you can take to become a six-figure freelancer or a software developer so if you want to learn how to go from there to there click the link in the description down below it should be down there just gonna pop in your email address in your name and it will send you an email to the login page for that and you can access it completely for free and it ends with a an exclusive webinar if you want to check that out too after the three parts so if I guess it's kind of like a four part master class but I definitely check it out all right it'll it's just a lot of free value and just we want to offer that to you so check it out all right you guys so I want to let you know that this video is sponsored by Skillshare Skillshare is a website kind of more like a community of creatives and intellectuals that can create courses for each other okay so you go in there and then you can post your courses whatever you can take courses um you can actually sign up as an instructor but I mean usually you'd be taking the courses yourself but you can go in there and you can learn things on any topic pretty much anything really I mean eat including like software development so you can learn things like there's some Java courses and there's probably JavaScript courses as well as Python courses if you want to go through there you can learn other things like photography and like pretty much anything that you want but basically it's just a community where you can really dive into your passions no matter what industry it's in whatever hobby you have and you can just go in and check it out okay so there's a bunch of fair just go check it out they just rebranded their whole website looks really clean and nice it was different like last month right it was like different last month what looks great now so go check it out is like nice and juicy and fresh for 2020 profs the skill shell for that it's pretty cheap too like I think there is subscriptions for like less than 10 bucks a month or something if you want to do that however because you're watching this video and because they're a sponsor if you click the link in the description then you can actually get to three months to completely free months of premium membership to really explore whatever creative endeavor is that you're interested in in your life okay so I mean doesn't hurt just try out two three months and yeah just click on the link in the description you're good to go so check out Skillshare so programming language number one the first one I think you should learn if you're beginner is definitely definitely Python okay so python is a very general purpose very clean very minimalistic very easy high-level language and basically what that means is it's just very beginner friendly okay so most of my classes at Georgia Tech right now I'm actually using Python for whatever it is just because it's you can get your ideas into code the fastest you'll have to worry about like computer e stuff there's like no you don't have to like allocate your memory like other program languages you actually have to be like hey save this much memory like save one megabyte of memory over here like save this and then I'm gonna put like a few numbers in there okay cool save it for later do some computations over here in this memory and then come back and beg to get it back and then wipe it clean like you have to do that manually like Oh allocate this and that like in C or C++ but pipe or in a little bit less so in other languages like as you get more higher level up but Python is the most high level one and clean and just the best to use all right it's the best one to get your hands to do back oh and you can learn all about like the biggest ideas and programming and then you'll just kind of have like a big overall understanding of what programming really is and then you can go forward with that so another another great thing about Python is once you know Python I mean if you know the basics then I mean it's kind of useless to be honest like you it's you can do things but to actually like be a full-blown developer after programming languages you must learn further things like frameworks libraries and other things like algorithms and how to connect to api's and how to do version control which is like saving copies of your code like so you can go back and like how to develop on a team like there's so many other things passed just learning a programming language that you need to know to actually be successful as a developer once you know Python it's really cool because with Python you can do so many things you can do web development with frameworks like Django or flats all the framework is I'll explain really click if you don't know what that word means it's just you learn Python you have these things like how do you code in Python like core Python and then on top of Python they add like more like code things that you have to learn but it's in Python so you understand how everything works but there's just like some extra stuff piled on to it it's like advanced Python I guess and then within that framework you can develop even more cool things but like before you can learn the framework you gotta learn the language so you can do web development with Python but you can also do a lot of data science things and scientific computing with libraries like numpy which is like numeric Python or Syfy which is like science Python or pandas which is a library where you can do a lot of like number crunching or data science like machine learning you can use pi torch or tensorflow and latin frameworks like those libraries like those to do things down the road so once you know Python you're basically set up to branch out to things down the road once you have gotten a little bit more experience so Python is definitely the best start with that oh and the last thing also it's great for coding interviews because if you want to get a job at a big tech company like a fain company then Python is a very popular language to do the coding interviews is because you can implement things very quickly cleanly and they accept Python it's very well-established alright alright so that was the first one Python if you want to shortcut your path on actually making a profit with Python then we have a free three-part master class on how you can go from zero to six figures potentially with as a Python full stack web developer jump in there it's free just check it out we also have free Python courses on our own channels and you'll learn Python you can learn from us for free ok we have multiple courses as a twenty twenty one go check it out I'm in a lot of that check it out you can learn the Python basics there so yeah just check out that stuff we a lot we have a lot of stuff on Python that's kind of what this channel is about so go learn it and yeah now we're gonna be going onto the next language so after you're done learning Python okay uh you might want to branch into my view framework or two of here if you're curious but if you just went on start learning a second language which I actually think is a good idea because then you can kind of understand the general idea of programming you're not just like stuck in like oh Python write these words and letters and numbers and I can do this thing oh I understand this but then if you understand how to do the same thing like if you can write the same program in Python and a second language then you your brain starts understanding coding as a whole instead of just oh I get Python it's oh I get coding which is actually what you want because there's always new languages coming up but I think this is the best course to go so going on the programming language number two this is going to be JavaScript so after you're done learning Python okay javascript is number two and the reason for that is because javascript is a language of the web okay it's a programming language that is deeply ingrained in like the Internet so on webpages like rub pages are ran on JavaScript herbs anything animated or anything like interactive on a webpage or website it's run by JavaScript okay and another thing that you should know is like 50% or more of all developer jobs or web development so if you want to get a job as a software developer you're gonna need web development okay you're going to have JavaScript you're gonna need to know this to be actually be able to succeed this is because probably like a lot of like business and other things and things that the things that run the world like they want it to be online like businesses want websites people want to be able to distribute things across the internet and everything so everything is web-based now it's gonna be going more and more there so you're definitely gonna want to learn JavaScript okay one caveat though to JavaScript is you will not understand JavaScript on me you can't like fully use JavaScript to its fullest potential if you do not know HTML and CSS okay so actually these three languages as a whole I'm actually packaging in my son for two so i a little coffee out there but you need to know HTML to know how what's what web pages are built and then CSS to make i'm CSS to know how the web pages look so you can like style them and then javascript have added functionality and code to it so you're gonna you're gonna need to know all three so actually number two and you should learn them in this order is learn HTML then CSS then JavaScript so learn Python first and then these three in that order all right what's great about JavaScript though is there are a lot of really really great frameworks that have been coming up in recent years that allow you to build full applications from using just JavaScript so there's something in some for development called full stack development and all that means is like you have a full stack to something which means like on the top you have your front-end which is like how stuff looks on the screen to the user and then like in the middle of the stack you might have like some processing and stuff and then on the bottom of the stack you might have like a database where like data is stored where you can like shuffle around data retrieve data like Instagram posts from what from from your account and then display to the screen that's the front-end but then like storing it is the backend so we have front and plus back-end then you have everything is called a full stack web developer what's cool about JavaScript though is although you can do while diliman with Python or Django and flask and stuff can't be like like a fully fully fledged full stack full stack web developer if you don't know JavaScript but with JavaScript you can actually be a complete full stack web developer from end to end like from all the way down at the bottom like their string works you can use like for the for the front end on JavaScript you can use frameworks like react or angularjs or vue.js look those up if you're curious and then for your back-end you can also use like something like nodejs to get it done so you can have like you can hold like some data in a database whatever you need it when I say JSA means dot JavaScript okay so these are just frameworks are gonna learn after you learn core JavaScript you can go on and learn these frameworks on top of it feel free to branch out and learn those if you're interested when you hit it but I think you should definitely definitely learn JavaScript HTML CSS and JavaScript second great after you've learned Python because it's the web is the future and it's just so versatile and Python was the limit with django and flask plus javascript and all these frameworks makes a killer killer combo so you're gonna be like set up after just learning these two languages and then I guess HTML and CSS they're not languages but they're like supplemental things that you need to learn then you will you'll be set up to be a full stack web developer and go on and one other cool thing is with these with these web frameworks and things like react native you can actually create kind of hybrid mobile apps even if you want to get into that but mobile app developments a little bit advanced so I don't want to mention that here I wouldn't recommend getting into that first it's fun but I would actually recommend going with Python first and just learning how to code on a computer before you get into like all this crazy swiss stuff or flutter or anything but on the third language i'm gonna go into i do touch on it a little bit so we're gonna get that shortly so after you have learned python and HTML and CSS and javascript if you haven't already like gotten interested and like one off to learn your own frameworks and completely forgot about this video and did your own thing I think the third language that you should learn is definitely Java okay so yes Java and JavaScript sounds similar they're not really that related at all that much maybe a little bit I don't know the details exactly but you can pretty much treat them as completely different languages okay just know that they sound similar but they're actually distinct okay so just ignore the names it should be named something different in my opinion but maybe there's some like connection that I don't know about but it's never been relevant to me so I mean it's probably not relevant to you because it's not good coding eight years but the reason I go into Java is because actually this was my first language that I learned when I was in undergraduate in college it's a very academic language and the reason for that is I think it's an interesting middle ground I still think pythons better to learn first but Java is not bad the reason being is it's a little bit easier to use but it's not super low level but you still get up your hands a little bit dirty with some other things that are really important with software development in general things like compiling or like typing your data I'm gonna explain these a little bit briefly so you understand what they mean but you don't have to worry about this in Python okay and a little bit in JavaScript but not as much like python is like non-existent you have to worry about it javascript a little bit but the Java is like a bit more and then like if you go like to see or C++ you have to like handle all of it like crazy but let's not worry about that for focusing on Java so what typing is is like when you have data in your code then you might want to oh we got a little doggie here spooked me but my Kingston so typing and a couple sentences is pretty much just like you have data in a computer okay but there's like different types of data like you might want to save though the word clever programmer like the phrase clever programmer that's data you can say that as a string or something or I might you might want to save the number 10 okay like those are two different data types that can be housed in the computer and then it's just represented I mean everything's ones and zeroes at like the lowest level okay it's like it's just circuits and electricity in the computer but it's structured a certain way so that the computer can understand it and in Java you actually have to specify these things but then you also have more control okay and things are a little bit more like you have more control over it versus Python where you don't have to even worry about this stuff I'm also compiling your code so like I said like computers runs on one and zero ones and zeros like you should probably know that if you don't Ben well now you do something like the you read of your code right those writing code which is just words like literally just words you get but you could write code in like a text document like like Microsoft Word or pages if you're on Mac or just like whatever anything you could write code on paper it's just letters and numbers okay string together but then how does the computer understand that what you have to do is you have to take the code that you wrote and then you run a program that interprets and reads that and changes that to ones and zeros pretty much it goes through multiple levels but that's called compiling your code into something that the computer will understand it's like here's a bunch of ones and zeros right all these ones and zeros so you don't have to worry about that in Python like everything is just it just runs nice and cleanly so you don't worry about these low-level like nasty things but it's very important that you do learn them to be a full fledged software developer and that's why I think Java should be third and not first because it was little bit frustrating for me and it's just like uglier and there's more like weird use cases and it's just like look it is very good for being portable which means which is a word we use in software element that you can code one program in Java and it can run on many different things so you can run it on a computer like all windows a Mac a phone a smart TV a refrigerator like those kinds of things um it's very portable because it can be portable to different platforms like those things okay it's like the internet of thing the Internet of Things I mean most of those actually coded and see so that's a bad example but it's just an example that like Java is very portable more portable than some other languages alright so one other thing is Java is actually a language that you can use to do android mobile development so mobile development is a little bit more advanced you definitely want to i somebody's walking by a little girl yeah Java you can actually use it for Android mobile development I mean Colin has taken over in recent years but you can still use Java to get your hands dirty in mobile and you definitely want to learn how to do native mobile development because you could do things like using web apps and stuff to make a kind of hybrid mobile app but if you're gonna be serious about mobile development you definitely want to learn how to actually code on the local platform because when you're making an app you want it to be as high quality as possible you don't want this like wishy-washy hybrid thing okay so it'll it'll work for some things but like true mobile development you're gonna want to let me get into it honestly you should probably learn Carlin in Finnegan's Android or Swift you want to get into iOS or flutter which is up and coming one it still needs to be able to be a little bit more established but I mean if you know Java and I think it's still the best language to learn third to learn all these things like memory management and low blow and things then at least you can go down that Avenue a little bit and then you might want to pick up Swift or something on the line but I think after you've learned Java you'll be like you have so much experience in coding after you learn all these languages that you can really make your own decisions you can start learning frameworks tours endless trademarks you'll never learn them all you might have a job ready you might be in school but like I think your path from this point on will be just kind of very self defined you'll define it yourself I think that sums it up pretty much for Java it's a little bit it's more of like a legacy kind of language very academic based you can also use Java for interviews it's very useful if you need to pass things like on using leak but I'll probably use like Python over Java just because it's better but I mean you have the option like if you if you just happen to like Java better then you can definitely use those bleep code is a website just check it out it's a very good place to like practice how to get past coding interviews if you want to get jobs at faint companies like Facebook Google Netflix Apple whatever you want like anything big Microsoft etc Instagram snapchat so yeah so Java is definitely number three and lastly I just want to mention that the reason I didn't put anything more modern in a 2020 up-to-date programming language video is because I actually don't think it's a good idea to learn new languages first when you're a beginner because there isn't as much support on the Internet so yeah flutter is really cool I think like learning flutter first could be good so it could be super cool learning Swift first could be super cool and fun but it actually doesn't set you up best to understand coding as a whole and everything these language these three languages are extremely well established they're all decades old already and and the reason for that reason I say that is when you have an issue with one of these languages you can look it up on Google and find an answer all right if you have a flutter issue and you're like oh what is this bug the chances of you finding a solution are much much lower than if you're like Cody and Java when you're like oh this thing happened because there's just so much more history and then like in on the planet regarding these languages yeah and there's also developer communities and there's just like there's so much more resources so many more books so many more projects that are out there someone you have more open source things so many more forums it's just it's older it's more well-established I mean I think you get the idea but I choose these because you should start with these and then once you have these under wraps like you've kind of like paid your dues you know you've gone through rite-of-passage then you can go like learn dart and flutter and Swift and all these cool badass things or you can go crazy and go learn and C and C++ and do some really crazy high-performance computing stuff so you can like really crunch numbers and do some crazy algorithms and stuff but that's really advanced before you get into that stuff I would actually recommend doing learning other things that are very important in software development things like Theory learning algorithms and data structures which are actually just ideas that we implement in code it doesn't matter what language you use like you can you can implement like a sorting algorithm in any language so you're actually going to need - you'll probably be learning these along the way as you're learning the languages but you probably want to learn those before you learn like 70 languages if you know these three like you have like a really strong core you can probably land a lot of jobs as a freelancer or as a full-time developer but you want to learn those other things first so I just go through those really quick so you kind of have like awareness of everything that you need as a software developer so like I said you need to know algorithms which is like sorting okay like how do you sort a list of numbers like oh you removing the numbers around and which way you have to know like in your head like what is the mathematical things you would do and then you implement it in your code - how to UM to do that or another thing is data structures so like how do you structure your data so one could just be like a list of numbers is very simple okay just like an ordered list of numbers like they're in order and they're there together or maybe you want to have a tree which is like you have one number and then um then you can go down and then there's two numbers connected to that and then you go down more and then this is how like you could like you can map a family tree or something in this way using a data structure like that so there's different ways to organize your data because like in a list you could just go straight through and that's pretty much it but a tree you could go down like a different specific leg so it's a very high-level explanation of what a data structure is but you're gonna have to learn these things in order to actually get things done like you need you need to use data structures to implement algorithms and so they kind of go hand in hand so you definitely do know both of those things alright and you're also gonna want to learn some things like get so git is a thing where you can do version control and what version control means is when you're working on a big codebase on a team or on your own personal project that whenever you you want to have like one working set of code so like you have this application whatever it is a mobile app online app video game whatever you're working on and it works okay but like you want implement the new feature so when you're starting working on the new feature you're gonna want to be like make a copy of it and then and then work on it and make sure it's working and then implement it and then ship it to all the customers or deploy it or something but now you have two versions of code you see so you could actually roll back to this one if the new one gets screwed up if you make a mistake or something completely crashes then you have like a basically a time machine and you keep you can keep going back in your code so it's a way to like save versions of code that's why it's called version control you control over the version of the code and using that you definitely gonna need to know that after these after you're learning languages alright and you're gonna have to know a few other things too ok if you want to be a full-fledge fully fledged software developer you're gonna want to learn about dependencies which is how you like like your program is gonna require different frameworks and libraries and things that other like other code that other people have written and then you're gonna have to like import it into your program because you're not gonna write everything from scratch you just keep you're using like other people's frameworks other people's libraries because like you don't want to code everything from scratch it's kind of silly but you're gonna need to know how to like make sure that this is all correct so that as a full package you have like your the thing that you worked on and then all your frameworks and libraries and other pieces of code that you had and maybe like some images and stuff and you don't know how to like put it all in together into one hole so that it's an actual full like full application so it has everything it needs to run and then you can actually ship that so that's like considered a fully shippable application or something and then with that of course you can have like fully version fully built versions in version control I get I said earlier but you're gonna need to know that and to know that you're gonna need to know command line okay so what the hell is command line command line is a way to talk to the computer so instead of like oh you're like with your mouse and you're clicking on buttons and you're dragging things around it looks pretty command line is like the lowest level way you can talk to your computer so basically it's like oh do this thing copy this file over here and this is how computers were run in the 80s like you could only use a computer keyboard and then write certain commands and hit enter so there's a bunch of different commands they're very ugly and old-looking but you need to know how to do it to use git you need to you need to know how to do it to download frameworks do this to do everything I mean eventually I think we'll get away from command-line like way down the line maybe but actually probably not it's probably gonna be around like to some extent forever but I mean like a lot of frameworks you can just download from the website it's just like hey it's done it's there but I mean a lot of stuff you have to go through command-line so that's a completely owned topic topic on its own but you're definitely gonna need I'm definitely gonna need to know it in addition to programming languages and all the theory and algorithms and data structures etc and that's kind of the one of the last things oh one other thing is api's so api's are just kind of another way to use other people's code online so like if you want to use YouTube's code like if you wanna make an application that can post YouTube comments manually like through the program then you need to like access their API so it's kind of like a framework kind of like a library in the sense that you're using somebody else's code to achieve something but you're giving me to learn to UM you're gonna need to learn about api's as well so definitely look into that and the very very last thing that I want to say is once you have all this you're gonna need to know how to write a freaking resume and make a portfolio so that you can get jobs at companies or land clients as a freelancer alright so you're gonna need to know how to format your resume you're gonna need you're gonna need to know how to traverse the social media and LinkedIn and stuff like that how to email people I mean you probably have a lot of these skills already if you're just a human that's been on the internet but just mentioning it you're getting to know that and all you definitely want to build some projects on your own not school projects build your own projects using these languages like build build a cool website build a cool full-size web app build a cool mobile app build a cool whatever whatever you want and then just put these into a portfolio have try to have like one big project that you work on for months and once I can do something amazing and maybe some small ones whatever just have something together so that you can actually apply everything you've learned and actually get the job to make this useful unless you're just doing it for fun then yes through the resume screw the job just have fun coding but that's pretty much it for the three languages that I think you should learn first in that order so let's go over a quick quick recap all right so the first thing we should learn is Python alright it's very very easy and clean to use there's nothing you have to worry about anything very high-level you can implement things very quickly you can do leak code you can get jobs at Fame and stuff you can do web development okay you can do data science you can do numeric stuff and like number crunching with Python it's great okay so definitely that first and the second language you want to learn is definitely JavaScript but you need to learn HTML and CSS before that learn it in that order that makes the most sense and the reason is because 50% or more of all software developer jobs are web development jobs and javascript is the language of the web so you are gonna want to learn how to make full stack web apps with javascript and everything okay there's a lot of frameworks great frameworks you can do everything you want with JavaScript and it makes a killer combo with Python and then third is jobless so that you gain a better deeper understanding of how computers actually work but not too deep so that it's like boring and nasty and too confusing but just enough to sell you that you're aware of what's actually happening so you're not just like hey run program make program you actually have to go into the details to understand stuff plus you can get a little bit of mobile development in there okay and then all the other stuff I would mention like algorithms data structures version control what else did I say command line dependencies api's and resume writing and portfolios okay so those are all very important things oh and compiling and stuff too and like all these ideas you need to know all these things to be equipped to be a software developer so with all that said that was a lot of information I'm glad if you got to the end but now you're kind of equipped with the context that you need to become a software developer and to kind of just pursue your own path just take this information and just start start with Python if you have a Mac it's already downloaded all right or go to the website and download Python 3 Python 2 is going out of there like not continuing support soon so just go to Python 3 figure out if that's downloaded you stackoverflow or something that's a website where community developers can interact and ask questions they did a lot of good quest a lot of good answers there you just start okay\n"