I have never had an education. All of my work, and all I am doing today is through countless working hours spend on teaching myself and learning through practice.
When I got into programming and making websites, I thought the basic understanding of HTML and CSS would be advanced. There were times where I had to learn about new tags in HTML and workarounds in CSS due to browser differences and all. That was difficult enough I thought.
Then we got SASS, which was like a new way to make nested and variable based stylesheets, which made it so much easier to make browser compatible styling. For me on the other hand, it looked very advanced and I was a bit intimidated by that. In my head I was like: “No.. Let’s keep it to the traditional way. People have been doing it this way for years, so I should be able to do it this way too.”
Shortly after I was introduced to PHP. Now this was different and I promised myself NEVER to touch a PHP framework or library, cause I didn’t want to commit myself to another standard which would limit my capabilities in other areas. This was a really good decision, as I got some really deep understanding of the language in a relative short timeframe, and at the same time I started to understand some actual developer patterns.
A brief analogy: Before I knew how to make 2+2 equal 4, but after working much more developer-minded I started to understand why 2+2 equals 4. It may sound a bit strange at first, but in basic terms, no programming language knows anything by itself. You have to write parts of the languages to make it understand how and what to do with the instructions you give it later on. So making 2 variables equal a third was me understanding actual syntax, but getting my hands dirty in the developer-world made me understand the fundamentals behind the syntax.
Now.. I did some research. Had a look at some actual schools in programming, and it occurred to me, that as part of the education you have to study computer science. Initially I thought that Computer science was for engineers until I realised that programming also is part of the engineering school. I took a crash course on YouTube in Computer Science and I will let you in on a little secret: If you are new to programming and want to create a new career in being a developer – take a crash course in computer science. Everything about coding standards, syntax, best practices etc. all made so much more sense to me after watching that course.
This journey is only a few years actually, and today I am starting to learn even more new ways of working in programming. At the moment I am teaching myself more extended knowledge of working in Git, I am teaching myself the usage of Docker, learning how to be more productive using the Command Line Tool, and recently I was introduced to Rust, which a completely new ball game for me. I am considering skipping on Rust, not because I wouldn’t like to learn it, but I am not sure if it can be of any benefit for me at the moment. Maybe some day I will need it, but until then – it will stay in the back of my head for the future.
When looking at it like this, it may seem like a lot, but in reality, many of these concepts and languages share a lot of similarities, and I believe that once you learn one language, you can easily learn another.
If you are a developer or consider becoming one, I would recommend you to choose a path or direction to follow and use that as your initial gateway to the world of code. If you want to build mobile Apps, it may seem ideal to learn React Native or Xamarin or something which will give you the advantage to develop for multiple platforms at once, but I would recommend you to choose a native direction. Do you want to develop for iOS devices – choose Swift – if Android devices – choose Java.
But no matter the path you choose to follow, I would always recommend you to take a crash course in computer science. It may not be everything that you have to understand, but and introduction to the world behind computers and there fundamental purpose will help you understand ways of programming a lot easier.
And remember – Make Code, Not War! ❤️