When I was 8 years old I learnt how to code.
I learnt to code from an old BASIC book that my Dad had lying around from his ZX Spectrum. I learnt to code from a book not through choice but because there were no other options.
The internet wasn’t mainstream yet and it would be a few years before I would hear that familiar sound from a 56K modem.
It was the mid-90s and the computers looked more like beige blocks of concrete compared to the sleek laptops we have now.
I started by creating simple games like, guess the number and some very rudimentary chatbots which were nothing like the AI chatbots we have today.
When the internet finally arrived in my little corner of the world, I was only allowed to use it in 10-minute blocks so I didn’t tie up the phone line and stop my relatives from calling.
At some point, we got always-on internet, still over a 56k modem but it didn’t block the phone line which kept my Mum happy. This is where the fun really began.
I started dabbling with websites. I actually built my first website in Microsoft Word believe it or not.
You can save a document as an HTML page and then view it in your browser. Upload your files to the free FTP server that your ISP used to give you and there you have it you had a website.
I started using other website builders such as Dreamweaver which was Macromedia Dreamweaver back then before it was bought out by Adobe.
Dreamweaver was good but I soon found myself needing to do stuff beyond the confines of the UI. So I started learning HTML and CSS and looking at how other websites were built.
As a kid, I had a habit of taking apart electronics (much to my parent's dismay) to see how they worked.
I took this enthusiasm for taking things apart into the online world as well. If a website had a cool menu effect they were using then I would save the website and then take it apart, deleting the website piece by piece until all I was left with was the code required for the menu.
A lot of the really good effects used Javascript so I started learning that as well. This was before any of the web frameworks like Angular, React or even JQuery came out.
I soon moved on from making static websites and I wanted my code to actually do something in the browser. So I started learning PHP and MySQL and coding websites from scratch. This was about the time that Wordpress came out so I started dabbling with that too.
On the side I was also learning Visual Basic and I used my skills to build an application for my Dad which I later then sold via marketplaces and forums online.
That year I made more money than I could have from any part time job. Keep in mind I was 14 at the time.
As new technologies came out I started learning those too just because I found it interesting.
When I went to university I learnt to code in C and a few other languages and I continued building websites on the side for fun. I studied Physics so it wasn’t a major part of the curriculum.
In my first job out of university I started coding in C and C++, and later started learning .NET as well.
Since then I have picked up other languages along the way and learnt various different frameworks.
So how would I learn to code now, if I could start over?
For one, we now have the internet and a huge number of resources available to learn how to code.
But to be honest I wouldn’t do anything differently.
Throughout learning how to code I never once followed a tutorial. I just built things that I wanted to build because I thought it would be fun. If I didn’t know how to do something I would find out how to do it.
I didn’t have the paradox of choice that we have now around what language or framework to pick, as most of them didn’t exist.
I started learning the basics such as HTML and CSS and used that to build projects.
When my knowledge wasn’t enough to build what I wanted to build then I learnt some more.
This is the best way to learn how to code. Start with the basics and then build project after project and learn what you need to learn to build what you want.
Keep coming up with bigger and better projects and learn more each time.
Not only, will it be easier to remember what you are learning as you are actually putting it to practical use but you will also build up a portfolio of projects that you can show to a prospective employer.
There was nothing worse when interviewing candidates than seeing that the coding test you gave them was the first time they had ever used GitHub (and they put everything in one commit).
It is one thing to say you have experience, it is another thing altogether to prove it.