5 ms·
My Lousy College Experience With Computer Science
- seasoup 16y agoThings continue like this in the workplace too. Whatever the industry is you get into programming, the challenges are mostly the same. You run into the same problem time and again, because the problems that industry need solved are all very similar, and mostly not that complicated. Accept user input, shuffle the input through whatever language you are programming in, query/update a database, shuffle the results through whatever language you are programming in, display the results. The business will demand these constant features, that are all mostly the same and when you've mastered what the business requires, it will be up to you to continue your education and improve your programming skills. Either by jumping jobs to one that focuses on a different area of programming... from a web stack to an iPhone app, or embedded systems... or you have to learn it on your own because work only need you to know the minimum required to get the product out and the minimum is only challenging and fun for so long. Learning to learn on your own is important, most programmers don't do it, they get to a certain level and do not progress. I don't mean to sound discouraging, there is a lot of intellectual challenge along the way, and little is as satisfying as sitting down and creating a great product or solving a particularly difficult challenge. I always feel something is missing on days I don't get to program.
- Lewisham 16y agoI think you need to straight up name the university you're at and the subject that had the 1997 teaching notes. Unless you're doing a theory class, there's little good reason for them to be so out of date.
- weaksauce 16y agoHow much has changed since 1997 in computer science fundamentals? Especially in the first two years curriculum. The first year is general ed with a gentle introduction to cs(overview of basic computer science constructs and some data structures implementation and analysis.) The second year is general ed with a bit more computer science stuff. The third and fourth years are where the more interesting stuff happens. Even there though the stuff that they are going to teach you are as fundamental and theoretical as it gets. An algorithms class? They are going to teach you the asymptotic behavior of the more fundamental algorithms. You are not going to implement them you are just going to analyze the running times and storage space behavior. Also, just because it says 1997 does not mean that the teacher has not edited it without changing the date in the header.
- cpswan 16y agoNone of these problems are specific to computer science. Education in general is trapped in 19th century models. It's just that this is more of a problem in a discipline like IT where the state of the art changes so fast. I'd add Edu 2.o (www.edu20.com) and School of Everything (schoolofeverything.com) to the list of web based alternatives.
- adaptives 16y agoThat's unfortunately how much of college education had begun. Unfortunately (this is a guess), but I think the problem has come into being because of many universities' desire to scale up. With scaling up the number of students, it has become impossible to give quality attention to the students and encourage interaction. Recently I decided to do a Do-It-Yourself masters in computer science, using open courseware and social learning. It's an experiment, and I am also hoping to learn a few new things. So far I have had a great time, because I can learn at my own pace, and follow concept leads which I think will be useful. I am documenting the experiment at - http://opencs.wikidot.com http://opencs.wikidot.com I am hoping that in the future students will take charge of their learning, rather than the other way around.
- bob_calder 16y agoWhen you enter a department, you have to engage the social environment of the staff. Find the researchers, volunteer to do some tasks for them. Join some projects. Don't take classes from profs that aren't emotionally engaged with students. And for goodness sake, get to know them. If this isn't successful, you need to find a college where you can feel at home. Do you know who is doing research? Do you know who is getting funding? If you don't, you aren't doing your job as a student. You also have to take a serious look at your fellow students and see what they are doing. Ask yourself if you would enjoy teaching them. Are they interesting and engaging? Do they even talk about computer science? Here's a therapy suggestion. Offer your services to researchers in the sciences and you will find a practical outlet for your frustration. The budget for programming is the first thing to be eliminated from a research project and the postgrads, having taken a single course in C devote a ridiculous amount of time to programming. You, of the other hand can knock out a program using Python and negotiate payment of some sort.
- jkmcf 16y agoI'll doubly recommend engaging the faculty and staff, regardless of subject. Especially for technical subjects where most of the learning is done outside the classroom. The problem is, your adviser should be encouraging you to do this the moment you step foot on campus. It never hit me until after my junior year when I saw all the freshmen working in labs and such. Think of it this way: If you want to be a journalist, you don't just take English classes, you work on the school newspaper.
- acconrad 16y agoI really can't stand it when people complain about computer science education. News flash - programming != computer science. It doesn't require a PhD to learn (or teach) Python or AJAX. In fact there's nothing inherently scientific about the day-to-day uses of that language. You want to learn to program? Go to ITT Tech or work on open source. Hell, you could land an interview pretty much anywhere if you spent 12 weeks watching the MIT Intro to Algos lecture and The C Programming Language. WHY DO YOU THINK IT'S AN INTRO COURSE? If you want to learn how programming languages (syntax, grammar, compiler, interpreter), an operating system, automata, logic/circuits, Turing machines, AI, HCI, graphics, databases, MATH works and the theory and provenance behind all of it...you want a computer science degree. Sorry your professor isn't teaching you the difficult inner-workings of jQuery.
- arethuza 16y agoWell said, jQuery is a fantastic bit of programming - but I'm struggling to think what relevance it has to a Computer Science course.
- Zev 16y agoIn my defense, whenever I complain, its about the opposite ;) A class I signed up for three semesters ago was listed as "Theory of Programming Languages". Sounds like a great class, right? The syllabus said it would cover Common Lisp, Prolog and Smalltalk, in addition to us doing a "serious" paper studying another language in-depth, on our own. However, when it came time to take the class (two semesters ago), it had been renamed to simply "Programming Languages" in preparation for future changes to the curriculum. Instead of going over the neat things about the language (S-expressions in Lisp, how dynamic and flexible Smalltalk is, etc), the professor spent a month per language going over over syntax. The hardest thing we had to do in any language was to flatten a list that had lists within it. The curriculum changes that were being prepared for? The biggest one that I've heard of involved replacing Smalltalk with PHP. The reasoning for this? "Students complained they didn't get any practical knowledge they could put on their resume out of the class."
- mithaler 16y agoGeneralizing the college experiences of the writer to all college experiences is not doing anyone any favors. My college experience was nothing like that: in intro CS, we were taught Java concepts as the basics of object-oriented programming, and the second class was the basics of advanced data structures, again using Java. As a result, when I saw Python code, it was trivial for me to read it, and after looking at it for a short time I was comfortable writing it. When I took my current job, I had never written Javascript before; I picked it up in a day. Even Scheme wasn't hard to pick up when I took Declarative. Oh, and I never had a class in CS with more than 15 people in it. Just saying. You can learn programming in college, but you should not expect classes on "AJAX, jQuery, iOS apps, APIs". Once you know how to program, you can easily figure out how to do any of those things by reading documentation and tutorials. With my college CS classes, I can read and understand Android's developer guides and PHP's online documentation. That's what's important.
- dandrews 16y agoAt the end of the article the OP admits: "... you will never be able to replace the social element of attending a university, arguably the most important part of it". This is so true; even in the early 70s the system was broken, and I got only so much out of the university offerings by themselves. But I got a lot of use out of my roommates. High school had been a homogeneous environment, everyone taking the same stuff and enduring the same assignments, preparing for the same standardized tests. But at university I was suddenly thrown in with people with different specializations, different expertise, different interests. I found myself taking meals with electrical engineers, mathematicians, political science observers, religious people, educators, psychologists, physicists, chemists... and I could pick the brains of any of them. I was like a kid in a candy store. And that's not all: I discovered the pain and pleasure of ethanol. I walked in the moonlight through a cypress forest discussing existentialism with a platonic girlfriend. I acquired some rudimentary burglary skills. I broadened my musical tastes. I learned to eat stuff that wasn't mama food. You can't do any of that these days, sitting in your parents' basement and skulking the intarweb. The community made university worthwhile, not most of the academic stuff that was routinely delivered as part of a contrived degree requirement. Not to say that some of the classes weren't worthwhile - far from it - but I sure wish I could have selected better. I'd have rather taken more math than some of those general studies requirements. So, thinking out loud here, is there a place for an academic hostel? A low-rent complex with dormitories and classrooms, paid lecturers but no degrees and no grades, and students stay on the basis of some kind of meritocracy? I'd go back to school, even now, if it weren't for all the BS. I just don't have time for that - and really, who does?
- Zev 16y agoSo, thinking out loud here, is there a place for an academic hostel? A low-rent complex with dormitories... I'd say that cheap living, in exchange for lacking comforts (privacy, being able to cook your own meals, etc) is the sort of thing that only works when you're in your late teens/early 20's. Which is, unsurprisingly enough, when most people who go to college/university are attending. And to be honest, as someone in his early 20's, it gets pretty tiring after a while. I'm all for low rent and being around great people. But, I'd rather pay a bit more for those comforts and still be around previously mentioned (or other) great people.
- starkfist 16y agoMy intro to computer science class had 12 people in it, and was structured the same way as 6.001 at MIT, using SICP, and whatnot. Subsequent courses had about the same number of people and used the top textbooks at the time. Cormen for algorithms, stevens for networking, foley and van damme for graphics, the dragon book for compilers, etc. The small class size put me in close contact with my professors, who cherry picked me to lead some NSF funded grant projects in computational geometry and atmospheric science research. They also let me be the sysadmin for the school's UNIX servers. This combined experience and education made it trivially easy to have a career working for various internet startups. Just wanted to point out that there's varying quality of education, and maybe it just sucks to be you. On the other hand, maybe I don't really know what I'm talking about, since I went to one of those "hated on HN" flaky liberal arts colleges.
- pramit 16y agoThis is also a useful read, although about the viability of business education http://bighow.com/tags/doweneedmabs http://bighow.com/tags/doweneedmabs
- tcc619 16y ago"I’ve yet to take a mathematical class that discusses algorithms and as far as I know I will not even be required to take one." This quote sums up the situation for the author. Why don't you take the interesting classes? You don't have to take just the required classes. Take the classes that interest you. Computer science is about how to solve problems effectively, not necessarily the hot programming language of the day.