Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As background, I've been programming for about 5 years, and feel like I'm somewhat "up to speed" on industry best-practices and techniques (for web development, specifically), as well as software development fundamentals. However, I know I have a lot to learn.

Recently, many free online classes, MOOCs, have been made available from multiple initiatives, including many universities. A number of these courses are in software development, theoretical computer science, mathematics, and other fields that are generally relevant for programming.

I've been taking many of these MOOCs, learned a lot, and had lots of fun in the process. However, the time that it takes for me to complete the material leaves little room for doing much of anything else, including diving deeper into the subject matter or applying the material in the form of a project (I'm usually taking 3+ courses at once).

Thinking about this, I've come up with a few questions:

  • From a purely skill-oriented perspective, what are the pros and cons of taking classes / working on projects? Will working on projects help me improve my real programming skills faster? Will I miss out on some deep insight by not taking courses?

  • From a career perspective, what do employers value most? (I suspect that I already know the answer) Will a multitude of (open source) projects or a plethora of coursework be most convincing?

  • Finally, assuming courses are deemed as a "net positive", how much formal education is enough? If I continue taking MOOCs, when should I take a break and work on a project?

share|improve this question

1 Answer 1

up vote 2 down vote accepted
  • Nothing substitutes for the learning you get working on an actual project.
  • Employers value paid experience the most, with accredited credentials (i.e. degrees from a real university) coming in a close second.
  • It's all for naught unless you write some code.
share|improve this answer
    
Thanks, this is the kind of answer I was expecting, but I guess I was looking for some details. For example, are you implying that formal education is completely meaningless, and that I should drop everything and start working on projects? –  voithos Apr 4 '13 at 19:18
    
@voithos: I'm curious how you came to the conclusion that I am implying that formal education is useless. My second bullet says "Employers value paid experience the most, with accredited credentials (i.e. degrees from a real university) coming in a close second." –  Robert Harvey Apr 4 '13 at 19:30
    
As to your other question bullets, I said that "nothing substitutes for work on an actual project," because nothing does. But that doesn't mean that the theoretical education is not important. Take a break and work on a real project when you get the feeling that your book learning is not connecting with actual, real-world code. –  Robert Harvey Apr 4 '13 at 19:32
1  
Finally, your career path may dictate to a substantial degree what is important learning and what isn't. For example, real-time embedded systems knowledge is nice to have, but if you're programming web-based, line of business applications, it won't help you much. –  Robert Harvey Apr 4 '13 at 19:34
    
I see, that's true. Thanks, I think that's what I was looking for. Machine learning and cryptography may be interesting, but as you said, domain-specific knowledge will probably be more beneficial for now. –  voithos Apr 4 '13 at 19:54

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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