How to make the jump and become a developer
The Valley of Code
Your Web Development Manual
Sometimes I get an email from someone struggling with making the jump from starting to learn programming, and actually becoming a developer.
The path typically starts with some sort of course.
Maybe it’s a video course. Maybe you just start following some tutorials on YouTube.
You build your first app. You build a second one.
You keep repeating this cycle, going from super simple apps to more complex ones.
The first thing to note is that it takes time, as I wrote in a separate post.
There’s no simple way out of the harsh truth that programming is hard and you have to spend countless hours at the computer, at your tablet, reading books, watching tutorials, searching Google for an answer to your problem.
At some point you’ll feel competent enough. You know how to jump past the blank file, you’ll have a portfolio of applications you can go back and see how you built them.
When you have a problem, you might have had this problem before, so you try to remember how you solved it.
You might have an idea for a project you can build on your own. This is something I highly recommend going after: start with an idea and do it.
For example I am re-learning Swift now, and I’m learning SwiftUI for the first time. I want to build an iOS app, and iOS is a big context switch from Web Development.
I am going through the things I mentioned above.
I am watching tutorials for a few hours every day, and the rest of the day I am working on the sample apps implemented in those tutorials.
How will I go from watching video tutorials online to working on a real iOS app?
I know one day I will have an idea. I already have many written down, but one day I’ll just make the jump and start working on one.
Perhaps a very simple one.
For example I was wondering why there’s no simple “counter” app where you have to count something, so you just press a button and the app keeps the count.
I might work on that.
I will definitely run into problems and show stoppers. I’ll go back to Google to find a solution, or to the projects I already have.
But I’ll be on the move.
1, 2, 3 simple projects and I’ll feel ready to do something more difficult. Perhaps involving using sensors, or using the network.
Your goal might be to become capable of building apps or web sites. For you, for your friends, for your company.
Or you might want to be hired by a company. In this case it’s hard because companies are usually looking for experienced people. Even for junior positions, they want to see if you already have results.
Assuming you’re not fresh out of school with a CS degree, in which case it’s different. But for everyone else, I suggest 2 things.
First, have a portfolio of your work. Websites, web applications, apps.. whatever.
Ship good stuff. Don’t just half-ass 10 projects and add them to your resume. It’s better to have 1 project you care about and spent 1 year on, rather than many small ones.
Then, make yourself seen. Local companies are always looking for talent. Show up to the events they organize, to the local meetups. Looking for a local company through connections is usually much easier than finding a job online.
Do you have friends or family or friends of friends working as developers? Meet with them for a chat. From small things, big things one day come. Try to see if you have any shortcut to getting in touch with a company.
That’s my suggestion when I am asked for how to become a developer. Things work differently for everyone. Some people just start a project and it becomes their job, on their own, without having to find a job for someone else.
I started by writing on a blog when I was still a university student and when I graduated I immediately opened my company to do custom services for a popular CMS. Online, as I didn’t want to live in a city. Thanks to the blog I already had people asking me for help, so that was my way of starting, back in 2008.
Not the ideal job for me, but then companies got in touch with me until I became a contractor for one company first, then another, then I also started working on my own software projects.