Reverse-Engineering Your Path Towards Software Developer
When you’re learning to code, the amount of information out there on what to study is overwhelming. Let’s use the reverse-engineering strategy to short-path your journey.
Or, you know, you could waste more of your time collecting tutorials and courses which lead you down more rabbit holes which lead to more tutorials and courses.
Unfortunately, I’ve met too many developers who are basically in the same place after years of learning from using this method:
The learning hamster wheel of death.
This is scenario is all too common:
- Purchase tutorial
- Get introduced to a new concept you don’t understand
- Do I need to know this?
- Purchase another tutorial
- 🐹
Using the reverse-engineering strategy we can simplify our path towards software developer.
Here’s how, step by step:
Step 1: Identify the Goal State
Would you start a long journey without knowing the destination?
Of course not.
The problem is, you’ve been told your destination is a job.
Your real goal is becoming a person who has the potential to be hired.
So who gets hired?
Software engineers who can build and deploy safe, secure and scalable applications.
That’s it?
Simple but far from easy.
Step 2: The ONLY Project You Need to Build
At a high level you need to be able to build a project that satisfies the following requirements:
- Publicly available at a dedicated URL
- Has a backend with some authentication
- Uses a database to persist data
- Responsive front end (looks good on mobile and desktop)
- Leverages continuous deployment (when you update the code, it deploys to the cloud)
- Has some unit tests
Notice I did not mention any technologies here.
You can mix and match whatever tech you’d like. Here’s what I would strongly suggest:
- ReactJS/NextJS for the front end
- Mongo or SQL for database
- Node/Express for backend
- AWS or Render.com for backend deployment
- Vercel.com for front end deployment
- Git/Github for version control and continuous deployment
Step 3: Fill in the blanks
This project can be anything you can imagine. Hell, a TODO app can work here.
The hard part is learning just enough to get to the next stage.
In order to use React, you need some JS knowledge.
Before you can deploy your app, it needs to be stored in the cloud using Git and Github.
To make your app responsive, you need to know HTML and CSS.
With your end goal in mind you can keep focused and avoid the rabbit holes.