How To Learn a New Programming Language/Framework

Image for post
Image for post

If you’d run a simple Google Search for ‘How many Programming Languages Are There?’. The search results might shock you. According to WikiPedia, there are more than 700 programming languages that are currently listed, see for yourself.

I get asked these questions/queries a lot,

“I’ve completed, C++ or JavaScript, what should I do next? “

“Which language/framework would land me a good job? “

“There are so many trending frameworks, which one should I learn? “

“I was learning C, but my friend asked me that I should learn Python first, should I go for same? “

“From where should I learn? “

and lots more..

I’ll try to answer these in the best way i can, from what I’ve learnt through my experiences. But mind you, The thoughts that I’ll be sharing here are totally my personal opinions on the subjects. Each person is different and you might have some other opinion, and that’s totally okay. You should always go for what works out best for you.

Let’s Begin.

1. Before picking a language, pick a project.

I’ll tell you my personal recipe, I never start learning any framework/language, just because it is trending, or it has made to StackOverflow’s top 10 list. No.

What I do is, I just think for an idea for a project, sometimes it might take days, weeks to come up with a unique idea that has some real-world application, then afterwards, I break that big project, into much smaller problems. Like database connectivity in a large scale app etc.

Then, I go on for creating solutions for those smaller problems in my head and go searching on the internet for which frameworks/tech stack would be more suitable for solving those problems, and during this research, I also take into consideration, it’s popularity, community support, number of issues, stability, patch releases etc.

The major benefits of this approach are :

  • It’d help you to add some projects to your portfolio.
  • You’ll get to know how to make use of that framework/language in actual production environment.
  • Curisoty is the best teacher, right? Working on a real project will always keep you curious about what more features you can add, etc.
  • While working on a real project, you will obviously face a lot of issues, it’s inevitable! Debugging these issues on your own, is one of the most important skills, that every programmmer should have.

2. You can never learn it fully.

“one can never learn everything about a language”

and this is what should motivate you to keep learning more and more every day.

You can study C++, .NET or any other language/framework for over 20 years, and still discover new things in them, every day. You can be a pro at something, become a quite renowned personality in the same, but there’ll always be more to be learnt.

Just because, you might’ve completed a course on the subject or have a know-how of the syntaxes, does not mean that you’ve completed/conquered that subject.

There is so much more to a language, than just defining variables, loops, classes or structures etc. So, the fact that you or anyone (including the topmost programmer out there) have completed a language, doesn’t make any sense.

3. Conquer the language first, then it’s frameworks.

For an analogy, If you want to learn react, you should have a good knowledge of ES6 JavaScript, similarly to learn gatsby, having a good experience with react is a must.

Mastering the frameworks, without having a strong grasp on the language itself, is just an illusion.

4. C/C++, Java or Python? Where To Start?

Honestly, It all comes down to your use-case scenario,

  • If your top priority is performance, go for C/C++.
  • If you want to play memory-safe, go for Java.
  • If you want incredible 3rd-party support, go for Python by all means.

While python is a way easier language to learn and adapt to for beginners, most of the large tech companies actually prefer people having experience with C++/Java as python is not mainly used in production because of it’s low performance issues.

What would I recommend? This might come as a surprise to a lot of you, but in my honest opinion, if you’re completely new to programming, I’d suggest you to learn JavaScript first! Surprised!? Let me explain.

Highly Versatile

The third party and framework support for javascript is just amazing!

Performance

Embrace the artist in you! 🎨❤️

See, what I truly believe is that

“Programming isn’t just about writing loops, or finding the maximum element in an array, But it is about solving actual real-world problems through code!”

In fact, it is one of the most artistic/creative jobs out there in the world. The more imaginative you are, the more better of a programmer you’ll be.

In mathematical words,

Your Coding Skills ∝ Your Imagination

with JavaScript, you can quickly create stunning websites, cross-platform mobile apps that are ready to be shared with the world in an instant. This gives you a tremendous power to reach out and touch the lives of so many people around the world and actually help them in their daily tasks.

5. From where Should I Learn?

“You can learn more from the internet in six months, than what your college might teach you in a span of 4 years.”

Most of the times, the best way to learn any new programming language/framework is through it’s official documentation. This is the place from where, every course creator, book author themselves learn and write their tutorials.

As a developer, for at least once in your lifetime, you’ll face a problem and the best solution would be to actually read the documentation. And in an industry, where everything is so frequently updated and rapidly improving, being able to read documentations the smart way, is an important skill set!

Still, sometimes the official documentation for a particular language might be bit more eccentric towards technical aspects and a bit hard to understand for beginners, For example, the C++ Documentation.

In those cases, you can always look for free eBooks on the subject, FreeCodeCamp is also one of the places where you can find great quality content for absolutely no costs. Moreover, you can always find tons of resources on the internet, just a simple Google Search will help you.

6. Study some code

That’s why it is important to learn, what is the approach that a language is taking to solve a problem, more commonly known as language paradigm. Go to GitHub and read the code of the pros in that language, how are they approaching any problem.

For example :

Bad — Non Idiomatic Code

Good Code

Idiomatic Code

Even though, both of the above approaches, accomplish the same task, but the latter approach more closely follow the language paradigm of python. This is called idiomatic programming approach, you can read more on that here.

That’s why reading code of other professionals and understanding their approach, can prove much beneficial to you.

7. Don’t Give Up

No matter, how hard you try to avoid this, It’ll happen, what matters in such a state of affaris is how you react to the scenarios. If a topic doesn’t make sense to you, then stop right there instead of jumping to next topic. Rewatch those video lectures, read those notes/books over and over again, till it starts making sense to you.

If it still doesn’t, you can always search for a particular topic on YouTube, Stack Overflow or reach out to a fellow programmer, the programming community is one of the most helpful communities in the world.

If you do implement all the above mentioned steps in your workflow, then you’ll automatically get to know about what should be the next steps. Becoming a pro, in any programming language might take a lot of time, effort and determination.
Never be afraid of doing the same, always keep learning!

That’s all for now, see you in my next article 🤙. Happy coding 👨‍💻

Originally published at https://blog.ishandeveloper.com on June 9, 2020.

Written by

MERN | Flutter | .NET | UI/UX. A passionate learner and obsessive seeker of Computing Knowledge. Checkout my personal blog at : https://blog.ishandeveloper.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store