3 advices to a Junior developer


#1

Hey there!

A friend of mine has been working hard the past couple of years to learn to program on his own. He has landed his first job as a Junior Developer recently and asked me for advices to be a “good” Junior Developer.

What would be the three advices you’d give to a Junior Developer?


#2

That’s a great question! I guess it depends on what sort of development (e.g. web development, distributed systems, embedded, etc.)

Generally though, I think one thing is try to use easy-to-use tooling that is actually helpful. I spent a lot of time early on using Vim, without have good tooling set up, and not really knowing Vimscript, etc. Something like VS Code with proper gotodef extension has not only saved me time, but also helped me code much more proficiently. So, #1 Use tooling that helps and try to avoid tooling that gets in the way early on.

There is a lot to learn at first, and it can seem overwhelming. Side projects, reading code, etc. can be great, but maybe make a list of what is important for the desired career path, and deep dive into those things. E.g. if you’re interested in distributed systems, then understanding problems around sync vs async communication, eventual consistency, consensus, etc. vs if you’re looking more at full-stack web, maybe deep dive into API design, ORM usage and/or optimization vs SQL, and some frontend frameworks. So, number #2 make a list (preferably with a mentor) of specific topics important to your chosen career path, and dive deep into them.

It’s great to spend some time learning. For example, if you can spend a couple hours/day watching online courses, or reading, etc. but it’s also great to stop learning, start thinking, and start creating: https://www.youtube.com/watch?v=Uq-FOOQ1TpE

  1. Use tooling that is helpful
  2. Dive deep into core concepts (to your chosen path)
  3. Stop learning, start thinking, and start creating

#3

Time-box yourself when stuck on a problem. If you can’t get unstuck in 20-30 minutes ask someone for help. This gives developers a chance to think through the problem to better understand it and explain it to someone who’ll help them. And it teaches skills to help yourself get unstuck.

Related, keep a notebook or journal of things you feel stuck on, unsure of, blocked by, etc. With a log, you can see recurring issues that could use focused learning time later, as well as see progress in your career.


#4

Another day I saw this thread: https://twitter.com/StabbyCutyou/status/1002193315977158656
…and the three advices that I would give are:

  • Learn to handle failure: things don’t work as we want several times. This can be very frustrating in the beginning and you need to accept that it is okay.
  • Improve problem-solving skills: learn how to think about a problem in different ways, having empathy to the users and imagining edge cases.
  • Enjoy learning: we never stop learning. Be aware that this career involves lots of studying, reading and watching coding. If you like learning your career will skyrocket.

#5
  1. Assume the solution to a problem is usually not writing new code.

    It can be:

    • not writing any code, e.g. explaining how to use an existing feature
    • reusing existing code
    • refactoring existing code
    • removing existing code

    Explore these ideas before you jump in to write more code. More code has to be tested and maintained. More code can cause issues.

  2. Do code reviews and do them often. Review code of more senior developers and ask them questions.

  3. Write code and refactor. There rarely is a shortcut to getting better at something without spending hours on deliberate practice.