Don’t focus on computer science or job prospects when starting to code. Try lots of things and follow the fun.
Don’t get me wrong — the fundamentals of computer science are essential. CS has a special place in a programmer’s heart. You’ll need to learn variables, functions, conditions, and loops to code anything. But it’s easy to get buried in increasingly complex topics without actually coding anything.
Somewhere along the road, you’ll need to know what the tuple is, what the difference between a hash table and the array is, or what the most efficient way to sort a million 32-bit integers is. But early on, CS isn’t vital. You need something that’ll drive you all the way — fun, experiments, and curiosity.
I started With the Fundamentals
I used to be a lawyer. Lawyers are people who begin every sentence with “in ancient Rome.” Then they cite some precedent from the 18th century, and when they want to get to the point, they notice (or they don’t) you fell asleep.
Looking for a basic understanding of programming, I dug deep into computer science. I studied algorithms and data structures: looked for big O, recursed obsessively, inserted, and merged lists. I even managed to traverse a tree!
Three months later, I discovered I’m not sure what to do with my newly acquired knowledge. Creating a simple app of any kind seemed stifling.
Then I Looked at the Job Market
I felt like I wasted three months. Now was the time to get real. After thorough research of job offers in my area, I decided to become a back-end developer. The next four months were devoted to databases, ORMs, and REST APIs. I created nontrivial apps and even managed to go to two job interviews that I failed miserably.
It was disappointing not to get a job, but something far worse occurred to me. I didn’t like it. Coding every day, I felt exhausted and irritated. I forgot half of the CS knowledge, didn’t want to do back-end anymore and thought about wearing a lawyer’s suit again.
The Last Resort
After seven months of coding, I did what I should’ve done in the first place. I asked a few of the best developers I knew, like how and why they learned to code. All the answers were quite similar. At first, they were curious about something and wanted to go deeper. They didn’t strive for theoretical knowledge — but to build something. Only after working for some time did they realize a CS background might prove useful.
I wanted to make my portfolio website, so with nothing to lose, I focused on front-end development. After just five days, my first website was online. It was horrible and not to be seen by anyone. That was fun. Then I created another. At last, coding started to feel natural.
To see your application changing in real-time is one of the main advantages of front-end development. With a few CSS properties, you can change the look and feel of the whole app. I enjoyed it a lot, so the new projects kept on coming to my head.
Four months later, I had a job as a junior front-end developer.
Where Should You Start?
There’s no magical formula. Make a website, try to code a mobile app, or use machine learning to decide whether an image is or isn’t a hot dog. If you’re really into that, start with computer science. It doesn’t matter where you start.
The crucial thing is to experiment. Abandon dull projects without remorse. I’m not advising to jump from one project to another whenever something becomes hard. At some point, everything will become challenging. But the difference is how you think about a new challenge. Is it only overwhelming or also exciting? If you’ll manage to finish, will you be proud of your work, or is it just another checkmark on the aspiring developer’s roadmap?
You’re different than everyone else, and your learning path will differ. Start exciting projects; stick to them as long as they excite you. Try many things until something feels right. And then go more in-depth.
Don’t Fall Into a Passion Trap
You may think I’m trying to convince you that you need to find a passion. And that you don’t yet feel passionate about any particular topic. That’s not the case.
Passion is a bloated word. It took me years to discover mine. And I’m still struggling with the very concept. But fun is a different beast — it’s much easier to find. Start coding, and you’ll discover what parts of programming are fun to you. You don’t need to love your work passionately. It’s enough if the thought about the next challenge or project just sparks curiosity.
And remember, you don’t need to be the best programmer with intimate knowledge of CS right away — one step at a time. Become a junior programmer. Build on that.