How to become (learn hacking) a linux professional in a few years - the balanced beginner guide: (Meaning it is to achieve intermediate level, to be able to start with some of this stuff professionally at a junior/intermediate level and then going into further/deeper education of youself while already being professionally busy with some of this stuff).




Ok, on a second tought i realised that my level of expertise is not on the level of real world famous programmer. Im just some multilingual, not so usual maybe, tech support / IT professional guy. Trying to learning some programming. But i do know, have read, enough already to understand. How much probably Lisp is better than even Perl. And that Larry Wall, while summarising the Peter Norvig's article. Made a mistake of suggesting to learn Haskell instead of Lisp. Which is really a Perlers bias. Lisp is really so much better than Haskell. Oh lol, and just realized that not suggesting to learn Lisp is also a Perlers bias. Haha.

This guide is an attept on trying to simplify / try to make a balance between something explained in the two famous guides of Eric Raymond (How to become a hacker) and Peter Norvig (how to learn programming in 10 years). Which Larry Wall also summarises on youtube. I do generally agree that mastering subjects requires dedication. But isnt hacking all about optimal price qulity realation? So, yes, im cutting corners. And that reduces the quality. But it does increase the quantity/productivity, probably. And remember, that worse is better. :D

So as it seems there are three to five steps likely appropriate for your Information Technology literacy:

(this is here like learning to eat some hard food / hardware)
Step 1: Here im not completely sure, depends maybe on your own interests, but one of the two possible choices can be to learn about history of computing by aquiring one of the Retro computers (a la C64 and/or Amiga) and play with it (if you havent already had one as a kid). (Visit some demoparty:)). Or the other possibility is dive somewhat in the Sysprep/DISM stuff. And or even combine it with some virtualisation. But for that you better start usind Linux/Unix, thus the next step. Probably also somewhat achievable in around a year. Or maybe get a refurbished thinkpad and put an ssd in it. This is just to good how cheap they are on ebay.

(this is like learning to walk in the IT world, one step at a time, one graphical user interface at a time).
Step 2 Operating Systeps : First and foremost is it quite an enriching experience to start using Linux(/Unix(OSX)). Like Ubuntu(Mint(/Fedora(Korrora))), in the end probably Arch(Antergos/Manjaro). (No we are not going to dive into Linux Kernel programming and / or Filesystem/Compiler programming. So the first corner we are going to cut is - we are not going to start learning C programming right now. To specialised. Possibly you can familiarise yourself/get used to it/start feeling comfortable/at home, with one or two of the most popular Linux distributions in around a year. As a minimum. A good book for starters is "In the beginning was the command line" by Neal Stevenson.

(this is like learning to talk)
Step 3: That itself can be separated in two steps. Depending on howmuch time youd like to invest. (Good investitions guarantee increased return of investement right). So, looking from the one side/easier perspective, i could say that in the modern Web/Cloud based Internet. The components of the LAMP stack would be perfect. This means JS/PHP/MySQL on Lamp, probably Raspberry Pi testing server. Probably aslo achievable in somwhat around a year or two. You see in total it makes around three years.

(and this is probably like learning a second language)
But if you would like to go even further. And really start learning programming. I mean like programming in a general purpose scripting language. Which makes this quite somewhat easier than many years (around the 7-10 years that Peter Norvig speaks about). Then in another few years you could learn some JavaScript, Lisp and Ruby for example. Why JavAscript? Because its the most accesible, most popular, general purpose, multi paradigm, scripting/programming language. Lisp because its THE ultimate language between languages. As Unix is the Ultimate system of systems. There even exist similat competing versions in both camps. Like BSD vs Linux debate. Is there the same with Lisp - its Scheme vs Common Lisp. And in the end Lisp will teach you to program in JavaScript as a functional language i suppose. Not try to make Java out of JavaScript and fail. And Ruby seems just to be the ultimate language of them all (Acceptable Lisp i mean, saying it in the words of Peter Norvig). Of course, this final advanced step will increase the study time to another year or two. Making it already nearing around five years.

Perfect books to start with this final part are the Land Of Lisp and the Eloquent JavaScript.

Yours, Blu3h4t