25 ms·
Great developers are raised, not hired
- yzfr12006 7y agoThe article is not only on point but it reflects a big problem in the tech companies. Businesses loose millions and they just burn cash because of toxic and arrogant developments teams. I can quadruple the sales of the company that I work for but you cannot push any change through the arrogant development team who don't give a chance to other people, it is so pathetic.
- amarkman 7y agoThe problem in tech companies is arrogant and clueless management that treats developers like dirt and blames them for everything.
- JustSomeNobody 7y agoTrust me, there are arrogant developers out there and they suck to work with. They treat code and design reviews as chest beating exercises. They refuse to work on anything remotely legacy. If their idea or design gets questioned in any way they get loud and obnoxious. You can't mentor these devs at all.
- wallacoloo 7y agoI agree with all but the last sentence. Every dev has a different background. Every dev needs to adjust to a different style of work wherever they go. Some will figure it out on their own. For the rest, I find it hard to believe that adding a mentor into the picture doesn’t improve the odds.
- 0xDEFC0DE 7y ago>They refuse to work on anything remotely legacy. You have to be careful what you're good at. If senior devs/management sees you're good at legacy, they might task you with that as a majority of your time. Then your career plans get sidetracked because you won't have as much time working on the stuff that you want to work on. Some developers are okay with legacy, but if they aren't, it's not surprising. Some legacy stuff is absolutely horrible to work with - it devolves into "get-in-get-out" fix mentality (and security issues usually get swept under the rug). Some legacy products are good though and require minimal tribal knowledge to actually work on. This has happened to me twice at two separate positions: bait-and-switches about what I'll be working on because more senior members wanted to offload the legacy work themselves. The general arrogance is really a separate trait from willingness to work on legacy IMHO and I agree on those points.
- zamalek 7y ago> you cannot push any change through the arrogant development team I worked at a company that did this. Eventually customers start demanding stability as a feature. There is a huge difference between arrogance and wisdom.
- LfLxfxxLxfxx 7y ago> Businesses loose millions and they just burn cash because of toxic and arrogant developments teams If a business is treated like that, maybe it should quit its current development team and try to get a job at another.
- loco5niner 7y ago> I can quadruple the sales of the company that I work for but you cannot push any change through the arrogant development team who don't give a chance to other people, it is so pathetic. Ummm... are you sure, THEY are the arrogant ones? I'm sensing some irony here.
- abraae 7y agoI guess the cynic in me would ask what the point is in polishing a rough gem in your organization into a diamond, if you're thus turning them into a target for other people to poach.
- alecmg 7y agoYou get the first dibs, don't you? If you need a diamond level dev, you must provide diamond level compensation. The article just points out that it is simpler to get that level from other sources than filtering what is on the market.
- arvinsim 7y ago> If you need a diamond level dev, you must provide diamond level compensation. It is baffling when companies resist against giving great developers a good raise. If they leave, the lost productivity and onboarding will cost them more. Sometimes, they end up having to hire 2 people to replace that 1 person.
- aNoob7000 7y agoCompanies want talent for cheap. Every time I see in the news companies complaining that they can't find employees, I think to myself, why don't you pay more? Add to that, if you start at a company and become a rockstar developer, admin, or QA guy chances are they will not value you as much as if you came in as the rockstar developer, admin, or QA guy.
- kgraves 7y agoI have never seen a single company/startup place a job posting for a junior position, (lucky if they even say training) Last time I checked, everyone wants to look for a senior developer with 5+ years of experience. It's some sort of hidden bonus if you're from a FAANG company as well. I'm guessing everyone wants to be the next Google, Facebook, Amazon, Netflix or Uber.
- cimmanom 7y agoso they do want junior developers. They’re just giving them the “senior” title ridiculously early in their careers. What no one REALLY wants are ENTRY LEVEL developers, who tend to be a net negative to productivity for roughly the first year or two.
- luckylion 7y agoMeh, in pretty much every company I've seen there are lots of entry level jobs to be done. Sure, you can ask an experienced developer to take care of them, and they will, but they'd rather apply their skills to more challenging tasks, or you could give them to a beginner, let them figure it out and run it by a more experienced dev to review. We've done that with a guy that had been out of programming for half a decade but wanted back in. Within half a year he was a great asset. I believe it's more about whether the person is happy to learn something new, not so much what they already know.
- EliRivers 7y agoHad someone respond to a job ad for a senior dev last week with 18 months experience. I was skeptical. I've never seen anyone develop senior level soft skills in that timeframe, and skill with requirements and design and so on seem to take a lot more time than 18 months.
- bpicolo 7y agoEvery new grad, intern I've worked with has done an amazing job hitting the ground running. They're not ready for "here's a big problem, please dream up a solution and get it out the door", but with reasonably laid out tasks they do a fantastic job working out the code and improving their technical chops along the way. Juniors who are eager to learn are my favorite employees
- cva10 7y agoOk, so the guy is in the training and conference business. That would seem to skew his perspective. Usually the people who talk loudest about mentoring are clueless or are in the teaching business. In the real world, there is zero reward for mentoring. Moreover, if you do it, you might get fired and be replaced by the now cheaper mentee.
- eduardsi 7y agoHow can you mentor people if you are afraid of being fired or replaced by a "cheaper" mentee? To mentor people, you have to be a professional developer, at the first place. Professional developers achieve job security by doing great work and making themselves replaceable. Mediocre developers – by building knowledge silos.
- xar11 7y agoProfessional developers don't write "at the first place".
- dfrage 7y ago> Professional developers achieve job security by doing great work and making themselves replaceable. Wouldn't that be "achieve career security"? Because as I attest upstream in this subthread, in my most notable example of being a mentor, I was indeed fired as soon as my non-technical salesman background CEO decided I was replaceable. Although he didn't realize that wasn't quite yet true, and the mentee decided to leave instead of working in such a place. I don't know about Estonia, but in the US conventional careers as a software developer start ending when you're in your 30s, with 40 being a hard limit in finding a new conventional job because that's when our national age discrimination law kicks in. That fresh out of college except for one short job mentee? The only reason he's still a programmer a quarter century later is that within a decade he got a high level security clearance, which is sufficiently onerous for the company that pushes through that process, they have to "bench" or otherwise have the employee work on non-classified stuff for many months, that after getting it you're in a small pool that companies vastly prefer to recruit from. This is intimately connected to being a good mentor since a fair amount of experience is required to do a good job of it.
- msluyter 7y agoI officially mentored someone at my previous company and helped him move from a support tech role into a software dev position. It was incredibly rewarding. But to play devil's advocate for a moment, isn't there something of a natural disincentive to level up one's employees in such a tight labor market? To follow the author's analogy, by mentoring someone, we're effectively "adding a fish" to the pond, and if someone else "catches" the fish, that effort is largely wasted. One might argue that if everyone put more fish in the pond, then we'd all be better off (true), but we have a standard collective action problem where the free riders benefit at the expense of the fish growers. I see two (partial) ways out of this trap. 1. Pay more than everyone around you. (Obviously, not generally viable.) 2. Make the culture of your company so awesome that people will want to stay, even if you can't pay the most. Make mentoring/growth a central strategy at every level so people will see a path to grow. I'd be curious to hear other possibilities.
- Fordec 7y ago"CFO: What happens if we train them and they leave? CEO: What happens if we don’t and they stay?"
- techcode 7y agoPerhaps msluyter was thinking of big companies that smaller ones can't match on spending power. Either way - if you trained/grown someone to become much more valuable for other companies and still can't create enough value working for you... Then you have a different problem.
- Roritharr 7y agoThis the technically true, but also a very tough starting position. If my six person startup has issues squeezing as much value out of my Dev than FANG companies with all their support structure and research into this, this is only to be expected, imo. So yeah, it's a problem, one on the list of many problems most companies have though, so it's oversimplified to simply say:"Let's just pay for expensive training and hope they stay." Yes, you can foster a culture, build a sense of loyalty etc. but at some point in time even the most loyal employee feels underpaid if he's paid below market because the company can't afford someone at the stage they've reached by working there. I've seen this play out too often to ignore the counter argument. The incentives of the company and the worker often simply don't align when it comes to career growth.
- yani 7y agoI recently asked a question where this answer would fit - https://news.ycombinator.com/item?id=19627404 https://news.ycombinator.com/item?id=19627404 We have tried this with 3 different candidates: 1. No experience last year in university 2. No experience with BS 3. 1 year working experience My experience with this approach is that it is a far more expensive investment that takes long time to pay off. The safe ratio that I can recommend is 5 seniors to 1 junior
- EliRivers 7y agoI have, to some degree, given up trying to hire senior developers. Instead, I'm doubling down on the internal training programme (and have hired extra juniors). 5% of time is set aside for training. Works out a little over a half-day every fortnight - every fortnight, after lunch on Friday, drop the code and hit the books, pet projects, videos, experiments, whatever clearly makes you a better software engineer. If you don't spend that time on your own training, questions are asked. Nobody has been fired for not training yet, but if we get someone who simply refuses to, I could see it going that way; when we hire someone, we're not just hiring that person today - we're hiring that person next year, and we're banking on that person next year being better at this. There is CapEx for books. We have PluralSight licences. New starters' agreed objectives include reading and thence using "Effective C++"; I will come by your desk every so often to chat about parts of it. We have short presentations every fortnight (the time of which doesn't even come out of the 5% training time) on technical topics. Once you've covered the basics, the company starts contributing towards conference attending. The last senior dev who got internally promoted currently has an allowance of 50% of his time for helping more junior devs understand things. Fifty percent! The intention is to get his senior dev knowledge and experience out of his head and into the heads of five other people; growing ourselves five more senior devs. I got all this by asking for it. Grow your own. Everyone wins. The company wins, the employees win. Just had to ask; if you ask, and your company isn't interested in improving, isn't interested in producing better products, faster and cheaper... well, is that really the company for you? :)
- maxxxxx 7y ago"The last senior dev who got internally promoted currently has an allowance of 50% of his time for helping more junior devs understand things. Fifty percent! The intention is to get his senior dev knowledge and experience out of his head and into the heads of five other people; growing ourselves five more senior devs." I am pretty senior and I like mentoring people. But the incentives are generally the other way: If as an IC I transfer my experience to new people I almost get no credit. The manager of the group gets credit for building a good team but I have to justify my salary compared to the people I mentored. So sometimes I wonder if it would be smarter to keep knowledge to myself so I can look better.
- ohaideredevs 7y agoI have found the premise of the title to be completely false in real life. Not much else to say to this - I haven't seen too many people grow, and when we hire someone great, they are great.
- JustSomeNobody 7y ago> I haven't seen too many people grow... Are they allowed to? Are they mentored? It's not just one sided.
- astura 7y agoIn my experience, as a mentor: Quite a lot of people are certainly capable of growing, but many (most?) aren't. Either they aren't capable, or they don't feel like it. Luckily you can almost always tell from the get-go who will grow and who will stagnate.
- maxxxxx 7y agoIt takes me around 4 weeks to figure out if someone can grow or not. There are exceptions though. Some people are almost traumatized by previous jobs so they need some time to learn that it's OK for them to grow.
- theothermelissa 7y agoAs a junior developer currently looking for a role on a great team, I'm curious about your process. Why does it take ~ four weeks, and what are some of the markers that tell you 'yep, this is a great candidate who'll grow quickly'?
- maxxxxx 7y agoI usually give new people a task I understand fairly well myself, that they don't know much about but can easily be researched because it's well documented. So I expect someone to research the problem, develop some level of understanding and then be able to discuss options. I don't like it when people copy a piece of StackOverflow code and don't understand it. I also prefer people who are naturally curious about tech vs people who just want to do the job. I don't like overtime but I like to discuss and try new ideas during working hours.
- preemsnab 7y agoFAANG - when you crave that backstabbing "lord of the flies" egomaniac culture for your startup.
- thom 7y agoAt what size of company does this pay off? My experience of hiring juniors is generally that they are net negatives to productivity for quite a while, and the smaller the company, the more significant the impact of that is. How do people here go about mitigating that?
- mixmastamyk 7y agoDon't have proven techniques, but have been toying with an idea I'd like to try the next time I have the chance. Have been thinking of starting a "farm team" to develop green programmers. Have a meetup once or twice a week, work on a focused project together, do mutual code review. Read the classics (e.g. the MMM) as homework. Perhaps give out some Amazon gift cards for good work. When a participant levels up, move them to a paid role.
- theonething 7y agoWhat is the MMM?
- deleted 7y ago[deleted]
- dragonwriter 7y agoThe Mythical Man-Month, by Fred Brooks https://en.m.wikipedia.org/wiki/The_Mythical_Man-Month https://en.m.wikipedia.org/wiki/The_Mythical_Man-Month
- thanksDr 7y agoThis sounds super fun! You're not in Toronto, are you?
- mixmastamyk 7y agoAgreed, however am in Los Angeles. Would recommend remote but this type of thing might be better in person. Perhaps each city can create their own. Even in LA there'd probably need to be a group in each part of town, like west, downtown, and/or Pasadena.
- mixmastamyk 7y agoThis discussion reminds me of the fixed vs. growth mindset, in the book Mindsets: "In a fixed mindset, people believe their basic qualities, like their intelligence or talent, are simply fixed traits. They spend their time documenting their intelligence or talent instead of developing them. They also believe that talent alone creates success—without effort. They’re wrong. In a growth mindset, people believe that their most basic abilities can be developed through dedication and hard work—brains and talent are just the starting point. This view creates a love of learning and a resilience that is essential for great accomplishment. Virtually all great people have had these qualities." https://mindsetonline.com/whatisit/about/index.html https://mindsetonline.com/whatisit/about/index.html
- wincy 7y agoI started in IT. I very quickly realized I could do a lot of tasks the other support staff weren’t willing/able to do, like learning regex and database normalization. Kept getting more dev related tasks since my boss was the only software engineer at the small startup. Rather than get rewarded or hired as a developer by the company, as the support team grew I was headed toward being promoted to the support manager. They brought on someone else as a dev and that really made me realize I’d never be a dev in the CEO’s eyes. Bosses daughter did an internship so she got the coding tasks I would have gotten before. I was taking more phone calls with idiots from places like The Federal Reserve who didn’t know how to Google “hoe to format a hard drive”. So I left and doubled my pay. Some managers just believe what you know is set in stone and you can’t progress or learn anything new. It’s a really bizarre mindset to have when a devs most important skill needs to be the ability to learn. Didn’t all these same people go to school?
- dfrage 7y ago> Bosses daughter did an internship so she got the coding tasks I would have gotten before. In my experience at a couple of places, the moment you learn its a nepotistic environment you should leave as soon as you reasonably manage. As you saw, it's a sign of very bad management, the sort that can easily kill a company, see Wang Laboratories for perhaps the most famous example in the US.
- ragona 7y agoThe title is a bit hyperbolic, since obviously we sometimes hire great developers, but I agree that a focus on mentorship and growing engineers is critical. There are simply many more new engineers than there are senior ones, and high quality teams are able to get much better productivity out of these junior people because they're better at teaching them. I see a bunch of people in this thread suggesting that their new developers are often a drain on productivity for a year or two. This suggests to me that their teams are not very good at training. I've hired and managed quite a few junior engineers, and I've generally been successful at turning them into productive members of the team within a couple of months (or even a few weeks when I'm lucky and the person is very strong). I think perhaps the most important ingredient is to trust them, and to encourage measured risk taking. They need to feel safe to explore and make mistakes, and you need to have a robust safety net (via CRs, unit tests, integration tests, etc...) so that it doesn't cause customer impact. I'm a big fan of giving new developers real tasks almost immediately; treat them like professionals and I find that they tend to start acting like professionals. People who don't feel safe don't learn well. You need to develop a culture of it being okay to ask questions, okay not to know things, and okay to make mistakes. If this culture is missing then you're going to fail to grow people into great developers.
- twoquestions 7y agoThis sounds like a wonderful idea in a business culture not obsessed with burning tomorrow to a crisp for more return today. Not to mention this requires trust and loyalty, both rendered cruel jokes by the all-against-all knife fight that our (in the US) labor market is.
- rb808 7y ago> Your mentees will support you and promote you for the rest of your life. The problem I've seen is that this is rarely true. We've had a big set of grads we've trained that quit for a 20% pay rise, or a project that they happen to like better. Many regretted it but it didnt stop the next guys from doing the same. I'm really burnt out over teaching green newbies again and again.
- chrisseaton 7y agoWhy don't you match their pay rise? Or give them projects they're more keen to work on?
- madrix999 7y agoCant lower the CEO's paycheck 8) (mostly serious sarcasm)
- chillacy 7y agoPut yourself in the shoes of the board of directors and you'll find they too don't want to overpay for CEOs. But paychecks are market driven, and lowering the pay means you'll end up with a less experienced or worse CEO.
- learc83 7y agoExecutive pay hasn't been shown to correlate strongly with performance, and the board members and CEOs tend to have somewhat incestuous relationships.
- chillacy 7y agoI guess that would be a problem if board members were willing to take a hit on profitability to load up their pal. Maybe shareholders don't notice, or while the market is doing well they don't question it.
- IndrekR 7y ago
- man2525 7y agoThat's roughly what they do at my company. Many people in the company have some form of Computer Science certificate/degree, so shouldn't be that hard to make them develop...but you hit the Peter Principle much faster in this line of work. The CTO loves the hanging on by the seat of your pants optics. "Look at him go. He doesn't have any idea what he's doing, but he's getting it done. That's what we want." The rock stars puff up and grouse about the recent QA to senior DEV promotion, then ridicule them, then you find out the rock star has been working until past one every morning since part of their responsibility as a lead is to make sure the QA-cum-Senior Engineer's work is code complete. Then they leave. And yes, then a great developer is hired...but they never tell us where they're going...
- austincheney 7y agoThe best developer thing is really frustrating and ultimately a failure. Companies always claim to want the best during hiring, but once hired that completely goes away. What they really want are a couple good developers and rest somewhere between mediocre to brand new. To really see the paradox ask extremely controversial questions during the interview. As a frontend developer ask about process efficiency or interacting with the DOM without a bunch of framework bullshit.
- projektir 7y agoSo many developers here downright scared to mentor others. The problem with the current job market on full display.
- dfrage 7y agoWe have to live in the world as it is, rather than what we'd like it to be. The well reported in this discussion patterns of your boss trying to replace you with your mentee, getting dinged for not getting "real work" done, and mentees not staying in the company for very long should give anyone pause.
- projektir 7y agoThat seems like a good way to keep the world the way it is, and not how we'd like it to be. Thankfully, not everyone thinks as you do.
- trailingZeroes 7y agoI agree with the headline and not much else. Okay. I'm fine with agreeing with the notion that good, productive engineers can result from good environments. But that doesn't mean hiring 'broken toys' is a good idea. This article's message is 'Can't find anyone good? That's okay! Hire someone anyway and mentor them!' Turn this stone into a diamond!' Okay. Some stones don't turn into diamonds. Gee...if only there was some sort of process that can help determine which people are capable of being a good engineer. Maybe companies can do something like asking some basic questions about a candidate's ability. Something like a filtering process. 'The pond is empty.' Pfff. No it's not. If no one's biting at the rod, it's because of shitty bait.
- teknologist 7y agoA “self-confident rockstar“ is just a developer who has been through this process of self-development and no longer requires the mentoring and extra effort to get them there. I appreciate that some companies value experienced developers and aren’t trying to nickel and dime by finding “broken toys” so to speak that they can force into their own moulds on the cheap
- epicureanideal 7y agoWhat do you mean by "broken toys"?
- loco5niner 7y ago"broken toys" is referenced in the article.
- didibus 7y agoThis seems to strike a chicken and egg problem. Who will grow the talent? It seems you'll need to hire the mentors for that. And what's the level of growth possible? Isn't that capped by the level of your senior devs? As far as I know, most interview processes are designed to hire potential. For example, if you can't learn fundamental algorithms in a reasonable amount of prep time to prepare for the interview, but someone else could... Which talent has the most likely potential? I'd even go and claim that the current interview processes are biased against senior talent. Someone who already knows they are qualified won't be motivated to go and practice fundamental algos that they haven't needed for real work in years. They'll expect their own track record and knowledge to be recognized on it's own. But, the interviews won't care about that. And they might instead hire a junior with more time and motivation on their hand, which decided to spend all evenings for the last two months doing leet code questions. Similarly, many companies seem to favor new grads, which they can quickly brain wash into their existing engineering culture. They think, these new grads really strive, instead of challenging the status quo, they internalize our processes and work hard to deliver, even if we're being unreasonable. Eventually, this creates a lack of perspective in the entire company. Hiring more external senior talent would help get more perspectives, and prevent this silo of opinion that hurts innovation over time.
- dfrage 7y ago> And what's the level of growth possible? Isn't that capped by the level of your senior devs? Senior devs who are good at mentoring also ought to be good at learning new stuff. They'll also be learning some things from the mentees, at least some of them will know stuff they don't know because our field is so vast. Once the mentees catch up? If you've inculcated a learning culture, these new senior devs will be learning new things right along with the old ones.
- lkrubner 7y agoI can agree with hiring novices and then giving them what they need to learn. We hired two women from Fullstack Academy (NYC) and they turned out to be amazing. They were novices, but incredibly motivated and talented. Both of them had had other interesting careers, and for both of them they were changing careers to get into computer programming. Now we are expanding the team so we are hiring another of their classmates, who they have strongly recommended to me.
- ausjke 7y agofrom my experience the only way you get better salary is to jump around, not too often, but if you stay with one company for two long(say, 5+ years), you become the lowest paid at your level in general. only if you're on the management ladder you want to stay longer, for tech and engineering roles, the old employer does not really appreciate that much after you're loyal for too long as far as compensation goes, very ironic but it's the way it is.
- neilv 7y agoWe're in a labor market in which CS students are focused on drilling for the FAANG-style whiteboard tests. And many will tell you their strategy is to go to Google for 2 years of experience and resume-building, and then leaving rather than grind away and play the promotion game there. And everyone has known for 20 years that you have to job-hop to grow your salary in this industry. And most employees would be naive to think that their employer would take care of them long-term. In this mercenary environment, loyalty doesn't go very far, so, for retention after mentoring, I assume one would have to pair mentoring/training with substantial growth in compensation. Besides all the non-monetary attractions.
- freyir 7y agoMy last company would insist that they couldn’t give promotions or significant raises. Until you came in with an outside offer, then they’d roll out the red carpet and bend over backwards to keep you. It breeds distrust, discontent, and disloyalty. The best people don’t like this and leave. They company is left with people who can’t land outside offers. And the company ends up needing to pay market rate anyway to replace the good people who left. Idiotic.
- msoad 7y agoThis works for the company because most people don't bother interviewing and coming up with a counter offer. In my previous company the best of the best would leave because company had this blanket policy that they would never do a counter offer. But in overall it was good for the company because they were able to retain most of engineers with raises as little as 1% and no stock refreshers.
- freyir 7y agoI actually prefer that policy. At least they stuck to their guns. We had an inexperienced junior dev come in with an “amazing offer.” This signaled to management that he must be amazing, so they offered a promotion to team lead to keep him. Half the team quit within a month, then he proceeded to run everything into the ground. There was a certain amount of shadenfreude watching that play out.
- asabjorn 7y agoMentoring is the way to go, although the 18 month average stay in a job in silicon valley increase the cost of training someone.
- analyst74 7y agoI don't think a general discussion on this topic can really be had. In my experience of working for shitty enterprise software, good and bad consulting firms (and seeing how their non-tech clients work), and silicon valley startups. The company financials, work culture, job market are all vastly different, impacting all the trade-offs of different hiring method. i.e. some firms simply cannot afford top-of-the-market pay for senior engineers they want to hire, so they hire more junior ones and train them, who eventually leave after they're trained, but people don't immediately jump to next ship paying a little more, so you end up getting good work out of them for a period of time while underpaying them. Some companies compete on non-momentary means. Some pay top of the market rate, but only hire seniors. Some pay top of the market rate, and hire from all levels; some of the juniors rise up through promotions, and some didn't get recognition despite growing, so they leave for other companies. Some companies simply don't care about engineering quality, or does not have the ability/DNA to differentiate between good and bad work. Also in silicon valley, networking and mentoring good engineers is much more professionally rewarding than in smaller markets.
- crimsonalucard 7y agoGreat developers can be hired. For example, you raise the developer, I double his salary and hire him away from you. Not saying that I advocate this practice, but this is what happens in SV.
- iandanforth 7y agoThe distinction here is between a hunter-gatherer mentality and an agricultural one. Are you picking and choosing or are you farming? Currently we grow engineering skill in (often) high cost institutions with limited capacity such as traditional universities. Moocs and bootcamps are alternatives which try to address the scalability, cost, and time commitment barriers of traditional education. The question is should there continue to be a strong dichotomy between organizations who consume the output of these growth channels and the growth organizations, or should software development companies create programs of structured education and growth that have a low barrier to entry? As others have mentioned startups who can hunt/find/pick people with relevant, high quality skills have the advantage of not paying the time and organizational cost of training. Personally I think that large organizations should be taking more hands-on approaches that take all, or nearly all comers, and then provide training for the kinds of skills they need. If you look at military funding for medical educations (for example) you'll see that the organization can be very generous in terms of time and training cost as long as a candidate ends up with the skillset they need. You might not go in wanting to be a urologist, but you can end up highly skilled and very well paid if you're willing to meet the needs of the organization.
- rajeshp1986 7y agoI love the point the author raised in this article. Companies are spending a ton of money on recruiting and paying commissions to recruiters. If some of that money and effort is channelized toward mentoring, a company can notice a significant change in quality in its workforce. That said, this article fails to address 2 major issues or provide any solutions for that: 1) Every decent size company spends for providing resources like books, learning portals etc. for their employee to grow their skills. There is an entire industry running which caters to provide companies learning tools, for example - safari online books etc. Mentoring is also used a buzzword in these companies. There is a difference between providing tools & books vs creating an environment where people can grow. Mentoring is very inter-personal. Unless companies create incentives for senior engineers to help mentor other engineers there won't be any real change to the way things are now. 2) If your teams or Orgs are always battling to meet the next deadline, how will mentorship happen? You can't expect people to put more than 40 hours of work and expect them to personally mentor other engineers(They still do btw).
- habosa 7y agoYes! This is something that is not just about developers and seems to be a huge gap in hiring. Go look at any big company job listings. There are many positions that have no "entry level" roles. The lowest level of experience will say "5 years of {x}". If you're a company that does not take people without experience, where do you think they're getting the experience? You're relying on other companies to train your employees, and naturally you're not getting a chance to create the exact employee you need. Hire people that are intelligent, humble, and willing to learn. Ignore credentials, and promote from within. In most situations, you'll get the right result. Aside: The weirdest part is there are some positions that seem to not have entry-level jobs anywhere in the industry, you have to sneak into them. For example my girlfriend is a "Brand Strategist" at a web design agency. This is what she always wanted to be, but when she was applying it seemed that every Brand Strategist job required 2-3 years of Brand Strategy experience. So she applied to her company in a role she didn't really want and then basically talked her way into the new role. Obviously she's doing well and she will never face this barrier again. But that was a stroke of good fortune.
- AtomicOrbital 7y agothis is exactly what global investment banks do ... they hire a fresh crop of a few dozen smart motivated young perspective programmers and put them through 9 months of intensive work study multitasking classroom lessons in software problem solving together with IT operations experience where everyone gets a very broad exposure to the technological landscape ... these banks repeat this every 3 months with yet another new crop so there are three such sets of new recruits on an ongoing basis ... after the 9 months these ~graduates~ are assigned into programming roles and just boot themselves into their new positions ... key here is they start with razor sharp people from any field ( philosophy, science, humanities ) who have exhibited problem solving potential ... also key is the business can afford to offer this in-house training while the new hires are getting paid ... baked into this equation is the nurturing of loyalty and admiration toward their employer - deservedly so I might add
- azangru 7y agoAs a developer, I want to work with people who are at least as knowledgeable as me, and preferably much more so. I want to spend my time learning what I do not know, not teaching what I do.
- poisonborz 7y agoYou must be a junior with a few years of experience. Even so, you should discover that teaching will boost your knowledge a lot. Being surrounded by more experienced people may give you a short term boost, but teaching what you already know will deepen your knowledge in what you only think you know, which is way more important to improve.
- azangru 7y ago> You must be a junior with a few years of experience. You may say that, although that would stretch the word junior to the point where it is hardly meaningful anymore. Judging by Twitter threads and Medium posts that have become so very inclusive and protective of juniors, a junior (usually discussed as applied to web development) is someone who has hard time configuring build tools, is still uncertain about syntax of their primary programming language, and is easily scared by a smidgen of functional programming (such as the reduce function). I wonder where they would fit in your classification :-)
- shoes_for_thee 7y ago> As a developer, I want to work with people who are at least as knowledgeable as me, and preferably much more so. If they embraced the same sentiment, people who you prefer to work with (eg, those who are much more knowledgable) would prefer to not work with you.
- azangru 7y agoThat’s totally fair (and there indeed was a time when the typical response to my resume was, "we are not looking for juniors") :-) But this argument makes sense only from the collective standpoint (as in, the industry in general). Of course developers have to be trained by someone, because otherwise there will be no dissemination of knowledge, no passing down of experience, and no qualified workforce. So of course that should be done. The question is, whether you (as a programmer on a team looking for new members, or as a company looking for new employers) need to be doing this, or whether it's all right to let someone else do this while you look for already well-trained and experienced professionals.
- julius_set 7y agoThis article assumes that the person you are mentoring is open to being mentored. I’ve worked with some engineers who were definitely junior despite having years of experience and very opposed to even a slight suggestion on how to improve their thinking process or implementation process.
- ozim 7y agoOn the other side of spectrum there are those people who "really want to learn real programming" but you have to do all the work for them. You point them at the resources, contribute ideas and it turns out person is not following through even though when they talk they are enthusiastic. So basically you have to somehow spot right person to spend time with, and it is hard. At least guys that don't want to be mentored are not time sinks.
- julius_set 7y agoThis too, I’ve also worked with people like this, it is extremely frustrating to teach someone who wants to be mentored not take your mentorship advice and continue to make the same mistakes. The counter argument here can be that I possibly may not have mentored the person in the right way using the right motivation, but methods I tried were (ranked in succession): 1.) Showing by example but asking to come up with own examples 2.) Templating examples 3.) Listing out steps 4.) Finally just directly asking to do x, y, and z Utilizing data patience time boxing. This is definitely a difficult problem I don’t particularly have an efficient solution to, my best answer is just find someone to mentor who will execute
- rooam-dev 7y agoNo, great developers are the result of ones hard work, long nights, dedication and passion, hence hiring part. Mentoring is Uni's job, since you pay them money.
- jasoneckert 7y agoI've always thought that great developers were cloned.....from Github ;-)
- loriverkutya 7y agoI would be really-really happy if the IT industry would just forgot about the phrase, rock star. I just cannot read anything after I see that word.
- ezoe 7y agoGreat article.