Slashdot Mirror


Ask Slashdot: Best Alternative To the Canonical Computer Science Degree?

connorblack writes "I want to be a web developer, and everyday I ask myself the same question: why am I wasting my time getting a computer science degree? I feel like I'm trapped- most of the courses I spend all my time on are far removed from the skills I need to succeed as a web developer. But on the other hand, I can't imagine another degree that would allow me to stay in a programming mindset. The fact is that web development has taken huge bounds in the last few years, and sadly most universities haven't caught up. Computer science is a field that overlaps with web development, but getting a computer science degree to become a web developer is like getting a zoology degree to become a veterinarian. Close, but no cigar. So here's the deal: I'm in my second year of a computer science degree, and the thought of wasting two more years, getting left in the dust, and becoming irrelevant has me horrified. I want to start my web development career now. Or at least as soon as possible. I can drop out and devote 6 months to teaching myself, but I want something more structured. Something that has the benefits of a classroom and an authority figure, but which teaches me exactly what I need to know to do what I want to do. Any suggestions?"

13 of 347 comments (clear)

  1. Canonical? by serviscope_minor · · Score: 5, Funny

    Try the Mint or Arch computer science degree. Much better than the Canonical one.

    --
    SJW n. One who posts facts.
  2. Pick an Emphasis On or Interdisciplinary Degree by eldavojohn · · Score: 5, Insightful
    I think a lot of colleges offer degrees where you do "Computer Science with an Emphasis on X" but looking at one of my alma maters I see that it's moved to a kind of "flavor of the month" thing (game environments?). This usually leaves room for you to pick other courses. Another thing is that sometimes they offer interdisciplinary courses but you really have to be worth your salt to cut it in these areas (I guess they're close to a double major) so for example I can pull up MIT's page and see "Bachelor of Science in Computer Science and Molecular Biology".

    Honestly if I could go back I would seriously consider dumping the "Emphasis on Artificial Intelligence" and switch from Computer Science to Computer Engineering. However, I also heard that your whole schedule is often picked for you in that degree so I never would have been able to take the two semesters of music theory or extra calc and physics courses ... so you know, there's something to be said about breadth and figuring out what you want to do.

    Now to directly address your questions:

    I want to be a web developer, and everyday I ask myself the same question: why am I wasting my time getting a computer science degree?

    Because someday when your server is hacked and you're doing a post-morten on a Linux machine you'll be glad your professor beat it into your head how that operating system works? Because JavaScript is really easy to write but for some reason it's killing mobile batteries when people visit your site and you need to understand what O(n^3) means on the client side? Because at the end of the day it's just math and logic that you're coding and that's the basis for a computer science degree? Because if you can't communicate clearly, your coding skills won't mean shit in a team environment? Etc.

    I want to start my web development career now. Or at least as soon as possible. I can drop out and devote 6 months to teaching myself, but I want something more structured. Something that has the benefits of a classroom and an authority figure, but which teaches me exactly what I need to know to do what I want to do. Any suggestions?

    This is kind of like a Catch-22, yeah? You don't want to stagnate yet you want to be taught in a form that naturally stagnates? Dude, the libraries like node.js and backbone.js are moving too fast to solidify into a course. You just got to suck it up and absorb an autodidactic methodology from college and move forward with that, ready for anything that gets thrown at you.

    Also, not to be a dick but if you're bursting at the seams with talent, get on github, rip open an account on Heroku or buy a cheap VPS for $50/year and show us what's up. We're waiting to be blinded by your brilliance :-) That can all go on your resume, you know.

    --
    My work here is dung.
  3. Re:More like... by Dr.+Tom · · Score: 5, Insightful

    this

    if you drop out because you think a good education is standing in the way of you making money, then I'd like to tell you, yes, I'd like fries with that

  4. Wrong by YodasEvilTwin · · Score: 5, Insightful

    Technologies and tools are easy to pick up. You do not need to be taught them in a formal setting. What you do need is knowledge of core software engineering and computer science basics and principles so that you can create quality shit what whatever tools or technologies you end up using. Algorithms and data structures, software architecture, optimization, concurrency, etc. are generally much easier to learn and learn well in a formal setting and will set you up to be a good developer, not another interchangeable hack that never makes anything worthwhile.

    1. Re:Wrong by dmiller1984 · · Score: 5, Informative

      I can't agree with this any more. I had some similar thoughts when I was getting my CS degree, but I now consider the things I learned in college invaluable. Most online tutorials don't teach you about reliability and efficiency and it's good to have the theory you learned in college to back up the programming you'll do as a web developer.

  5. Simple by angryfirelord · · Score: 5, Insightful

    You don't go to college to learn a trade. You go to college to learn the fundamentals and become a well-rounded individual. There's certainly an argument that college is overpriced, but it will certainly help you in the long run. As someone once said, an employer may not care that you have a degree, but they will care if you don't have one.

    Plus, the web development field is rather saturated as everyone else thinks they can make web pages. If you want to be a freelancer, you'd better be a good salesman (or woman) too.

  6. Web development will always be far ahead of class by wytcld · · Score: 5, Insightful

    The valuable web developers are those who are inventing what's next — or riding that wave as others are inventing it — creating the trend or solidifying it. Then there are all the people a few years behind using standard content management systems and standard design sensibilities.

    So you've either got to get yourself to someplace where the trends are alive, and get to the front of that. Or if your aspirations are more modest and you just want to follow a few years behind the vanguard, learn some other business entirely while studing one of the content management systems and taking a few design courses, or at least hanging out in museums to absorb some design sensibility. Anyone can use a CMS to create a good-enough site. It's knowing some other business that will allow you to communicate with people in that business, to build sites for them. It's not web skills that are in shortage. It's people with decent web skills who can understand the needs and vocabularies of particular niches.

    Unless you're brilliant enough to invent something better than the current standard CMS platforms, for some particular niche. But it's still knowing the niche that's important. If it's a brand-new niche, all the better. No course can teach you to create that, though. If you need to follow authority, get a degree in something totally remote from computers. Then code up the web advances that particular area needs, using standard tools that, frankly in themselves don't require much in the way of education or intelligence.

    --
    "with their freedom lost all virtue lose" - Milton
  7. Re:More like... by Intrepid+imaginaut · · Score: 5, Insightful

    I think web development has a bit of a bad rap these days in terms of complexity. Things have moved on a lot from the 90s when anyone could hack together a bit of HTML and your biggest worry was making it work in internet exploder.

    Nowadays a web dev needs a firm grasp on SQL databases and what you can and can't do on them, ever more complex stylesheets, a scripting language like PHP, Javascript plus interpretations like JQuery or AJAX, HTML, XML, the graphics packages used to produce the look of the websites, plus a whole host of subsidiary technologies including networks and Linux if you want to set up your own server as well as email, flash development and actionscripting, and on and on. And things are only going to get more involved now that we're getting into decentralised networks via WebRTC and mobile integration. And you do need artistic chops.

    Yes the depth mightn't be as focused as C or whatever, but the breadth is impressive and growing more so. If a C++ dev was sat down and told to make a fully dynamic website from scratch, aestheticalIy pleasing and with all the bells and whistles, they might be surprised at how much is happening behind the scenes. I agree with the subby that traditional schools aren't going to cut it anymore, you do not need high end maths for web development, maybe something vocational to get a good grounding and understanding of the concepts before just doing it yourself.

  8. Re:I call troll by AwesomeMcgee · · Score: 5, Insightful

    How did this even make the frontpage of slashdot? This guy's an idiot. He thinks he's being left in the dust learning the fundamentals, but thinks learning a single application framework to develop web-pages with won't mean he's left in the dust when it goes away and he doesn't know the fundamentals well enough to transfer to different technology with all his skills in tact. The fundamentals mean when you go from one language to another you aren't starting from square one in any of them. The fundamentals mean in any given technology old or new you can reason about appropriate ways to do things without having to go read endless descriptions of idiomatic techniques for the language which you then use haphazardly because you have no reasoning skills to correctly compose them.

    Seriously the dude who wrote this question just needs to hear: You're wrong. Just wrong. So wrong. Keep on keeping on because you don't see what value it has to you, but it's significantly more than you clearly have any idea. You're wrong, the end.

    I have no degree, I had to study so bloody hard to get these fundamentals over so many years that I wish to death I had just got the stupid loans and done the stupid CS degree. I screwed the pooch and made up for it the hard way, don't make the same mistakes.

  9. Re:More like... by papa248 · · Score: 5, Insightful

    Agreed. There is a lot more to a college degree than "career development."

    --


    The higher, the fewer.
  10. Re:More like... by arendjr · · Score: 5, Informative

    It's getting a stupid meme, but again: this.

    I got a job as a web developer (though the job title is actually Senior Software Engineer). I did a Bachelor's in Computer Science and a Master's in Software Engineering, and it sure paid off. Of course going to college didn't teach me how to do PHP or HTML or CSS, but it did teach me about time complexity, algorithms, data structures, and all the stuff needed to solve scalability problems. It taught me database design, which you better firmly grasp before even thinking about using a NoSQL solution. It taught me about testability, software processes and design patterns, all stuff which any developer should know, web or not.

    I remember when I was young and just about to start going to college. I was a self-taught programmer, was working as a programmer part-time already, and I still had the arrogance to even doubt if college could still teach me anything useful. Boy, am I glad I finished my studies anyway.

  11. Re:Work by Anonymous Coward · · Score: 5, Insightful

    I went to school for computer science and learned a hell of a lot more 'in the field'

    Either you werent paying attention or your classes were bad. From the few CS classes I took, I know that there is a lot more to programming than just belting out code; theres a whole lot of theory behind coding decision that transcend the particulars of the language you are using.

    I mean, if you dont care about code speed (O(N^2) vs O(2^N)? Whats the difference!) or maintainability ( Structure? Variable naming? Who cares!), or of understanding the difference between C++ and what your compiler actually spits out, sure go for it. Your code will actually solve some problems-- just perhaps not terribly well, and woe betide the next person to inherit your code.

    There are a lot of people in the IT field as well who cram for their CCNA and A+ and Net+, and can do some basic Cisco router config. Everything is well until something breaks, and then actually understanding network theory is really really important. Dont downplay the degree / theory side of things; experience is much more valuable once it is backed up by solid theory.

  12. Re:Work by vilanye · · Score: 5, Insightful

    Wrong, you think that because you are under-educated. Any 4 or 5 year CS program is going to miss lots of topics, but ya know what? A properly grounded CS grad can learn anything on his own. My CS program didn't require any GUI class, but that somehow didn't stop me from learning multiple UI libraries using multiple programming languages on my own. A self-trained monkey might be able to learn how to effectively use one, but will struggle learning a second in a different language. Another difference is that I can actually write my own GUI libraries if I ever need to. Just like I could create a custom tree or linked list that is optimized for the task at hand and will perform better than the generic off the shelf implementations that ship with languages. Self trained people rarely can drill down that deeply, very rarely. People like you are the ones stuck because all you know is Java or whatever, but the people you sneer at can get hired anywhere and pick up whatever language and area they will be working in quickly because they have the theoretical background. A huge red flag when hiring is if the applicant says "I am a programmer". No, they are an API monkey and not hired.