Starting to code can be daunting. You’ll have a lot of questions about how much you need to learn and what life is like as a programmer.
We’ve spoken before about the oversaturated web development world and how competitive it can be to get a job.
The greater skill you have as a developer makes you more desirable to potential employers. So it never hurts to go above and beyond when picking up a language.
The image above is a small snapshot from a fantastic resource that highlights the typical front-end developer journey from an absolute beginner.
As you will discover for yourself, the journey to becoming a competent coder is a long and varied one with a lot of cool things to pick up along the way.
HTML and CSS
Any online course, book, or resource will first teach you how to use HTML and CSS. These are markup and styling languages respectively and not programming languages.
HTML is the building block of the web and it’s essential to have a working knowledge of it. CSS makes everything look the way you want it to.
Pick up HTML and CSS is fun. It is relatively easy and you see some quick results. Putting together your first web page and patting yourself on the back all happen shortly after you pick up the core concepts.
But it is where most people give up!
The concepts take time to wrestle with and understanding why stuff isn’t working can be a complete mind-melt.
But you have to persevere. It’s here where you will start to think and act like a programmer. Looking at each task as a problem to solve.
These frameworks and the ecosystems that have been build around them have completely changed the way web applications are built.
Generally speaking most people in the world of development are awesome and friendly.
There are a lot of people to help you with problems and plenty of communities to support you on your journey to becoming a software engineer.
However, a trip over some coding subreddits will have you convinced you’ve chosen the wrong career path and will never make it as a software developer.
To them, anything but coding directly into the terminal using a language nobody has ever heard of isn’t considered “proper”. These are the hipsters of the coding world, they are annoying and can be disruptive to your learning if you take what they say to heart.
You will have a fairly narrow knowledge base and technical interviews can sometimes be quite broad.
You may struggle with a more design-focused role that expects a good understanding of HTML and CSS.
However, if you go for a React-based role and have spent your time nailing the core JS concepts beforehand then learning JS is enough.
But what is enough?
Too many people put pressure on themselves and think they have tick boxes by doing a certain number of courses, reading a specific number of books, or completing X number of code alongs.
The reality is you are ready when the person sitting opposite you in the interview says you are.
Don’t be the blocker to your own success.
This also doesn’t mean do a week of HTML and apply for a full-stack role.
Learn the basics. Build small projects and a portfolio. Mix up your learning resources and try to constantly improve. Practice and understand the type of questions you will be asked in a technical interview.
Learning to code can take anywhere from three months to a year.
Chipping away at it every day will keep the concepts fresh in your mind and help you gain expertise quicker.
Once you have the syntax nailed you will need to move onto understanding APIs, Hoisting, Scope, and Closures.
These jobs are offering the highest salaries and I’d highly recommend learning React if you want to be involved in a more technical front-end role.
You can pick and become proficient in React in around 4 months.
Remember when hiring for a junior role companies aren’t expecting you to be a world-beater. Learn the concepts, build some projects, get a portfolio, and start applying.
You’ll have experience colleagues to show you the ropes.
When starting I was impatient and wanted some time to give me an exact timeline for learning.
Remember the journey to becoming a programmer will depend on so many factors:
- What is your previous experience?
- Have you ever written a line of code before?
- Are you working full-time?
- How many hours a day can you dedicate to the learning?
- Do you have other people alongside you learning too?
- Are you going self-taught, attending a boot camp, or at university?
Enjoy the process because you’ll only ever get to do it once. Every other language you learn will be a walk in the park compared to your first.
I wrote a longer article on how hard web development is in general check that out if you want a more comprehensive take on the difficulties of being a software developer.
A mix of books, courses, and YouTube will do the trick. Here are some I’d recommend:
- TypeScript in 50 Lessons – For when you have JS nailed and want to learn TypeScript
- Udacity Nano Degree programme
- Web Developer Boot camp: Colt Steele – Easily the best tutor on Udemy
- The Complete Web Developer in 2021: Zero to Mastery – Andrei Neagoie – Fantastic all-round course
- Data Structure and Algorithms: Colt Steele – Great for the technical side of JS
- Modern React with Redux: Stephen Grider -The bible for anyone learning React
- Vue – The complete guide: Maximilian Schwarzmüller – Another amazing tutor for anyone wanting to learn Vue