This list of resources might come in handy for anyone who is considering learning how to code from scratch, or like me, wants to get back into things again. Your objective could be
to land a job as a developer,
have a startup idea and you want to build it, at least build a prototype in a low risk way without the pressure and money required to hire professional developers
you just feel a bit technology illiterate and want to acquire basic coding skills just as an interest.
For me it started actually with number 3, that slowly turned into objective 2. Back in the 1980s and 1990s, you could simple turn on a computer enter a few lines of simple code and get a computer to do things. Now there is actually a bit more ‘overhead’ required before you have a basic piece of code running that can take an input and do something with it.
Option 1. and 2. are very different. Being a developer inside a huge organisation, and at the receiving of incoming feature requests by others is different from building a project that is really yours. Option 1 can actually be very similar to a regular admin job (a ‘cog wheel’ inside a big machine).
Thinking a bit ahead, I think that ultimately I will not be the person to keep un coding SlideMagic if it ever becomes a big and successful operation, but I am convinced that it is very hard (maybe impossible) to run a technology company if you yourself are completely illiterate in the world of coding.
So, my starting point was an engineering degree from the early 1990s, where I mainly programmed in Pascal. What is sort of left is a basic understanding of algorithms, functions, loops, and variable scopes, that is basically it.
So here is what happened over the course of a year or so:
After some deviations, I decided on a language: Javascript and stuck to it. Javascript is broadly used, and can be applied anywhere, from front-end web pages to servers. Only one language to learn that covers everything and is modern and fresh.
In my spare time I started reading this book: Eloquent Javascript in multiple rounds. (It is free). First pass to broadly familiarise myself with concepts, notation and terminology. Then to understand it better, then to do some exercises.
I made sure I set up some kind of environment on my computer to write code, save it, “spell check” it, in my case I use the open source Microsoft Visual Studio Code (this is different from the paid Visual Studio that is geared more towards development for Windows).
I made sure I had some sort of project I could focus on to practice my skills. In my case, the first challenge was to interpret presentation files from my own SlideMagic 1.0 system: could I read the file, extract its components and start rendering things on my screen? In this way I could gradually up the complexity: starting with boxes and text, moving to images, and graphs. Doing the actual coding is super important. It is like learning a spoken language, you will never learn if you don’t do.
Stackexchange is your biggest friend. There are millions of people trying to learn how to code, they all have the same questions like you, google any question, and this site will give you the answer.
Prioritise what you want to learn. The mess that is front end web design can keep you distracted for days trying to figure out how to get things to line up on the screen, during this time you are actually not progressing with your coding skills.
To build a web server I followed along with one online video instructor: Academind. (I checked out many). First random videos, then following some of their YouTube playlists for free, then subscribing to their paid Udemy courses: highly recommended.
The development world is full of framework that go in and out of fashion. I actually decided to stay away from them at the moment, and learn the pure approach and not to get locked into something specific.
As I am writing this, I am still learning and you could do too. As a profession, as an entrepreneur, as an interest, or maybe as an interesting project to take on with your kids.
Photo by Belinda Fewings on Unsplash