U.S. Schools Not Getting It Done
In a recent column, I asked for your feedback on the issue of whether U.S. schools are properly preparing students for real-world software development, and the topic touched a nerve, as you came through in spades. What follows is a representative sampling of responses. I’ve withheld information about some writers, at their request.
Brian Fulford, Vice President of Information Technology, Database Solutions Inc.: As the exec in charge of IT at a small software company, I’ve been seeing the same signs of a lack of readiness as I interview potential candidates. Our shop does a lot of t-SQL programming, so I administer a practical exam for all applicants to gauge their competency in t-SQL. Not only do undergraduates not understand the basics of relational databases, but also many applicants cannot complete the exam—and I’m talking simple selects with inner joins. I think there’s too much theory being taught to CS students and not enough practical application in a variety of programming languages.
Peter Lanoie, Clifton Park, NY: As I encountered people in the workplace doing the same job as me, I found that some who were educated in more traditional [computer science] programs really couldn’t program. Sure, they understood more of the theory than I did, but we weren’t building DB engines or operating systems, we were making ASP Web sites ... Practical skills are an important part of a future programmer’s technical education; core problem-solving skills are as, if not more, important.
Brad B.: I’m starting my fourth year using online classes from the University of Phoenix. Previous to starting those classes, I achieved an associate degree many years ago. I had a total of 10 weeks of classes that covered C programming. Those 10 weeks covered nothing more than basic logic; structs or other useful bits weren’t covered there. With the almost full year of classes with UoP, I have yet to take another course that involved writing code. The closest that a class has come was one course that covered pseudocode. Checking my fourth-year classes, I will have a five-week course on SQL, two five-week courses on Java, and two five-week courses on .NET. This is for an IT degree with an emphasis on software engineering!
Anonymous by Request: As a professor, I think the quality of education in the computer science field is not where it needs to be. When I first started teaching, I taught Intro to CS using C++, [and] on average about 10 percent to 30 percent of the class would fail; the final project in the class was comparable to a project I had to complete in my second or third week of my Intro class when I was an undergrad. Obviously, a high failure rate doesn’t sit well with the powers that be, so the class was dumbed down.
As a senior app developer for a supplemental insurance company, my job duties include interviewing prospective employees and mentoring junior developers. So far, I have met a few students who seem to know their stuff, but I’ve also had some frustrating interviews. For example, here’s a basic question I’d ask: “What can you tell me about a database cursor?” Response: “Do you mean the little flashy thing on the screen?”
David Luxford, Pittsfield Township, MI.: Until the last 10 years, most colleges had no idea what they were doing when it came to educating those bound for a computer job. At my first college, we were expected to program in C in upper-division courses, but had to teach ourselves. There were no classes on writing Windows GUIs, the NTFS filesystem, DirectX or driver development. Our local community college was better, but its program was only two years. There’s a significant disconnect between the curriculum of software engineering programs and the actual skills you use. Using technology even only 2 years old leaves a graduate up to six years behind when he graduates. There is no education on QA, configuration management, virtual machines, installs, patching or deployment.
Do you want to get in on the conversation? Write to me at email@example.com.