Written By John Sonmez
Today we're gonna be addressing the question that I get quite a bit,
which is “should you learn more than one programming language as a programmer?”
And in this video, I'm gonna tell you why a lot of you guys are doing things wrong. And that's why it's taking you so long to become a developer or to become successful as a developer. #howtolearnnewprogramminglanguage #howtolearnprogramminglanguagequickly #programminglanguagetips
[responsive_video type='youtube' hide_related='0′ hide_logo='0′ hide_controls='0′ hide_title='0′ hide_fullscreen='0′ autoplay='0′]https://www.youtube.com/watch?v=NAbVQF7qCik[/responsive_video]
Transcript Of The Video
Yo, what's up guys? John Sonmez here from simpleprogrammer.com, and today we're going to be addressing the question that I get quite a bit, which is, should you learn more than one programming language as a programmer? And there's a lot of confusion around this. A lot of you guys are doing things wrong, and that's why it's taking you so long to become a developer or to become successful as a developer and we're going to be addressing that today.
So if you guys are just joining me for the first time, I'm John from simpleprogrammer.com. On this channel I teach you how to level up your career as a developer, how to learn the soft skills, the things that people don't teach you about being a programmer and about life. So you're in the right place. Make sure you click the subscribe button. If you haven't already, also check out The Complete Software Developer Career Guide, it is my tome on developers career. Wherever you are in your phase of being a developer, you're going to find some value from this book. There's also an audio version where I include some extra tidbits of information here. So I got a DM recently from a guy, and he reminded me of this question that I get a lot, which is whether or not you should learn more than one programming language at the same time. The quick answer, no, you should not.
Why? All right. So it comes down to this. Focus. So many of you guys, and I hear this all the time, and a lot of the guys that I coach that I'm helping them to become a developer or to increase their earning as a developer, they are trying to do so many things at once. I hear about them trying to learn this technology and that technology and I'm reading this book and I'm watching these courses, and what ends up happening is that you become overwhelmed and you don't develop any kind of expertise. It's very easy for you to get sucked into the black hole of learning, learning, learning. There's nothing wrong with learning. I'm learning all the time. It's great to learn, but you always need to be learning for a specific purpose.
Otherwise what's going to happen is, one, you're going to become overwhelmed because there's an unlimited amount of stuff that you can learn. If you're thinking that you're going to master programming or you're going to master web development or whatever it is, you're not. There's just too much information. There's too much stuff out there. So that's number one. Then the second thing that will happen if you take that approach is that you will never actually take action. The third one is this, and this is actually probably the most important, is that if you take this approach to learning where you're trying to learn everything about a subject, what's going to happen is you're not going to retain any information. You're not actually going to learn anything because the way that we are evolved as humans to learn is that we learn based on what behaviors and what things are useful to us.
If I give you a bunch of information but it's not useful to you, you're not going to learn it. Just like probably one of the most difficult subjects in school to learn is history. Why is history so difficult? Because you have to memorize all these dates and times and things that happened and it doesn't have any kind of practical application. One of the difficulties of learning history or a subject that you can't practically apply is that your brain is not wired to do that. Instead what you have to resort to is rote memorization in many cases where you're going to study all these notes, and it's really difficult to do. But let me just give you an example. So I was watching this tutorial on how to cut a mango because I wanted to cut a mango.
Normally I buy cut up mangoes, but I bought a whole mango and I was like, “Well, I could kind of figure out how to do this.” And I peeled mangoes before, but I was like, “Okay, how do you actually do this?” So I watched a tutorial and I saw how they cut the mango on those two sides and then be careful of the pit, and anyway, they went through this whole process and when I had seen that video, I didn't have to watch it multiple times. I didn't have to memorize it because I understood it and then I immediately cut the mango, and now I can do it. But the reason why it was so easy for me to learn that piece of information was because it was practical useful knowledge to me.
But for the most part, in many cases, you're not actually applying that knowledge. So what you really want to do, anytime you're trying to learn something, and again, I put together a course on 10 steps to learn anything quickly and this is basically what I teach you in the course. So you can check it out if you want. There'll be a link in the cards in the description below. But the whole idea is that you want to learn X so you can do Y. So you got to figure out what your why is. What are you actually trying to accomplish? Are you just trying to learn a programming language so that you can have the skills to become a programmer and get a good job or get a better job? That's a really weak why. Instead you need to come up with a project, a thing that you're trying to solve … some of the best programmers that I know, when I was really involved in the industry and used to work in the field would be programmers that came from a non computer science background.
These would be programmers who worked maybe a corporate job, maybe they're an accountant or they were working in marketing or something like that, or a scientist and what happened was in order to do their job, they started learning some programming in order to automate things. Maybe they were starting off by automating Excel spreadsheets, or maybe they were crunching some data and so they needed to write an application to do that, and because they learned in that way, they had absorbed that information and they learned very, very quickly, and they became good programmers because they didn't have all this theoretical knowledge. So they had practical knowledge that they applied and they learned very fast. So if you want to learn quickly, the best way that you can do that and I talk about this all the time.
I've got a lot of examples in the book here, talking about this as well, is that you need to pick some kind of thing that you're trying to do. It could just be a project and then you actually start learning what you need to learn to actually accomplish that thing. So a good example of this was when I was first learning game programming, I did some courses, I taught some courses on game programming and I wanted to learn it. I wanted to get into it. So what I did was I started off by picking a game. In fact, the very first game that I had created when I was learning game programming was, I said, I want to create a pong game. Very simple, very simple game.
Not very complicated. You just have two paddles. You have a ball. So I figured out what I needed to learn to do that. So I figured out, okay, how do I display a graphic on the screen? So I had to go and I had to learn that, so then I could put a little paddle on the screen. Now I knew how to do that piece of code and how to implement that. Then the next thing I needed to learn was, well, how do I animate this? How do I actually get things to move? So then I learned about a game loop and how games work. Then I learned that little piece of information and I realized, okay, the game loop goes and then every time that the loop goes, I update the states of the sprites that I have on the screen.
So then I learned, well, how do I take input to actually move that paddle around? So it was a logical progression and I only learned the things I need to learn. Now I didn't learn everything about game development at that point. I didn't know how to make 2D side scrollers or use a 3D [inaudible 00:00:08:02], which was fine, because I wanted to learn the specific set of skills to do that specific thing. Now, later on, when I wanted to learn some more game development, I picked another project. I think one of the next things that I tried to emulate was a Pac-Man type of game. So can I make Pac-Man? It was a whole different set of skills and then a 2D game. What if … a 2D side scrolling game? How do I implement those things?
So the key here, again, really, really important is that when you want to learn something, you need to know what it is that you're learning and why, and the why is the most important thing. So pick something, if you just ask me the question, should I learn more than one programming language at once? Maybe the answer could be yes. But only if you have a reason for it. Otherwise, what are you doing? If you're just studying books, just trying to learn programming, that's why it takes you three, four years. That's why it takes you forever and you feel like you're not getting anywhere is because you're not actually implementing stuff. You're not actually learning for a reason.. You need to learn for a very specific reason and then that stuff is going to stick and then you're going to be able to retain that information and you're going to learn way, way more efficiently.
You could probably learn 10 times faster if you have a good why for it. And part of it is just because the scope is going to be much smaller. If you try to learn a programming language … There was a period of time where I was trying to learn C# or the .NET Framework, and I was like, I'm going to go through every single object in the .NET Framework and learn every single one of those things and I never succeeded in doing that. Why? Because it's too much. And when I actually got good, what I had done was I had implemented some projects. I didn't need all that stuff. I don't need to know all that stuff. A lot of you feel like you need to get all this information, but you only need the information that you're going to utilize and then when you have a problem that you can't solve, when you have new problems that you're facing, that's when you gain new information to be able to solve that problem.
Again, doesn't mean that you can't learn the general gist of things and get a background summary of things that's useful from time to time, I read a lot of books that are on knowledge that I'm not practically applying at that moment and it's sort of just stuff that I'm doing while I'm running. But when I specifically want to learn something, I always have some target. I always have some reason why I'm learning it and that is what makes it so that I can learn that thing faster and that I can be successful at that. So guys, that's it. Let me know if you have any questions. Leave a comment below. Let me know what you think about this subject and how you learn. Do you learn like this? Make sure you check out 10 Steps to Learn Anything Quickly. Again, I've got a link in the description below and also in the cards if you want to get my course on how to accelerate your learning. And I will see you next time.