Live data from Hacker News

10000 things all CS students should do before graduating

tagide.com

131–140 of 164 posts

Re: 10000 things all CS students should do before graduating

#131

Earlier quoted context omitted.

Google expects its software engineers to do all that and more with a computer science degree. So what if it's not taught in the major? You're smart -- figure it out.

Don't get me wrong, I'm plenty capable with real world stuff. I just don't like it when people think a CS education should mean learning Java libraries and design patterns and server configuration. I'm glad I wasn't forced to waste my time taking classes devoid of conceptual material.

I agree that CS shouldn't mean learning Java or ASP.NET from top to bottom, but it wouldn't hurt to have an idea about them. Also let's not forget that even Peter Norvig said Remember that there is a "computer" in "computer science".

Re: 10000 things all CS students should do before graduating

#132

Isn't CS supposed to be a branch of math?

Yes and no. This list makes me sad because it neglects every single computer scientist that's interested in doing work on theory. I am one such computer scientist, and much of the work that I do involves merely pen and paper. There are a lot of people on HN that are web monkeys and make good money doing Web 2.0 stuff, and there are a lot of people that know pretty much nothing about computer science but use computers and program. These people equate CS with programming and the other sorts of tasks described in this article and then forget that there are computer scientists that could conceivably have no idea how to program in a modern language and still make contributions to the field.

But maybe HN is the wrong place to go looking for discourse on this sort of material. The point, though, is that this article is misleading. Perhaps it would have better been titled "10000 things every software engineer-hopeful should do" or "10000 anyone who writes code for the web should do".

Re: 10000 things all CS students should do before graduating

#133
post #117
post #62

I'm a computer scientist, not a web monkey (FOOTNOTE). I'd say these are not the things all CS students should do before graduating. The field has much more to it. How about: 1) add or modify a significant feature of a working kernel 2) write a toy programming language 3) program in a programming language with concurrent constructs (e.g., erlang) 4) study some theoretical area, develop a practical application based o…

Those sound like engineering problems, not science problems.

In the original link there are useful problems for a web developer, but they are far from being science problems.

Re: 10000 things all CS students should do before graduating

#134
post #133
post #117

Earlier quoted context omitted.

Those sound like engineering problems, not science problems.

In the original link there are useful problems for a web developer, but they are far from being science problems.

True, I didn't mean that to say they were, but only to clarify that what's considered computer _science_ problems, sound more like engineering ones.

Re: 10000 things all CS students should do before graduating

#135
post #59

Earlier quoted context omitted.

While I totally agree with you, I don't think that: "1000 -Use a packet sniffer to learn about the network requests your computer does to your favorite game server." Is an easy thing to do. The first time I learned networking, packet encapsulation, protocols and so on, it took me a while to get the concepts. It's only after a few years of CS studying that I got fluent in wireshark (if that's even possible). This is a…

Wireshark should be a required tool for any developer writing netcode. If you don't understand the OSI model, or how a 3-way handshake works, how can you possibly debug your code? I've had to work with customers before who were writing code to send data over XML to a web server before who had no idea how to use tcpdump and Wireshark - it was unbelievable, but I was able to show them bugs in their code because I could…

tcpdump is also great, and I prefer it to wireshark.

I've learned how to read the packets coming through in real time, at an office environment. I can tell people "I don't even see the code anymore, all I see is blonde, brunette, redhead."

Re: 10000 things all CS students should do before graduating

#136
I just finished my first year of Uni.

I'm spending the summer at an intership, where I'm writing very low level code. (For example, right now, I'm writing a utility to arping an address range. I've learned all about OSI, ethernet interfaces [I'm using BPFs [1]], etc.).

In my free time, I'm playing with opencv. For example, here [2] is an image I took of myself, ran through an edge detector, ran again through a distance transformer. I'm thoroughly enjoying myself.

I also know how to configure a LAMP [3], but that's nowhere near as interesting as the previous two paragraph.s

[1] http://www.FreeBSD.org/cgi/man.cgi?query=bpf&apropos=0&#...

[2] http://michaelbrindle.com/images/meDistTrans.jpg

[3] in my case: FreeBSD, Lighttpd, mysql, and python, so... FLMP

Re: 10000 things all CS students should do before graduating

#137
Why can't I down vote? That advice was horrid, and basically said 'learn all about buzz technology and blog stuff'.... Seriously, thats what they should be doing way LESS.. They should do more things such as the following: (My own biased list)

1. Designing their own CPU (this will go along with learning memory management, paging, translations, etc) 2. Learn about Linking and Loading 3. Write Toy OS 4. Learn C and x86 assembly 5. Learn TCP/IP and OSI model well. 6. Write some damn code and try to contribute to open-source 7. Learn about application security (stack overflows, heap, etc.) 8. Write your own API for anything to learn how to create consistent and easy to use code. 9. Apply what you learn about an algorithm or data structur in a novel way to solve a practical problem. Who knows you may see something and say 'wow I could use that algorithm and apply it to finding words that rhyme' or something like that.... 10. Please... have some damn system administration skills. Learn your way around a modern system be it linux, bsd, windows. 11. Figure out why design patterns and OO aren't goddamn silver bullets for every issue. 12. Christ sakes, learn some damn math. 13. Stop trying to learn every damn language you see. Just because proggit/hackernews is buzzing about some new technology doesn't mean it is worth your time. Be different go against the grain.

... and other stuff I can't think of..

Re: 10000 things all CS students should do before graduating

#138
post #52

Earlier quoted context omitted.

We don't have good programs in systems administration and network engineering, but we should. (Any major university starting one?) In the meantime, a good CS program is a perfectly reasonable foundation for a career in systems and networks. I ran through the gamut of logic, basic logic circuits, assembly, algorithms, data structures, complexity and then features of various languages, operating system structures, and…

We're always going to have this issue, because IT and sysadmin will always be scoffed as something for vocational schools, dismissed by "real universities of pure knowledge and research." Major universities will never condescend to offer such programs. And perhaps they shouldn't. But at the same time, vocational schools are still seen as having less prestige (and, thus leading to careers making less money) in the U.S…

"vocational schools are still seen as having less prestige..."

Except for a few vocations that have managed to get themselves tagged as "professions". There are a number of fields where students are supposedly taught to think in general-purpose undergraduate programs, and then taught the minutia of their chosen field in "professional school". e.g. law school, medical school, and a growing list of professional doctoral programs in fields like Psychology, Occupational Therapy, Pharmacy, Optometry, Nursing, Education, etc.

Maybe someday we'll have a "Doctor of Network Configuration" or a "Doctor of Database Schema Design"? (I'm not sure if I'm kidding or not)

Re: 10000 things all CS students should do before graduating

#139

Why can't I down vote? That advice was horrid, and basically said 'learn all about buzz technology and blog stuff'.... Seriously, thats what they should be doing way LESS.. They should do more things such as the following: (My own biased list) 1. Designing their own CPU (this will go along with learning memory management, paging, translations, etc) 2. Learn about Linking and Loading 3. Write Toy OS 4. Learn C and x86…

I agree, the advice is off mark.

Studying Computer Science should be about learning the fundamentals. Algorithms, Discrete Math, Operating Systems, Compilers, Computer Architecture, etc.

Re: 10000 things all CS students should do before graduating

#140
post #117
post #62

I'm a computer scientist, not a web monkey (FOOTNOTE). I'd say these are not the things all CS students should do before graduating. The field has much more to it. How about: 1) add or modify a significant feature of a working kernel 2) write a toy programming language 3) program in a programming language with concurrent constructs (e.g., erlang) 4) study some theoretical area, develop a practical application based o…

Those sound like engineering problems, not science problems.

I have a bias towards the systems side of computer science. I didn't mean to neglect my theoretical brethren. Maybe we can both agree that the OP is off the mark.
Post reply on HN