and some junior developer mistakes
In my previous post, I shared my opinion and some details about why Woovi Bets on JavaScript, but I focused more on an enterprise context. In this article, I will discuss why I personally decided to bet on JavaScript.
Few people know me, but I’m not special or different from anyone that’s trying to land a job in web development nowadays. What I really want to say is that I made ALL the most common mistakes that every beginner makes. All of them. In my opinion, the biggest mistake was floating around my learning process with different programming languages.
I remember the first time I completed a Grasshopper challenge, when I knew absolutely nothing about programming (not that I know much now). After that, I started searching for some online courses and ended up studying HTML, CSS, and JavaScript - the most common path that probably everyone has taken, does take, and will take.
However, I began to notice that many people in social networking and tech communities were talking about how JavaScript was saturated, how the junior roles were disappearing, and “if you kick a tree, hundreds of JavaScript developers would fall”. Later, I discovered that maybe all of that was true, but in a positive way (yes).
So, I decided to leave JavaScript and started studying Java, Spring, focusing on backend development. It seemed like a solid path, more complex for a beginner, but I was convinced that doing so would help me land my first job sooner, as I was taking a less common route.
The Reality
I was just increasing my learning curve and slowing down my study rhythm, adding an even greater load of knowledge to learn, and also discarding everything I had studied about JavaScript before, as I stopped practicing and logically forgot. Needless to say, the job never came, and I ended up frustrated and sad.
Another mistake was that when I started studying Java, I limited myself to only backend concepts. As a junior developer, you must study about everything first. It doesn’t matter if you prefer front-end or back-end; you have to know a little bit of everything. After that, you can decide which path to focus on or continue with both. This was the core consequence of experiencing these learning stages: I realized that every junior must be full-stack.
Final result: JavaScript
I believe that JavaScript is the best programming language for beginners. With JavaScript, you can tackle almost every computer science concept and engage in diverse practices. Whether you aspire to become a full-stack developer, delve into front-end, back-end, testing, or explore other areas, JavaScript provides a versatile foundation.
Nonetheless, it offers nearly infinite possibilities. You can code and create anything, from a mobile app with React Native to a desktop application with Electron.js. Furthermore, JavaScript provides excellent frameworks and libraries that can be applied in various approaches, such as React, Three, Vue, Meteor, and Astro.
To enhance its appeal, JavaScript has a great and active developer community. As a multi-paradigm language, and with the introduction of TypeScript, you can delve into type systems and functional programming. This versatility and wealth of resources are the primary reasons why I returned to and decided to invest mainly in JavaScript.
- But hey, you said earlier that you gave up on JavaScript because everyone said it’s saturated and many other negative things. What happened?
Nothing happened. And yes, it could be true that there are a lot of JavaScript programmers (after all, JavaScript is on the entire internet), but I truly believe that if you put effort into something, you’ll exceed yourself, others, and prevail. Someday, you’ll see the results of your hard work - that’s a fact. Also, you should learn to avoid negative stuff that plenty of people on the internet often say.
Decide for yourself what you want and pursue your goals. JavaScript is a programming language that offers numerous opportunities in various ways and scenarios. It doesn't matter at which level you currently are; right now, I believe it's the best way to secure your first job in web development or to advance your career in this field.
If you are a junior developer like me, my final advice is to study a lot of other things rather than just how to code with programming languages. Computer science concepts like algorithms and data structures matter a lot. At the end of the day, the truth is that being a software engineer is much more than programming languages, and the sooner you realize this, the sooner you will evolve.
Maybe this can help you: A good overview intro JavaScript and Functional Code
Cover photo by Carissa Strickland, taken with an Canon EOS 5D Mark II.
Top comments (11)
If one is just starting out: don't use any framework. Learn the language, not the tool. Learning the tool doesn't learn proper programming. If a junior developer is just knowledgeable about one or two frameworks that person is the most replaceable developer on the planet. That is: most of the developers are like that. And especially with current situation on the market, it just doesn't make sense, you have to be different from others to get the job. It's harder to move forward without using any frameworks, but very quickly you will invent your own helper functions, you will easily see mistakes you are doing, and after all become much better programmer.
I do agree that learning both FE and BE it's a good idea, however i think it should be suited to the needs. Learning programming is not about studying, especially in the beginning, it's about doing the actual coding and thinking. Start with whatever, then gradually as you need a feature for your test app, adopt new solution (for example: start with FE, then you need to add login feature or save something permanently, implement BE with simple storage - that's the typical example).
These are nice words of wisdom. But don't you think learning a framework and a language in parallel can also be a good idea?
I personally believe that one can gain a very strong foundation in a language, while at the same time learning its common frameworks. I would say the key lays in not neglecting getting a strong foundation in the language one works with. Then if someone start learning Vue, React, Laravel, Spring or whatever, parallel to learning JavaScript or Java, doesn't harm ones learning effort.
No, because then one will learn the tool, and learn language just enough to use the tool. But in my opinion, that's not enough to be a good programmer. Nowadays frontend tools are too complex, they have elegant API, but hide a lot of heavy important logic under the hood.
When it comes to frontend:
I think the best way is to learn how to make dynamic frontend using pure JS with one's own helper functions, then at some point very simple library to make one's work easier (like jQuery or something), and then learn heavy-job tooling like React or Vue. That way one learns the language, but he also see the value they give him, without making him crippled "I know React" developer. I mean, if one is ambitious. Otherwise just get the job, get the money, and you are done. However I predict such developer will very quickly hit glass ceiling. I've seen it many times. If you just use HTML/CSS/vanilla JS, you don't need even package manager. Just a browser. It's very natural.
When it comes to backend:
I would consider using barebones tools offered by the language environment, just to see the progress, and to know how frameworks and tools work.
When it comes to both:
Don't use library unless absolutely necessary (like driver to connect to database).
No newbie needs to work in production-ready environment (and yes, most framework are production-ready environment). There is no rush, there is time. It's like those developers who cannot build coherent monolith, but jump right away into full-cloud microservices. Disaster at the horizon.
Just imagine how many moving parts are involved in frontend ecosystem if you are a newbie: HTML, CSS, JS, the library itself, state management, HTTP requests, compilation, package manager and more. It's seriously too much, and the person can in fact build something that "works", but doesn't understand anything, and the worst thing: probably never will, because it is already satisfying. If you start barebores there is lower excitement (effects are less impressive), however the sense of progress, the joy of discover, and the playfulness is irreplaceable.
ALL passionate developers I know personally (who discover, learn, experiment, and are always ahead of everybody else in the team) started barebones.
NONE developer I know personally who started right ahead from frameworks is passionate. It's just a job for them, and certainly less rewarding mentally in the long run.
Hmm. Coming into this thread with a slightly more laxed opinion, I have to say: this is probably the best case I ever read for why one should not rush the learning process learning programming frameworks.
Thanks!
That's a great explanation! Almost an article itself, congrats!
I really liked your article! Love your passion for programming! And I wholeheartedly agree that one should master whatever makes their craft enjoyable, even if it’s saturated. Because yes there are many JavaScript developers, but they are all specialised in specific areas and aspects. Besides if one understands how programming works in general it’s much easier to extrapolate that knowledge on to other languages and libraries.
All the best in your journey!
JS/TS won by being the only tools that
Other backend languages can do templating, but that's only good for static websites, not for highly complex and dynamic web apps.
Only web apps can provide the best user experience.
Having a product with better/best user experience always wins.
JS/TS won by being the only solution that can do web apps.
Nice article 🔥
This article is very educative.
In general I do not think JS is a particularly good language to start with.
The only reason why I would recommend it is: general availability. To get a "console" to work with you could use a browser and don't have to install anything (besides the browser you already are using).