Eventually, you decide to try this field where people pay you money to sit all day in front of PC and type code. Nice, let’s break this down.

Computer science is a HUGE field and you must decide which path to take. If you are a complete beginner you could take anything, because any initial knowledge you get is valuable. Let’s say you choose Native Android development as I did 5 years ago. In the beginning, what bugged me the most was where to start!? No connections, no guidance no nothing.

The only way to learn concept is to apply theoretical knowledge. The most closest path between theory, and the real project is the course. Take a course or a bootcamp and code along with it. You won’t understand most of the stuff but you will write down all the terminlogy and then search for it later. After finishing the course, immediatelly start building your own project, this is the most important step, because you will end up in a lot of errors and be forced to google every minute. At first, it will be painful to google all day but as days goes by you will be more fluent in language which you are working on. It would be intuitive to learn all the concepts and watch dozens of tutorials before starting building something new, watch out, this is the worst trap you can fall into!!! Terminology wise, it’s called “Tutorial hell” where one watch tutorials all the time and knows nothing.

The moment you start building your own stuff, you’ll realize that you don’t know nothing. You must hang on in this period which might be 1-4 months if you are complete beginner. Keep going, don’t lose focus! The obvious question would be: Where to find ideas for real world project?

I suppose you have a hobby, or at least interest in something. If you don’t, first get it and then start programming because software is just a tool for building solutions for people. Extract anything from your hobby, in my case I was beekeeper back then. My ideas was to keep track of my beehives, and have a todos inside the app. I am sure you can find something, even it sounds silly, build the product anyway! Keep in mind to keep the product(app) small with essential features only.

Probably you’ll spent several months to a year building the app, and in the proccess you’ll learn a ton of stuff. While building the product, create a decent looking github profile, pdf Resume and Linkedin profile. After finishing your first app, you can go onto the next project. I would build at least 3-5 projects before applying anywhere.

There is one catch here, the interviews. Interviews are totally different from the actual software engineering job. You’ll need to know data structures and algorithms so you’ll need to spend some time on this as well, around 2-3 months learning theory and practicing DSA excercises.

So in order to get the job. Personal projects + data structures and algorithms are a must.

To summarize, the process is hard because it requires consistency, a long hours at your desk banging your head why code doesn’t work. The only way to have a motivation is to have a vision about the product you are building, otherwise failure is inevitable.

If you feel passion to create something from scratch and also provide solution to a real world problem, you’ll succeed! Feel free to mail me if you have questions about this topic, I’m open for sharing my experinece with everyone who want to make a switch. Cheers.