3 ms·
Are you a former CS major? It sounds like you possibly need structured guidance. Although it's not necessary to have a formal education in CS to succeed in this
by theogravity 4y ago
Are you a former CS major? It sounds like you possibly need structured guidance. Although it's not necessary to have a formal education in CS to succeed in this area, it does help a bit.
I felt my most important CS class was learning about design patterns and code reusability in software (eg Gang of Four books). It took a few years for me to understand how to identify which patterns made sense to use vs using some pattern I found in a book because it looked cool. A required upper-level CS class on the Scheme language turned on some kind of mental switch that allowed me to understand how to code Javascript.
Another would be working around people who are smarter than you. If you're the smartest person in the room and you don't feel at the top of your element, then you're definitely going to feel stagnated. You might need to find another place to work at where you can work with people you feel can be good mentors.
Code reviews from other senior developers also help a lot as they may identify areas of improvement that you can learn from, but that requires you work with people who are smarter than you or have an area of expertise you do not.
Many popular OSS projects have articles going into a deep-dive of how their architecture works. For example, there's lots of material on how React.js works under the hood, with some people building a from-the-ground-up version demonstrating the basic features. Read such articles and explore those code samples.
If you're doing webdev, I don't think it's necessarily important to know the insides and outs of algorithms that you probably won't use in your line of work, but it's more about knowing that they exist and the situations in which it can be used for so you can add it to your mental toolbox. You might come across a problem where you recall reading about x technique or y algorithm. You don't remember the specific details, but at least you know it's there that you can then look up the implementation details for when the time comes.
Finally, the hours you are working are not healthy. You already sound burnt-out, and that's affecting your mental well-being, and possibly can have some long term health effects too if not dealt with. You need to find a way to cut your hours or not work if possible so you can reset yourself.
I had major burn-out two years ago where my body literally would not want to do any kind of work, and I ended up with severe health issues such as double vision, that required visits to several doctors and therapists. I had to do zero work for around half a year before I could do work again. My eyes could see text on a computer screen, but my brain would refuse to process it.
Everyone including myself that I've known in this industry suffer from some kind of imposter syndrome. I was in your position around your age, and fortunately was able to work with people smarter than me to learn from. It's never too late to learn to improve and find the right people to improve with, but you really gotta think about your health first and take care of that first.