Software really is a beautiful thing.
We often take the magical applications we use every single day for granted. Chances are that if you are reading this, you are curious on how to make your own, but you find the dozens of languages and frameworks intimidating. I hope to guide you through the SE world through this blog post, and clear up the misconceptions one may have.
I for one, have struggled to know what kind of developer I wanted to be when I first got exposed to the idea of writing code as a hobby. There are so many avenues and specializations one can take. I always pictured a branched tree or void-black tunnels.
One can delve into the colorful branches of web/app developments, where you work with languages focused on delivering a good user experience.
Or the nitty-gritty leaves of Hardware API and OS development, where you would be expected to write code that will be deeply integrated with the idea of how the machine itself works.
Or just general scripting, where you could exert maximum control and efficiency over computers.
There are 4 types of people i meet, who express interest in learning how to code.
“I just want to learn to code, as something I can just put my time in bruv”
you have come to the right place! There are plenty of good programming languages that you can learn that will look good on a resume, and not too difficult at the same time.
The general advice would be to learn the python language. It is super easy (I am not exaggerating, it is almost like plain English!). It has an amazing community with super friendly and active devs, very versatile, and you can use it to do 90% of tasks on a computer.
Action tasks: - [ ] do your own research about the python language - [ ] watch some YouTube courses on it (any will do, most are excellent!) - [ ] code a small project (a simple calculator is a great first task)
“I love video games, how do I make my own?”
Gaming is a lovely bridge way to learning how to code, and it is actually one of the more fun parts of the ecosystem! Making a video game is a childhood dream of many, yet to be accomplished.
The best place would start would be in a game engine like Unity, Unreal Engine, Godot or Snowdrop. The tools don’t matter as much in this domain, rather your skills and how you think of objects in space ✨
It would be nice to know a bit of physics or math (don’t let that throw you off! It’s pretty basic), along with learning the language of your engine (I found the more important ones to be C#, C++ and Lua)
All you have to do is a lot, and I mean a lot of tinkering. Everything is a lot more visual, so chances are, if you are a beginner you would enjoy it much more.
action tasks: - [ ] download some game engine Software - [ ] learn to write basic code in your Language - [ ] make a simple block game where you get more points the higher you jump - make a simple 2d platformer game
“Websites are cool… But googling ‘web development languages’ makes me want to pull my eyes out”
Here is the simplest advice I could possibly offer. Know the basics, and know them well. It would be much more fruitful to know how to interact with webpages/apps very well, rather than knowing 30 different frameworks at a surface level.
If you are just starting out, it would be a good idea to acquaint yourself with the holy trinity of web dev, which are HTML, CSS and JS
HTML — The markdown, skeletonof the webpage.I It isn’t really code,, butmore of how the webpage interprets how it should look like CSS — mainly design oriented instructions that will be applied on to the webpage JS — the language that gives the webpage life, very versatile and is often called the “brains” of a website.
action tasks: - [ ] learn the basics of web development - [ ] create a small portfolio website, put whatever you want in it (you can send me screenshots over on my discord 🙂 )
“I want to learn to use my computer to its maximum potential, with a broad perspective of most languages”
I absolutely love to hear this, literal music to my ears! Congrats, you have the mindset to become a software enthusiast! Welcome to the club. This path will be more chaotic than the others that I have just mentioned, with a lot of twists and turns… But do not dismay. You will learn quite a broad scope and have a lot of fun epiphanies along the way!
The best thing to start of with is a fairly simple language, that gives you a solid foundation on how computers really work. Great picks are C++, Java and C to some extent. If you get really solid in one of the above-mentioned languages, you will find yourself having a broad foundation on integral concepts and paradigms in the software community Namely, OOP and the objects plays a huge role in our modern ecosystem.
Once you have got some kind of grip, create a lot of projects and expand to multiple languages and concepts! I consider myself language fluid, and strive to be able to write decent code in any high functioning language. You could set a similar goal and consume a tonne of information that gives you a wider and more practical knowledge.
Action tasks: - [ ] Learn the basics of a Language - [ ] Write some code and show it to a community/individual (my discord DMs is perpetually open) - [ ] Learn to automate a task on your computer that you find annoying - [ ] Learn more about how a computers memory works