5 ms·
I agree completely. Rarely the hard problems in coding are thinking of a clever algorithm, or solving a particularly nasty scaling problem. Usually I've struggl
by haburka 9y ago
I agree completely. Rarely the hard problems in coding are thinking of a clever algorithm, or solving a particularly nasty scaling problem. Usually I've struggled the most with understanding and building what the customer needs. A spec can be interpreted many different ways and will always have to be polished after its completed. Someone who doesn't know what the customer expects will almost certainly create an implementation that has these micro problems that make the product miss it's mark.
It makes me think that we're training the wrong people in college by making CS a very difficult, math heavy field which often causes the more human skilled people to drop out. Programming doesn't have to be anymore math heavy than building a house yet we force undergrads to implement algorithms on paper? The amount of wasted potential talent due to college is staggering.
- arethuza 9y agoI think that's an argument for fewer people doing math-oriented CS courses as "training" for being a developer rather than changing the nature of CS courses.
- mfoy_ 9y agoAgreed, I think "Computer Science" is being incorrectly marketed as the program for aspiring software developers. It does not focus on the skills and knowledge needed to actually do the job, with the exception of some rather niche problems.
- baron816 9y agoWhat's worse is that companies hire that way too. They don't care about your ability communicate or understand a problem from a business perspective. They just care about your ability to write some contrived algorithm on a white board in 30 minutes without asking any clarifying questions.
- dabockster 9y agoAnd 9/10 times the algorithm question is copied verbatim from HackerRank, TopCoder, LeetCode, etc with no regard for the problem content. They only reason it gets used is "because Google used it once, so it must mean it's good at finding 'top tech talent'". Ugh.
- learc83 9y agoEngineering requires every bit as much requirement gathering and need finding. It probably requires even more up front because physical artifacts are much harder to change. But I don't see anyone suggesting that we remove math from engineering curriculums because the design programs can do the math for them. The solution is to train more experts in human computer interaction, the same way we train architects and interior designers to work with civil engineers.
- Joe-Z 9y agoThis article also struck a chord with me. About 3 years ago I started working half-time as a software developer at a civil engineering company. Originally they wanted to hire me because they had some 3D visualizations in their software with which they had problems and I, coming from a game development background, could help them out. By now, I'm deeply immersed in geotechnical topics on a daily basis and I think it's fair to say that I've became a valuable asset for them. However, I've been having doubts about how long I should still stay there, because of this 'digital nomad' lifestyle which seems to be so popular now (and which appeals to me also). So, that article was a little relief for me, seeing that there are indeed still people who value a willingness to immerse oneself deep into a topic and come up with novel and simple solutions to problems your users face in that field (something which I've liked about software engineering from the start). Also, to add to your point about the CS courses: I think the math-heavy courses, although they really may be overdoing it in a lot of CS courses, can at least help sharpen your analytical thinking skills. This can help tremendously when you're thrown into something new where the most important thing you need to do is figure out what the problem actually is and what people need from you to solve it.
- jeddf 9y agoLovely to hear you have a position at the intersection of software and civils like this. I am a software dev that switched careers shortly after graduating with a civil & structural degree, always thought I'd be of most value combining the two at some point. There is hope!
- ramshanker 9y agoAnother Civil & structural guy here. The ability to code does magic at times. Many design steps can be automated. It need not be something huge. Once I automated transfer of data from one software to anther using EXCEL VBA which used to take 2+ Man-days in manual style. Within a month almost entire department was using this excel sheet to do this particular task. Fun times.
- ebola1717 9y agoYup, Sarah Mei had some good thoughts on this, in the context of bootcamp grads vs CS grads: https://twitter.com/sarahmei/status/862569071631491072 https://twitter.com/sarahmei/status/862569071631491072
- learc83 9y agoShe basically just throws out bootcamp grads have better soft skills with nothing to back that up. If that's true, and I've never seen any actual evidence to believe that it is, my guess is that it's because bootcamp grads are older the CS grads in general. They're usually career switchers and they have experience from that previous career. You really shouldn't be comparing a 35 year old ex-teacher, or a 28 year old law school grad to a 22 year old CS grad on the soft skills front.
- lordCarbonFiber 9y agoThe issue there is CS != programming. The conflation of the 2 has created an artificial demand for CS trained people (to jump through the stupid interview tests) but the vast majority of jobs need almost no academic knowledge. We're an industry starving for mechanics bitching about the fact that Mechanical Engineers want to build better engines.
- oldrny 9y agoIt seems like your suggestion is a little backwards -- computer science is its own thing, and for some reason, people started thinking that computer scientists are ideal software developers. Since that clearly isn't the case, employers should look for some other certification that's more in line with what they require from an employee.
- ikeyany 9y ago> for some reason, people started thinking that computer scientists are ideal software developers Musicians generally are. But all the talented ones are drawn to more fun, lower paying careers.
- sidlls 9y ago> It makes me think that we're training the wrong people in college by making CS a very difficult, math heavy field which often causes the more human skilled people to drop out. I disagree. I think instead there is a category error being made: that CS is an appropriate degree (on its own) to become a software engineer. It's like suggesting a BS in Physics qualifies somebody to work as an engineer building a satellite. It doesn't, but that doesn't mean "physics is too math heavy." In fact, engineering a satellite requires almost as much basic mathematics education as a BS in physics requires (some exceptions might include the specialized mathematics required for upper-level theoretical physics concepts that may not apply at an engineering firm).
- ramzyo 9y ago> I think instead there is a category error being made: that CS is an appropriate degree (on its own) to become a software engineer. Completely agree here. I often find myself wondering why 'Software Engineering' isn't the degree required to be a Software Engineer and further doesn't really exist as a major, whereas 'Mechanical Engineering', 'Electrical Engineering', 'Civil Engineering', 'Chemical Engineering', etc. are the degrees associated with those professional titles. To your point, I don't think it's a simple matter of nomenclature (i.e. that CS and Software Engineering are synonymous). Not a CS major myself, but amongst my friends who did their undergrad in the US I don't think they had any classes that covered requirements gathering, putting together schedules, etc. Any CS majors here have a class/classes that covered those topics?
- tnecniv 9y ago> Not a CS major myself, but amongst my friends who did their undergrad in the US I don't think they had any classes that covered requirements gathering, putting together schedules, etc. Any CS majors here have a class/classes that covered those topics? We did this as part of our open ended senior project.
- ramzyo 9y agoInteresting, maybe a more informative question for me would be - if you did have a class/classes that covered those topics, did you feel that they prepared you sufficiently for a job as a software engineer? But now I'm starting to sound like an alumni survey... :)
- cromd 9y agoI think not having enough breadth in "one skull" is largely created by psychology and structure at companies and less by curriculum deficiencies. When I used to manage developers, most of them told me that they were pained by how little they were expected to interface with non-developers. These were very technical people, but they still wanted variety and connection/relevance to the product. Even developers with good interpersonal skills or business sense are discouraged from participating in more producty discussion. They may be encouraged by way of somebody taking them aside early in their career and saying "Hey kid, you really _get it_. You're not like the rest of these nerds. How about you start calling shots on what to build and switch to a product role?" But they'll rarely be encouraged to stay as technical while simply getting listened to more by management. Management may argue that after 2 or 3 years of getting one's hands dirty, you understand programming as well as you need to, and that for the rest of your career, persuasion trumps skill acquisition. It's somewhat taboo to cultivate both skill sets at the same time. So, I think even if you got more "people people" to study CS/whatever, a reverence for specialization will silence a lot of voices.