7 ms·
Misconceptions that IT professionals seem to have about CS education
- MarcScott 12y agoIf any devs here think that educating students in CS is easy and disagree with the author, then there are plenty of opportunities for you to have a go at educating children yourselves. Initiatives like http://codeclubworld.org/ http://codeclubworld.org/ will allow you to engage with children at the chalk-face. You could inspire the next generation of hackers, rather than just criticising those of us that have chosen to do this as a profession.
- LukeB_UK 12y agoIt should be noted that the author is a UK secondary school teacher (ages 11-16), so comparing what she is saying with universities is sort of missing the point.
- mrottenkolber 12y ago> lambda calculus is a distant memory This should be a core concept in CS education though.
- benihana 12y ago>I’ve gone through a postgraduate qualification and nine years of experience to get to where I am, so don’t presume to know more than me about how to teach children - and if you do, expect that I will be justifiably miffed. This is the thing about teachers that just irritates the hell out of me. I had plenty of teachers who went through postgraduate qualification and had 20 years of experience who couldn't teach for shit. Getting trained as a teacher doesn't mean you're going to be automatically good at it, just like getting trained in CS doesn't mean you're going to be a good programmer. I've been taught by plenty of people who didn't have the title Teacher, who taught me way more than my Teacher ever did. I've also talked and taught plenty of people who thought they were stupid because their formal University Teacher, armed with postgraduate qualifications and years of experience, couldn't communicate a simple concept to them. They go through life thinking they're dumb because this trained teacher made them feel that way because the teacher failed at teaching and passed that failure to the student. So to see this person talk about their qualifications and how she thinks these qualifications confer teaching ability leaves me quite a bit miffed, because it comes off as just an arrogant dismissal of criticism.
- vacri 12y agoThe important word is 'presume'. She's not saying that you can't know more than her, but that she gets miffed when an armchair quarterback dismisses her lengthy experience in the field. Hackers are constantly telling each other war stories of the weird, naive impressions people outside their industry have of them; why should it be different for teachers? If you have zero experience teaching, then there's a ton of pitfalls that you're almost certainly unaware of, particularly when teaching minors. And yes, there are some terrible teachers. But there are a lot more terrible armchair quarterbacks.
- fredophile 12y agoElementary and secondary (high school) teachers usually have training in how to teach. This will often include specific training in how to teach children. Where I went to school teachers needed a two year teaching program that included practical experience in addition to their degree. They know how to teach well but may not be current in the latest advances in their field and may teach subjects outside of their specialty. University professors do not do this kind of training. They hold a PhD in their field and probably did several post-doc research positions before finding a position as faculty. This makes them experts in their field but doesn't necessarily make them very good teachers. Her qualifications are in teaching, not in CS. It makes sense for her to assume that she is generally a better teacher than someone with qualifications in CS and not teaching.
- radiac 12y agoIt may be of interest that the author actually has a degree in CS, as well as her postgraduate teacher training (I was at university with her). As you say, I think her point was that because she now works in education, she may not have kept up with the latest specific developments in the industry (new languages, libraries, tools etc), but she has a lot more knowledge about how to teach general CS skills to students, so that they are able to go out and learn modern specifics themselves (which of course will have changed significantly in the time they finish their education). I think a lot of HN readers are missing the background to and context of this article though, which is that the author's talking about the UK secondary school system (11-18 year olds), which has been going through significant changes in the way computer science is taught. When I learnt IT/CS at school, the correct answer to "How do you secure a computer" was "Make sure it isn't near the edge of a desk and there are no cables trailing across the floor" - answers involving passwords and firewalls were actually marked as incorrect. Formal education before university provided very little information which was actually relevant. In the past year or so though, the government has changed the curriculum to be more practical and relevant. However, my understanding is that a lot of IT teachers didn't have a background in CS, so although they were happy at the level of tidying cables, they lacked the technical knowledge required to explain the new syllabus. That's insultingly simplified and generalised of course, but you get the idea. Because the new syllabus was brought in in a rush following much political fanfare, questions were raised about how to bring these teachers up to speed in a short amount of time. I haven't followed the situation closely, but I believe that one solution which was pushed by government was that the industry should step in to save the day, despite the fact that they know sod all about teaching, and that their skill sets are often too topical and transient to be of any actual use to students. I don't want to put words into anyone's mouth, but I think that's a large part of what has led to this post, and re-reading the article in this context may shed a different light on it.
- glesica 12y agoI see this a lot from small- and medium-sized business owners I interact with from time to time. They want CS graduates who can walk in the door and design and implement an entire system using a very specific set of (often closed-source, vendor-specific) tools with zero training. And they'd ideally like to pay no more than $40k/yr because, ya know, this person just got out of college! CS knowledge is, I think, valued highly (or at least valued) in the tech sector itself, but once you leave the sphere of companies that make tech products for tech people, or if you happen to be outside one of the major software hubs, the atmosphere can become rather absurd. And who gets blamed by these business owners and managers? The CS programs, because they are clearly just a bunch of ivory tower jackasses who don't want people to have any useful knowledge. Ever. Ugh.
- Balgair 12y ago"but once you leave the sphere of companies ... the atmosphere can become rather absurd" Total agreement here. A lot of the issue is ignorance. Most small to medium business owners and managers do nto code and do not know how to. They see a CS grad as a white, male, 135 lbs., pasty, skinny genius. Just like Bill Gates, Zuck, and countless movie 'hackers'. They expect your skills to be just as good to, ie. able to 'code' a website in minutes and hack NORAD as well. Why? They just plain do not know anything about the discipline. They have to go on what little they do know, and that stuff oversells the CS degree by a lot. I had a boss once that thought I should be able to program a microcontroller in an afternoon. Mind you, the spec sheet is ~650 pages. But he really really did think that it was that easy. Like it was speaking Spanish, it just took a long time to get up to speed, but when you are there, it's super simple. Its the same disconnect as with dentists, accountants, lawyers, and mechanics. Most people can't begin to think in the way required, and they are helpless without you. That breeds resentment and suspicion. To help with these issues, a level of trust needs to be established. You have to trust them, and they you. Many employers think that the trust comes from the degree granting agency. University vetted you, so I can at least trust that you know how to do hacker stuff. Unfortunately, the gulf is so wide between the layman and the professional that trust is ALL you have to go on and a degree is not enough. Possibly a better testing agency, like the Bar, AMA, or ASE is needed as 'hackers' are more and more needed.
- 12y ago
- Alupis 12y agoWell said. University is not Job Skill training. CS Students are not Engineers because they have a degree. It takes years as someone's junior to learn "how it's done in the real world".
- zxcdw 12y agoI think there's a distinction to be made between Computer Science and Software Engineering as separate disciplines.
- pjmlp 12y agoIt depends very much on the country. In Portugal universities call Software Engineering to Computer Science degrees.
- karmelapple 12y agoAgreed. And therefore, shouldn't the vast majority of people studying Computer Science really change to Software Engineering? If someone wants to work in industry building products that will largely use the infrastructure and architecture built by others (coding in .Net, building web or native apps, etc.), isn't that an engineering problem to solve, rather than a CS / academic problem? Computer Science seems it should be what "pre-med" is for someone on the way to becoming a medical doctor.
- wmf 12y agoI think a BS in CS plus an MS in SE would be a good path, but then you're telling people that they need six years of school instead of four before they can cash in.
- sgeisenh 12y agoComputer Science trains students in thought processes. Since quite a few companies use a limited number of tools and frameworks, most CS graduates can jump in and be productive pretty quickly, given the proper on-site training. Problems arise when employers expect graduates to be immediately productive working with unfamiliar tools in an unfamiliar environment. Several undergraduate programs offer engineering practicum programs in which students are paired with organizations to work on open source software. These opportunities can help to familiarize students with some of the engineering practices in the industry. Every company is a bit different and development practices change often.
- collyw 12y ago
- angersock 12y ago"Do you expect Chemistry students to walk out of school ready to begin work in a lab?" Erm, yes? In fact, the folks I know who made it into industry and graduate school openly hated people who had come into their workspaces without that knowledge. It is simply not possible for teachers to be able to keep up to date with the latest flavours in industry" Then why the hell are we paying as much as we are for tuition? Every professional programmer I know worth any salt spends at least 5-10 hours a week in continuing education of one form or another (even if it's just reading about the new JS whatever on HN). "I really have no time for developers who go on about how we should be teaching lambdas or mutability or tail recursion to 12 year olds or that kind of high horse gubbins." A simple analogy will usually get the point across, and a simple disclaimer of "This is a better way of doing things, but don't worry about it" means your job of showing the door without getting sidetracked is complete. ~ The author mentions A-levels, so perhaps they aren't looking at college-level students, but even so that's no excuse for dumbing-down the subject matter. That said, it is important to be able to explain these concepts without being technical--anyone who has dealt with piles of dishes understands stack semantics, anyone who has lived with other people in close proximity has a few intuitions about mutable state.
- mattdeboard 12y ago> Then why the hell are we paying as much as we are for tuition? I can assure you that tuition rates have very little to do with salaries for Computer Science professors.
- army 12y agoThat's like saying that ever programmer in industry should spend 5-10 hours a week keeping up with the latest CS research on top of the work they put into their continuing education. It's just not reasonable to expect academics to know the latest JQuery or Enterprise Confabulator or whatever API. If you're doing CS education, you have a very small window of opportunity at the start of someone's career to teach them things that they're not necessarily going to pick up working in industry. You really need to think about what you can teach them that will allow them to be prepared for 30-40 year careers and whatever technological changes that brings.
- verelo 12y ago"It is a school’s job to churn out students who will be able to walk into a job in industry on day one and work in whatever language/paradigm is flavour du jour. WRONG! We’re here to teach children the core concepts of Computer Science" Am I the only one ticked off by the "WRONG!" in this post? If you can tell me that it is your job to accept payment yet not create useful people, in my opinion, you're committing some form of fraud. Schools like Waterloo in Canada do a great job of providing core concepts while providing the workforce with useful people. I'm an employer (who didn't go to Waterloo personally) and we love to see their interns come our way, as does LinkedIn, Facebook, Google and many others. The school realizes they're not good at making people useful, but they do what they can to help the student become useful by connecting them with the real world, while providing them with the core concepts to enable them to be successful in that position. Maybe you're frustrated and getting a lot of opposition because you're WRONG!?
- skrebbel 12y ago> If you can tell me that it is your job to accept payment yet not create useful people, in my opinion, you're committing some form of fraud. If you really believe that it's a high school's job to "create useful people" then I hope you're not working in education. > Schools like Waterloo in Canada That, or you simply didn't bother to even read the article. I'm not Canadian or anything similar, but a part of me suspects that "Waterloo in Canada" isn't a high school. Stop starting flamewars on articles you don't even bother reading introductions of.
- quasque 12y agoShe's talking about an education in computing for teenagers who will typically be sitting exams at ages 16 and 18, for GCSE and A-Level qualifications respectively - not a rant about undergraduate education, as you seem to be implying. Here's more details on what these subjects are composed of; it's quite basic stuff: http://www.aqa.org.uk/subjects/ict-and-computer-science http://www.aqa.org.uk/subjects/ict-and-computer-science
- cbhl 12y agoAs someone who went to school at Waterloo, I think I have to side with the author here. Where did I learn how to use git and how to write Android applications? Certainly not at school -- I did it on the dime of some very generous employers that were hoping to woo me into working for them after I graduated. Students gossip about which employers are best -- if a co-op student isn't growing during their experience, then (as an employer) you're going to have a hell of a time retaining the kids when they graduate. What did I learn in class? Algorithms, data structures, and other fundamentals that are required to grok (let alone answer) the kinds of questions that come up in interviews. Interesting stuff, but almost entirely tangential to industry skills. The only reason Waterloo students post-graduation are "useful" in the workplace is because they've been in the workplace -- with almost two years of experience!
- Glyptodon 12y agoMost IT professionals also don't have a clue what computer science is. Think your active directory sysadmin knows what a linked list is? I doubt it. That said, I don't think the points made are completely invalid[1]. I just dislike the norm of calling everyone who has anything to do with computing "IT." [1]: (though I do softly disagree with some of them -- while chasing the latest tech trends shouldn't be a thing, things like language choices do matter, for example.)
- snowwrestler 12y agoIt's a great subtle troll that the title refers to professional programmers as "IT professionals." They of course don't think of themselves that way; they're "developers", "engineers", or "hackers." To them, IT is the poor guy installing Adobe Reader on the manager's PC.
- anorwell 12y agoReferring to people who build software as "IT" is a UK thing. The author is from the UK.
- pjmlp 12y agoActually I would say European.
- snowwrestler 12y agoDid not know that, thanks.
- daveslash 12y agoPerhaps in poor taste and off topic, but I just cannot contain myself. :-) What does IT stand for? https://www.youtube.com/watch?v=Zfa2ecb5lZw https://www.youtube.com/watch?v=Zfa2ecb5lZw
- MarcScott 12y agoThe original title doesn't mention anything about IT professionals. The title has been (sensibly) moderated as "Hands up who likes PHP?" didn't really summaries the gist of the post.
- grecy 12y agoThey of course don't think of themselves that way; they're "engineers" My Software Engineering degree is accredited by the Australian Institute of Engineers. I am an Engineer.
- na85 12y ago
- bicknergseng 12y ago"Do you expect Chemistry students to walk out of school ready to begin work in a lab?" Yes? As someone who didn't major in chemistry or go into a related field... what the hell does someone with a degree in chemistry do when they graduate? Go and work in a coffeeshop? Edit: the original post seems to have been edited several times since my original comment, including the clarification that she's a high school teacher in the UK.
- MarcScott 12y agoThe author teaches CS to 11-18 year old students. In the UK School != University
- newaccountfool 12y agoLeast some on read the side note.
- bicknergseng 12y agoSome perspective, but doesn't necessarily change my point. Why should we allow CS to be bludgeoned into the same awful educational pattern of memorization and ...irrelevance... that we've allowed to happen to mathematics? Students often hate math because of the awful, disconnected, uninspired way it is taught. Spend time teaching students how to make games with Unity or iPhone apps or whatever! Not only can teachers use those as amazing vehicles for CS fundamentals, but a teenager who builds something real and has fun doing it has a much better chance of actually becoming interested in CS.
- zarify 12y agoI'm not sure what your experience is with kids of high school age, but in my experience (around 10 years of teaching high school CS) it's very rare to find kids who are capable of jumping into a complex environment and learning much from it. The vast majority, whilst they are interested in writing games or mobile apps etc get discouraged by the weight of new concepts and just tune out unless they get spoon fed everything. Back when Flash was more in favour I used to do ActionScript programming with my 15 year olds as a basic course since it was relatively easy to wrap your head around building something to look at and then attach code to it (one of the few redeeming features of Visual Basic) and even then few kids coped well. I've yet to see much success from high schools I've visited that tout courses that involve mobile development and what have you that don't also have very large pools of students and significant streaming of those kids into the CS course. Now it could be quite valid to argue that perhaps I'm just not good enough at teaching, but I've seen enough top end success with my students that I don't think that's enough to explain it away.
- tolmasky 12y agoSpoken exactly like what I'd expect from a teaching field that is doing everything possible to obsolete itself. Look, let me sum up the problem with CS education in a nutshell: today, when I think about hiring someone, I basically don't care about their CS education. This is increasingly what I hear from my colleagues as well. Degree in CS means more or less nothing. Notice that that's not the case in Chemistry (since the author is fond of comparing fields). What does that tell us? That whether you like it or not, you are doing a poor job teaching them, or that we have very different definitions of CS. Which is fine, after all, there are degrees in accounting and degrees in math that are separate, maybe we need to move to that model. If your program graduates students that have never used version control, never committed to a single open source project, or have a difficult time picking up new languages/technologies, then maybe you're teaching them "something", but that something isn't what the world cares about. So unless they go and become teachers of this thing you call CS as well, its time to change what you're teaching. (BTW, I rarely find that these recent grads have done NP reductions or any of that kind of thing that would at least justify not teaching them all that "useless" industry stuff)
- rlayton 12y agoI think the degree-inflation problem is the key here. There is no reason why a person needs a degree to be able to program. That wasn't the original purpose of such degrees. In a nutshell, academic certifications assess whether you know things, while industry certifications assess whether you can do things. For a business, there is a strong focus on doing, rather than knowing. Who cares about whether certain classes of problems are computable? Just write a program that does it for our problem set. And there is nothing wrong with this. At the same time though, if you want to make advances that bring about the next generation of programming/technology/etc, you would need to have an understanding of how these things work. Unfortunately, this line has been blurred significantly -- universities have become big business, caring more about selling degrees then teaching fundamentals. At the same time, businesses have been using degrees as a criteria for hiring, and then complaining that people with said degrees can't do what they expect them to. I hate to describe a problem without providing a solution, but I don't really have a solution for this.
- cproctor 12y agoI'm a middle-school Computer Science teacher at an all-girls' school where CS has been promoted to a core subject. And a software developer. I don't see much substantial disagreement between the OP's post and the comments here--she's basically making three points: 1. The (secondary) education system's role is to show students how to engage with the field, not tailor their training to the specifics of a job posting. It's more important that students be able to pick up new paradigms than it is that they know any particular language. 2. Education is iterative. It's ok to learn something that fudges the details or that's not a best practice if it means you're making things now. We all return to domains of knowledge with finer granularity when we need it. 3. Content knowledge is important for teachers, but their expertise is in pedagogical content knowledge--the knowledge and skills of how to productively open a domain to new learners. Do we disagree about any of these? Sure, there's some unnecessary heat in the post. But that's true of the comments here too. I wish some folks here were able to bring more introspection and empathy to conversations about education (yielding insights about who they are as learners, and how others are different). And I wish we stopped dumping on teachers as the source of all our problems (let's talk more about why this is happening later...), so teachers didn't have to feel resentful and defensive in public fora. If you're interested in CS education and you haven't spent any time in a classroom/after school club/coder dojo, I'd invite you to come get some firsthand experience. I teach in Palo Alto, come on over...
- hunterloftis 12y ago1. Must the two be mutually exclusive? Teaching students irrelevant or outdated skills is a great way to encourage them to dismiss the profession as old, stodgy, useless, etc. 2. That's true. Is there a reason not to fudge the details of a current, employable technology stack? 3. Let's examine the logical extremes. On the one hand you have an incompetent teacher who can nevertheless communicate well. On the other hand you have a competent teacher who is a poor communicator. Frankly, I would rather have the latter. Otherwise, what's the point?
- cproctor 12y agoA note on 3: It's not really a dichotomy between communication skills and content knowledge. Pedagogical content knowledge builds on content knowledge--it's about knowing the structure of knowledge--the paths different learners will take through ideas, the common misconceptions and the examples that will resolve them, the ability to infer the shape of a learner's web of ideas, and knowing your way around the content knowledge well enough to offer something just beyond what the student has considered, but which is close enough that she can make the leap and thereby add it to her web.
- 10098 12y agoPlease don't teach kids PHP. Fucking anything but PHP.
- StandardFuture 12y agoDoesn't this have a simple solution? Break down CS into componets just like Chemistry has Chemical Engineering or Physics has Mechanical Engineering. Offer different types of courses: Computer Literacy (for those completely new to computers), Software Development (for those wanting to work with computers vocationally), and Computer Science (for those who want to become Researchers). Maybe the Computer Science route should be known to take longer and more effort (generally speaking) as well. Maybe Computer Scientists need to know both theory and industry thoroughly? Also the reason why Physics has: Mechanical Engineering but Computer Science has no vocational counterpart is because: there is money in Computer Science. Microsoft could not afford to not do R&D. Computer Science research can pay off within 5-10 years. Theoretical Physics research cannot. :P So the industry tends to be as up to date as Computer Scientist are while there is money to be such. (Although, I have met plenty of programmers who do not understand theoretical computer science topics).
- hysan 12y agoFor whatever reason, the author and the comments are experiencing a huge disconnect in expectations. 1. The author appears to be talking about pre-university level CS education. 2. The "IT Professionals" and the commenters here appear to be talking about CS Degrees (undergrad and up) and their relevance to jobs/hiring. I do not see how those two connect. In fact, I argue that they shouldn't be related at all. Teaching children, especially at the age the author mentions - 12 year olds - is not about preparing them for future work. Most children at that age don't even know what they want to be yet. So what is taught and how it is taught cannot be judged by how useful it would be in employment. No one here is making any sense. I also find it funny that the author uses teaching a secondary language as a comparison because the manner in which the US (and other countries like Japan) teach secondary languages is all manners of messed up. The system and approaches used in secondary language education do not produce fluency or even long term retention.
- serge2k 12y agoI find it slightly disturbing that the author doesn't consider a lack of CS knowledge to be a big problem. I would hope that a teacher would have strong knowledge of CS theory, at a level beyond what they teach. So just undergrad level knowledge would suffice in this case. In addition I would hope for reasonably strong practical knowledge of the language they teach. I'm not saying that a teacher needs to go and learn rust/go/swift, but if you are teaching python you should it well.