4 ms·
It's hilarious, because our best hires are people who had no CS education. Meanwhile, some of the worst hires were CS grads. Things that are hard to teach: Can
by guitarbill 10y ago
It's hilarious, because our best hires are people who had no CS education. Meanwhile, some of the worst hires were CS grads.
Things that are hard to teach: Can you work in a team, especially if some of them are remote workers? Can you leave your ego behind? Can you deal with the corporate BS that gets in the way of programming? Can you think of the user, use-cases, business value, etc of the feature/product you're developing? Can you digest technical information?
Things that are not hard to teach: CS fundamentals, programming (given a basic understanding of logic).
I won't go as far as to say a CS education is harmful, but it isn't a good indicator, either. Personally, I find CS, in trying to validate itself as a "science" (which it is not, no scientific method, just like maths isn't science, but still valuable), makes stuff over-complicated and relies on terminology far too much.
And by focussing on it, you lose a huge pool of potential applicants.
- bad_user 10y agoThat CS fundamentals and programming are easy to teach is a myth that keeps being perpetuated and I don't understand why. I'm also involved in an education program for children and as a matter of fact computer science is among the most difficult subjects to teach, right up there with math. Yes, you can increase interest and engagement by better teaching methods (e.g. playing and building games), but that CS is hard is indisputable. > Can you work in a team, especially if some of them are remote workers? Can you leave your ego behind? In our line of work, working as an individual on your own piece is actually what happens in 90% of cases. The other 10% you have to cooperate with your team to make decisions and to reach compromises on points of intersection, on protocols, on best practices, etc. But if we are honest with ourselves, collaboration in our industry means having contention / concurrency in the development process and that doesn't scale and minimizing contention leads to better productivity. This is why we hate open spaces, why we ended up with micro-services, or why we split big teams in smaller teams. It's all about achieving parallelism by reducing the needed collaboration. Don't take offense in me saying this, but team work is a soft skill that isn't hard to teach or learn at all. So lets be blunt. You're talking about assholes and having assholes really depends on your company's culture and what gets tolerated. If you don't tolerate assholes, some people will change their attitude, some will leave and the rare few will have to be fired, but such cases are rare.
- guitarbill 10y ago* Big-O. It's basically enough to know when an algo is going to perform horribly - e.g. O(n^3) - and even then you might choose it because it's simple or your n is currently small. Anyway, senior dev or architect can make this call way better than any grad could, CS or not. * Data structures. Many high-level languages now have better basic data-structures than many devs could write, even if they know the theory. I could continue, but most people do fine without these CS 101 basics. Besides, good/interested people will ask questions about the code base and will read up on these concepts when mentioned. Doesn't take a genius. > but team work is a soft skill that isn't hard to teach or learn at all Let me get this straight. You're saying that behaviours you might have established in your teens, and so held unconsciously for almost 10 years by the end of your degree, those are easier to change than something you just learned? Something that people can teach themselves as a hobby, and often do? But, if soft skills are really that easy to teach, I have several, lucrative opportunities for you. Meanwhile, CS courses online are a dollar a dozen or free. Honestly, if you could write up some stuff about this, I'm sure several people on HN would appreciate truly actionable advice on how not to accidentally be an asshole. Even better, if you can somehow make great devs into great managers, that's also worth gold. I will admit that good teachers really help with both maths and CS, and good teachers are rare. Luckily, I had a good mentor by accident when I was 14. This year, our team has been to twelve local schools to help teachers make it more fun. And yeah, some kids struggle, just like any subject, but most actually have no issue at all picking this stuff up. Not worried in the slightest about the next generation's programming skills.
- lmm 10y ago> But, if soft skills are really that easy to teach, I have several, lucrative opportunities for you. Meanwhile, CS courses online are a dollar a dozen or free. Honestly, if you could write up some stuff about this, I'm sure several people on HN would appreciate truly actionable advice on how not to accidentally be an asshole. Even better, if you can somehow make great devs into great managers, that's also worth gold. To be fair a lot of people seem to have their personal identity invested in poor communication abilities, or see it as somehow "fake" to work on them. E.g. I see How to Win Friend and Influence People recommended here, but you'll see a lot of people who refuse to read it on principle.
- pathtracer 10y ago> Personally, I find CS, in trying to validate itself as a "science" (which it is not, no scientific method, just like maths isn't science, but still valuable) Science can mean different things to different people. While in the english speaking world it is often equated to "natural science" this not the case for all languages. Take the famous Gauss quote for example: "Mathematica regina scientiarum est et theoria numerorum regina mathematicae est." In german, CS (Informatik) is widely regarded as a "structural science". https://de.wikipedia.org/wiki/Strukturwissenschaft https://de.wikipedia.org/wiki/Strukturwissenschaft
- guitarbill 10y agoI'm weary of people throwing out Latin quotes, or trying to apply Latin or Greek to English. It's difficult, as words change meaning (my favourite example being "techne"). Gauss' quote translated is "mathematics is the queen of the sciences", but without context obvious worthless. He could have been joking, I for one haven't read his whole letter. It's a bit disingenuous to bring German into this, luckily I speak it also. I would dispute that "science" == "Wissenschaft". Literally translated, "Wissenschaft" is "creating/establishing/managing/develop knowledge". In the strictest sense, "science" must be translated as "Naturwissenschaft". There simply isn't a direct mapping. Interestingly, "structural science" in English means something different than "Strukturwissenschaft", so even the example you gave undermines that "science" == "Wissenschaft". Wissenshaft encompasses more than science. I find a useful test if something might be a science is check it doesn't have "science" in the name :) But let's be clear, just because a field isn't a "science" doesn't diminish importance or value. I am sick of seeing this argument. But it is extremely important in the way you approach teaching that field. I actually think it gives you far more flexibility and interesting ways to approach a field. Scientific method is very rigid, for good reason. But fields that don't employ the scientific method need not adopt this rigidity, especially if they have solid formalism behind them. Just don't try and dress it up like a science. E.g. I hate Big-O, or the almost religious importance CS puts in it. It's good formalism that can't be directly applied to reality. It isn't a scientific result. But that's a rant for another day.
- user5994461 10y ago> It's hilarious, because our best hires are people who had no CS education. Meanwhile, some of the worst hires were CS grads. Just an idea: Try increasing salary. Good CS grads already have people hiring them and they have a ton of debt to repay.