Learn how to code

My journey

For me it began in 1991. My parents bought a Commodore Amiga 500. It was exciting to use this computer. It had a mouse to use the GUI, which was very powerful at this time. The Amiga had real multitasking and very good graphics. With the computer there did come some manuals. One was about the Amiga and the other was a learning book about “Amiga BASIC” from Microsoft. I began to read the BASIC book and find out how to program. My first bigger project was to write a GUI with buttons, text entry fields and so one. I did write a Tic Tac Toe game which used my GUI elements. I did use this design for my L1VM SDL 2.0 module. It looks like this old Amiga GUI buttons.

There were some computer magazines about the Amiga. They also had cool program listings in it. That was the programs source code printed in a tiny font. You then could type it in into your editor and compile or run it. I did find a Amiga BASIC program how to solve a Rubik’s cube and other stuff. There were also C programs printed. And I started to find out how to program in C. I learned that a C program was a lot faster than Amiga BASIC. But you had to be careful not to mess up the Amigas memory. There was no MMU in the Motorola 68000. So the programs running on it were not isolated from each other. And if you did a mistake the whole operating system crashed!

There was also a magazine called “Amiga Plus” which had a floppy disk on the magazine. They had a two part series with the C compiler from Matt Dillon. On the first magazine there was the compiler and on the second the libraries. I compiled my C programs with it.

In 1998 I did go back to school in a “technical and media” class. It was my first contact with the internet in school. I was hooked and bought a modem for my Amiga 500. I did upgrade my A500 with a turbo card with a 68020 CPU and 8 MiB RAM: Viper 520 CD. It fitted inside the A500 case and replaced the 68000. It had a mounting place for a 2,5 “ HDD, which I had also. The HDD had a capacity of about 240 MB or so, if I can remember right. I did put an CDROM drive in an external case and put it on the left side. It connected to the turbo card by an IDE cable. There was a dial in program “Miami TCP” which I used to connect to the internet. There was a huge software archive called the “Aminet”, which exists still today. I did upload a few programs. One was a Amiga BASIC Tic Tac Toe program. And I did port some other programs to the Amiga.

In 2000 I did use Linux on my PC as the main operating system. I used laptops with Linux too. I did continue programming projects. In 2017 I did start my L1VM project on GitHub. I did write my own VM, a compiler and assembler for my own programming language. In 2020 I did successfully finish two online Coursera courses “C++ programming for C programmers” part A and B from professor Ira Pohl at the University of California, Santa Cruz.

Now I got a job as software developer in a startup. I will join as a trainee in a few weeks. Maybe I have the chance to begin as a CS apprentice in September. It would be great!

How to start

My first advice is to choose one programming language to start. That is right, one. You could choose Python or Java Script for example. There are lots of tutorials in the internet. One site I recommend is www.w3schools.com. You then should begin to make your own projects. Begin small, write something useful for yourself. Sooner or later you will come to the point to learn new things while coding your project. If you master one language well you can choose a second one. And learn it much quicker than your first. You will notice that the theory behind the programming languages is the same. In every language you will have some kind of variables and the math functions will work the same. If you understand the underlying concepts you can learn any language.

You should create an own homepage with a portfolio of your projects. And get an account on some of the open source hosting sites like GitHub for example. Put your programs there. If you try to get a job later you can show your portfolio to the HR people. If they notice that you already have knowledge about programming, your chance to get hired is a lot higher. I do impress people with my L1VM project. And the fact that I created an own programming language, a compiler and assembler. If you are more advanced in learning you can try out more difficult things too.

I hope I can help someone with my tips here. Have fun!