|
|
|
|
|
by narribbi
3335 days ago
|
|
> The fundamental knowledge of math and science that separates engineers from 'coders'. Only math. Furthermore, someone with years of coding instinctively develops such mathematical understanding, while the very same understanding will be lost on someone who just graduated, but has never coded. |
|
FWIW, this isn't my experience. I have a CS/math background, spent the first few yrs of my career at Google, and then moved to a startup as the first employee. We had a lot of difficulty sourcing good candidates, and our first two hires were 1) a guy with no engineering experience and domain knowledge that had programmed during his Master's (and had some useful domain knowledge) and 2) an engineer with ten years of experience. I supported the first guy's hire and the second guy was hired against my recommendation.
The first guy hasn't yet had occasion to put his actual specialty to use, and yet after a month of some pretty hands-on guidance to teach him basic engineering habits, he is pretty much crushing it. He's dependable, he's creative, he's hardworking, he can implement stuff quickly but also think about the big picture: he's certainly exceeded even the fairly high expectations that I had of him despite having no eng experience and relatively limited programming experience. I had the exact same experience with a math PhD who worked under me at Google: he was hopelessly unproductive for the first month or two (Google is really, really, REALLY shitty at ensuring that new hires with potential get the guidance they need). I noticed this and took him under my wing to teach him the basics of engineering (which are truly not very difficult to learn) and in a month or two he was one of the best engineers on our team.
Our other hire is.....the opposite of all of that. He's basically been reduced to the only thing he's shown himself able to handle: he spends two days working on okay-to-have changes on the margin that no one really needs but that I could've taken care of in half an hour. 90% of the time he ends up breaking stuff that I have to spend 20 minutes fixing anyway.
TL;DR: my experience has been that there are certain skills and ways of thinking (and perhaps innate talent? I dunno) that are incredibly useful for engineering that some people go years and years and years in industry without ever acquiring or strengthening. On the flipside, someone with these capabilities can become a solid engineer in very little time. Good CS and math depts tend to instill or select for pretty much exactly this set of skills, in my experience. The main gap they have is a set of best practices for being a little more meticulous about their code, and this is shockingly easy to teach.