What Programming Language Should I Learn First?
Now there are a ton of computer programming languages for you to choose from. You have Python you have C, you have C++, SQL, you have C#, you have Java, Swift, and the list goes on for ever. However, my point is not to sit here and overwhelm you with the number of languages that exist, but it’s important for you to understand, first of all, why the languages might exist, and second of all which language should you start off with first. Which is actually the most important question for you. I will give you a few tips that should help guide you in the right direction.
Okay, so if today a human being walked up to me, who did not know the concept of language, let’s say he walked up to me and he knew no languages whatsoever. What language would I like to get him started off with? I’d be like, “Definitely not Japanese”. That’s one language I probably wouldn’t want to start him off with, simply because it’s a little complicated. A little bit more complicated than say Spanish or English, which are on the language difficulty spectrum, they’re on level one. At the same time if you think about this, human language, like English and Spanish, you can’t say that just because they’re simpler it means that they aren’t very powerful. They’re spoken worldwide and a lot of people understand them. Even though they’re simple, they’re still pretty powerful. Now let’s transition that over to computer programming, “What language should I start off with?” Well, to answer that question I would say, start off with the simplest language. Definitely do not get started off with a really complicated language.
If you do not know the concept of language at all, and I’m not saying you’re a baby where your neuroplasticity levels are so high that you can just pick up anything. Let’s say you’re an adult and you just don’t know the concept of languages, you want to definitely start off with the easiest language. Because once you learn the concept of language, as a human being, it’s a way to express your emotions and ideas to other people, once you learn that at its very core, you can transfer over to another language, like say Japanese and go, “How do you say banana in Japanese?” At least you can look it up, you have the tools to actually look that up and learn it. In terms of computer programming, if you know the simplest language, then when you go over to another complicated language, you can just go, “How do I do this thing, that I do in this other language that I know, in this language that I’m trying to learn?”
Your research process becomes a lot simpler, and the ideas are all the same. Like for example, the emotions that American people or Italian people or Spanish people express, people in Japan or China express the same emotions, right? The tool that they use, that’s a language syntax, the specificity of each language might differ, but at its very core, we’re still trying to express emotions of sadness, happiness, cherish, hopefulness, etc. Computer programming languages, you’re trying to express ideas to a computer so it can translate it for you. It’s a really smart friend that is right there, who’s listening to you, you just need to speak to him. Okay, now I want to talk about what languages maybe you should not start off with.
I would recommend that you not start off with C or C++, or C#, pretty much any of the C languages. The reason is because their syntactical difficulty level is much, much higher. You have to worry about each little tiny detail or what you’re saying to a computer will make no sense whatsoever. Not only are you bogged down by the conceptual difficulty when you’re first learning computer programming, you’re also bogged down by the syntactical difficulty. Which is literally how you’re typing something, it needs a curly brace, a semi-colon, or a squigly bracket. Almost like, if you’re writing English and you’re first learning it, if you don’t write comma or a period, you’re just not going to get understood at all by another person. That would be very frustrating to you if English was your first language, because you’d be thinking to yourself,
I don’t know whether my problem lies in the fact that my ideas are wrong, the way I’m expressing it, or am I having some kind of grammatical error.
Start with something that has a syntactical difficulty that’s lower, understand the concepts. In computer programming you have a concept of looping over things. If it’s one task that you want to do over and over again, that’s called a loop. Well, if you learn what a loop is in one language, you can very easily go to another language and apply the same loop. If you learn what a if condition is,
If this, then that.
If Johnny worked over 40 hours, Johnny gets paid overtime.
That idea, if you can learn to express it in one language, you can very easily express it in another computer programming language.
My recommendation to you guys, there are a lot of languages to learn, but my recommendation to you guys would be to start off with the language Python. There’s a reason why it’s one of the top growing languages in the world. If you look at most of the top universities, they’re actually making that their introduction language, and the reason why they’re doing that is because of how elegant and simple it is. Now, don’t get its simplicity confused with the myth that it is not very powerful. Remember, Google, Dropbox, Pinterest, Reddit, Instagram, and I can go on, but those were all built off of Python. Even BitTorrent. All of these things were actually built off of Python. YouTube was built off of Python.
“Python where we can, C where we must.” - Sergey Grin
Which means we want to use the C programming language where we have to, and Python programming language wherever we can because of its flexibility. Currently, Python is one of the top most growing languages.
Why you might want to learn C or C++ maybe based on the speed that you need, C is really known for its efficiency. You might want to learn those languages if you’re working in say, you’re doing an algorithmic trading, where you have to make each trade within in a nanosecond, or you’re making thousands of trades in nanoseconds, right. You need something that’s really freaking fast. C might actually be a really good idea, or C++. Linus Torvalds hates C++, he loves C, so that’s why I keep saying C first.
Java probably one of the same reasons, video game design, a very popular powerful language, android applications, Java’s very powerful. Okay, guys, hopefully that gives you a little bit of an overview about different languages and why you should pick one of them.
I would say start off with a very simple language, Python would be my go-to choice for you. I actually have a course called Learn Python that you guys can start learning from right away. Here is the first video you can watch just incase you are on the edge about this one.
I will conclude this blog post with the following Q&A.
“Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities”. – http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext
I hope this offered you a more in depth perspective of what language to start off with first. Please feel free to continue researching so that you make sure you are making the right decision before starting out your career in software development.
Once you are ready to start… Enroll in my Learn Python course. It offers programming videos, tutorials, written problems, written solutions, projects, and video solutions as well. This way you do not have to get stuck at ANY point. We also have a tight knit community so that will help make sure you really are never stuck on any problem.
Please let me know below… What are your thoughts?