4

On the Hot Network Questions list today: "Just graduated with a master’s degree, but I internalised nothing."

Suppose that OP or someone in the same position has just been assigned to me as a software engineer, coming in with a bachelor's degree in Computer Science and a Master's in Software Engineering, both from well-regarded schools. Apparently this candidate was hired on the basis of the degree, without a coding interview (which several questions here indicate is not a problem).

What specific things can I do to get the most value from this employee, recognizing they aren't currently capable of solving the coding tasks originally intended?

For the benefit of the employee and company, I'd like to help the employee realize their potential here, and seek specific concrete strategies that you may have seen work or successfully tried (/were tried with you) before.

1
  • Comments are not for extended discussion; this conversation has been moved to chat.
    – user44108
    Jun 27, 2019 at 7:15

6 Answers 6

8

What specific things can I do to get the most value from this employee, recognizing they aren't capable of solving the coding tasks originally intended?

IMHO, the degree in the context of this question means very little if they can't do the work. Neither is the lack of coding interview an inherent problem - there's plenty of people that can solve generic whiteboard coding tasks no problem, but haven't got a clue of how to tackle a real-world project.

Assuming the answer to this isn't immediate PIP / dismissal (which I applaud you for not using as a first course of action), then I'd recommend the following:

  1. Ask them to break the task down into smaller chunks, and identify which "chunks" they're capable of solving, and which they need help with, or:
  2. If they're not capable of doing that themselves, work with them on a task in a 1:1 to try to analyse exactly what they're capable of, and where they're struggling;
  3. Use the above to identify the skill gaps, and devise a training plan/scheme of how you're going to bring them up to speed on what they need to know;
  4. As they complete the training, assign more complex tasks that they should be able to handle in order to ensure that they're learning from this training, and improving.

If all goes well, you can use that approach to bring them up to speed. Just bear in mind that if they're really struggling way too late on and it's clear that they're not going to be a good fit, letting them go sooner rather than later may be the best outcome for all parties concerned.

7
  • "the degree in the context of this question means very little if they can't do the work." Answers to the other question point out plenty of things that the degree means, like the ability to pick up ideas quickly enough to pass a test, and the implications that the other answers say follow from that.
    – WBT
    Jun 26, 2019 at 19:05
  • @WBT Having the degree (of a relevant field^^) should mean that you can talk to them on the abstract level, like algorithms, loops and the such and that they should be able to pick up the gist of a programming language comparatively quickly compared to a random person from the street without such a degree. Likely they will mainly need help with "technical aspects" like where to find the right tutorials, how to setup the IDE, how to start your application and the particular syntax of the language you use. They should however get what recursion is, how loops generally work etc. Jun 26, 2019 at 19:15
  • 1
    @WBT I don't fully buy into that, sure there is some basic ability involved, but most people who stop when it gets theoretical/complex imho just lack the motivation/masochism/determination to force their brain links into a new direction (or simply don't need to as they come by without it). I've found that learning something fundamental new on the concept level takes most people effort and is "painful" as you need to often override things your brain assumed so far to be different. Jun 26, 2019 at 20:42
  • 2
    @WBT In any case, if you refer to the original question, I didn't see hints that the fundamentals are the problem, more that there is a lack of practical experience, something with which many university students - who do this as a career not programming all day long out of passion - only get on the job, but they are typically quick to pick it up given proper tutoring. Jun 26, 2019 at 20:43
  • 1
    @WBT yes a lot of university students "don't know how to (properly) program" as they've never done it for any larger project or in a larger team with coding standards. They feel insecure opening an IDE they've seen perhaps two semesters ago the last time. They might have used different languages but have no deep knowledge in a single one about the language syntax and specifics. So no, I don't see a problem with the fundamentals based on that statement. This rather shows that the question is pretty broad/unspecific. Jun 27, 2019 at 8:31
4

What specific things can I do to get the most value from this employee, recognizing they aren't capable of solving the coding tasks originally intended?

Specifically, you can provide training.

While the employee may not yet be capable of handling the coding tasks, presumably they are capable of learning how to do so. Your job is to help them get there as quickly and as efficiently as you can.

The newly hired employee needs to attain the skills needed to perform the job effectively. How those skills are acquired (internally, externally) isn't really important. If a mentor can do it, that's great. If not, outside help may be needed.

1
  • Would you say mentorship from within the company counts as training or would you be referring to 3rd parties?
    – lucasgcb
    Jun 27, 2019 at 9:26
3

Your interest shouldn't just be in how many skills the fresh grad has; it should be how quickly they pick up new skills.

When I was in college, my specialty was VB6 and C++ within Linux. Care to guess how much I did in either of those 5 years afterwards? Or how much I use them now? Likewise, my degree did nothing to help out with soft-skills, nor did it do much to prepare me for the real world.

Don't get me wrong - it sucks that you got an employee who doesn't have the skills their degree would imply. But... if they're motivated, and can pick up technical skills quickly, it might not be as bad as you think. There are a lot of programmers in the world that didn't get a programming-based degree - they learned it on the job, or as a side hobby.

2
  • The degree doesn't imply any skills. If you corner a professor about why they don't teach certain essential real world skills, they'll tell you that CS is an academic subject, and a degree in it was never intended to teach any practical skill at all. If you want practical skills, hire a trade school grad. Jun 27, 2019 at 19:16
  • 1
    @TKK - that's a bit extreme. I mean, I understand what you're saying - but if someone has a CS degree, it's not crazy to expect them to be able to write FizzBuzz in a programming language of their choice. Plus, the undergrad was CS, but the OP says the masters was in Software Engineering.
    – Kevin
    Jun 27, 2019 at 20:16
0

In my experience, fresh graduates with no real world experience are often limited in their ability to work independently. Classroom projects tend to come with a set of expected outcomes and predetermined criteria that can be used to measure success. These things simply don't exist in the real world and as such, you should go in expecting these new hires to have a steep learning curve and to make a fair amount of mistakes early on. It's for this exact reason that years of experience is such an important factor in determining salary.

What specific things can I do to get the most value from this employee, recognizing they aren't capable of solving the coding tasks originally intended?

Assign him a more experienced developer as a mentor--someone who can work closely with him and be available to answer questions. To avoid coming across as a micro manager, the mentor should ideally give the new hire a chance to solve problems on his own and listen thoughtfully to his ideas and intercede only when necessary. This means not explicitly telling him what to do but helping to guide his thought processes so that he can learn to tackle novel situations more quickly.

If the new hire lacks basic knowledge of the languages/frameworks the team uses, investing in an external training programming may also be necessary.

0

When I think back about my own transition from academia (was in there for a LONG TIME) to industry, the most challenging aspects had nothing to do with solving technical problems (or lacking "skills"). In fact, as I have noticed in myself and in others in the years since I've been working, college grads are frequently shocked at how intellectually unchallenging work can be.

"Skills" are relatively easy to pick up. None of that stuff is rocket science. One simply observes what others are doing and learns it with some coaching, a little patience, and hopefully an environment with enough slack to be able to make (and recover from) mistakes.

The real difficulties come with things that simply don't exist in an academic setting. In my case, a big one was the concept of "project management". It took me a long time to understand what the role of project manager was and why it seemed like they were utterly un-interested in anything other than "when-will-it-be-done". To be honest, I STILL have issues with project managers 20 years later.

It's not about the skills It's more about having a culture that can accommodate new grads and indoctrinate them into way of doing things in that workplace.

0

Tl;dr: stick them in Ops or frontline support for a while. I can’t imagine an Ops team that would turn down an extra head, especially if it’s coming out of your teams’ budget.

Experience I have a BS from a great school, and don’t think it’s helped me very much in my career. I’ll offer what has, though I’m going to fudge some of the details:

I began in Ops/Support, not Dev. This put me in a position to immediately contribute, while learning all the intangibles: how the company works, who does what, what breaks where, etc. (A couple months covering weekends alone and you learn to spot stuff during the week before it breaks). I also became familiar with the products we produce, and how the customers use them.

Later, having developed a good grasp of the business, I began dabbling in scripting to help make Ops tasks easier.

At this point I’d learned the company, the people, the product, the perspectives of both customers and Ops, and am developing coding skills that have a real impact on the company. Not bad for a few months’/year’s work of onboarding.

Finally, having shown an aptitude for problem-solving, comfort with coding, and an ability to deliver, I transitioned into a more pure Development role. Small stuff, then bigger stuff, but even if I couldn’t code whole apps immediately, I was still a valuable junior Dev team because I was a Subject Matter Expert on some things they weren’t as familiar with — namely, their customers (both Ops and end-users).

What specific things can I do to get the most value from this employee, recognizing they aren't capable of solving the coding tasks originally intended?

Looking back, had I been hiring me as a developer I would have compressed the timeline, but I think a stint with Support or Ops is invaluable training. As our team has grown we’ve hired several excellent coders, but even after a few years together I’m in the best position to design the projects because I’m most familiar with how we fit in the company as a whole.

1
  • This really depends on the person. I'd run away as soon as possible if you'd put me in a role I didn't apply for - specifically such a role. One can ask whether that's fine with the person, but one should really be sure that he/she says yes, because it is and not just to satisfy the employer for the moment. Jun 27, 2019 at 8:35

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