Live data from Hacker News

10000 things all CS students should do before graduating

tagide.com

61–70 of 164 posts

Re: 10000 things all CS students should do before graduating

#61

I think a lot of people here missed the point. This isn't a list of "stuff that will make you SUPER BALLER," it's a list of easy things that teach you very much and give you a lot of confidence for a very small amount of effort. Plus, all of these tasks are highly relevant in our web database-driven world. Not everyone wants to be Johnny Writes His Own C Compiler Geek, but every CS student SHOULD be able to configure…

Why should they all know how to configure LAMP? I use LAMP neither at work, nor at home; and even if I start running a server at home, the only things that will follow those initials there will be linux and python.

I have no intention of using Apache or MySQL, so why LAMP?

Furthermore, there are plenty of devs may never be on the web-app-dev/linux side of the world, so what's the point of Apache? (client-side development, internal application development).

Most will, but not everyone; and in that most, they might use the Windows stack version of LAMP: Windows, IIS, SQL Server, [favorite .NET language]

Re: 10000 things all CS students should do before graduating

#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 on the theory

I don't know, these are some things a CS student should aspire to. Setting up a WordPress blog and configuring a basic Apache instance? Yeah, good stuff--but I would in no way attach computer scientist to these activities. It's like calling the Best Buy Geek Squad folks electrical engineers.

(FOOTNOTE let me caveat that I do on occasion, work as a web monkey.)

Re: 10000 things all CS students should do before graduating

#63

I think a lot of people here missed the point. This isn't a list of "stuff that will make you SUPER BALLER," it's a list of easy things that teach you very much and give you a lot of confidence for a very small amount of effort. Plus, all of these tasks are highly relevant in our web database-driven world. Not everyone wants to be Johnny Writes His Own C Compiler Geek, but every CS student SHOULD be able to configure…

Why should they all know how to configure LAMP? I use LAMP neither at work, nor at home; and even if I start running a server at home, the only things that will follow those initials there will be linux and python. I have no intention of using Apache or MySQL, so why LAMP? Furthermore, there are plenty of devs may never be on the web-app-dev/linux side of the world, so what's the point of Apache? (client-side develop…

Right, but if you had to configure LAMP, could you?

What I said was, "every CS student SHOULD be able to configure LAMP." If you graduate with a degree and you can't configure the easiest web stack possible, then something went terribly wrong.

edit sub LAMP with WISC# or whatever you want. The specific technologies aren't the point of the article. It's far more useful for him to say, "Do this in Python" for somebody that is currently in a CS cirriculum. If he would have said, "configure a web stack using your database and application layer of choice," many would be (unfortunately) be lost.

Re: 10000 things all CS students should do before graduating

#64
post #36

up to 0100 and haven't been accepted to a CS program... (havent applied yet either)

Actually that's not a bad comment about how an actual College CS program may not have anything to do with the real world. I run my own servers, I code my sites from scratch in HTML, JavaScript, PHP, SQL etc.. build all my computers.. made several open source contribution coding in C.. I can do everything in that list and much more.. Yet when I applied to a local University in a CS program a couple years ago I was den…

That just isn't true. CS isn't about "running servers, coding sites in HTML, JavaScript, PHP, etc.."

Computer Science is about (per your example): 1. developing the programming paradigms underlying javascript

2. creating SQL (i.e., defining the grammar, but also proving it's correctness and completeness)

3. Architecting the network protocols that provide HTTP and HTML their plush delivery

---3.1, Naturally, is involves inter-and-inner domain routing, name system protocols, reliability and transmission throttling. Not to mention, generally, complex autonomous systems

-----3.2 To formalize, define, and prove the correctness of each the protocol/solution these problems, you must resort to deep results in graph theory and other branches of applied mathematics that are useful for modelling computational problems.

----------3.3 This requires the study into the purely theoretical realms of computational complexity theory, graph theory, etc... in order to define properties of the structures in the aforementioned fields of applied mathematics. This is the traditional heart of computer science, one in which true "computer scientists" generally have to express their results in terms of.

So I'm glad you can do everything on that list and much more. But that isn't computer science. sure you're hacking around, that's great, but don't go around thinking school is dumb because they don't appreciate your web development and unix skillz

Re: 10000 things all CS students should do before graduating

#65

Why is the rule restricted to LAMP? And why should the P = PHP & Python? What makes these special? Both are poorly designed languages (since I assume we're not talking Python 3k here)? If anything, I'd say, "Do the systems engineer job application challenge at Square in 2 languages of your choice, one of which should be Valley mainstream. Keep Python or Ruby in slot one, and aim for a big-iron language for #2, like m…

> "Why is the rule restricted to LAMP? And why should the P = PHP & Python? What makes these special? Both are poorly designed languages (since I assume we're not talking Python 3k here)?"

Hehe, I think this is the exact attitude the author is trying to prevent. Far too many CS students become too enamored and obsessed with language purity, the perfect design, etc etc, that they end up never building anything.

The LAMP stack (in both its variations) is by a really long shot the easiest stack to string together (honestly though, Rails will work too). PHP is incredibly easy to approach from the perspective of someone who hasn't written too much code before, the documentation is way more extensive than just about any other platform, the user base is heavy and has a long track record for helping out. For a novice programmer this is an ideal way to build something end-to-end (which is the whole point of that advice) and learn the pitfalls that come with building a whole product (as opposed to one small module of a larger thing).

The industry needs people who build things. Whether or not you're familiar with Silicon Valley's Incestuous Circle of Hot Languages And Platforms is strictly secondary.

Re: 10000 things all CS students should do before graduating

#66

First step for anyone who actually WANTS to be a skilled programmer is, in my opinion, find a mentor who: 1). is really really good at programming; 2). is even better at teaching complex matters in understandable ways. Made all the difference for me.

So, where does one find said mentor?

Re: 10000 things all CS students should do before graduating

#67
post #59

I think a lot of people here missed the point. This isn't a list of "stuff that will make you SUPER BALLER," it's a list of easy things that teach you very much and give you a lot of confidence for a very small amount of effort. Plus, all of these tasks are highly relevant in our web database-driven world. Not everyone wants to be Johnny Writes His Own C Compiler Geek, but every CS student SHOULD be able to configure…

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…

I don't know. I'm a sophomore and I've done most of these, and I don't consider myself to be very smart or a good programmer. I would say these are good tasks for people that are familiar with programming basics -- how to write a console application, what a for loop is, etc. -- and want to make the jump into making something actually useful. I wish I would have had this list a year ago.

Re: 10000 things all CS students should do before graduating

#68
post #6
post #3

How is any of that computer science ? I mean, is there a list out there for astronomy students that includes, grind your own lenses?

It isn't computer science per se, but it is a list of common tasks that many CS grads will end up doing in their career. However, I think it is basically a list of things for those who are going into web/software dev type positions. If I've just been hired to write Roomba firmware, some of that might not be quite as helpful. EDIT: Also, the list is numbered in binary

This is Hacker News, sir--how dare you suggest that coding positions exist which are not web development? :)

Re: 10000 things all CS students should do before graduating

#69
post #52
post #38

Earlier quoted context omitted.

While I'm surprised someone got through four years of CS without learning to use mv, if you are looking for 'developers' then you should look for software engineering majors, and if you are looking for sysadmins then you should look at people with two year associates degrees in information systems or something. CS is a branch of mathematics; expecting fresh CS grads to make good sysadmins is like expecting comparativ…

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. It's just an endless dilemma.

Post reply on HN