TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: How do you best utilize inexperienced software engineers?

8 pointsby ziffusionover 3 years ago
I fully get that a lot of less experienced software engineers are likely extremely smart and capable. So no offense intended.<p>Some of you may agree that some of the more subtle nuances of software architecture, structure and development take some time to get a handle on.<p>Given that, how do you best utilize inexperienced software engineers? How do you control architecture, structure and software quality without stifling individual creativeness or creating a perception of oppressiveness?<p>How do you guys pull off your magic as team leaders and managers?

7 comments

karmakazeover 3 years ago
Pair programming. I know of no better way to level up engineers. The more senior of the pair is also often learning too, especially if you rotate pairs so that the inexperienced one has recently picked something up from another senior.<p>And if anyone&#x27;s concerned about a drop in capacity, I invite giving it an honest go and seeing for yourself. Whatever is thought to be lost is more than made up for in quality, reduction of miscommunication and building the wrong thing less often. Another big boost is the ability to maintain a &#x27;flow context&#x27; despite interruptions, as well as much less &#x27;down time&#x27; not moving in any direction. Some individual quiet thinking time does need to be reserved though.
JasonCannonover 3 years ago
My team uses mob programming to do all of our work. So we have our Jr developers working on the same projects with our Sr Developers. This creates a ton of opportunities for knowledge transfer, mentorship, learning, and growth. We provide the opportunity for Jr&#x27;s to grow and try things out not only via osmosis of working alongside more sr developers, but I will occasionally ask the Sr developers to step back, and allow the Jr&#x27;s to take the lead on making decisions, and only step in to provide guidance or point out potential flaws with going down a route.<p><a href="https:&#x2F;&#x2F;www.remotemobprogramming.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.remotemobprogramming.org&#x2F;</a> <a href="https:&#x2F;&#x2F;www.agilealliance.org&#x2F;resources&#x2F;experience-reports&#x2F;mob-programming-agile2014&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.agilealliance.org&#x2F;resources&#x2F;experience-reports&#x2F;m...</a>
评论 #29124656 未加载
givemeethekeysover 3 years ago
The following has worked well for junior software engineers wherever I&#x27;ve seen it implemented:<p>- Put them on bug fix duty first. There&#x27;s a lot to learn here both technically and soft skills too.<p>- Set aside smaller projects - perhaps not the main driver of business, but nice to haves that one or two people can tackle and give them a chance to own them.<p>- Pay attention to what they&#x27;re showing interest in - perhaps it is software, but you never know, perhaps it is another role entirely (project management, support, testing, product management.. who knows.. maybe they really like the business side). If that&#x27;s what they&#x27;re drawn to, then suggest that they talk to other teams.
Communitivityover 3 years ago
There are three types of inexperienced software engineers. There are the ones who want to learn and grow, and that is split into the ones who are also willing and able to put the time into it (let&#x27;s call them A s), and the ones who aren&#x27;t (let&#x27;s call them A&#x27; s). Then there are the ones who do not want to learn and grow (let&#x27;s call them Bs).<p>An A or A&#x27; can be coached and mentored. Even some Bs can be motivated into becoming As or A&#x27;s. The Bs that can&#x27;t should be cut loose.<p>Realize that these individuals are like a tiny seed. They require lots of water and attention to grow. When they do grow though, they can grow into a tall oak that provides shelter for others to grow (ok, forestry majors please don&#x27;t rain on my metaphor, I know about crowding). In my experience having mentored more than a handful of people (maybe more than two), the experience is very worth it. There will be some bad apples that sour the experience for a bit, but most people are either As or A&#x27;s that want to be As).<p>A common mistake is to tell them what to do and how to do it. This is sometimes needed, but stunts their growth. As you do things, show them how you did it, explain your decisions. Then give them tasks (smaller at first). The growth from entry level code, to developer and sr dev, to software engineer and sr sw eng, to system engineer and beyond is in many ways and expansion of the complexity that the individual can handle thinking and reasoning about. So start with a function or set of functions, graduate to a class, a module, a package&#x2F;namespace, a service, and then an app. Or whatever similar ladder makes sense for your domain, language, and product.<p>Do design and code reviews. Be gentle - these reviews may be looked on as the storm a tiny sapling has to weather. Don&#x27;t say this is wrong on designs. Instead ask them why they decided to do it this way. Ask them &#x27;what would happen if X&#x27;, etc., and lead them to come to their own conclusions. Do enforce a coding style and good habits (such as PRs, code reviews, unit testing).<p>Realize that experience or inexperience is relative. To the 52 year old that&#x27;s been coding since he was 11, in the domains he&#x27;s coded in many people are inexperienced.<p>Also realize that experience is not just relative but scoped. The same 52 year old walking into a FPGA shop is a rank noob, and should know it (if they think they aren&#x27;t then that&#x27;s another problem, and often worse than inexperience).
Graffurover 3 years ago
When I was inexperienced the best thing for me was to be paired with someone very experienced in a mentorship type of way. We would get a task and he would do it with me watching and asking questions. After learning a bit I would do similar tasks myself and still ask questions if I got stuck.
fdgsdfogijqover 3 years ago
The way big tech does it is hire top engineers at like 500k a year, and then have them watch every CR from a team of like ten junior engineers. The model scales well, you just need a top knotch lead who is relentless about quality
评论 #29129928 未加载
honkycatover 3 years ago
Don&#x27;t hire Jr. engineers to save money. They are useless for a LONG time. Hire them to give mid-level engineers a chance to develop leadership.<p>Have them pair program basically all of the time.<p>Watch their PRs like a hawk and don&#x27;t be surprised when you have to do 5 revisions for simple features.