6 ms·
Another vote for go to college. I'm a senior in Computer Science at the University of Illinois, graduating this May, and a TA for our Data Structures course (a
by jacktoole1 15y ago
Another vote for go to college.
I'm a senior in Computer Science at the University of Illinois, graduating this May, and a TA for our Data Structures course (as a disclaimer of potential bias).
I've been programming in some sense since I was 10 or 11. I didn't get very far until high school, during which I dabbled in several things and made some neat programs. However, the amount I've improved as a programmer over the last four years is disproportionately more than the preceding 4 in high school, and not only because of time spent.
Here's why I believe college is still valuable for programming:
1. As my father says, "college teaches you things faster than your natural curiosity leads you". Though this explains why classes can be painful, it also means that in four years of college, you learn a lot more than you would in four years of self-driven learning.
2. Interesting programming problems require theoretical knowledge to solve. Not necessarily "cstheory.stackexchange.com" theory, but theory in whatever domain the problem is in (i.e., Software Engineering theory).
3. College puts you in a group of peers who are also learning the same things. These friends are great resources to help you learn more.
4. College gives you immediate, external motivations to learn: programming assignments, grades, peers, the occasional programming competition limited to others at a similar level (so you actually have a chance of winning), etc.
A couple other thoughts on your points:
1. Computer Science is a fine degree to have. If your college offers both CS and Software Engineering, you can of course enroll in either and transfer if you feel you made the wrong choice. But more importantly, don't discount a college because it only offers "Computer Science". As far as I know (and I read a decent amount of CS Education material), the two degrees are fairly similar in terms of content. Good employers certainly don't discriminate there. (UIUC offers two senior level courses called "Software Engineering", and a 200-level course focussed on it.) Also, the "computer science" part of the discipline tends to be the more theoretical and mathematically challenging side. This is the stuff you won't pick up on the job. The "software engineering" side of things, you'll pick up on the job. So focusing on the computer science part during college is probably not a bad idea (although most programs you can learn a good deal of both).
2. Get internships. You can make about $10k a summer after taxes with internships (although getting a good one after freshman year can be hard). This can lower the cost some. Also remember that college is an investment. A good student from a good CS school can reasonably get a job paying $80k/year out of college (rates vary significantly by location and company, of course). Paying back your student loans shouldn't be too difficult. I also have a friend who took a semester off to continue his internship. Doing a bit longer "co-op" such as this can also help with finances.
3. If you really enjoy software development now, you'll probably enjoy studying computer science in college. There are parts of college that suck, but overall I've loved it.
4. Based on the very little I know of you, (posting on HN, thinking about your future, analyzing costs/benefits), you seem like you wouldn't be satisfied at a low-quality programming job. Any company that would hire you out of high school without a lot of programming experience (no offense intended, that described me as well), is not a company you will want to work for a long time. You might not be doing very interesting things, or be working with highly skilled co-workers. You get both of those during college, and immediately afterwards.
- zerohp 15y agoI agree with everything you've said, so I wont repeat it. I want to relay my own anecdote to the OP on top of it. I've been doing professional web application development since 1997, a year after I graduated high school. I'm 34 years old now and still work in the field, but I'm dissatisfied with writing every day code. I solve every day problems for my employer's customers but it does nothing to stoke the fires of my passion for computing and problem solving. I've had a good career. Even living in the midwest, away from major cities, I earn a low six figure salary writing software. Over time I have slowly come to realize how many ideas I was never exposed to by learning on my own. In my career I have quickly been recognized for my technical ability at each company I have worked at, but I became aware that there is a level above that, which I'm not qualified to be a part of. I found there is a glass ceiling that I cannot break through. The ceiling is not defined by salary, but rather by the intellectual challenge provided by the work and coworkers. After much reflection, I decided to start college at 34 years old. Last fall was my first semester at my local community college. I continue to work my well paying job, but after this summer I plan to quit and focus entirely on my education. Next year, after I finish my general education classes, I'll transfer to University of Illinois for Computer Engineering. I have built up some savings, so I'll certainly live more comfortably going back to school now, but I'll lose quite a bit of potential income doing it now verses going to college after high school. I could provide some detailed estimates for this, but I think its self evident. I guess my point is that if you think you'll want to go to college in the future, do it now. It's much easier, and cheaper, when you're younger. Not to mention the social benefits to doing so.