6 ms·
Isn't this just observing the fact that college isn't the same as work experience, and only provides the base skill-set needed to enter enter the industry? "Wh
by mreome 7y ago
Isn't this just observing the fact that college isn't the same as work experience, and only provides the base skill-set needed to enter enter the industry?
"When you join a startup, there’s a lot of emphasis on the design of the application, reusability and clean code, and the ability to conduct and undergo code reviews, as well as the ability to think of and build systems that can scale based on users and geography"
I can't help feel that if you're expecting a recent grad to hit the ground running with this level of insight and experience, your doing something terribly wrong. You should expect to train and mentor a recent graduate, not put them in charge of a project.
* Good design requires having an insight into the requirements of a system, often with an incomplete spec and unclear long-term goals. You can't really do this without actually designing and building real-world systems, and over-time understating where the possible failure points and missing requirements may be.
* Reusability is a double edged sword, if you generalize every bit of code into a a reusable configurable component you miss deadlines and end can end up with an 'Enterprise' mess of OOP code. It takes experience to know when to generalize, and when to KISS.
* Code reviews, best practices, and requirements are different at every company and in every industry. Even someone with experience has to be brought up to speed on this when taking on a new position.
* The "ability to think of and build systems that can scale based on users and geography" ... this is incredibility specific. I work on embedded industrial systems; they're massively complicated but are single user and often only on an isolated network. Knowing how to "scale based on users and geography" is a specific requirement for this person's industry, not software engineering in general. If you want specialization, you don't hire a recent grad (unless maybe your doing research and hire a PhD).
Edited to expanded on a few parts.
- mr_tristan 7y agoI'm not sure why some think that a university degree should mean you're ready to be an effective professional engineer from day 1, let alone year 3. I swear this is another facet of agism: some think that the 22 year old with a 4 year degree is nearly as valuable as the 40 year old professional, just needs some language experience and wham! Ready to go!
- digsy 7y ago>I'm not sure why some think that a university degree should mean you're ready to be an effective professional engineer from day 1, let alone year 3. Maybe its an excuse and the companies who say that just dont want to pay for training.
- cannonedhamster 7y agoDing ding ding. This is just silicon valley living in their v rockstar bubble again. They don't act to have to pay for top talent, they don't want to grow it, but then complain that qualified candidates don't just spring from the womb as willing to be underpaid experienced coders.
- donw 7y agoCandidly, I would say that college does not even provide the base skill-set. In the Real World(tm) of building software, you will work on systems built over years by other people, many of which have long since left the project or company. The level of integration tests, unit tests, documentation, and automation will depend entirely on the culture of the organization. Databases, low-level I/O, sorting operations, and such are nominally provided either by the standard library or sourced from the community. Infrastructure will rule your world. Good infrastructure, with smooth provisioning and deployment, will make your day a joy. Poor infrastructure, with lots of manual work and sign-offs from ten degrees of sysadmins, will do the opposite. You will also work as a member of a team, with a wide variety in terms of background and experience levels, making clear communication, in all forms, an absolutely essential skill. In college, very little of the above is actually covered Sure, you'll learn lots of stuff about operating systems, algorithms, compilers, data structures, and the like. But without any real context on what that stuff really does. But the big place that computer science education is a big let-down is on the collaboration front. There aren't many programs, perhaps none, where you are required to, as a member of a small team, maintain and modify code built three years ago by other people, and graded on your ability to produce work that can continue to be developed by future students. Instead, the focus is on solving relatively straightforward problems as quickly as possible, with little or no attention paid to user experience, readability, testing, and any of the other things that make up the "engineering" side of the practice of building software.
- nickpinkston 7y agoMaybe make them work on open source projects? Or even the college's own toy systems?
- OJFord 7y agoThat's exactly what many UROP schemes are (/were, anecdotally after all). (Undergraduate Research Opportunity Placement, I think. Speaking from UK but I believe it's a pan-European scheme.)
- donw 7y agoThere's a wealth of opportunities here. Annually from the second year on during a computer science or software engineering program, students should be required to have one class where they spend at least one full day per week contributing to their choice of one of the following: (1) An open-source project approved by the instructor. (2) Production software used within the university, excluding systems dealing with student or faculty PII or sensitive information (grades, schedules, etc). Lots of opportunities here to contribute across the sciences! (3) Non-commercial software benefitting the community or government at any level (from local to national).
- gowld 7y ago> "When you join a startup, there’s a lot of emphasis on the design of the application, reusability and clean code, and the ability to conduct and undergo code reviews, as well as the ability to think of and build systems that can scale based on users and geography" How can anyone take the article seriously? These are all problems that startups punt on until after they've suceeded.
- Aeolun 7y agoI didn’t take it seriously, but mainly because that was written like these are things that a large enterprise does not care about...
- Aperocky 7y agoThis is like the opposite of a startup, the startups that I've heard about barely write tests, and that's dependent on the mood of the dev.
- hazz99 7y agoI was expecting them to talk about gathering requirements, talking to users, innovating etc. Not this!
- HillaryBriss 7y ago> You should expect to train and mentor ... I've always thought so too. But it doesn't seem like any companies really buy into this any more.
- Aeolun 7y agoNot if you have to pay them a 150k starting salary!
- shagie 7y ago... Or if they start looking for a new job within a few weeks of starting (the idea of getting 3-4 jobs in the first 2-3 years with increased compensation each step). After getting a few hires that only stay for 6-12 months, its a question of "is it worth it to put in the time to mentor them if they're going to be gone shortly afterwards?"
- flukus 7y ago> ... Or if they start looking for a new job within a few weeks of starting (the idea of getting 3-4 jobs in the first 2-3 years with increased compensation each step). This is half tragedy of the commons of so few companies offering training and half companies being so god awful at offering raises as employees gain experience.
- Nasrudith 7y agoSounds to me like "the tragedy of you being a dick" to paraphrase a xkcd. They caused all of their problems through their policies (not keeping existing competive with new hires, refusal to consider lesser experience, expecting loyalty without any give) and it came to bite them yet they don't want to take any effort to fix them in any way.
- michaelbrave 7y agoPerhaps this is part of why people don't stay longer?
- OJFord 7y agoAnd good! If I'd wanted work experience I'd have gone to work, not university.