4 ms·
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 muc
by natural219 15y ago
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 LAMP.
- ender7 15y agoI'm surprised that most people seem to have ignored this line: > it’s about doing, as opposed to knowing or learning After graduating, I had to teach myself everything in that list before I could actually do anything that I found interesting. Now, this obviously doesn't apply if you're, as you say, writing a compiler, but for the average CS student, this is a great list to complete.
- xtreegold 15y agoThe key word here being "average". Many of my classmates weren't even able to do the things on the list, much less write a toy OS or language. So yes, for average people this list is a good stepping stone to become above average.
- RyanGuest 15y agoSomebody should write a "stuff that will make you SUPER BALLER" list.
- Apocryphon 15y agoHN could create a master list of that.
- jodrellblank 15y agoDidn't they do that and call it SICP(/TAOCP/K&R/HTDP/...)?
- jvehent 15y agoWhile 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 list of hard things to do from a beginner, freshman, perspective. But they are also highly necessary if you want to work on fun stuff later on. A sysadmin who doesn't understand pools of threads will go nowhere, same goes for a developpers who doesn't know what database replication implies.
- natural219 15y agoI 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.
- illumin8 15y agoWireshark 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 see where the TCP conversation broke down.
- younata 15y agotcpdump 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."
- sukuriant 15y agoWhy 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]
- natural219 15y agoRight, 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.
- Apocryphon 15y agoGiven how common guides are for setting up a basic LAMP, and that you can actually download free software called "MAMP" or "WAMP", it does seem like easily acquired knowledge.
- dpark 15y ago> 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. This is kind of meaningless. Every CS student should be able to do X, but that doesn't mean every CS student should actually do X. X here could be "set up LAMP", "implement a linked list in every language you know", "read Mozilla's nsString code", "microwave a bag of popcorn", "part your hair in the middle", or "read Twilight: New Moon". A CS student should be able to accomplish these tasks, but that doesn't mean that a CS student should actually set a goal to do any of these things. I've set up a LAMP stack before. I did it because I had a reason to, not because it was a meaningful learning experience. Setting up LAMP is sysadmin work. It has exactly nothing to do with CS.
- cbailey 15y agoI agree. While most of the items on that list are web based, they are easy enough things that can be worked on while taking classes. Working on projects like these get you into the hacking/diy mindset that really differentiate the top and low level CS students. Will every CS student need to build a web app or use MapReduce? No, but learning new technologies and getting your hands dirty teaches you to ask questions, start something, and learn as opposed to being complacent with your current level of knowledge.