by tobobo on 8/24/11, 4:57 PM with 18 comments
I took two intro classes, one on Python and one on Java and data structures, and I found those to be great. My class on computer structure, and that was fascinating. But moving forward, I feel like I'm heading towards the wrong niche—when I look at course titles like "Automata theory" or "Design of programming languages," they're things that I would love to learn, but I just picture myself working my ass off on some proof wondering why I let myself get so off track from something that I enjoy and can already make money doing.
Am I being naïve, or am I just starting to figure out why so many people say that college is unnecessary? I'd appreciate hearing anything about your real-world experiences that can give me some insight on which direction I should head.
Thanks!
EDIT: I had to shorten my title and I left out an important detail: I'm NOT thinking of dropping out of my university, merely doing a Music major instead of a Music/CS double major. I would likely still take CS classes—there's one on databases that seems very interesting.
by robfitz on 8/24/11, 5:19 PM
On the other, I still think it's worth the time. Being forced to write big, gnarly programs (like a compiler or collaborative text editor or puzzle AI) will give you experience that you'll never get from tutorials online about dealing with big, scary codebases. Or working in teams. Or whatever else.
If you learn as you go, each of those problems will get you fired when you hit it, because they're not exactly intuitive to deal with and you won't notice it until shit has already hit the fan.
There's not a 1:1 mapping between academic and real world problems, but I guess I'm saying it's still going to help. It also puts some extra items in your toolbox in case you want to do something other than vanilla web dev.
That being said, I have no way of evaluating the financial or chronological opportunity costs, as those are unique to you. It also depends how keen you are to get involved w/ your professors and students.
Plus, universities are where co-founders live!
by rdouble on 8/24/11, 5:45 PM
Advice is hard because it's very situation dependent. Do the courses use good books? Are the assignments worthwhile? For example of what I mean: At my school there was a prof who invented a cheap weather radar expansion board for PCs back when weather radar systems were standalone and cost hundreds of thousands of dollars. The hardware course and networking course taught by him were great. There was another guy who came back to teach after working in industry for 15 years. His courses were programming intensive and were also pretty good. In contrast the intro courses taught by the guys who went straight from grad school to teaching were weak sauce and a waste of time. HOWEVER, the automata theory class taught by one of those guys was good and was actually one of my favorite classes. Ultimately, I had a couple too many dud CS classes so switched over to a math major.
Thus, you'll have to examine the course offerings closely to see if you can piece together a reasonable major. If not it may be a better use of your time to just get a minor and take good classes from other departments. I have never regretted strengthening my math skills in lieu of taking half-assed CS courses. It was pretty easy to develop half-assed CS skills on my own.
by ziyadb on 8/24/11, 5:40 PM
Lately however, I have fallen in love with programming and software development, and I have been studying with a passion. This has led me to conclude that throughout the length of my career, I will be involved with different technologies and perhaps even disciplines. Technology is full of uncertainty, you do not know where you will be in 2 years (let alone 5), what if you get a referral for that dream job but it requires a degree? Or if you decide to build a startup and it tanks--you would have to consider employment to regain at least some of the money you have lost.
There are countless other scenarios in which you may regret not having completed your degree. However, the most important thing to consider is that once you quit, you would lose out on opportunities--what they exactly are, you will never find out.
EDIT: This is in response to your edit indicating that you are not dropping out of school. That is good. But if anything, you should drop the music major.
by ColinWright on 8/24/11, 5:17 PM
If you start working on your own ventures you will make money - probably/maybe - and that will be cool. More, you can just work on the stuff you want to - maybe - but to earn money you may end up having to do a lot of grunt work that's not really enjoyable, not creative, and certainly neither stretches nor teaches you.
Do you really think you can make it on your own? Then do it now while still working on your degree. Having a startup is incredibly hard work. If you work that hard then you can do your degree and learn all this weird, wild-ass stuff that you otherwise wouldn't, and at the same time build something cool.
No, I wouldn't drop out. If you really have the drive you can make the most of this chance. It won't come again.
Just my $0.02, YMWV.
#include <std_disclaimer.h>
by kevinh on 8/24/11, 5:00 PM
by CyberFonic on 8/24/11, 11:56 PM
On a slightly different note (ha ha) have you looked at LiveCoding and other real-time fusion of programming and musical performance?
by a3camero on 8/24/11, 6:35 PM
I have a H.BSc. in Biomedical Sciences and my only university course was Intro to Programming.
I've worked as a programmer at start-up in Waterloo, won a series of international programming competitions that had a decent number of CS competitors and done a fair bit of contract programming for some decent sized organizations.
by abbasmehdi on 8/24/11, 7:17 PM
I started with a business degree, and noticed we were being taught processes like how to create a balance sheet etc, things I could learn myself by looking it up online or reading the textbook, no added value from schooling, so 2 semesters later I switched to Economics, which talks about why people do this over that, why governments do that over this etc. Then I decided to major in CS, and started a new bachelor's degree, noticed again I could learn everything they were teaching me myself and it was far too much theory that would be useful “later”, so I switched to Electrical and Computer Engineering which was focused more on building stuff in teams – which was why I got into a tech major in the first place.
Ask yourself what you want out of it – seems like you want to build stuff – universities don’t focus on that, vocational and technical institutes do.