Learn A NEW Programming Language FAST! (How To)

Learn A NEW Programming Language FAST! (How To)


Hey, what’s up? John Sonmez here from simpleprogrammer.com. Hey, I just want to give a quick thanks to
one of our sponsors at Simple Programmer which is DevMountain Bootcamp. You should go check them out. The link is in the description. They are a coding bootcamp and they can teach
you web development, iOS development, UX design, a lot of good stuff. I get a lot of feedback from a lot of you
out there that email me have told me about DevMountain, so I decided to check them out
myself. I like what I found. I like their programs. They offer some 12-week intensive programs. They also offer some after-hours programs
which I know that some of you will like. Go check them out. You can see the link in the description below,
DevMountain Bootcamp. A big thank you to them for sponsoring Simple
Programmer. I got a question, real simple question. A lot of people have asked this though, which
is how to learn a new programming language fast. How do I learn a new programming language
fast? This is definitely something that a lot of
developers struggle with. I got some advice in this. I’ve learned a lot of programming languages
quickly, so I’m going to give you some—sort of base resources, first of all. Just for my own background, I am a Pluralsight
author. I did 55 courses on Pluralsight. You can check them out here. In that time, that was about 2-1/2 years,
I learned a lot of programming languages. I learned and taught courses on Go, on Lua,
on—gosh, what else was there in there? The Objective-C. There’s a bunch of them. Dart. There was a bunch of them in there. I had to learn—basically, sometimes I had
to learn programming languages in a week and then teach a course on that programming language
the next week. I just want to give you that background so
that you know that I know what I’m talking about here because I’ve done this a lot of
times and I’ve probably learned maybe 15 programming languages over the course of my career. I can definitely help you here. I’ve got some real good tips for you, but
before I get into that, I do want to tell you one other resources which is a course
I created that will help you learn anything quickly. It’s called 10 Steps to Learn Anything Quickly. Definitely, if you’re interested in learning
something fast, I mean that’s my best advice there. I’ve got a 10-step program that you should
be able to apply that’s pretty simple to learn anything. I’m going to get into the specifics of learning
a new programming language in this video because I think that’s what a lot of you are really
interested in. Like I said, both of those resources, check
them out. The Pluralsight. Check out the 10 Steps To Learn Anything Quickly
Course. Again, you can check those out to get more
in-depth information, but let’s talk specifically about programming languages. One of the best ways that I found to learn
a programming language as quickly as possible, if you already know a programming language—again,
if you just want to learn a new programming language, I’ll tell you about how to do that
towards the end of the video. I’ve got a resource for you, a book that I’ve
written that has some information on that. If you want to learn a new programming language
and you already understand at least one programming language, the best thing that you could possibly
do is that you take something that you’ve written in one language that you already know
and you port that over to the new language, right? If you wrote an application in one language,
can you write that same exact application in another language. It doesn’t have to be an application that
you wrote. It could be an application that someone else
wrote. It’s going to be better if it’s something
that you know intimately. It could be an example. It could be some homework. It could be problems that you’ve solved in
another programming language. Essentially, what we’re trying to do here
is we’re trying to isolate the—from programming, because learning programming or doing programming
has two components of it. The first component is creating the thing,
the design, the structuring, and then the second component of it is the implementation. There’s actually a really good book on this
that makes the distinction between those that actually talks about the implementation called
Code Complete, one of my favorite books. You can check that out. If you haven’t read that book, you should
definitely read that book. Let’s talk about specifically how this relates
to learning a programming language. If we isolate those things, right—because
what you want to do is you don’t want to spend a whole bunch of time working on the
thing that’s not related specifically to the new programming language. If you’re learning a new programming language,
what you want to learn is how to do things in that language. Syntax, the idiosyncrasies, the idiomatic
way to do things in that programming language. You don’t want to waste your time learning
how to design a new program. I think a lot of people that want to learn
a new programming language, the mistake that they make as they say, “Oh, I should create
this brand new project, this new project that I’m working on, this new web application. Let me create it in this new programming language
and I’ll learn this new programming language while I’m creating this new thing.” Now, they’re trying to learn two things. They’re trying to focus on the structural
side and the design side of a new application and they’re trying to learn the syntax and
idiosyncrasies of this new programming language and that just makes things harder. Instead, if you take something that you’ve
already built and you now port that over and you say, “Okay. I’m going to take something I already know
how to do,” the reason why I gave you the reference of my Pluralsight courses is because
if you watch some of my Pluralsight courses, you’ll notice something really common in a
lot of the Pluralsight courses. I created this simple app called Protein Tracker
that tracks how much protein you eat in a day. Just a simple thing when I was tracking my
protein. It’s a really simple application but it has
a user interface. It has buttons. It has some basic functionality that is very,
very simple, but I use that same example in all of the—in a lot of the courses, not
all of the courses. But it makes it easier for you to understand
because if you’ve seen one of my courses and you’ve seen me teach a programming language
and how to implement things and then you see me do it in another programming language—what’s
same between the two is the protein tracker application. You already know how that thing works, then
also your brain makes these connections. There’s a book by Douglas Hofstadter called—I
can’t remember the exact name, but it’s like analogies something of life. It’s a really complicated book, but, anyway,
in this analogies book, he basically talks about this idea that the only way that we
can learn new information is that it’s an analogy to something else. This is very, very true. The only way that I’m able to teach you anything,
the only way you’re able to learn from these videos is because I’m making analogies to
something you are already familiar with. If it’s totally not familiar to you, it’s
going to be very, very difficult for you to learn anything. That’s the whole strategy. You want to learn a new programming language
quickly. Make an analogy from something else. Another programming language you already understand,
another application that you’ve built in that programming language that you understand and
now you’re going to take it and you’re going to reframe it into this new programming language,
and you’re going to have all these analogies. You’re going to say, “Oh, yeah. You know, in C++, this is how we create a
new object or this is how we created a button. Oh, in Objective-C, it’s like this.” It’s just like that. We have this analogy that is going to compare
those two things together. I’ll give you one quick example of me doing
this myself. When I first started learning iOS development,
the way that I did it was I ported my Android application over. I learned iOS development and Objective-C.
Essentially, two things: A framework and a language at the same time very, very quickly
within, I think, probably three weeks because what I was doing was I took an Android application
that had already written and I ported that over bit by bit. By figuring out bit by bit how to do that,
I was able to make these connections in my head and say, “Oh, oh. That’s just like in Objective-C. I do this
just like I did in Java when I try to implement this or this is how I created that class and
I had all of those pieces together.” That really, really accelerated the process
of learning. Just remember that. You implement something that you’ve already
implemented in the new programming language. That’s barn on the best way to learn a new
programming language quickly. Then for those of you that don’t know a programming
language, if you’re just trying to learn a programming language, what I said isn’t going
to make any sense because you don’t have an analogy. You don’t have a frame of reference. Instead, I’m going to point you to a new book
that I have called The Complete Software Developer’s Career Guide. You can check that out. If you sign up there—it may have launched
by now, but it should take you to the launch page where you can either sign up and you’ll
get emails. I have the chapters that are going to be available
for free on my blog. The very first section of the book talks about
how to get started as a programmer and how to learn a new programming language from scratch. The kind of things that you need to know. I’m not going to have time to cover it in
this video, but I just want to point you to that resource. All right. If you have learned a new programming language,
doing what I’ve recommended, basically porting a program over, I would love to hear from
you. Leave a comment below just so you can encourage
people that are trying to do that. If you haven’t already subscribed, click that
Subscribe button. I’ll talk to you next time. Take care.

46 thoughts on “Learn A NEW Programming Language FAST! (How To)”

  1. Great advice!! I'm going to learn Scala using your advice. I've been intimidated a little by it, but will try it now using my Java projects☺👍

  2. I've ported my Python app to Go and Elixir. It is definitely the best way that I've found to learn a new language.

  3. Radioactive FistFoot

    This sounds like an even better idea than fixing bugs. Make an application that is pretty straight-forward but uses a lot of different concepts, and rebuild it in the new programming language. Thanks for the idea, John.

  4. I always try to take on too much at once and get overwhelmed. I feel like I'm wasting my time if I'm not doing something new, but this is welcome advice!

  5. Alejandro Covián

    I would like to add on to this and say that it's always great to do this with simple algorithms. I like solving algorithms in Python, then trying to solve the same algorithms in JavaScript. It's great practice.

  6. Is it possible to get internship in companies like Google,Facebook,Microsoft without a formal education degree ?

  7. In Javascript I have re-programmed my code a number of times to keep up with current trends and at the same time to incrementally improve the implementation based on my gained experience and learning new stuff. I don't think that it is easily portable to other languages. But I would take the concept of my Apps and port them over.

  8. Started with C++ about 6 years ago. Today i would say i could write pretty decent programs in following languages/meta languages: C,C++,Java,JavaScript,Python,LLVM IR, ASM AMD64/ IA64/32. / x86 ,Swift,ObjC,Rust,Php,Wes(private),Ruby,Lua,"Delphi",Arm Asm, Typescript, GLSL(shading language),Metal 1,C++ Cuda(subset), C++ OpenCL(subset), C#, VB. I Personally would say for me it was ways easier to start low level and dig me up to higher level and it gives you all that kind of understanding what you need about your hardware.

  9. My business partner wants me to move away from C++ (Builder) after watching one of your videos, but this is 18 years
    of work.

    He wants me to use other languages and NOT C++ at all. Thing is, this is my core strength for the last 25 years.
    The idea is to sell off a product we have created (we want to retire) but his thoughts is the C++ will not sell and no one
    will be willing to maintain it, especially C++ Builder – it is not a Visual Studio application. I don't know how to use Visual
    Studio. (???).

    The amount of C++ code is huge, enormous.

    Question, should I invest time in a language or project translator? I really can see it any other way, maybe this question is
    loaded since I can't see me writing in any other language, even if it means we can't sell the project.

    The other strategy is to hire younger developers out of school to help in the translation or rewrite effort.

  10. When I learn a new language or platform, I always write a guessing game first. One where the computer picks a number and you have to guess it.

  11. MrRandompersondude1

    John, I wanted to say that generally you would be correct to make the assumption that analogy based learning is the only way to learn new concepts, and while this is not always relevant to programming, one should take into consideration the first principles approach.

    I'm sure someone is thinking the same thing.

  12. Learning a new programming language isn't that hard, however I wanna see some of your real projects using these languages.

  13. Joydeep Bhattacharjee

    That is a great advise and one that has always helped me many times. Except this one time where I was trying to learn clojure. I tried to port this python web scraping app that I had created before. But I could not find a good paradigm of scraping and handling web pages in clojure. So had to leave this in the end. Hoping that I will be able to find some solution soon and resume the project.

  14. That's a good advice "Rebuild the projects you have already builded in the programming language you want to learn". I'm going to build my Javascript projects in Java. Thanks man!

  15. How to learn programming FAST.
    I take screenshot of webpages and vital parts of video tutorials. I store screenshots inside Google Slides which I treat as a notebook.

  16. Learn one language in a week, for teaching to other people the next week. That's how to put courses on the market for 20 $. Maybe my mind is little old-fashioned way, but if I must learn, I want spend money for some complete resource, written by professionals that used that stuff on real project for long time. Buy some Apress or McGrawill book. Those are real resources where to learn from.

  17. As for the sponsor DevMountain, I reached out personally to students on LinkedIn who graduated from DevMoutain bootcamp in iOS program and they said it was a huge waste of time and money. They were disappointed with the program. Same goes for Byte Academy – was advised against doing it. Just passing info along in case anyone else was curious.

  18. Maverick Madison

    learning so many programming languages at such a short period of time, in the end, you can never master or good at any programming languages at all.

  19. WHERE DID YOU GET THAT SHIRT?!?! I made a career change from psychology to computer programming. I NEED THAT SHIRT!!!

Leave a Reply

Your email address will not be published. Required fields are marked *