My brother is deciding on schools he wants to attend. He is looking at University of Toronto for Computer Science. He isn't exactly sure what kind of programming he wants to do yet.<p>Am I wrong in advising him against going to university for computer science (he wants to code)?<p>Universities when it comes to CS are hardcore math (my brother says he doesn't mind math). On top of hectic schedules, you have huge tuition fees. And when it comes to coding, real world experience is king (in my experience at least).<p>What advice would HN give someone looking to go to university/college for programming?
My advice, though I don't have a CS degree, is that it's better to have it and not need it, that need it and not have it. Sometimes you need a piece of paper. I could get incredibly solid in my skills, but it will always throw up a red flag that I don't have a related degree. It's simply harder for the average person to prove "related experience" even with OSS contributions when they could check off a box by having a degree.<p>Also, have him investigate multiple CS programs. Not all degrees are alike. Some are heavy theory, as you said, and some place an emphasis on software engineering.<p>As for debt, it's comparatively these days to get a moderate to high paying job in CS. If you have a degree.
I'm not sure if you're trolling or not, but it sounds like terrible advice.<p>Yes, most of coding knowledge comes from real world experience. But a university is essential in building the foundation. Those theory and math topics do matter. CS isn't just about gluing PHP code together.<p>Also, most non-startup jobs out there do tend to require a bachelors' degree.
I think you're probably wrong. It's only a few years, it's respected for decades after that, and it's a shortcut to telling people who are considering hiring you that you're somewhat responsible/not totally flaky.
When I was in intro CS in college, my prof told us that 90% of whatever specific skills we learned would be obsolete or unnecessary within five years, it was understanding the principles that mattered.<p>I am a university math teacher. I couldn't give a flying damn whether my undergrad students learn calculus. I do care whether my students learn to reason both non-rigorously and rigorously, that they understand how to read and work with definitions, that they can recognize when their solutions are plausible, and that they learn to explain themselves clearly to others.<p>I am biased obviously, but I think that a college education is tremendously valuable. Also, I know that University of Toronto is a damn good school.<p>+1. I respect you greatly for helping out your brother, and for soliciting advice. I can only speak for the path I took, conceivably another is still better, but I can testify that college education is truly valuable.
When your brother says he likes to code, what does he mean by that? Does he like grokking out web apps, does he find hacking away on a bash terminal far more interesting, or does he enjoy implementing algorithms in a variety of languages?<p>If he likes grokking web apps, and foresees himself not deviating too far from this career path, then lots of proven coding experience + open source commits might work out for him better than going to college.<p>That being said, as someone with recent CS Uni experience in the States, I found my time there quite helpful from a knowledge perspective. From a pure CS/coding perspective, CS curriculum introduced me to lots of different computing fields and concepts, as well as provided a mentor/teacher to explain them I might not have found in the "real world", beyond basic data structures and algorithms. Exposure to some of the upper level math also helped hone problem solving skills. Ultimately, I think it ended up working for me, I left with a pretty wide range of knowledge--practical and theoretical--and decent problem solving skills I can apply to most problems.<p>I don't know anything about UT's program, but I will say if your brother wants to get into lower level coding, a decent CS degree will go a long way to giving him the basic theory & knowledge to jump into the field.
What is the alternative for him? Another major, or just not going to a university?<p>You can use payscale websites to judge what kind of pay a programmer that has gone to a college gets in relation to one that has not and compare to the costs of going to college.<p>In regards to hectic schedules and hardcore math... it's not THAT bad, and the harder it is the stronger he'll be coming out.<p>At the end of the day its about how will he differentiate himself to other programmers. When he's looking for a job without a college degree but with a few projects under his belt compared to a fresh college grad with a 4.0, it might be a coin toss on who they pick. What if the college grad also did some work on the side, or internships? It may tip the scales out of your brother's favor.
> He isn't exactly sure what kind of programming he wants to do yet.<p>I would advise both him and my younger self to take a year out and think about what they're actually interested in doing, guided by hacking together some simple experiments. I think going in to further education to bolster something pre-existing* is better than going in as a blank slate and hoping to latch on to something while you're in there. You can still change the concrete thing you're interested in, but it should always be something and not nothing.<p>* <i>browsing</i> the web and <i>playing</i> video games don't count as professions or crafts.
I don't have a degree, and I've done reasonably well for myself in the tech industry without one. Thankfully I've been involved in a few places that needed the real world experience more than the sheepskin.<p>That said, I think telling him to do the same thing is bad advice. I've seen a distinct difference between someone who knows how to code because they've written a lot of it, and someone who knows how to code because they've learned the underlying concepts and practices.<p>To me it's sort of akin to the old adage of giving a man a fish vs. teaching him to fish.
speaking as a University of Toronto CS grad, i would recommend him going through with it. Based on personal experience, i do agree that he won't code as much as he would if he took a college course but at the end it's worth it.<p>the programming work i'm doing now i didn't learn at UofT. I learned on my own, but i do believe my UofT certificate played a very big role in me getting my current job.<p>at UofT he can expect to do a few programming courses but if he decides to go under the software engineering program, he'll have to do a lot of algorithm and concept works as well. for example courses to figure out how BGP and OSPF algorithms work etc.<p>the way i look at it, if he goes to UofT to gets his fundamental CS and then try and learn different programming languages on the side himself, he will be good to go.
Hi Mbrzuzy,<p>Here's my story that I used to answer a similar question a few days ago: <a href="http://news.ycombinator.com/item?id=3414135" rel="nofollow">http://news.ycombinator.com/item?id=3414135</a><p>Hope this helps.
The question you should answer instead is "How will he get his foot in the door otherwise?"<p>University -> Internship -> Employment is a good way to get started. Managers hiring interns more or less know what they're getting.<p>University -> Employment is more difficult, but possible. Managers hiring people straight out of college also more or less know what to expect, especially if they've hired grads from the school before.<p>Trying to jump straight into employment will be difficult unless he has previous employment.<p>If he's currently employed writing code, then 4 years of work experience will probably trump 4 years of schooling. But there are always places that won't even consider a person without a degree.