Choosing a Programming Language in 2017

Was originally posted on my wordpress blog: Acme Coding - few tips, few tutorials, few surprises

It’s a high time for computers and they are really taking over the world. Those who want to be a part of it can start with learning the language of computers. Right now, I can suggest you two languages that you can learn and get benefited.

Now a days, the web is really very popular and everything is on the web. So unless you are very much interested in the nifty internal details of how everything is working inside the machine, you can stay at the top make web applications and websites. Want to develop web applications? Go with JavaScript. Now you can ask me why JavaScript?

Because it was made for the browser. Unlike other general purpose languages, JavaScript was primarily built for the browser. With time it evolved and within the span of 4-5 years it has got its own big ecosystem, larger than any other programming language right now. From the frontend to the backend and even for Desktop Applications using Electron. For example, you may have heard of Atom: a hackable text editor for the 21st Century. It’s made using Electron.

Do you doubt its popularity? See these:

Now how can you really proceed with it?

  • Learn JavaScript.
  • Learn NodeJS.
  • Learn MongoDB
  • Learn React/Angular.

All the above technologies are built on the top of JavaScript. Learn one language and do everything with it.

Book Recommendation:

  • Speaking JavaScript
  • You don’t know JS series

What about non‑web development?

That’s all for the web lovers. Take a long breath and relax a bit. Lengthy text ahead. Proceed only if you want to learn anything other than web development.

Your answer is System Programming! And the best language is none other than C++.

C++ has been there since a long time and it’s all about speed and efficiency. It has evolved to a completely new language which is beginner‑friendly and more expressive. If you see something very complex, fast and efficient you can assume that under its hood, there is C++. Few examples can help you:

  • The widespread success of Java is in part due to HotSpot, Sun’s implementation of the Java Virtual Machine. It’s written in C++ and is beautifully engineered.
  • The WebKit layout engine used by Safari and Google Chrome is also written in C++.
  • Most JavaScript interpreters are written in C/C++ (e.g., Chrome’s V8, Nitro).

Keep in mind:

  • C++ is not C with classes or a superset of C.
  • Learn modern C++ (C++14), not the old complex C++.
  • C++ makes you a good programmer. It is not forgiving like Python. The level of abstraction is much lower. If you’re pursuing CS/CSE, you must learn C++.

How to learn C++

Step I: Beginner books (in ascending order):

  1. Sams Teach Yourself C++ One Hour a Day - Thin, lucid, to the point, few typos.
  2. C++ Primer Plus (covers C++11) – Good for beginners.
  3. C++ Primer (covers C++11, great book) - (Out of print)
  4. Thinking in C++ - Includes internal details.
  5. See The Definitive C++ Book Guide and List for community recommendations.

Websites:

Practice: Don’t skip exercises!

DON’T use the “Let Us” series (like Let Us C++); it’s outdated.

Step II: Data Structures & Algorithms

  • Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss
  • Data Structure and Algorithm in C++ by Adam Drozdek
  • For practice: Data Structures and Algorithms Made Easy

Step III: Coding practice

Repeat Step III as needed, then continue.

Step V: Intermediate/Advanced C++ books

Step VI: Build something

  • Make a real project—something useful to you or others.
  • Learn GUI: Qt for cross‑platform, VisualC++ for Windows.

Compiler & IDE suggestions

  • Do not use TurboC++; it’s outdated.
  • Preferred: Visual Studio (VisualC++).
  • Alternatives: GCC, Clang. On Windows, use MinGW.