Find me on medium
It is truly an amazing time to be a JavaScript developer as they increasingly become higher in demand in the job market. The quick and consistent releases in frameworks, libraries, etc. is what makes it a blessing to be alive in this era - especially when we can be apart of all of that with everything being open sourced. So much to the point where we begin to put so much of our time and energy into JavaScript related tasks in our everyday lives.
But there's a good chance that you might be devoting so much of your time and energy into your daily JavaScript tasks that you might end up causing a catastrophe for yourself and your future without even knowing it. I suffered from some of the points listed in this article in the past, so my goal is to help you from making these mistakes so that you don't end up in misery.
Here are 8 habits for JavaScript developers that sabotage your future:
1. Using jQuery
jQuery played a huge part in the growth of the JavaScript ecosystem.
For one, JavaScript was mainly just used to run slideshows and cute little widgets like date pickers and image galleries that appeared in pages. There were issues with browsers providing different behaviors and jQuery helped standardize things with its implementation of abstraction layers, and taking care of all of the workarounds with common issues in things like DOM manipulation. It helped simplify AJAX and the issues with cross-browser differences.
The thing is however, that today those issues aren't as relevant as before anymore. Some of jQuery's best features were standardized to the browser like fetch and the selectors api.
Modern libraries like React solve problems that jQuery aims to solve, in addition to solving problems that jQuery currently has like state management.
In jQuery, you end up doing weird things like using DOM elements to be current states or data and writing ridiculously complex code to figure out what the previous, current, and next state of the DOM will be in addition to providing ways to appropriately transition to the upcoming states!
Read more on some of the modern alternatives people today are using and the benefits they bring to your web applications: React, Vue, Angular.
2. Not Exercising
Something I haven't really mentioned much in my previous articles was staying fit. Now i'm not some professional trainer or anything, but I watched my body transform throughout the years and I witnessed first hand experience some of the terrible outcomes you can make happen if you ignore your health.
So what were some of these experiences? Well, I've been planning to make a very long post about how I managed to secure my first web developer job--shortly making my way to a front end team lead (And let me tell you this--my journey was a huge rocky landscape in many ways) which will include lots of juicy, emotional and inspirational details especially for those who are self-teaching JavaScript for themselves, but I will say just this one line of it: I gained 32 pounds in a single year back then as a result of learning JavaScript alone. How does that happen to someone?
If you don't exercise, you risk developing many disturbing things that can happen to your body when you gain weight.
Some of these include:
- Changes to your DNA by altering gene expression.
- The extra calories you gain over time starts converting to fat.
- Increases your risk of developing migraines (including chronic ones).
- Your blood pressure starts to rise as weight gain can start to put extra stress on your heart which can possibly lead to excessive amounts in high blood pressure.
The list is endless.
3. Socially Isolating Yourself
Your family and loved ones are important.
When you isolate yourself away from your social life while learning JavaScript you are undermining your mental and physical health in ways such as increased risk of depression and anxiety, difficulty sleeping, weight loss, and feeling more tired or lack of motivation.
4. Not Writing Tests
I often see people skipping unit tests for their web apps and that's perfectly fine--until an unexpected error happens to crash the app at some point. And that's when it becomes a huge problem because time and money can be at loss.
Having that said, just because your code is able to continue compiling without errors or just because the app works without the console complaining, it doesn't necessarily mean that the app should be ready for formal use.
The absence of any sort of tests might be fine for small apps, but when the app gets bigger and becomes harder to maintain, tests start to become increasingly important to integrate to the app because any changes you or other people make to the existing code can break another part of the app.
Want to save time in the future for huge projects? Integrating tests will help immensely.
5. Learning Frameworks Before JavaScript
I know and understand the temptations to start developing web apps immediately using the most popular libraries and frameworks like React, Vue, or Angular.
I used to say "Learn JavaScript before you learn frameworks!", but my opinion has somewhat changed. Instead of going straight to learning these tools as a newcomer, the best approach is to learn them while your learning JavaScript. The JavaScript ecosystem is moving at a ridiculously fast pace, and if you want to sell yourself in the market you have to have at least some experience in tools like React, Angular, and Vue.
For example, I did one search on indeed for "javascript", and here is the first result that came up:
The job description says that they require you to have jQuery and JavaScript experience. For this company, jQuery is equally as important as JavaScript.
A separate job description requires these following "basic" requirements:
I clicked on two out of four job postings, and 50% of them requires not only knowledge in JavaScript but knowledge in the tools built on top of it as well. I wouldn't quite recommend splitting half of your time into JavaScript and the other half into some library of your choice however. The ratio should be more along the lines of 65% JavaScript and 35% on a front end library or framework that you went with.
Splitting up your time this way is very convenient in a way you still benefit from learning "true" JavaScript while still learning a popular front end framework to improve your knowledge in building front end web applications. You'll also find yourself a little at ease for joining the discussions about hot topics like React or Vue.
But what does it mean to allocate 65% of your focus on learning true JavaScript and the rest on popular tools you wanted to immediately start with? How does that work out?
What worked for me on knowing the JavaScript language extremely well was reading through the free online ebook You Don't Know JS by Kyle Simpson (reading) and trying your absolute hardest to breeze through the online coding courses at FreeCodeCamp (hands-on). You benefit from two learning perspectives. The book You Don't Know JS does such a good job ingraining the ins and outs of JavaScript to your mind to the point where random parts of the book still pops up in my head today. And that has been huge to me in interviews!
6. Not Learning Clean Code Practices Earlier
Writing clean code is what every developer must know and do in order to call themselves a professional developer. But it's also very convenient to start learning clean code practices early in your career. The earlier you start exposing yourself to these practices, the earlier you can develop the skills to write cleaner and more maintainable code.
Learning how to write cleaner code is one of those skills that doesn't really benefit starting later into your career as much as "learning JavaScript before a framework" does. You don't have to experience writing ugly code in the beginning to "learn the ways" of a JavaScript developer if you can just train yourself to write clean code. Your experience will come later when reading other people's ugly code and becoming frustrated. There's your experience.
7. Starting on Big Projects Too Soon
One of the biggest mistakes I made in my career was getting started with projects that was planned to be big.
"What's wrong with that", you ask?
For one, if you're not a mid to senior level developer there's a pretty good chance you won't be able to finish this "big" project you have going on anytime soon. There's so many things to consider especially for apps to be stable if you aren't exposed to the best practices in writing cleaner code, writing tests, scalable architecture, etc. especially if you're still in the beginning stages.
So what happens when you're transitioning into your mid-level developer phase and realized that a lot of the code you had written needs to be refactored because you realized that the app isn't written correctly? The job market starts to become at ease for mid level developers, but you haven't gotten the chance to put any good projects to your portfolio yet because you've been keeping yourself too busy with this big project you planned awhile ago. Then you start to think to yourself if it is even worth it to continue with it while other developers are taking your glory in these job interviews. My recommended approach is to start with a bunch of small projects so that you can put them on paper!. Have something to show on your portfolio as soon as possible, you never know when an opportunity arrives.
Another problem with starting with big projects too soon is that if you aren't exposed to best practices and the right design patterns to build your features, you'll just end up writing a lot of code that you have to refactor or abandon when the time comes. At that point, it's probably best to just re-write the entire thing instead of having to go back and re-wire the mess you created. You might choose to just abandon it and put the current code on your resume or portfolio anyways. But they're going to look at the code and make some unpleasant judgments.
8. Not Learning Data Structures And Algorithms
It's a long going debate on when you should start learning about data structures and algorithms into your career. Some suggest learning them before you start learning JavaScript, and some suggest learning them afterwards.
I personally think that learning them isn't really required in order to get your foot in the door into your career, but its good to expose yourself to some algorithms so you can have some understanding with computer programs and computation. Algorithms are the integral part of any kind of computation or computer program. In fact, these computer programs are just a bunch of algorithms that get combined with some fancy structured data, that's all ;)
Conclusion
And that concludes the end of this post! I hope you got something out of it and look out for more posts from me in the future!
Find me on medium
Top comments (15)
I agree with all the points except for social isolation. I think if you are spending time learning a library like React, it might help to remove any distractions such as family and friends. I'm not saying that family is a distraction, but I know a lot of people that learn better when they can focus all their attention on what they are doing. It can be healthy depending on the relationship that you have with your family. Most of the time, your family doesn't understand why you are trying to code.
Great Tips !!
On the point 7. Starting on Big Projects Too Soon:
You also have the problem that in large projects, depending on the development practice, you only dive into developing requested features or bugfixes but you are unable to dive into topics like requirements engineering, product design, deployment and user support.
In smaller projects, in most cases the chances are that you need to do some deployment or you can influence to product design as well as talking to users directly. Imho this is a great benefit because you can see the big picture of the project and not only a small part.
Good points.
I guess my unwillingness for writing tests will sooner or later lead me away from JavaScript, haha
I'm finding that converting to a functional style of JS in a framework that fully supports it (hyperapp) is making me more willing/able to deal with the testing issue.
Good tips.
Thank you!
Thanks for this. It was very insightful.
Your very welcome, itchy-onion!
Great post yo 👊🏻 keep them coming!
Thank you!
Really good article. I was expecting something cliche but I'd 100% agree with most of these.
I'm glad that we both agree!
Thanks for directing your experiences man! Very helpful insight🙏
Your welcome!