Exactly a year ago, in March of 2020 I’ve decided to become a web developer. At the time of that decision, I was 37, I didn’t have a tech degree or a commercial experience in that field and I didn’t have any friends in tech (I’m a photojournalist by education actually). I had years of experience as an IT specialist at a job I wasn’t happy with (it was mostly fixing stuff), but it took a while to finally begin to code.
I can say I had some interest in programming since I was a child. During the first post-soviet years (early 90’s) my parents bought me a simple Russian-made computer which used Basic and stored data on cassette tapes (48kb RAM, 16KB GPU 😎). I’ve tried some first loops and conditionals, tried to break games, but all of that didn’t last long.
Several years later my classmate invited me to join the computer club, where I studied Basic again, then switched to Turbo Pascal. By the end of the year, I’ve managed to win the 1st prize at the programming competition by building a platformer game concept (the first two game screens with movable character and monsters). At the second year we switched to C++, but its complexity and documentation in English scared me (it was before the internet and even before PCs itself became widespread in Russia).
My second attempt at programming was a bit more successful. In early 00’s my friend and I build our first website to showcase our art projects. We were working with Dreamweaver, a visual editor, building was fun, and after that I’ve also built a few anime-related fan websites. You might have heard of table layouts – this was exactly it, many people built that way back then, but the brave ones already tried CSS floats.
In 2006 a tragedy happened in my life, from which I never fully recovered. For many years after that it was only a mist, I lived by myself, I went to work, but rarely contacted or connected with anyone, didn’t try to get any help, just went with the flow, not planning anything, not aiming for anything, not feeling any joy. Eventually, I have managed to pull myself together to start living again. I’m glad that during those hard times I haven’t forsaken CSS, I continued to use it from time to time, did some templates for a gaming community. In 2016 I got pretty interested in new CSS features, so I’ve built my Deus Ex Pad in pure CSS.
By 2020 things got to a sad state. A company I was with for 16 years slowly continued to disintegrate, I did not become a specialist in anything (IT, servers, editing, photography, video editing – all of those weren’t at enough level to find a decent job), my soft skills were bad, and most of the money I was gaining I used to pay bills and buy food. After the pandemic started, I was left with a small income and a big amount of free time, so I’ve decided to try something new.
First, I’ve started with The Web Developer Bootcamp course by Colt Steele which I spontaneously bought a year before that. I always thought it was too late for me to become a developer, seeing all those people in their 20s becoming seniors, tech leads and SEOs. I also wasn’t confident in my ability to learn again. But, as I was learning, I began to notice it’s not as hard as it seems, which gave me hope. I didn’t finish the course (sorry, Colt), but it gave me a good understanding of the current state of frontend (and backend also) and of what I should do next. By the way, the course was rebuilt last year to the modern standards – I recommend to check it out for beginners.
In spring I’ve made my biggest decision that year - I’ve joined Yandex Practicum Web Developer program, kind of a mix between a bootcamp and online courses. I paid for the program using some rainy-day savings I had, but I never regretted it. I know that you can learn everything by yourself today using all of the free resources offered around. But I wanted more, something closer to a real job environment – a mentorship, a feedback on my code, a plan, a guidance, a team. For 9 months there spending 10-15 hours every week I’ve learned a lot, I’ve met great people, and finally got myself ready for a career change.
My job hunt began shortly after I’ve finished the program. Actually, the first invitation came from another student of our group, who happened to be a Product owner in a finance company. I’ve been noticed because I was helping others, I shared my knowledge, and I was not a toxic person. My first developer interview was pretty nervous, I forgot a couple of basic things, but I got a good feedback, as I learned later. Unfortunately, I had to decline the offer because some conditions didn’t suit me.
After that, a demotivating month began. I’ve sent 32 applications, almost all of them were ignored (they didn’t even reject me). Finding a frontend developer job without a real experience isn’t easy today at all, even if your CV and LinkedIn page are good. The best chances to get invited to an interview is through a personal contact with a company representative – make contacts and connections, as I said earlier. Another way to raise your value is to gain a real experience by building websites (the easiest way is to offer your services to some local businesses), doing freelance jobs, participating in hackathons & open source (the latter is especially valued, but I had a hard time finding a serious project for my skill lever to contribute to). There is also an option of paid/unpaid internship – it can be also great (depending on the company).
My next chance came through a graduates program at Practicum. A small team wanted a junior frontend developer from our students who knew TypeScript, they gave a test assignment. I usually feel negative about test assignments, because you can lose a few days doing it for nothing, but this time I tried. Knowing nothing about TS, I quickly watched basics and React section from Understanding TypeScript I linked below and then did it in 1.5 days (also learned React-Bootstrap along the way). I did good, they pointed out my clean code and attention to details and invited me to an interview. This time it was more casual, I was more confident, in a couple of days I received an offer (starting soon).
The most efficient learning format for me, apart from the main program, was video tutorials. I used Udemy for that (but there are also many great videos on YouTube). My favorite instructor is Maximilian Schwarzmüller, I’ve completed one of his courses and currently finishing two more:
- React – The Complete Guide (again, very detailed, and it also covers Redux (+Toolkit) and Next.js, the course was completely re-recorded and modernized in 2021)
- Understanding TypeScript (covers all TypeScript features, but not beginner-friendly in some parts)
The best practice is not to just watch the course, but pause it to try to code fragments before the instructor. I can also recommend Stephen Grider and Andrei Neagoie - it’s best to find the instructor you’re most comfortable with.
If you’re looking for non-Udemy video sources – you may check out courses by Wes Bos, especially his amazing CSS Grid Course (it’s free). Also, don’t miss Brad Traversy’s YouTube channel. Since practice is the most important part of your journey, there are platforms to help you with that, such as Frontend Mentor and The Odin Project. Codewars and LeetCode can help you with algorithms when you are done with basics, they are also great for preparing to the interview.
- HTML/CSS – 1.5 months
- React – 2 months
- Node/Express – 2 months
- Graduation work ~ 1 month
Then I continued with React, Redux, TypeScript. Continuing to learn JS every day, and I love it.
- Stay consistent, try to code or to learn every day.
- Don’t overwork yourself, but also don’t take too long breaks – some topics are easily forgotten without practice. Set a plan for yourself, what you want to learn with approximate time – and stick to it.
- Take short breaks at least every hour, do workouts regularly.
- Take notes. I’m using Notion for it, I put theory bits and code examples there by tech and by topics.
- Don’t learn everything at once, choose what you need wisely, don’t spend your time on tech you won’t be using in the nearest future.
- Switch between your project/tasks, when what you’re doing now feels boring or overwhelming, you can return to it later.
- Make contacts, try to engage with other developers who’s learning, or with professionals, ask questions. Don’t focus on yourself, try to help others too.
- Do your side projects, not only tutorial projects. Don’t build weather apps like everyone else, take ideas from life – what would you use yourself?
On a side note, check out my Working Faster in VSCode article, which may increase your productivity a bit.
Thank you for reading this, I hope it was a little bit informative or useful!
If you have any questions – be sure to ask.
You can find me at Twitter as @cat__logic
Photo by Robert Stemler on Unsplash