The year 2022 was a watershed for many in terms of their careers. A lot of people lost their jobs and businesses, which put their basic livelihoods in jeopardy. At such times, the possibility of a career change arises in the mind.
The most valuable currency is "time" itself. What would be worth investing in? This is where IT (information technology) comes into the picture, which is known to be one of the fastest developing and most stable employment sectors. According to public opinion, developers earn relatively well, and many are attracted to this field by this fact. However, it is worth noting that the salary of programmers depends on a lot of variables, which I will perhaps cover in another article.
Let's see what options are available for an absolute layman/beginner to embark on the long and bumpy road of web development.
Basically, I would divide the possibilities into 2 main categories:
- self-development: fully self-taught learning (free)
- codecamp: signing a contract with an educational company (paid)
In this article, I focused primarily on the resources related to the free, self-development-based approach.
First of all, let's see what types of source materials are available to us to learn:
- lexical informative websites, documentations
- books (doc, e-book, physical book)
- video tutorials (Youtube, Udemy)
- practical educational websites (sandbox)
After some research, the amount and selection of source materials available can be more intimidating than the learning process itself.
Each type of medium has its advantages and disadvantages, as well as the ideal case when one is preferred over the other. For beginners, I would recommend a hybrid solution so that they can accumulate relevant practical and theoretical knowledge in the shortest possible time. The knowledge suitable for starting a career can be obtained most quickly with the help of video-based tutorials and lexical + practical educational websites. Let’s look at them one by one.
1. Acquiring the required basics - Lexical knowledge
W3 school: A platform that can be considered ideal for complete beginners.
2. Practical educational websites (code sandbox)
JsChallenger: Translating theory into practice is a long process. JSChallenger is the perfect place for this purpose.
The tutorials start with beginner-level examples and end with advanced examples. Learn the use of primitive and reference type variables, DOM manipulation, and practice until your nose bleeds :)
TheOdinProject: The odin project primarily focuses on marketable knowledge.
CodeWars: If you have acquired the coveted knowledge, unfortunately, it must be kept up to date. War with the codes!
CodeInGame: A tutorial based on very strong interactive foundations which build on games in every sense.
Discover new languages (more than 25 languages in total), algorithms and tricks in courses created by world-class developers. They take the term “beginner to advanced” very seriously. If you want to be part of a really interactive learning process combined with a visual experience, then this is your place.
3. Video-based tutorials (youtube channels, udemy)
Maximilian Schwarzmüller: The "all-knowing" German front-end developer.
If I want to learn a new frontend framework from the ground up, the first thing I do is to check out Maximilian's tutorial on the subject. And this is no accident. He teaches in an extremely comprehensible and lovable way, with a pleasant German accent. He structures his courses very consciously, and the pet-projects created during the course can also represent a professional reference value.
TraversyMedia: The veterans of web development videos on youtube.
TraverseMedia is a YouTube channel made up of highly qualified professionals, where we are guaranteed to receive the highest quality education according to current trends. They have been on YouTube for over 10 years and have published hundreds of videos on all aspects of web development.
WebDev simplified: The guy who got bored of modelling and started programming instead.
Fireship.io: The man who overdosed on red bull.
I put him on the list because of his popularity rather than his effectiveness. fireship.io has become famous for its 100-second videos, which essentially demonstrate an entire programming language or another web development-related technology in just a minute and a half. In order to be able to convey meaningful information during this time, he has to go through the essence of the given topic at a rate that would even embarrass rappers, which is obviously not very effective, but it can definitely be said to be interesting.
5. Other supplementary materials (advanced)
Design patterns are a part of software design that aims to solve typical and frequently occurring problems. Each such pattern is essentially a blueprint that we can use as a guide while writing our code.
Cypress: With Cypress, you can easily create tests for your modern web applications, visually find potential errors in your application, and run them automatically in integration builds.
We use Web Workers to create scripts that can be run on multiple threads in the background. The worker can perform tasks without disrupting/blocking the user interface.
Due to the rapid development of the web and the new technologies appearing every day, it is worth keeping our tool sets up-to-date, in which reading blog articles can be of great help.
The capabilities of the artificial intelligence chatbot tool, launched in November 2022 by San Francisco-based startup OpenAI, are vast. It can fix spelling and grammar errors, write contracts, poems and songs, analyse or reflect on code written in any language and much more. It is a must-have tool to help you become a better developer.
Learning curve: Short
Description: It's basically quite similar to react and vue. The goal of the framework is to create fast and modern user interfaces. However, there is a significant and essential difference between them, to which it owes its popularity: svelte interprets and compiles the code during build-time, in a way that can be understood by browsers Thanks to this approach we can save a lot of resources, and optimizing the running time of our application.
Advantages: quick to learn, extremely simplified approach
Drawbacks: it has a small developer community, and it's hard to find a job with it
Learning curve: Short/Medium
Advantages: innovative approach, can be learned quickly and easily
Drawbacks: compared to react and angular, smaller community and fewer work opportunities, too much flexibility, lack of typescript in vue 2.0, options and composition api -> double learning,
Learning curve: Short/Medium
Advantages: easy and quick to learn, many job opportunities globally
Drawbacks: JSX can be difficult to get used to at first, strongly dependent on third-party libs, classes and hooks -> double learning
Learning curve: Long
Description: The framework created by Google is mostly used for the development of large-scale enterprise applications due to its scalability and stability. Compared to its peers, it has a much larger set of built-in tools and supports typescript natively.
Advantages: typescript, easily scalable, many domestic and foreign job opportunities
Drawbacks: inconvenient documentation, longer and more difficult to learn than other frameworks
7. Bonus: Interviewing
- CSS interview questions
- Native/Vanilla JS interview questions
- Node interview questions
- GIT interview questions
Learning to code is not fast, and certainly not a process to be rushed. It is worth choosing our source materials well because they can decide the fate of our entire career as a programmer. It is important to receive repeated positive feedback about our results during learning, so I would recommend a more interactive version of learning instead of books and other written documents. Video-based tutorials and practical training websites can be the target tools with which we can visualize our results and gain motivation to continue learning.
To be able to get a job as a Junior programmer in 2023, you will need (among other things) the following:
- use the educational materials outlined in the article
- test your practical and lexical knowledge, prepare for interviews
- have presentable pet projects (game, calculator, api use, fake webshop, etc...)
- develop your soft skills (language, diligence, proactivity, openness to learn new technologies and toward people)
I wish you happy learning and lots of success! :)