Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What electives go well with a Computer Science degree?
6 points by thereddog on July 4, 2015 | hide | past | favorite | 7 comments


Assuming you are talking about Computer Science electives (non-core CS courses):

- Scripting Languages

I feel this is one of the most valuable courses from my education. Knowing which tools are available and what they are good at is crucial to becoming an effective developer.

- Parallel Programming

This course had the most influence on the way I think about algorithms. Understanding the difference between parallel processing and multiprocessing is important when you start developing high performance applications. This course really challenged my concept of optimization. Heterogeneous parallel programming can be a little obtuse and there can be a large learning curve for each architecture. You will be amazed how effectively you can transform naive algorithms into powerful programs for multi-CPU architectures.


I took several dance courses, intro to theater/improv once, and early morning bootcamp with ROTC/military students almost every semester.

I also took a graduate seminar course to read dozens of papers about crowdsourcing, which related to a project I was working on for a professor with several new grad students.

At the end of my junior year, I was a triple major (dual degree) with Computer Science, Mathematics, and was approved for a third build-your-own-major.

I was already taking 8 courses that semester, so I ended up with two degrees (B.S. CS and B.S. Math) because I did not pursue the custom third major I was approved for.


1. Math - You probably should know real analysis, abstract algebra, linear algebra, and some logic.

2. Whatever else interests you


Communication related courses


Writing.


Entrepreneurship and business law.


A good answer depends a lot on your personal and professional goals. Some possibilities:

- Do a startup.

- Work in industry.

- Become an academic in CS.

- Become a more well-rounded person.

While there can be some classes that meet more than one of these goals, I strongly suggest that you figure out your goal and work from there.

Some possible classes:

- Business courses. Economics, finance, and business/contract law are often good ones. Some marketing courses can be good as well -- it really depends on the school. I personally enjoyed a class about risk management (e.g., insurance).

- Anything that develops soft skills like writing or speaking. When picking a subject, I suggest trying to avoid some of the "warm and fuzzy" classes -- you will rarely get quality feedback, and "success" is defined as how well you toe the party line. Someone else suggested creative writing, and I suggest that this can be a hit or miss depending on your classmates and your instructor. Look for classes that will provide you with fundamental structure and constructive feedback (e.g., what you did well, what they have questions about, what needs work).

- Related to the above, make sure you know how to use Excel and PowerPoint well. Excel can be a really powerful tool for non-programmers, and it can serve as a functional gateway of trust between a programmer and non-technical people. For PowerPoint, try to learn how to make clean presentations (not a lot of text, don't read what is on the slide, not a lot of gimmicks) and how to present them well.

- Fine arts. These classes absolutely blew my mind, and they really changed the way I perceived the world. Make sure you choose a good professor -- the good ones are really good, but the bad ones can be really bad. Don't be intimidated if you find people who have been doing the art you take for years.

- Art history might serve as a light version of "fine arts", but make sure you take it seriously. It is often an easy class taken by lazy students, so the standard to get an A might not be very high. That said, there is a great deal amazing content above and beyond the basics of memorizing certain eras and certain artworks.

- Consider joining an improv group, even if you think you will be bad at it. The skills you learn are invaluable: team work, public speaking, coping with failure, appreciating success, etc.

- History, especially economic history. History really does repeat itself, and this is especially true in economics. Classes like this make it easier to reflect on what is going on today.

- I personally enjoy anything related to cognitive development.

- Lastly, I suggest reading Undergraduation from 'pg (http://www.paulgraham.com/college.html). An excerpt:

"The social sciences are also fairly bogus, because they're so much influenced by intellectual fashions. If a physicist met a colleague from 100 years ago, he could teach him some new things; if a psychologist met a colleague from 100 years ago, they'd just get into an ideological argument. Yes, of course, you'll learn something by taking a psychology class. The point is, you'll learn more by taking a class in another department.

"The worthwhile departments, in my opinion, are math, the hard sciences, engineering, history (especially economic and social history, and the history of science), architecture, and the classics. A survey course in art history may be worthwhile. Modern literature is important, but the way to learn about it is just to read. I don't know enough about music to say.

"You can skip the social sciences, philosophy, and the various departments created recently in response to political pressures. Many of these fields talk about important problems, certainly. But the way they talk about them is useless. For example, philosophy talks, among other things, about our obligations to one another; but you can learn more about this from a wise grandmother or E. B. White than from an academic philosopher."

Best of luck!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: