You're probably vaguely familiar with all the facts and demographics displayed on why software engineering is a great career choice nowadays: the highly paying salaries, the ability to work somewhat flexibly. According to Orleans Marketing, 5 billion people in the world own a mobile device, devices with applications which need developers to be built and maintained, meaning the demand for developers of any flavour (whether game, web, mobile, AI) is increasing more quickly than ever before. But enough of that. Anyway, whether or not you know exactly where you want to be in a few years time, in this article (my very first) I will share with you my 5 key steps to embark towards becoming a fully fledged programmer.
1. Fundamentals
At this stage it's fine if you have no prior experience whatsoever in tech. We'll be picking it up here. To start, I would recommend starting to learn a high level programming language such as Python 3 or JavaScript as they provide a large abstraction over what goes on under the hood in the computer, so you can spend more of your time solving challenging problems with code, instead of having to reinvent the wheel each time you program.
SoloLearn is a completely free app where you can learn the basics of almost any programming language.
Here you can go through step by step lessons to help show you the basics of the language, such as data types, operators, up to more advanced concepts such as data structures, error handling, and Object Oriented Programming (OOP). Moreover, it gives you information which you can apply to any other programming language you decide to learn in the future. And throughout your learning there are small quizzes to test your knowledge and move on to subsequent lessons. What's more, at the end of your learning journey you get a certificate with your name on it, cool!
2. The Editor / IDE
After using SoloLearn for a while, you may have come across the Code Playground where you can write programs and test them, but there are also a whole range of other tools out there designed to help you write code efficiently. That's where editors/IDEs come in.
A code editor is a piece of software which provides you with the basic tools needed to write a program quickly. It includes nifty features such as syntax highlighting (highlighting code in colours that help distinguish key terms from string literals), undo/redo and auto-formatting (which helps keep your work neat and tidy).
An IDE, on the other hand, is like a code editor with superpowers. It provides all the features you need to develop software such as a robust GUI, auto code completion, a debugger to step through the workings of your code, a compiler/interpreter to run your code, plugins to extend your work environment and version control to keep track of changes in a project.
At times, the features of an IDE are very extensive and can consume lots of memory, with lots of features that (at this stage at least) you wouldn't be using all that often. Therefore, I would recommend sticking to a code editor such as VS Code from Microsoft, Atom by Github, or Sublime Text 4. Take your pick (personally, I'd go for VS Code).
3. Exploration (small projects)
Now that you're acquainted with the workings of high level programming, and you've selected a code editor to work with, now you have the liberty to start writing your own real programs. For this though, make sure what you want to do is very simple and straightforward, as in this stage you should be jumping between small programs to gain experience with the language and to exercise different features. You definitely shouldn't be spending more than a month on a single program. Also, don't be afraid if you ever feel stuck on how to do perform a certain task, the chances are there's a Stack Overflow post online with the exact same thing you're looking for.
Here are some ideas to get you started:
- Stopwatch/timer utility
- Command line games (quiz, rock paper scissors, guess the number)
- Cipher text generator
- Joke machine
- Simple virtual assistant (printing time, weather...)
- Currency conversion tool
4. Branching out (large projects)
Once you've gotten used to the way your code editor/IDE works, and you've gotten a couple small projects under your belt, you may be wondering when you'll get the opportunity to develop software under the different 'flavours' as I mentioned previously. You can start to research into different areas of computer science, such as AI, database managment, and game development. For example, if you had been getting very familiar with JavaScript, I would encourage you to start working on a web application like a todo list app, a personal portfolio page, a timer app, or anything involving you having to research other topics and spend a bit more time completing. Sample topics to research for JS, for example, may include frontend web development with HTML, storing persistent data with localStorage, or using frontend frameworks such as React JS. But to help find information on a certain area, I would recommend doing a video course on YouTube (for example Dan from The Coding Train has very good quality tutorials on what you need to know, and Tech With Tim has some great beginner-friendly series on his channel, so check them out). Also, you can browse the list of CS50 courses available on EdX which are completely free, and teach you to solve challenging problems each week, with a final project at the end of each course where you can showcase your newlyfound skills on your own project.
5. Community service
You're beginning to become a very well-rounded programmer: you are pretty much an expert at your chosen language, and you've embarked on multiple side projects. At this point, if you haven't already done so, you can begin to start becoming active in programming communities by contributing to open source projects, and being part of forum discussions. Some good places to start would be with Git and GitHub, and once you're really confident you may see yourself answering some of the questions on StackOverflow.
Conclusion
With everything being said, you shouldn't hesitate to quickly become a master in the field of software engineering because, like most things in life, the key is to keep learning and keep being exposed to new information regularly, making sure to put what you learn into practice.
"One hour per day of study in your chosen field is all it takes. One hour per day of study will put you at the top of your field within three years. Within five years you’ll be a national authority. In seven years, you can be one of the best people in the world at what you do" - Earl Nightingale
So if you made it this far, don't hesitate to tell me what you thought. And feel free to comment on what stage you would currently be on in your beginner journey.