Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question made me think that there was a better question to ask.

What did you learn in school that you didn't care about at the time, but turned out to be useful or you had to relearn in the workplace because you had it in school, but didn't retain the information and you needed it? (I mean for software related jobs.)

I think this might help college students identify some of what they really should be paying attention to while they are in school.


locked by World Engineer Jan 21 '14 at 20:45

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as not constructive by Mark Trapp Oct 22 '11 at 3:24

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

I regret not having spend more time learning spoken languages (it just clicked for me 10-20 years later), but this is not programming related. – LennyProgrammers Mar 2 '11 at 14:51

40 Answers 40

I would say at the time recursion and memory management are two things that I shook off in college as things I didn't care for that I ended up needing to practice and relearn on my own time.

For me recursion was taught poorly and seemed almost like "magic" that I never cared to get the full grasp of. The lessons and assignments related to recursion were always trivial and made me write it off and do things iteratively whenever possible. Later, I obviously began to realize the benefits of recursion and put some time in to feel confident having it in my back pocket for whenever it's applicable. Funny thing now is I administer a lot of the hands on programming interviews for my company where recursion is necessary for completion of the problem - all too often I see young candidates struggling to use recursion, apparently I wasn't the only one that didn't master it in college.

Regarding memory management - I did my part to get through my C programming class, but when I went back to predominantly Java it was as if that poorly understood part of my memory was erased. I later forced myself to do some real development in C and get my bearings on all of the basics and beyond. I felt I needed to learn it all for my own sake but doing mostly higher level development I didn't expect to use it - until I started doing iPhone dev where the garbage collector wasn't available. Relearning the foundation saved me a lot of time and headaches in learning the Objective-C way of memory management.


When to settle and just get it done. I Fuss and fret over the stupidest detail and make code portable and reusable to the nth degree when n-1 would work in almost all cases and take half the time.


economics (especially accountancy) and logistics.

We spend most of our time as IT professionals working on software to do accountancy and logistics related tasks, knowing how that works helps a ton.


Sometimes I regret not having paid more attention in Mathematics, however there are many great resources on the web to learn about specific topics so it hasn't really held me back and I think that is probably true for most things. If you're motivated you can still learn the majority of things by reading the internet.

I do think that foreign languages are harder to learn the older you are, I've noticed this myself having started learning French, Spanish, German and Welsh.


Calculus of complex variables. Forgot it all, and had to relearn it decades later when I wanted to develop and also explain some heavy DSP audio processing code.

Psychology. Helped me eventually gain a greater interest in reading about the very human cognitive limitations that can help lead to such things as aviation pilot error and common programming bugs.


Hardware. I should have taken a few classes from the CE and EE curriculum. Being perceived as a "software-only" guy tremendously limits your job opportunities.


Use the libraries and tools that are available!

While fundamental knowledge is critical both for writing one's own code and for assessing the value of the stuff you can find in libs and online, I wish one of my professors had sat me down and said, "this is pretty good code you wrote in 30 hours, but you could've done it a lot faster and just as well if you'd downloaded and used foolib, barlib, and libbaz. Next time, hunt before you peck."

…but then again, we were all still getting used to the Internet back then.


Sorry that this in nothing to do with programming, but:


Effective learning techniques (mind maps, anybody? Wish I'd had them at school)

Time management



How to get along with others, and conversly, how to argue my point eloquently.

Other things will cmoe to mind later, I'm sure!


I have not needed anything I could have learned in school. All I ever needed in programming was taught hands on. My school did not teach OO and the ONE SINGLE THING I need the most is touch typing - which was also not taught. I can do 4 finger touch typing on my own, but I wish I had had the opportunity to learn it at school.


I started in a profession that is less cerebral than programming. A professor in a programming course recommended against it because, "My brain would turn to mush." Fortunately, I made a career change before too much damage. Majoring in CS or at least taking more courses would have helped.

While I don't disgree that focusing on CS would result in more knowledge of CS, this is kind of elitist. I don't view other disciplines as damaging and I wouldn't consider someone who got their BA in Philosophy and then a BS in Computer Science to be damaged. – Matthew Read Mar 2 '11 at 14:51
@Matthew Read - I don't see it as elitist. What if he recognized that I could be a painter? Would recommending a career in art be more elite than CS? It's a matter of an individual pursuing an area of their strength. I've held several non-programming jobs and in most of them ended up writing an application or two instead of creating a painting for the lobby. – JeffO Mar 2 '11 at 16:50
@Jeff - careers are what you make of them. That professor was just another academically-boxed asshole. I cannot imagine anyone that is actually intelligent and that actually has industrial work experience to have that type of thinking (and to advice students with it.) As a fellow CS'ist, good for you that you went into CS, but c'mon that kind of statement does not make any sense in the real world outside the walls of academia. – luis.espinal Mar 3 '11 at 11:23
@luis.espinal - I didn't major in CS which is why I said it 'would' have helped. I changed careers 10 years later when I was old enough to recognize good advice unlike your assumption based on a single statement (He did more outside of academia than most will do in a lifetime). My father was a pilot in WWII and gave the same advice when I was in high school. Trust me, his 35 yrs in a steel mill was plenty of industrial work experience. You want to fool yourself into believing you could be happy cleaning toilets, go ahead. I just think life is too short to not do what you are good at and enjoy. – JeffO Mar 3 '11 at 13:55
@Jeff - Well, I didn't argued that cleaning toilets or working on a steal mill are careers. career =/= job; equating both is not an argument I made. Nice strawman btw. It is true, though, that I made an unfair assumption your professor's "outside" experience, but without you specifying what the hell you originally majored in, all one can do is work on assumptions. As typically attributed to Voltaire - if you wish to discuss with me, define your terms. State what you originally majored on and let your readers judge the validity of your first sentence. It is the fair thing to do. – luis.espinal Mar 4 '11 at 17:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.