7 ms·
Why this woman dropped out of Temple’s computer science program
- Quizz 11y agoThe process of learning to program is more vocational than lecture hall. Most colleges and their deans don't get it.
- tompccs 11y agoIn my opinion, if you want to learn how to be a software engineer you should take a degree in Software Engineering (which is a natural descendent of Electrical Engineering). If you want to be a computer scientist then do a degree in Computer Science (a natural descendent of mathematics). The problem is that the courses in many universities are misleadingly named.
- feedjoelpie 11y agoBut they're still not going to let you skimp on the calculus classes. I do think 4-year degree programs should offer people more opportunities for the practical aspects. These don't really have to necessarily be part of the curriculum either. I did two summers in the College of Wooster's Applied Mathematics Research Experience (AMRE) program, where they paid us a small stipend and provided on-campus housing for the summer. It was run as a little faculty-advised math/comp-sci/econ consultancy to help local businesses, and it was possibly the most valuable thing I got out of college. All without having to skimp on actual computer science and math in the curriculum. These things are supplemental, not exclusive. And of course not everyone needs to go do a full 4-year degree if they just want to get out and make software. But those people shouldn't be in 4-year computer science degree programs. And we should stop talking about this issue as if it's computer science that needs to change. It's about making people understand their options and what they will and will not get from each. For most quality CS programs, you have to pursue the practical outside the curriculum. For a code school, you might have to do some self-exploration about common problems encountered in computer science. Everyone needs to find their own correct balance for their personal abilities and goals.
- deleted 11y ago[deleted]
- lifebeyondfife 11y agoThis! Looking back at my career I didn't really learn to program properly until I was in an industry job staring down the barrel of a massive codebase collaborating with colleagues across different teams. It was great. But time and time again I find my strong theoretical grounding in computer science coming in handy. The last time I hit the front page of HN was with a blog post about how I spotted an NP-complete problem in $m+ enterprise system for insurance companies. It would have gotten to clients with unresponsive brick-like performance if they upped a couple of parameters because my colleagues didn't understand the Curse of Dimensionality and why it was important. I'll admit that college professors can live in their own world of academic navel gazing, but there is an actual point to theoretical computer science. And the best time to learn is when you have the time and freedom from short term goals and arbitrary client deadlines. If only there were a few years we could devote to such endeavours before entering the workplace. Hmmmmm...
- jawns 11y agoHow do you see software engineers and computer scientists differentiated in the job market? It seems like there's a ton of bleed.
- JoeAltmaier 11y agoThe computer scientist is theoretical. The software engineer is practical - like the difference between a mechanical engineer, and a mechanic?
- jawns 11y agoRight, I get that. But if you look at job listings and see one for "computer scientist" and one for "software engineer," what sorts of things would you expect to see under each listing's "required skills" and "duties/responsibilities"?
- JoeAltmaier 11y agoI wouldn't expect to see a job listing for a Computer Scientist at all. Except maybe at Google? 99% of the market is writing code. Maybe that's broken - more shops could sure use a good designer who understands the complexity of problems. But I don't see designers very often, and I've worked at dozens of places.
- viiralvx 11y agoI graduated from Notre Dame with a Computer Science and Design degree. While the CORE classes are heavily theoretical and forces you to think about fundamental CS concepts (Theory of Computing, Programming Paradigms, Data Structures, Algorithms, etc.), there are electives tailored to learning how to program. I took electives in Mobile Application Development, Building Web Apps, JavaScript, Database Concepts, Data Mining, Human Computer Interaction and Healthcare Analytics. We even have electives in Cloud Computing that allows people to learn how to use MapReduce and other cloud frameworks. If there was something that I wanted to learn that wasn't taught in a course or elective, I either learned it through research (Data Mining & Machine Learning, along with Distributed Systems) or through learning it in my free time on my own (Ruby on Rails and EmberJS). People can't expect Computer Science to teach them how to be a Rails developer, but should take the initiative to teach themselves after they get the fundamentals.
- jkestner 11y agoThe theory, I think, is nice for a small subset of who we call programmers now. The article highlights that there is a huge demand for what you might call blue-collar programmers who don't need to care about theory, because there are plenty of simple, non-groundbreaking jobs to be done. Your basic CRUD apps. Those blue-collar programmers need not only more of a vocational education, but tools to match. Higher-level programming languages help. In mobile app development that's what's driven demand for PhoneGap and newer tools like Glide, again for those common, boring apps. https://www.kickstarter.com/projects/1783091318/glide-beautifully-simple-professional-app-creation https://www.kickstarter.com/projects/1783091318/glide-beauti...
- viiralvx 11y agoBut isn't that why there are coding bootcamps to allow those blue-collar programming positions to be filled? Like the Iron Yard, General Assembly, Hack Reactor, etc. I think there needs to be more advertising of these alternatives to a Computer Science degree if thats what somebody really wants to do.
- robotresearcher 11y agoComputer Science is not identical with learning to program.
- jsnk 11y agoThe Perils of JavaSchools by Joel Spolsky (http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool...)
- protomyth 11y agoShouldn't they create a Software Engineering program and then leave Computer Science alone?
- clavalle 11y agoI would guess that even Software Engineering students would have to go through Calculus (just because it is a good weed out if for nothing else) and other math heavy, theoretical practice -- just like other Engineers. What they want is almost a Software Technician degree. Someone that can put together apps and know how to troubleshoot but who are not working on the bleeding edge but putting together technology that others have largely already designed. There is a huge need for this level of skill but not so much formal training. There are budding movements in that direction but nothing in the traditional higher education landscape or with that same level of trust and recognition.
- protomyth 11y agoI wouldn't call it a "Technician" since that gets a little confusing with certificates and such, but I take your meaning. Basically these folks are looking for what a technical college would teach but they want a university name on their diploma.
- clavalle 11y agoRight. I was struggling with the right phrasing. Basically the difference between a general contractor and an architect.
- robotresearcher 11y ago> Calculus (just because it is a good weed out if for nothing else) Nothing should be in the curriculum as a 'weed out'. Every class should justify itself in technical content. CS needs calculus absolutely, but for the ideas, not as a hurdle.
- clavalle 11y ago
- jasode 11y agoThe journalist wrote from the perspective of the "computer science" curriculum being "wrong" or "not relevant" to real world skills those students wanted to learn. However, the other perspective the journalist could have explained was that the students misunderstood what a "computer science" degree actually is. The Computer Science curricula grew out of the Mathematics department. That's why it has classes on topics like automata, algorithms, proofs and theorems. Studying those topics will seem very irrelevant when they notice other Javascript programmers earning $100k to make HTML elements blink on and off. These students were really wanting a "programming" curriculum. Maybe "software engineering" instead of "computer science". A person who wants to repair car engines could try for a degree in "mechanical engineering". There's no doubt the mechanical engineers who work at Ford/Toyota/BMW can replace a spark plug and change the oil but there will many theory classes that won't feel relevant to the daily work of a garage mechanic.
- the_af 11y ago100% agreed! This paragraph is telling: "For example, Temple’s computer science program still requires Calculus 1 and 2. It turns a lot of students off and isn’t really necessary to become a developer, Shi admits. These aren’t problems specific to Temple, he said. They plague most computer science programs." There. Calculus may not be necessary to be a web developer (then again, I suspect even then it is, at least for some cases), but the purpose of a Computer Science education is not "to become a developer". What this person actually wanted was a programming school, and was disappointed when she didn't get exactly that.
- jowiar 11y agoYou seem to be blaming the student. Did I know as a 17-year-old applying to college what the hell the difference was? No. Did I study CS? Yes. Was it the right decision? Probably not (though I did stay in it). And I had about every advantage in the world of being exposed to programming from when I was 5 or 6. Maybe the craziest part of the US college system, and technical fields in particular, is that most people don't know what's available, and don't know what they're applying for, all the while they go somewhere between the cost of a car and a house into debt.
- DIVx0 11y agoStudent wants to learn the vocational art of programming, discovers Computer Science is not about programming, drops out. Sounds like everything went the way it should have. I majored in CS and there were no end of students complaining about discreet math or analyzing algorithms when all they wanted was to learn what ever the hot language was at the time. Schools don't need to change CS programs, they need to better market an alternative software development curriculum.
- gambiter 11y agoThe related issue, though, is that many job listings specify a CS degree for routine things like web development.
- Goladus 11y agoStudent wants to learn the vocational art of programming, discovers Computer Science is not about programming, drops out. If you read more closely, you'll see that's probably not what happened. She didn't drop out because computer science isn't about programming, she dropped out because she had no self-motivation and no real direction. She found the college environment difficult and boring and she found her advisor useless. She was far more enthusiastic about working for the (likely) charismatic, inspiring leaders at Techgirlz.
- larrik 11y agoI've spent a lot of time helping to hire coworkers for a rather good remote position, and having worked with the ones that passed all of our filters and also accepted the position. It's still a bit early, but I've found that the difference between someone who actually got a proper CS degree, and someone who learned to "code" on their own is pretty stark. The fact is that calculus, algorithms, data modelling, and the like are often very relevant to programming once you are past the entry level positions.
- erroneousfunk 11y agoI don't have a CS degree, but even in entry level positions, it crops up when you least expect it. My company gathers data off of truck engines, with a data sample every .3 seconds. The data samples contain things like instantaneous "fuel rate," "vehicle speed" and other "rate" values. If the manager says to me "erroneousfunk, I want the cumulative fuel usage values over time, in a graph" I need to know that they're looking for the second derivative of the fuel rate, and how to model and summarize that data in the database appropriately for a fast processing and lookups across any combination of companies/drivers/trucks/date ranges they can think of. Voila! Calculus, algorithms, and data modeling! Or perhaps I need a job title upgrade :-p
- fintler 11y ago"Many of her friends in their third and fourth year in Temple’s computer science department haven’t written a line of code outside of basic Java, she said." Temple CS '08 grad here. They had us writing C, lisp, and x86 asm (simple multiple precision arithmetic) in the first year. I think she's exaggerating a bit. Java was introduced in the third and fourth years when they started on higher level data structures and abstractions.
- scott_s 11y agoThis exchange in the comments between another CS student at Temple and the subject of the article supports your observation: http://technical.ly/philly/2015/05/12/computer-science-dropout-becca-refford/#comment-2021441726 http://technical.ly/philly/2015/05/12/computer-science-dropo...
- Goladus 11y agoYes, it is a poor article by traditional standards. It appears the writer did no research at all other than her interview with the department chair (who conveniently appears to agree with the narrative, although it's hard to say whether quotes are taken out of context) edit: ps, where are the press hits in this article? http://www.paulgraham.com/submarine.html http://www.paulgraham.com/submarine.html
- wyager 11y agoIf you just want to be a code monkey, you probably don't need to go to college. You don't need a college education to build web pages. If you want to do anything more interesting than that (AI, embedded systems, HPC, etc.), then college may prove useful. Also, this person's experience of barely programming by senior year is highly atypical. Many CS colleges today don't even have pure theory courses until a few years in.
- rplst8 11y agoCS programs at American universities run the gamut. A well balanced CS program will teach fundamentals/theory and also application of that knowledge. Perhaps Temple's CS program is heavy on the theory in the early years (or even through all levels). That does not mean that CS or even this specific CS program is not relevant, and I'd go as far as saying "extremely relevant" to creating software. I see many folks who graduated with a degree in something other than CS that do well in the software industry. That said, I also see fundamental mistakes made frequently in the design and architecture of software (and I'm not talking about ignoring common design patterns). For relatively small sizes of N this is not a problem, but once something needs to scale (which is often the case if your creation becomes successful) then the proverbial fit hits the shan. A CS degree doesn't necessarily solve this, experience plays a large part too. I think someone who is not yet a member of an industry dismissing a curriculum out of hand is pretty foolish though.
- Goladus 11y agoMany of her friends in their third and fourth year in Temple’s computer science department haven’t written a line of code outside of basic Java, she said. What. You can't just make a claim like that without justification. In 5 minutes of search, I found a "sample course sheet," for a Junior CS major, where the fall semester recommends "CIS 3238 Software Design [1]. One syllabus[2] is available from a professor's website[3], and includes this project description: The goal of the project phase of this course is for students to gain experience in contributing to an open source project. The nature of the contribution may be to contribute an enhancement or to fix an open problem. Students may work alone or in a team of up-to 3 students. While project work will be concentrated to the last half of the course, you need to select the project early and join the developer’s mailing list. If you are a computer science major and are not writing code, there should be some explanation. A journalist should try to find answers to those questions. [1] http://www.temple.edu/cis/undergraduate/undergradcs/CS_BS.html http://www.temple.edu/cis/undergraduate/undergradcs/CS_BS.ht... [2] http://www.cis.temple.edu/~wolfgang/CIS%203238%20Software%20Design.pdf http://www.cis.temple.edu/~wolfgang/CIS%203238%20Software%20... [3] http://www.cis.temple.edu/~wolfgang/ http://www.cis.temple.edu/~wolfgang/
- crimsonalucard 11y agoYes computer science is "different" from software engineering, but not all computer science curriculums are purely theoretical. At least in ucla, all theoretical classes have several hands on labs. I finished UCLA as an electrical engineer but the computer science courses I took taught me basic skills that I needed to become a good programmer. IMO, I think most university curriculums involve this sort of hybrid education that involve labs/projects combined with theoretical lectures. I'm guessing the type of courses taught in Temple are not the norm.
- jwinkle 11y agoWomen...