3 ms·
That 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 pro
by bad_user 10y ago
That 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.
- guitarbill 10y ago"How to Win Friend and Influence People" is a bit dated, but has some good, actionable advice. I find when people hear about negotiations/promotions/job offers they've missed because of poor communication abilities, and change their tune quickly. But once you're into adulthood, it's rare to get constructive feedback about social skills (even from friends). So it can be catch-22, especially if you aren't very attuned to the reactions of others. It isn't that they don't want to change, but if you aren't charismatic or confident, you're going to have different outcomes in the same situation, so it's self-reenforcing. And infuriatingly, the intrinsically high-charisma people don't know what's needed. A book I can recommend is Keith Ferrazzi's Never Eat Alone. I find the name-dropping cringe-worthy, but it made business relationships click for me, which got me to do more social stuff, etc.
- BatFastard 10y ago>Data structures. Many high-level languages now have better basic data-structures than many devs could write, even if they know the theory. I would say that ALL high level languages have basic data structures, and that those data-structures are better then 99% of the data-structures that users would/could write. Just because to be included in the language the coding level is very very high.
- lmm 10y ago> 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. I'll dispute it. I did a year of a split maths/computer science degree, found the computer science easy, and so shifted into the maths degree (on the grounds that I was confident I could teach myself the computer science degree if need be, whereas I wouldn't be able to learn the maths without teaching). Now I work as a programmer. Most of the best programmers I've worked with have had non-CS degrees - mostly mathematics/physics, but a few from chemistry/biology/engineering, even one historian. I would sooner trust a straight IQ test than CS exercises like reversing a binary tree - the first selects for general intelligence, the second selects for general intelligence plus having sat in a CS class and/or read some CS books, and is no more relevant to day-to-day programming work.
- aninhumer 10y agoAs I happen to know which course you're talking about, I would point out that the module of CS you took was the far easier half of the first year material, which was open to people from a variety of other subjects, and designed with that in mind. (And indeed, the Maths dept recognises this and doesn't reduce the workload to compensate for Maths students who choose it.) While I wouldn't say the rest of the course pushed me exceptionally hard, and I do wonder if Mathematics might have been more useful overall, I don't think that module is particularly representative of the difficulty of the CS course.
- lmm 10y ago> As I happen to know which course you're talking about, I would point out that the module of CS you took was the far easier half of the first year material, which was open to people from a variety of other subjects, and designed with that in mind. (And indeed, the Maths dept recognises this and doesn't reduce the workload to compensate for Maths students who choose it.) I did everything other than the hardware module (digital electronics) AIUI? (Which was maybe the hardest part for some people, but doesn't really correspond to the kind of thing that's asked in interviews).