Awesome post, Max. I really appreciate articles like this since I'm just starting out my dev career.
Definitely agree with your first point. The slightly smaller question of "have I learned what I needed to do a good job?" swallows me whole, and it makes it really hard for me to focus on learning step by step. I've found it so helpful to prioritize, even if it's only a little, my learning.
Also, I've definitely felt many times that I'm not doing enough, whether it's learning or writing up tests or features, etc. It just seems like I never have enough time. I usually go a little crazy thinking about that until I realize that I'm human like everyone else, and that soothes me.
Thanks a lot for the write up!
Thanks, I'm very glad you liked the post! That question definitely does haunt me a lot too, especially if dealing with a tough obstacle and am wondering if I missed learning something that would have helped. But that also can help guide what I want to learn next - when I had issues with JS dependencies, that's when I knew to focus on CommonJS and ES6 Modules.
A lot of it is solved by learning to ask yourself the right questions about how much you should learn and what to prioritize next. It was a great takeaway from a book "The Five Elements of Effective Thinking," which I've found very useful in how I study coding. I highly recommend it for further reading!
Third point is paramount, having fun puts things in perspective.
Plus it reduces the risk of losing interest in larger projects partway through. That's an especially big risk with me as I'm learning Ember for my job, it's great but there's so many different conventions and syntax rules to learn along the way.
Thank you for sharing! Starting out on that first job can be very intimidating. Thankfully we learn a lot and stick with it and overcome. As one who's getting more "seasoned" as a Dev, I'm grateful for the new devs and the perspective they bring.
One of the questions you posed at the start of the article stuck out to me: "Have I learned enough for my colleagues to value me?" I feel like this is a good question, but the way it's asked is dangerous. I know this was an example of an anxious question--I know I've asked it before--but I wanted to take a minute and share what I've learned and my perspective on this question.
The way this question is asked puts an unnecessary emphasis on what your colleagues think. Unfortunately it's impossible for you to read their minds and know what they're feeling. Because of this, you're left to guess and guessing someone's thoughts or feeling is really dangerous for the vast majority of people. We often paint a much worse picture than what reality is when we're left to read minds and this can really hurt ourselves unnecessarily.
So, I said this was a good question just asked in the wrong way. What would be a better way to ask this? Here are a few options:
Asking it like this turns the focus to you and asks it in a way that can be quantified (depending on the metrics gathered). Turning the focus onto you eliminates guesswork. The only mind you have to read is your own, which you're probably pretty good at by now. This also puts you in control of the outcomes. Instead of blaming others, you'll know if you're struggling and where you can improve.
So, if you find yourself asking a question like this one, try to phrase it in a way that you can control and that will give you a path forward that's more clear than guesswork.
Thanks again for your thoughts!
I felt exactly the same way for the longest time! I had a big list of projects and articles I wanted to tackle, and never getting through them caused me lots of needless work anxiety. Picking the ones based on priority and enjoyment really narrowed that list down. Like so much in life, it comes down to being willing to accept some trade-offs. We don't need to do it all at once.
Great post Max! That set of questions initially are relevant to devs at all levels of experience. Time management and prioritisation skills might get better as you gain experience, but the number of things that can consume your precious time will continue to far exceed any available time you have :-)
Given the enormous potential for junior devs to grow a long way in a very short period of time, my final bit of advice would be: if you employer is not actively investing in building your skills, leave. Life is too short.
You summed up everything I, and many others, feel on a daily basis.
I think a big take away is to focus on one particular technology at a time, learn new information in small digestible pieces, and the most important thing is to be consistent. We have a tendency to burn ourselves out and then go on a long hiatus because it becomes more of a burden.
I can't wait to share this post at work tomorrow. Thanks again Max!
Thank you so much! I agree burnout is a major thing to avoid. As tempted as I've been to learn so much at once, if you burn out then you're only being less productive long term.
I'm very flattered you'll share it with your coworkers tomorrow! I hope they all enjoy it as well :)
I code since it challenges my mind while letting me be creative.
I code since it challenges my mind while letting me be creative.
Couldn't agree more, as a progressing junior trying to find more challenging work, this whole article spoke volumes! I've started taking the bite-size/codepen approach as well, makes it easier to learn things outside of work.
I'm glad you enjoyed it! The bite-size approach is probably what helped me the most, since it does the most to soothe the everyday worry that I'm not doing enough. Even if it's not making small pens myself, saving ones I'll find useful or giving feedback are all small parts of the learning process. They lay the foundation for our future learning after all.
Amazing post. I'll be sure to apply this even more in my career. And share this with new devs as well.
Hey Max! Thanks for sharing this.
I especially like #1. Feeling like there are a million things to learn is definitely something that hits home for me. Making a list, prioritizing it, and chipping away at it is a great approach.
I absolutely agree. A beauty and horror of programming is there's an infinite amount to learn. That means constantly choosing what not to learn, but it also helps us value and make better use of what we do learn.
It's like "The Life Changing Magic of Tidying Up" but for our brains - focus less on what to discard and more on what to keep!
Great post, Max. I think you provide an awesome insight into a lot of the questions all developers across the spectrum of experience ask themselves.
One thing I would add to your third point, and perhaps it is a point of its own. Is that it is normal to not enjoy your work every once and a while. It is normal to get frustrated and feel like you are not moving forward, but you should never harp on this feeling. In working with a lot of developers even the best ones can get down in the dumps for a bit. The great ones pick themselves back up and solve the problem.
I totally agree with that addition to the third point. Feeling that frustration with work at times is normal, but just feeling it without not judging our skills as a developer from it is important. It's actually come up a lot with my work in Ember lately. I regularly feel frustrated with learning the conventions, but I just feel it and let it pass as I eventually get the hang of it.
Thanks for this. This was much needed, Max.
Thanks alot for this, For some time now, I have been battling with this.But thanks, I know what to do now.
I struggled so much because of the first point... So overwhelming sometimes. A mindset change and prioritize !!
My times of being a junior dev are over, still this helps me with my crippling anxiety 😀
I'm very glad you still found it helpful :)
So, junior devs must evade outsourcing companies?
"Have I learned everything?" is the wrong question, since the answer never changes. The right question is "Have I prioritized learning the right things?"
I needed to read this
I'm very glad you liked it. It's even helpful for me to reread every now and then since I forget that rule sometimes. Especially during stressful times.
Awesome post !! I recently got my first job and joined there as trainee SDE . Could relate to each and every question you've mentioned 🙌
So much helpful, especially as I fit perfectly to that description. Even commenting here is me practicing some of the points you addressed in the article. Thanks a lot.
You're very welcome! It's always the small steps that count after all, since they make the journey a lot easier and more sustainable :)
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.