1

I have been tasked with supervising and up-skilling junior and intermediate software developers.

When I was a junior/intermediate developer I was mostly just told to build this or fix that and had to figure it out on my own. This wasn't too bad as I was a self learner, attending meetups and reading lots of blogs.

However I feel that some more structure and guidence would be be valuable.

So what support and skills would be (have shown to be) the most valuable to junior/intermediate developers?

(What do you whish some one had taught you earlier in your career?)

6
  • If you are a senior developer, then you would basically show the junior developers the skills needed to perform well on the job, and eventually accumulate enough knowledge to be successful senior developers just like you. Commented Jul 8, 2020 at 4:09
  • 1
    @Thanh What are you trying to say? How does it relate to the question? Commented Jul 8, 2020 at 5:38
  • 1
    I think he meant, and which I agree with, direct support and knowledge from you is the most useful and directly related to the job they need to do. No one knows the job better than you do, and external training material could be recommended by yourself i.e. you used this guide/resources to get up to speed.
    – notsure
    Commented Jul 8, 2020 at 5:43
  • 1
    @Thanh Ah that makes more sense! Thanks. Commented Jul 8, 2020 at 8:12
  • 1
    @Thanh or they join a company with their own ideas of what is important or not; pushing certain algorithms, pattern/anti-pattern, specific tech stack, etc. etc. etc.
    – Nelson
    Commented Jul 8, 2020 at 8:21

2 Answers 2

3

Any employee needs a lot of skills. Al these skills are usually split in 2 big categories:

  1. hard skills - related to how to do the job actually; technical stuff. They can include programming languages, compilers, bug management systems, requirements engineering systems, databases...
  2. soft skills - related mostly to how to relate to and work with other people. They include communication, conflict avoidance and conflict resolution, team building...

I have been tasked with supervising and up-skilling junior and intermediate software developers.

You need to clarify with whomever tasked you what is their expectation. It depends on many factors, and several of them are really company-specific.

2

This depends on the company, the product, the industry, the size and skills within your team, your technical stack and the people you are training. There is no one-size fits all solution, and titles are - for the most part anyway - meaningless.

If you want people to grow professionally, you need to talk to them about it and be transparent. It's a journey for them as much as it is for you and for the organisation you work in.

I suggest you look at progression frameworks for an idea of how others do this. A lot of tech companies have been publishing their hierarchy and expectations and role descriptions. Take a look at progression.fyi for a list of companies that share theirs.

The core idea is that you have a transparent outline of what each level within the organisation should have as skills, both hard and soft, and what behaviours you should display in order to be put within a certain level. This then translates to the individual's responsibilities, pay and influence within the organisation. It's like an interactive job description.

I have recently developed my own one at work, where I train graduate tech hires into software developers, but we haven't decided whether we will publish it yet unfortunately. However, I was heavily inspired by the one that Monzo uses.

In terms of what people should be able to do and how they should behave at a certain level in their career, this stuff is great for putting a plan together.

Once you have that, even if it's not company-wide and official, but just an idea of what you want to do, write it down, talk to your reports about it in a transparent manner, and then figure out how you can achieve individual progress. Every person is different, they learn different and they have different skills, strengths and weaknesses, and they like to do different things. You need to work with each one of them individually to find things they want to improve about themselves, and help them own that improvement.

Regularly speaking about progress in an honest fashion that doesn't judge is crucial here. Have planned meetings, find a good way to share what you're discussing with them, and make a roadmap for each of them. Keep the things private between yourself and each individual, but make the process accessible, transparent and understandable.

This is a fun project, and you will have it within your power to positively change people's skills and lives. Good luck!

Not the answer you're looking for? Browse other questions tagged .