3 ms·
There's a tendency to downplay the difficulty of many fields, science, engineering, math, and computer science. It's a white lie designed to bring in more women
by wegs 6y ago
There's a tendency to downplay the difficulty of many fields, science, engineering, math, and computer science. It's a white lie designed to bring in more women and minorities, but I think it does great harm.
What I've seen:
* A person is tricked into thinking software engineering is like baby intro "get into CS" projects, and by the time they find out it's not for them, it's too late. I know several people who went this route, and range from having gone on to law school/MBA to working retail. The law school/MBA types are extremely successful, with the dual background. But I feel pretty bad for the folks working retail, with crushing engineering school debt.
* Companies have a severe shortage of qualified employees. Under-qualified employees have a severe shortage of jobs. I feel bad for people who can't find jobs.
My own opinions:
1) No, code camps are not sufficient prep.
2) No, application-focused CS undergrad programs are not sufficient prep (where you'd historically learn Java web development, or the current Microsoft stack)
3) Yes, having rigorous background in something, be it machine learning, low-level systems engineering, compilers, or what-not makes you far more effective. Ideally, a few.
4) Yes, freshman weeder courses are important
5) But no, having "highly-selective schools" like MIT or Stanford is not helpful (and no, it's not sour grapes, I went to one of those). Anyone should be able to try a freshman weeder course, rather than going through insanely competitive admissions criteria which correlate poorly with the ability to do this stuff.
I will say familiarity with code varies person-by-person. I'm generally known as at least a 10x developer, since I've created several major tools with name-brand recognition. I'm not great at jumping into other people's code, though. The article would have resonated with me if everyone's brain was wired like mine, but...
... one of the best developers I've worked with can jump into complex codebases in what seems like overnight (a couple of weeks to be literal), and work with them better than the original developers. You toss him a complex system with a bugs, and it will be debugged in a month, where it'd take me a year or two of work to even understand that code. On the other hand, I wouldn't trust him to write a new piece of complex code.
So it seems we're wired differently. I'm better than he is at imagining a new system, foreseeing possible use-cases, designing an architecture that's general in the right ways to allow all conceivable uses, yet constrained in the right ways to still be simple, and then building it quickly. I'm better than him at designing novel algorithms and data structures too. On the other hand, if I have a bug in a third-party library, I'll take literally 10-100x as long to fix it as my friend. And he'll be better at understanding the algorithms and data structures in existing systems (you can throw something complex like Cassendra at him, and he'll understand the design and its implications nearly overnight).