What Programming Language should I learn first?

What Programming Language should I learn first?

This question came up to me 3 times, first it came from my friends during freshman year of college, and seconds is from my cousin, just before I graduated from college, and just now from stranger in an airport: You know how it goes, waiting for a plane, strike up a conversation, and turn out he actually really interested on computer science, and even consider to change a career to be a programmer, he ended up ask me, the big question:  What programming language should I learn first?

Interesting enough, all my answer is different, and I think the last answer that I made is really weird, that I decide to write something about it, to kind a defend my opinion, but before we reveal my big answer I’m going to walk with you through history of computer.

Language provide an abstraction:

All programming language provide abstraction, abstraction toward talking to machine, you see in the beginning people use assembly language which is small abstraction of the underlying machine, and then after that came to birth many so called imperative language (Fortan, Basic, and C) which were an abstraction of assembly language. These language are big improvements over assembly language, but their primary abstraction still requires you to think like computer.

Lately a lot of programming language try to distance themself from machine, and go toward making an abstraction of the problem that you try to solve, and with that a concept born, which called object-oriented, object oriented try to view the problem in real word as an object, a chair is an object, a mug is an object, and each object have a state, and behaviour, like mug have behaviour to hold a liquid, and through the programming language we model each and every object into computer, so that we can solve the problem being given.

The analogous would be cooking a steak, the object you need, would be: a steak, an iron-cast pan, an oil, and you change the state of every object, you make sure that the iron cast state is hot, and you made this object interact with each other, to produce the perfect steak, and given a same object in the same state, you are guarantee to make the same steak every time.

The first time this question came up to me during my freshman year, my answer was C, well at that time, that was the language that I was given, and I would argue that learning C would give you a good understanding of the machine that you are talking to, and it would somehow give you a confident toward the thing that you do.

Couple years later, the same question came up just before I graduate, at that time I was really into Java which is really good to be use for Object oriented programming, so you guess it my answer at that time would be Java, and I would argue that because what programmer do is essentially mapping a problem from a real world to a machine, what we really need for productivity is a good language that can help us easily modelize the real world problem to a machine, and Java is absolutely good at that.


But now, if you ask me this same question, my answer would be: “I don’t know”, I’m stunt because I cannot really give you one,  you see just recently I know something called functional programming which is a totally different beast with Object Oriented, introduce by programming language called Lisp, have been around since 1958, and I have no idea of it, because on my whole life I’ve been doing Object Oriented. This get me that the first language you learn is the door, that would bring you toward the world of Computer Science, and I can’t bare to give you the wrong door.

What if when I told you at year 1999 to learn RPG, instead of java, and if you browse for a job (at least in Indonesia), their hardly any company mention RPG, but there is a lot of company mentioning Java.

Of course it would be lame, to end this post without the definite answer, so I would give you one:

Kotlin

So my answer was surprisingly not at all the language that I’m confident to work with (C++, and Java), well at least not yet, I’m still in the middle of reading  the Kotlin in Action by Dmitry Jemerov and, Svetlana Isakova.

For Kotlin this is my argument: around the time I was graduate, I’m like every fresh graduate around the world start hunting for a job, and in my phone I saw a list of job available, every job I encounter mention Ruby on the Rails, I heard about Ruby on my senior year at university, but it’s never occurred to me to actually learn, at that time my thought was: “Why would I learn something that can be done, with Java” at that time I’m still in this temple occult mind, that state Java is the answer to everything. Well it’s is not, you see the sign of mastery you have with the language I would say, when you realize the flaw of that language, new language come up to cover for that, to give you the new kind of abstraction for that specific problem, to make you more productive.

Kotlin is new, well not really been around for 10 years, essentially had the purpose to overcome some bad thing about java (e.g Null Exception, e.t.c), and now is official language for Android Development, so this should not been forgotten like other new language, I predicted It would be around for a very long time, and as investment goes, this is an investment that would yield a great return.

Bonus: Because Kotlin, incorporate Object oriented and Functional programming, you could introduce to this two world at the same time, and even though it’s difficult, when you finish learn about it I bet you would be the super Hybrid programmer.

But that being said, if in the future you ask this again, my answer could be totally different, after all computer science is crazy world that expanse so rapidly, but for now: Kotlin it is.

Taken from my personal blog: https://dickykamarullah.blogspot.com/

要查看或添加评论,请登录

Dicky Kamarullah的更多文章

  • The curious case of Refactoring

    The curious case of Refactoring

    I'm going to do a refactoring today, so test engineer please do make a schedule to test my changes, and my goal is to…

社区洞察

其他会员也浏览了