With time, more people are transitioning their careers into tech and more young developers are joining these communities. Although there are plenty of jobs in the tech industry, the competition is increasing day by day. Only in the last 3 years, the changes that the tech world has gone through are hard to overrate.
It's getting harder for the average dev to keep up with the competition. So I have composed some of my thoughts and opinions on how one can keep up with these changes and not feel overwhelmed by the hundreds of applications on every job post.
From what I've seen, most frontend developers take CSS too lightly and don't spend enough time honing their fundamentals. As a frontend developer, your most important skill by far is going to be that of CSS. Every aspect of frontend relies on your CSS knowledge so you MUST have some experience making pure HTML and CSS pages.
This one is a bit controversial but if you know CSS you already know 95% of tailwind. If you haven't tried it yet, you probably think that you will never try it. But there's a good reason for its popularity. You will realize it only if you try it yourself a few times.
The utility classes it provides are so many that it actually ends up reducing a lot of the code for responsiveness and theming. It doesn't give you presets like the other styling frameworks such as Material UI or Bootstrap, but just enough to let you use utility classes while still exercising your creativity as if you were writing CSS.
That's what makes it different from all other frameworks. It is kind of a middle ground between pure CSS and styling frameworks, just because of the sheer number of classes it provides. And some other helpful things like baseline styles and fonts.
But still, most apps made with Tailwind's default values tend to look like a "Tailwind app". Just like you can tell when a website is made with Bootstrap, sometimes you can tell when a website is made with Tailwind. So it's not the most ideal framework for really big projects with a lot of custom branding.
Yes, I know you can change the constants to whatever styles and fonts you like but you can do the same with the other frameworks, so the question now becomes if it's easier to make your components using CSS or libraries like StyledComponents OR using frameworks and then overriding their constants. Depends on your needs.
The point is you need to get used to Tailwind and its best practices to stay relevant. Even if you don't prefer using it, even if you aren't trying to join companies that use it, knowing these tools shows your drive and passion to stay up-to-date with the trends. It shows your ability to adapt to the community and learn new things on the go. At the end of the day, it doesn't matter what tools you use. Your users only care about the final app and its efficiency, not if you used pure CSS or Tailwind.
Looks like this one isn't going anywhere for a while. Since it is more challenging than React, there are relatively fewer developers learning Angular than React, so you won't have to keep up with as much competition as you would if you were learning React.
Instead, if you are a React dev these days, you have to apply to jobs that all have hundreds of applications (thousands if remote) and even if you're excellent at React, it's hard to be noticed in this crowd since everyone is claiming to be good at it.
The way I see it, Angular will always be a safe tool to be an expert at, as it is not favored by a lot of beginners/learners.
Being good at frontend isn't enough anymore. Every good dev knows at least a bit of backend as well. If you want to be relevant, just spinning up a React app and making a good UI is far from enough, thousands of other frontend devs can do that.
However, being a pure backend dev is a good goal. If you're an expert at things like Node, Express, Nest, Djano, .NET, etc. but you can't make a basic HTML and CSS page for your life, you'll probably never need to. From what I've seen, there is a huge demand for backend experts in the tech industry and there's absolutely no shortage of frontend/React developers. So going down the path of pure backend and DevOps will likely be very beneficial.
But again, make sure to have a strong foundation and work hard on the fundamentals. Make plenty of projects to showcase your skills that set you apart.
For those who already are experts at React and want to continue being relevant, learn React Native. It also is a skill that's been very high in demand lately as there is less competition and there aren't a lot of experts in it. But be quick before this skill gets saturated as well.
Mobile devs are some of the most skilled devs I've seen and all of them have little to no problem getting jobs. The competition for mobile devs has always been lesser compared to web devs so it's wise to be one of them.
Lately, I've seen a lot of startups and smaller companies wanting cross-platform apps so the demand for React Native devs and Flutter devs is quite a lot. But if you have more time and resources on your hands, invest it into learning Kotlin or Swift and you will be pretty much set for the rest of your life. Make some projects and become an expert at those, you'll be good for a long time.
If you wanna continue being a web dev and stay relevant, you have to work on practicing full stack. If all you can do is make a client-side frontend with React (even if it's a really good frontend with best practices for UI/UX) there are a lot of other people who can do that, or who at least claim to do that. It's not nearly enough to make you stand out.
Start by learning Next.js and while learning that, you will automatically learn database handling and many common backend concepts. Learn about Server Side Rendering and Static Site Generation in detail and learn how and when to implement them properly. Just learning or making notes on this won't be enough, use tools like GraphQL and Gatsby to practice your learning. Make projects and showcase them on your portfolio. Explore the different BaaS tools like Firebase, Supabase, Appwrite, etc.
After this, you can move on to learning Node.js from the basics and then to creating APIs with backend frameworks. You can also learn different languages like Python and Go to make interesting projects. Anything you learn doesn't go wasted. Unless you never apply your learning and never show it. Don't do that.
As devices are getting more efficient and cheaper, and as the WebGL libraries are getting more stable with time, it shouldn't come as a surprise that more and more companies are starting to utilize this in their websites and apps. There are more job openings for Three.js developers and Babylon.js developers than there ever were.
Invest in learning these advanced Computer Graphics tools while their resources and documentation are still undergoing so many additions, and your future self will thank you. Once our devices are powerful enough, WebGL will be more like a basic necessity that is expected from all frontend developers.
Welp, that's the end of it.
There are surely some more technologies that I can't exactly talk about due to my lack of knowledge. Nevertheless, their industries seem to be growing rapidly. Some examples of these are Blockchain, Web3, Artificial Intelligence and Machine Learning concepts like LLMs, Cloud Technologies and many more.
Let me know your thoughts in the comments and if there's anything you'd like to add to this list to help out the other devs in this community.
If you like this article then consider following me on Hashnode.