Which programming language should I choose?

Photo by Max Duzij on Unsplash

Which programming language should I choose?

Hey everyone !

In my previous post, I shared about me getting started on my journey to learn computer programming the right and proper way.
I also said that I will share the programming languages I'm choosing to learn.

TL;DR:
Quick or for hobby/fun -> Python
Build website -> HTML, CSS, JavaScript (in that order)
Build mobile app -> iOS: Swift, Android: Kotlin
Build games -> C# or C++
I want to learn -> ARM assembly, C and C++ because I'm an idiot

Most people suggest to start with Python

It's the easiest programming language to start learning for its familiarity with the human language. And also with other stuffs that makes it easier for any person to start. Plus, as I'm not unfamiliar with computer programming, I can learn quicker. I assume.
If you want to learn programming language to just have fun or as a hobby, Python is definitely the go-to language.

Some suggest C/C++

Not many suggest these languages to start. Although back in university, C++ was my first programming language. I got to say, I didn't even understand it to this day. But learning this mid-level programming languages have their merits.
Especially when it comes to having a close communication between hardware and software that makes it efficient and powerful even with low-powered devices.
And to get that kind of performance, you kind of have to write very efficient codes, which is not easy at all.

Although, with nowadays hardware technology, it almost doesn't matter. Even if you write bad codes, the hardware would run just okay. Maybe it requires a lot more power, but if it runs smoothly, who even cares.

But for people who cares a lot about performance, writing good codes is important. Plus, it is a good practice to always write quality codes. Learning C or C++ can help you with that.

Some say to first choose area of development you preferred

This one seems to make most sense since there is always something that get your attention to start the computer programming path in the first place.

It might be:

  • to build websites
  • to build app
  • to build game

Whichever it is, you can start from there.

  • To build a website, you definitely must know HTML, CSS and JavaScript.
  • To build an app, if you want to build for:
    • iOS: learn Swift
    • Android: learn Kotlin
  • To build a game, you should learn C# or C++

Now, the suggestions here is just the basic ones that I've gained from all the google search. And it shouldn't be considered as a professional advice. All other details of the development is really up to your preferences.

My choice of programming languages is a bit odd

I chose ARM assembly. I know, it's crazy and quite weird and sudden. Why should I learn that?
There seems no actual visible benefits to learn the low-level language. Plus it's super-hard. Allow me to explain.

I love the PC game Roller Coaster Tycoon. It's a classic and one of the best games I've played for long long long hours. One thing I just know about a year ago was that Chris Sawyer built the game with like about 99% in x86 assembly code. Which is INSANE to say the least. I mean, that guy is THE BOSS. And the game itself was so robust, I remember having a very low-powered PC and yet still can play RCT with no hiccups. Truly awesome.

Truth be told, I'm not going to build anything with assembly, let alone build a game. I just want to have some understanding about how computer works. And I chose ARM just because I love how Apple did with the M1 chip. Again, I'm not trying to be an expert in assembly or ARM. Even after learning it, I might not be able to understand it at all. But at least I can learn to appreciate it better and try to be a better coder.

What other languages I want to learn

I want to learn C and C++. I've read some articles and most of them say just about the same thing. It helps you better understand how computer works, how to better communicate between hardware and software. Hence, you write better codes.

I know it's kind of not productive learning low and mid level languages when you have all kinds of high-level languages that can help you write codes much much faster. After all, we use these languages as tools to build stuffs to help better people's lives, not to flex those codes.

But I don't want to be the kind of person who can't appreciate the early technologies that made it possible for us now to build better...well, technology.

No rush

I don't have any plan to work for other people anymore. Neither to have a job nor doing freelance. So I don't think I need to pick any popular or high-demand programming languages. I'm all about building my own startup.
However, I don't have any idea whatsoever. Not an original one at least.
Maybe I want to build web apps, or mobile apps or both, or maybe even something completely different.
Since I'm not in a rush to start, I think I might as well learn programming the hard but effective way. I might have some ideas along the way. We'll see.

It's like driving a stick shift (manual transmission car)

I've learned to drive a stick shift because I love it. But almost all new cars nowadays come with automatic transmission. And because I can drive a stick shift, it was so much easier for me to drive an automatic. I mean, it was almost effortless.

I've read this analogy before from lots of people. In a way, by learning programming the hard way first, you can pick up any high-level languages pretty quickly in the future, almost effortlessly.
It's like, because you kind of know how it works, you can adapt faster when something changes.

Conclusion

I know it is kind of crazy, probably not a smart move to choose those programming languages. But I really do want to give it a try. Maybe I can do it, maybe I can't. Either way, I learned something.
So what is the first programming language you've learned or want to learn ?
Do you think I made the right move ?
Share your story here.

Until next time. Peace.
pC