views:

733

answers:

23

Admittedly back in college I was only interested on the programming courses. Fortunately that includes the "Data Structures and Algorithms" course. Now that I'm studying compilers I wish I had paid more attention on Automata Theory. How about you?


Update

Compiled replies:

  • Compilers
  • Operating systems
  • Business courses
  • Statistics
  • Discrete Mathematics
  • Advanced Algebra
  • Algorithms
  • Automata Theory
  • Data Structures
  • Assembler
  • Digital Design

I noticed that most are related to mathematics. Someone pointed out Math for Programmers from Steve Yegge. Although most of these are major courses, it doesn't mean that we should ignore the non-majors. It will bite you in the end as experienced by Derek Park.

+10  A: 

Compilers - for all the reasons given by Steve Yegge.

Justin Standard
OMG!!! He always have to write that much?!?
Marcio Aguiar
Where did you have classes about compilers?
TT
UC Irvine we had them: most CS programs at Universities will have a compilers course.
Justin Standard
A: 

I actually paid attention in compilers and often found I wished I hadn't showed up. The summer before, I'd ended up writing a Javascript static code analysis tool, which was a far greater learning experience than having to use JFLEX for a dinky, lame project. At times, I wish I'd spent a little more time working on the theory classes learning more about discrete mathematics and crypto.

I know for a fact that if I could do it again, I'd take Advanced Digital Design slightly less seriously. Damn teapot.

Patrick
A: 

I don't think we ever had a compiler class, but I remember building the "itty bitty operating system". Vaguely.

My favorite class, by far, was "Data Structures and Algorithms". It's arguably the only one I remember anything from, for what it's worth..

Jeff Atwood
+2  A: 

I took almost all of my programming courses seriously (except for a couple that I still don't think matter). I did not, however, take my non-major courses nearly as seriously. I actually repeated several courses because I basically just didn't go to class, all of which I did fine in once I attended class. I now have some knowledge deficits due to my lack of effort. The results also still linger quite visibly on my transcripts.

I actually got my master's degree, and have begun work on my Ph.D. mostly due to embarrassment about my academic performance as an undergrad. If I were to go back through, I would take all of my courses seriously (except maybe for university studies), because the results will follow me until employers stop asking for transcripts (which may be never).

Derek Park
+4  A: 

Statistics. Discrete Mathematics. Advanced Alegbra.

Michael Neale
+5  A: 

The Class I Wish I Had

Here's the operating systems class I wish my school had... In a semester you build your own multitasking, memory managed OS, complete with filesystem. A coworker took this one and said it gave him a great feeling knowing that he was sitting at a computer and every byte of code that was running had been written by him.

http://www.cs.princeton.edu/courses/archive/fall04/cos318

  • Project 1: booting and creating bootable image
  • Project 2: Non-preemptive kernel
  • Project 3: Preemptive kernel
  • Project 4: Interprocess communication and device driver
  • Project 5: Virtual memory
  • Project 6: File system
Mark Harrison
I think I had that class, the teacher was a bore though...
SeanJA
A: 

I dropped out, doesn't seem to have affected my chances at getting a job so far.

Akira
+1  A: 

Even though I'm still in college I wish I would've taken Assembler more serious than I did. But given the semester that I had while taking it I see why I only got a B in it instead of an A. Not to mention NIU's Computer Science Department seems to be falling apart as of late, which is truly sad.

Hopefully this semester I do better since I'm taking a "Data Structures and Algorithms" class and a "System Architecture" class.

Brandon Haugen
+1  A: 

It gave him a great feeling knowing that he was sitting at a computer and every byte of code that was running had been written by him.

Wow, I would personally describe that as possibly the scariest feeling I could have while sitting at a computer.. and I'm not kidding!

Jeff Atwood
Totally! I hope he was running in a VM!
Justin Standard
A: 

It was only four years ago, but I wish I read every chapter of my "Data Structures and Algorithms" course book, as the teacher advised...

Still, I had 17/20 at the exam :)

Philippe
+3  A: 

Honest answer? Business courses.

A geek with knowledge of, to use the example you gave, automata theory can certainly be valuable. But a geek with good business sense? Now those are the rare gems.

So yeah, I wish I had paid more attention to business courses.

Dylan Bennett
A: 

No thanks to my university I learned most of my programming skills by self study.

Without blaming somebody but that programming teacher used a "VB in 21 days" book to read us chapters!! (no kidding)

I regret sleeping through the business classes though and I should have paid more attention in the IT networks and similar classes.

Johannes
A: 

I'm still going through and I feel that I've payed decent attention. But, we shall see how long that lasts.

icco
A: 

@Mark Harrison

I wish we had that kind of course back in college. We had an operating system class but the project was "lighter" compared to that one.

@Justin Standard

Yeah, that article is also the reason why I'm learning compilers.

@Dylan

Business courses are great. But I don't know why I'm not so interested with the "business" side of things.

John
A: 

many thanks to John for bringing up a great question!

Now you know what course(s) you should take seriously. :)

John
A: 

wish i had actually done a programming course - did psychology with religious studies. started in computers doing websites around 1993 for one of the schools at uni - saw the start of Java and asked a lecture for a c++ book (which was awful btw) then took tech support job and worked my way up from there.

+1  A: 

Operating Systems, Algorithms and Automata

jakemcgraw
A: 

Information security, Operating systems, Algorithms because we had a lot programmng practise there..

A: 

Working with the computer comes easy for me. I wish I took more classes to allow me to work better or interact better with people in general. I wish I took more English and humanity classes.

Torlack
A: 

I would love to take Structure and Interpretation of Computer Programs from MIT. This would have been a great course to learn how to think like a software engineer. Plus you get to learn MIT Scheme!

A: 

I wish I had taken the optional AI class. They got to play with Lego Mindstorm robots.

Ditto for the Graphics class - I skipped it & wish I hadn't.

I really wish I had paid closer attention in Digital Logic (where you built simple circuits with and/or gates, etc.)

And finally Assembler... I just never grokked it, and I think I missed something important.

JosephStyons
Our AI class was dropped by all of the students in it, we were going to be implementing a mancala game
SeanJA
+1  A: 

Compilers was, by far, the most informative class I've taken. I've never written a compiler outside of that course, but I use the knowledge on a daily basis. The lexing/parsing/ast-building phases aside (which are essential for so many tasks..), simply knowing how memory is really managed at the level of a compiler. Learning when to use the heap / stack and managing lookup tables to define scope (dynamic and static) has been absolutely invaluable when learning new languages, debugging, and working with 3rd party APIs and virtual machines. Much of the same logic we used in my compilers course is still very applicable to systems today, and that can help fill in gaps in documentation and generally gives a better feel for how things should work, and when something may be problematic (such as different styles of parameter passing depending on the parameter type).

Compilers also answered some questions I'd always had about programming -- such as how does the computer know that an 8-bit int is an 8-bit int? (where does the "int" label go? does it take more than 8 bits then? But the bus might only be 8 bits...) the answers are pretty simple, and if you don't know them, you should go take a compilers course :)

rcreswick
A: 

I wish I had paid more attention in java, I keep trying to get into it now, but it just seems so weird coming from scripting languages like php and ruby (especially the database/gui parts of it)

SeanJA