Earlier quoted context omitted.
I would agree that four years is an optimistic timetable to learn everything here to the degree that you would want to. I also disagree on the relative ranking and importance of the items, but I don't feel experienced enough to really argue with them on the basis of my knowing better. Maybe in a few years. I think a few of the points could be expanded. For example 'Robotics' gives the wrong impression and I'd say tha…
I dislike how these articles make it seem like you need to be a super-human coming out of college. You don't. As long as you are perceptive, intelligent and can learn on the fly you'll be fine going into most entry level jobs in the industry. As far as the list itself, it is highly debatable. Depending on your job you won't ever need to know most of this.
What every computer science major should know (2011)
21–30 of 101 posts
Re: What every computer science major should know (2011)
#22What is a good book for C++11 and beyond? I took a lot of C++ before '11 was implemented, but have been focused on other languages recently, so I feel like I'm a bit behind the modern development. The references he points to are all 10+ years old, so I strongly doubt I'll find any C++11/14 in them.
Once you learn the fundamentals, read Scott Myers. (effective c++, effective modern c++)
Re: What every computer science major should know (2011)
#23Prefacing this I am only 20 years old so I have some time to figure it all out but I feel like I am missing out a fair bit on not pursuing a degree in computer science. A lot of the content, especially the focus on algorithms, seems really interesting to me. Straight out of high school I did not have the math grades for CS so I went to the American equivalent of community college and am on track to get a diploma from…
Re: What every computer science major should know (2011)
#24Prefacing this I am only 20 years old so I have some time to figure it all out but I feel like I am missing out a fair bit on not pursuing a degree in computer science. A lot of the content, especially the focus on algorithms, seems really interesting to me. Straight out of high school I did not have the math grades for CS so I went to the American equivalent of community college and am on track to get a diploma from…
Re: What every computer science major should know (2011)
#25Re: What every computer science major should know (2011)
#26I couldn't get past "Computer science is not quite engineering."
A lot of terminology and philosophy from engineering carries over to CS, but for most applications, the quality and thoroughness of real engineering does not, nor is it needed.
Computer science, or software engineering if you prefer, is a strange hybrid of a lot of things. On the pure development side, there is a lot of engineering-like stuff going on. In academia and research, there's a lot of science. And everyone is doing heaps of math. Unfortunately, English doesn't have a good word that encompasses all this, so we end up with poor terms that each only describe parts of the whole.
Re: What every computer science major should know (2011)
#27Earlier quoted context omitted.
I would agree that four years is an optimistic timetable to learn everything here to the degree that you would want to. I also disagree on the relative ranking and importance of the items, but I don't feel experienced enough to really argue with them on the basis of my knowing better. Maybe in a few years. I think a few of the points could be expanded. For example 'Robotics' gives the wrong impression and I'd say tha…
I dislike how these articles make it seem like you need to be a super-human coming out of college. You don't. As long as you are perceptive, intelligent and can learn on the fly you'll be fine going into most entry level jobs in the industry. As far as the list itself, it is highly debatable. Depending on your job you won't ever need to know most of this.
Any comprehensive list of "things to know" will include things that not everyone needs to know, but it's still important to know "of" a lot of things. That way, when you encounter a new problem, you'll be reminded of something you heard about, but don't really know, and can look it up on Wikipedia.
Re: What every computer science major should know (2011)
#28I think part of the problem is having so much emphasis on specific tools and standards rather than general principles and theory. Hopefully CS students do pick up some familiarity with practical examples along the way, but I don't think that should be the priority for undergraduate level CS teaching. I'm particularly wary of putting so much emphasis on "old school" tools that aren't necessarily very good by modern standards but remain popular because of momentum and ecosystem effects.
As a result of that emphasis on tools, I'd say sound theoretical foundations seem to be given less weight than they deserve. Some examples of terms that I would have liked to see on any modern undergraduate CS syllabus or reading list are "comparison sort", "halting problem", "ACID", "transaction", "distributed system", "CAP theorem", "concurrency", "deadlock", and "lock-free", as well as a lot more specifics on basic data structures and algorithms.
Re: What every computer science major should know (2011)
#29Suggested revisions: - More on databases (including non-relational). We all need to know a lot of this for day-to-day work yet it but it barely made the list. - More on writing clean, readable code (this isn't on anyone's list, damn it!) How to name variables appropriately, how to comment, how to not write 150-character lines, etc. Fail them if they can't produce code that other students can quickly read. - Corporate…
It seems like for every problem out there - at least some tiny bit can be solved by machine learning.
General pattern recognition (identifying peaks, predicting disk outages, etc) at the minimum seems like a requirement that will show up in the next few years.
Re: What every computer science major should know (2011)
#30I'm not saying this to say they aren't useful. But does anyone find them generally useful for their job? If so, what for? I'd like to know what I'm missing here, if anything. I don't want to go through a refresher just to forget it in another couple of years.