
Ask HN: What non CompSci courses to take in college? - k3dz
Courses in any of the other departments that would help in a programmer/entrepreneur career ?
======
midnightmonster
Writing! Programmers need to be able to make themselves understood by other
humans. You need grammar, style, structure, and lots and lots of practice. If
you confess to your advisor or an English faculty member that you're not
terribly interested in literature, but you want to do what it takes to become
an effective non-fiction writer and communicator, they can probably point you
in the right direction.

(And if your school should happen to offer a rhetoric class, take it/them.)

~~~
johngunderman
Or you could actually be interested in said literature and take classes on it
:) I think literature and code have a lot in common, they both tell a "story",
though with code it tends to be more imperative.

------
pasbesoin
Investigate the professor, or whoever is actually teaching.

What I got out of my courses depended in some very significant ways more upon
how they were taught and by whom, than upon the ostensible topic at hand.

I have great respect for educators who have sincere interest and a passion to
convey it.

These are also the people who tend, one finds, to have a better handle on the
"mechanics" that are important to and education. Writing, presenting, engaging
in dialog and debate, _respecting_ one's conversational partner -- even while
endeavoring to enlightened them as to their mistakes and assumptions.

Such people also engage you in the work, so that it's actually interesting and
enjoyable to do. It's a lot easier to learn things, including those
"mechanics", when that is the case.

That said, do try to get some -- but not solely or even primarily -- grounding
in the "real", workaday world. Schools matriculate too many students who have
no idea what they face once they walk out the door.

------
meattle
I would recommend a Statistics class, if it is not already a requirement. In
this increasingly data driven world, it's handy.

~~~
nervechannel
If I could go back and do it all again, I'd definitely do more stats courses.

Also if you're interested in data science in general, some basic linguistics
(syntax/semantics) would be useful. (Saying this as someone with a PhD in
natural language processing, who had to self-learn all the linguistic
background the hard way)

------
zmitri
Any philosophy course will help you a lot. Whether it's for thinking, or just
to appease some of your wandering thoughts. A general Intro, Ethics or
Epistemology will do you good.

A course on art history will open your mind a little and get you thinking
about design, aesthetics, and much more.

If you don't read classic literature, take a course on classic English or
Russian lit. Most of these novels are timeless and could provide an important
impression on you.

~~~
ecaroth
Completely agree - I loved philosophy so much in college that I changed my art
minor to philosophy. You wouldn't think that CompSci and Philosophy would go
good together, but I couldn't be happier with the results. Some of the classes
even have direct correlation with how you should think as a programmer. You
should ABSOLUTELY take a Logical Reasoning course.. unfortunately for most
schools that is a 2 or 3 hundred level course so you may have to take some
philosophy intro classes first.

~~~
brg
I agree, but would suggest a higher level course focusing on the works of
Quine and Davidson may be of interest to an analytic mind. For a cs student
with a strong mathematics background, a propositional logic course is often
too basic.

I would also suggest a course in either philosophy of science or philosophy of
law. I found courses in other areas; aesthetics, epistomology, existentialism
to be much navel gazing.

If you go this route, I also suggest you keep in mind the goal for these
courses should be to hone your skills in analytical presentation. Philosophy
generally require you produce many papers.

------
gte910h
Public Speaking (where you actually do it to groups not in class, may need to
go to something like toastmasters or find your own to properly practice this)

Technical Writing/Composition - People tie writing well up in their brain with
literature. This is due to the American educational establishment thinking
writing belongs to language arts teachers, who all have English degrees. There
may be a "science writing" course offered at the grad level, see if you can
audit it.

Accounting 101 - This class will teach you the fundamentals of all the things
you will have to do with your bookkeeping. You're really not going to be able
to afford to hire a bookkeeper at first most likely.

Publishing (aka, School Newspaper) - A semester of this will teach you how
press works, allow you to see the revenue model of papers, and will allow you
to see things first hand a newspaper is writing about before it comes out.
This is very useful later in life for understanding how to properly help
newspaper writers and editors not mis-spin your business

A course on pricing in the business school - They don't always have these, but
the theoretical frameworks they talk about may be easier to digest in the
classroom setting then picking it up on your own after you leave school.

------
zoomzoom
You would benefit greatly from an intro to philosophy class.

~~~
midnightmonster
I agree, and yet I hesitate. People who have taken one or two philosophy
classes are often insufferable and not least to themselves (or so I suspect).
E.g., there's no broadly accepted 'answer' in epistemology (can we know
things? What does it mean to say we know something?), and in an intro class
you're only likely to be introduced to the problem and a few of the
historically popular responses. These may lead you to conclude that philosophy
is a lot of sound and bespectacled fury, signifying nothing or else that your
newfound cynicism about knowledge constitutes an important superiority over
naive mortals.

Epistemology is just one example. Whatever tickles your brain in an
introduction to philosophy--whether arousing your curiosity, 'clicking' with
something long felt, or leading you almost to despair--you should treat as a
diagnosis. Valuable information, no doubt, but almost worthless to you unless
you go on to seek treatment, that is, to study it further.

~~~
ecaroth
Your experiences and/or preconceptions about what happens in a philosophy
class differ greatly from what I experienced in school. Any decent philosophy
teacher will present the historically popular responses and then let the class
discuss and explore their own feelings on the subject. Nearly everybody goes
to school with some kind of social and spiritual programming from their
upbringing, and a few philosophy classes goes a long way in opening up your
mind to the broader world. NO philosophy class should ever attempt to make you
believe that one way of thinking is right or wrong, but instead should present
all the ways of thinking so you are at least aware that they exist. Even
knowing that such other schools of thought are out there makes you better able
to communicate with and understand different people who think in a variety of
ways throughout your life.

------
slater
I'd suggest some form of design/arts/UI/UX course. Break the "This looks like
it was designed by a programmer" loop!

------
mendicant
I've taken a few courses suggested here and just a small bit of warning: Make
sure you're going to enjoy, or at least be interested enough, to learn
something.

I've taken Psych. I've taken Sociology. I've taken Philosophy (both Logic and
otherwise). I've taken technical writing courses.

Other than the logic courses, I hated them all. I hated them to the point
where, though I passed, I did not take anything out from them at all. It just
didn't interest me.

All I'm saying is that as you read these suggestions, try to make sure that
you are taking into account that there's something you want to get out of the
class so that if you end up not liking it you can focus and try to get
something out of it. -- I didn't, even though I could have.

------
abyssknight
Philosophy -- learn to see things from different angles, different
philosophies. Most importantly, observe how others in your class react to
discussing touchy philosophies and concepts, like religion and politics. Learn
to step outside that box, and be objective while respecting opinions, and make
your own decisions. Trust me, its well worth it. Both for the laughs, and for
the wisdom.

edit: Just noticed I'm echoing what many others have said. Interesting that we
all had the same thought.

------
BenSS
Psychology. Knowing how other people work is a fantastic multiplier,
especially for entrepreneurs.

------
gnok
Some options to step out of the technology/science/engineering courses:

* A business course or two could be extremely useful depending on the course content -- you probably want to talk to a course counselor in the Business school about this.

* Take at least one art/design course. As a developer, I cannot tell you the number of times I've wished I understood design a little better. If nothing, understanding basic design principles will allow you to creatively contribute to a designer at some later date.

* Learn at least one new language. You haven't mentioned which country you're from (your profile doesn't say much), but Spanish is a good choice in the US. Personally, I wish I learnt German (I'm Indian and I find German a lot similar to Hindi and other Sanskrit-derived languages).

* Take a course that furthers your hobby: Photography, Art, Snowboarding, Archery and what have you.

* Take a course in the biology department. Preferably one that tells you more about the human body -- yourself. At the very least, you should be able to read your doctor's professional diagnoses or reports and understand what they mean. Know proximal vs distal, dorsal vs ventral and so on.

I'm sure there's more. I haven't had enough coffee to think right now though.

------
gte910h
Philosophy, especially one of these areas:

Ancient Greek/Roman, especially epistemology and stoics. Helps with accepting
what comes and questioning how you know what you know.

Late 19th Century. Helps with questioning your real role in what you do, and
why you should or should not.

Surveys of Eastern Philosophy. Adds a certain playfulness to life, also
disabuses you of American perceptions of Asian traditions (such as Zen, widely
mis-characterized in the west).

------
shanked
I think a lot depends on the teacher. If there is a really good teacher which
challenges their students then any course can be a great learning experience
(even beyond the material covered). Obviously, it will always be different
between schools. If I were you, I'd ask fellow students to see if anyone has
taken a truly interesting/challenging course.

I took a Negotiations course my senior year of college and it was easily my
favorite class of all time. There was a lot of roleplaying and class debate,
but the teacher played Devil's Advocate and poked holes in everyone's
arguments. He truly required us to think creatively and analyze a situation
thoroughly before speaking/writing, or else he'd rip us apart. It was a breath
of fresh air after many other classes were purely focused on learning
concepts, rather than applying them creatively.

------
kin
>programmer/entrepreneur career

Specifically in this career, I'd like to say that CS courses alone is
sufficient, certainly not optimal, but sufficient in making you a good
programmer, though it's up to you what you make of your program.

For entrepreneur, in my experience, you have got to be a people person. And,
you have got to understand the finances. For business/marketing and related
classes I would say that generally different courses have different business
logic which may or may not work depending on the situation. So, I would say
prioritize on performance arts/public speaking if you're not already a people
person. Else, go the finances route. It's amazing what basic knowledge of time
value of money can teach you.

------
alex77
I took Environmental Science and Evolution and Biodiversity. Both jolly
interesting. Expanding the breadth of your knowledge is always good. Your best
bet is to pick courses that interest you, that you will enjoy.

------
davolio
If you have floating credits, take something that you are interested in
learning, not something you think that will help you in the long haul.

I talked my way into a 300 level (non-entry level) Buddhism class because I
wanted to learn about it but didn't have the pre-reqs my senior year and loved
every minute of it.

I learned about cultures I'll probably never see and ways of thinking that
have only improved my ability to reason about complex problems. There's
something to be said about learning for learnings sake!

TLDR; Take something you don't know much about, but want to learn about and
it'll expand your mind.

------
pdobson
Accounting/Finance will do you well. Business law, too. It will help a great
deal to know when to start a business as a C Corp or an S Corp, how dilution
works, how to keep control of your company, when and how to file patents,
copyrights, and trademarks, the downside of taking money, how to build cash-
flow, profit and loss, and balance sheets, etc.

If you get some business basics in, you lower your chances of getting screwed.
Being able to protect your interests and work efforts could end up being your
most valuable skill.

------
alexophile
Learn to write!

And not just in the baseline required rhetoric class that require little more
than a pulse and a spellchecker - find a composition course that will actually
demand something of you. Fiction writing, poetry, etc., something that makes
you really learn how to communicate.

On that note, if you can find a presentation-heavy class, consider that.
There's a lot of accessible comm classes that force you to get up in front of
a crowd repeatedly - this could be invaluable in an entrepreneurial career.

------
kenkyhuang
Public speaking.You need to be able to convey yourself clearly and effectively
when you need to the most.

If you are a well-spoken engineer among a pack of average engineers, you will
stand out.

------
zdw
Other than the business courses mentioned by others...

Technical writing courses, if available, are invaluable. Being able to write
and explain things clearly is an amazingly helpful skillset to develop.

Linguistics classes can be useful for helping you think about both computer
and human language construction and use.

Engineering courses can help develop problem solving skills.

On any classes you take, I'd try to dig up syllabi from previous semesters to
see if they're worthwhile (try to find the same teacher/course combination).

------
mindcrime
I took 3 100 level business courses: Intro to Business, Intro to Marketing and
Intro to Business Law. I'd recommend anybody with entrepreneurial ambitions
take something similar. Of the three, I'd say the Intro to Marketing had the
most useful information in it.

Taking at least 1 course in Accounting probably wouldn't be a bad idea either.

You might also find some value in Statistics courses, and other Maths courses
that aren't part of your CS degree.

------
ygtckr
As a Business Administration graduate, I can safely advise that Social
Psychology, Negotiation and Human Resources are the best courses an
entrepreneur can take. You can learn Business Law and Accounting on your own,
they are easy. As I see from the comments, Programmers tend to dismiss
finance, but finance strengthened with operations research can make a mediocre
company a great one.

------
localhost3000
Definitely take Econometrics if you can talk your way around the pre-reqs. It
will teach you how to actually apply what you learn in stats 101.

------
_mayo
I really enjoyed my Sociology courses. It's good to learn "the big picture" of
how societies and cultures as a whole work and interact.

------
misterhaywood
Reading, Writing and Arithmetic.

Marketing - If people don't know that you're selling something, it won't get
bought.

I agree with a lot of the Philosophy comments people are making, but in
general you should try to avoid as many people as you can if they are not your
customers.

Your direction usually dictates your education. Your ability to learn new shit
is far more important than your inherent knowledge.

------
phamilton
Take Econ courses. Understanding economics changes the way you make decisions.
At it's simplest level, an understanding of sunken costs and opportunity costs
overrides many "logical" decisions people make daily. At a more advanced
level, understanding market forces and reactions will help in an entrepreneur
career.

------
syaz1
I would suggest taking some music class. I am not a music person but have
recently taken up piano and somehow feel it's a great way to spend time after
a day long of programming (or... reading) in the office.

But this won't _directly_ help you with programming as career, it's just one
way to spend time. YMMV.

------
cafard
Languages. At least one. Get yourself to reading and conversational
competence. Agreed with zoomzoom on philosophy.

Accounting.

------
pbburns
I'd recommend you take an intro to macroeconomics course. You'll learn about
how monetary policy works (interest rates) and that will help you your whole
life. Understanding economics helps you understand business trends, investing,
and it gives you more perspective on current events.

~~~
midnightmonster
Maybe it was just the class I took, but I took macro and wished from the first
day and ever after that I had taken micro. I felt like one class of micro
might have gotten me some information I could actually use in business,
whereas one class of macro was far from enough to get a handle on current
events or monetary policy.

------
buro9
Business and marketing courses seem the obvious thing.

I'm not sure how much an economics course would help, seeing as the basics
should be covered by the business course.

------
freyrs3
Abstract Algebra, it will change the way you think about mathematics and data
structures.

------
k3dz
Thanks all for the many interesting suggestions!

------
zwadia
Philosophy, Drama, Applied Math, Russian Literature, a spoken language,
Travel/Exchange programs. All those have helped me immensely in addition to a
computer science curriculum.

------
maxawaytoolong
This is an odd request for Hacker News. Everyone here knows that the liberal
arts are stupid. Focus. If you have time to take courses outside of the CS
department you should be using that time to write unit tests for your homework
assignments or think about how you can work in SEO optimization strategies
into next semester.

~~~
nervechannel
That's terrible advice, I hope you're being sarcastic but I fear not. There's
plenty of useful stuff outside of CS which isn't liberal arts.

Maths, stats, electronics, physics could all be useful in an entirely
computing-based career.

Biology or chemistry could open up a career in bioinformatics, molecular
modelling or simulations. Likewise linguistics for text mining, information
retrieval, speech/language processing.

Economics if you're interested in being an entrepreneur.

The crunchier end of philosophy, where it overlaps with maths and linguistics
and cognitive science, will give you a much deeper frame of reference for
understanding many hard problems.

Not all computing jobs involve twee social web startups or mundane CRUD.

