Advice for people starting to code

21 Feb 2017

This thing was originally written on eksisozluk (in Turkish obviously), then translated at a later date.

I won’t suggest a specific language or anything; no matter what you start with, at some point, if you ewant to differ from people graduated from vocational high schools, you’re going to have to work independent of your language of choice. At that point, what matters is not only the syntax of the language, but also the common libraries etc. You need to be able to act independently of that as well. Learn how to read a piece of documentation.

Don’t trust the people who claim that ‘There’s no guarantee English will be that widely spoken 10 years down the line’, because there is. I can’t talk about 50 years later (who knows what’ll happen by then) but I can talk about 10 years later, in case some other language (a human language obviously) dominates 10 years later, I’m personally going to reimburse the costs of 1 level of language lessons in that dominant language.

Oh I was talking about documentation, being proficient at English (no need to gt obsessive about your accent, understanding people and being undserstood is enough) is kind of like a prerequisite for that. After some point when you’re thrown into a completely alien envionment (language + libraries) don’t keep staring without any idea; be able to write a little bit of code (If the system, environment, whatever is properly documented).

Besides that; get familiar with a unix-like environment. If I had the authority, I wouldn’t hire someone who has never seen any OS but windows, not just as a programmer, but even a janitor in a programmer-dominated office. If you’re rich and have a mac, OSX is a good unix-like. Otherwise, install some Linux distro on your computer. Don’t come crying like ‘Oh but I don’t have a mac and can’t install Linux on my computer’, because there is something called virtualization. If that is a problem as well, get a micro instance in EC2 and SSH into that. Whatever, if you’re rich and have a mac; do you see that app called Terminal? That’ll be something like a second home for you. And another thing; a good package manager (somewhat of an apt alternative) for OSX is called brew. You’ll probably end up needing it.

And then, don’t come looking for advice without completely grokking that unix environment. Know how to use at least one classic text editor (vim or emacs) at least basically. Know how to open, save and close files (the last one’s super important, trust me) on them. I’m not telling you to be proficient in one, just knowing your way around one is good enough. (If you’re looking for advice on which one to use; go for vim. Need to do a little bit of missionary work)

I already told you to be somewhat independent of your programming language of choice. To be someone like that, you’ll need to be experienced with a shitton of languages/libraries somewhat similar to each other. There’s no way that someone that explicitly knows JS, or Python, or C# to not be dumbfounded when they see a new and alien environment. At least be ready for any imperative language.

And one more thing; don’t expect to know everything by heart. Google and Stack Overflow will alwaysbe two very close friends in this adventure.

In the end; don’t start you end up increasing labor supply and driving down wages for everyone :)