Table of contents:
It’s Hard to Figure Out Where to Start
The depth of the trade seems to be infinite, so the question ‘Where to start?’ raised by beginners seems legit. There are other questions like
- ‘How to get a job?’,
- ‘How to prepare for interviews?’.
In this series, I’ll attempt to answer these questions.
Instead, it is an overview/roadmap of the path ahead of you to become a developer on your own.
To give some context, my relationship with development started in my teenage years. I’ve learned HTML and CSS just for fun and curiosity. After that, I built websites with content management systems like WordPress, and that was it. I didn’t take it seriously: it was a hobby and nothing more.
Taking part in a programming school wasn’t an option: the basics are freely available on the internet, and I didn’t want someone to charge me for the same thing I can find in tutorials. I knew it wouldn’t be easy though, but I can say it was fun for me.
I practiced at least 6-7 hours a day.
I worked on hobby projects with React, but after three months, I started to feel the limitations of self-learning. There was nobody to tell me the best coding practices:
- “How do I structure an app?”
- “Which packages should I use?”
- “What makes sense learning and what is merely some glorified sugar coating?”
Maybe I could have figured it out somehow by myself, but I realized that I need to work with people who already have many years of experience, so that I can soak up the knowledge from them. The best way to be around people like that was to get hired, so I started sending my CV to companies. Many of them. Even for positions I was sure I wouldn’t be hired. Why not? If you can get through and be called in for an interview you can already learn from the questions you cannot answer or the coding challenges you cannot complete.
After several attempts, my efforts paid off: I got hired by RisingStack as a junior developer which allowed me to develop my skills a lot faster compared to the time I spent with self-learning. During my first month – like every new recruit – I had to finish the internal bootcamp, which prepared me to work on client projects.
But this series is about what to do before you get hired, so you can get hired.
Acquiring the Engineering Mindset
At least you should have a basic interest in web technologies, programming or IT. It will be cumbersome without that, and anyway, why start learning something that you are not passionate about? Learning how to write code just for the money isn’t a good idea either.
Basic interest is enough for learning the fundamentals and maybe even for getting hired, but if you want to make progress especially from an entry level, it requires extra dedication and effort. This is perhaps the most crucial point about it.
Try to set reachable goals for yourself. Learn something new every day.
Beyond the efforts, the necessary mindset to be a successful developer is also worth mentioning.
These are skills you will have to pick up as the time passes.
One of the other most crucial must-have skill is to know how to Google, a.k.a find solutions to a problem. I’ve seen a lot of people struggling to search for an obstacle that is so obvious to solve with a bit of inspection. There is an answer for the 99% of the problems that a beginner is going to face.
You just have to find the solution and apply it. It’s that simple (at the beginning). If you didn’t find the answer, probably you didn’t search the right way. So start getting to know how to Google correctly, and make a ‘friendship’ with StackOverflow and MDN.
Do not fear making mistakes. It’s part of the learning process.
Let’s move on to the next section.
- Getting started with the web
HTML and CSS can be picked up really fast. Build a simple static website, experiment a little bit. Once you are comfortable with the concepts of these technologies, you can move on..
- Intro to Programming Basics
As HTML and CSS are not programming languages, so it is time to get some theoretical knowledge about programming. There are some books that I recommend:
These books and tutorials should give you a basic understanding of the language.
- Learn using the Command line
Getting to know the command line is necessary. Learn the basic commands like how to enter/leave a directory, and edit/copy/move/remove files.
You will use them a lot – so why not save time for yourself by learning them at the beginning?
Start with vanilla JS, learn the frameworks and advanced concepts later.
Forget these cool words like React, Vue, Angular, Node.js, OOP, Webpack, functional programming, etc. In my experience, until you don’t know the basics, it is utterly unwanted to confuse your mind with these advanced concepts and frameworks. Be patient. You will get there soon.
Setting up an IDE with a decent config will make your life easier. My personal favorite is VSCode, but there are other amazing IDE’s like Atom, WebStorm, Brackets or Sublime.
- Choose a project to build
Your project can be a todo-app, a calculator or basically anything. Don’t choose very complex projects, it’s good to have a sense of achievement in the beginning. As you develop your project, you’ll have a lot of questions. Use MDN, StackOverflow and Google. As I said above, there is an answer almost for all questions a beginner going to face.
In case you have no idea what kind of project to build, I provide some links below which maybe help with the decision.
Learn from your mistakes!
Learning from mistakes is also an essential part of the process. Don’t be afraid to break the code.
A failure is an opportunity to prevent future failures, and it makes you curious how to solve the problem.
I think you can get familiar with these things I outlined within 1-2 months if you do some exercise every day. Once you feel you are confident with this knowledge and made some hobby projects, you can do a level up, and choose a framework and set Node.js in motion as well.
Summary and Next Up
In the next chapter, I’ll continue with a roadmap of frontend development (React, Vue.js, etc.), a backend roadmap for Node, and with some tips to get hired.