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?"
Try the Mint or Arch computer science degree. Much better than the Canonical one.
SJW n. One who posts facts.
Make your own website, get a job working for a firm as an intern. I went to school for computer science and learned a hell of a lot more 'in the field'.
Some people die at 25 and aren't buried until 75. -Benjamin Franklin
You shouldn't be taking them b/c you're probably not getting anything out of them, except for paper credentials. That's why business schools usually insist that their MBA students have a couple years experience in the "real world".
More like going to veterinary school to work at a pet food store...
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
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.
:-) That can all go on your resume, you know.
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
My work here is dung.
Go to a trade school.
Your analogy should be, it's like getting a degree on the latin naming scheme of deep sea creatures to become a veteranian. It's pointless, not because they haven't caught up, but because you don't understand the purpose of CS.
Web development can be found in the art & interactive design programs, not computer science program.
*Degree == Paper(employers want to know you can stick it out)
*Comp Sci teaches you fundamentals
*The first two years usually don't focus too finely on the specific area of the degree(you'll learn the more pertinent info towards the end)
If you are doing fine in school (passing courses etc.) why not just complete it? Two years will go really fast and a degree is always a nice addition to your experience. At the same time you can prepare your web development career.
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.
As a Professor at a top ranked Engineering University, I thought I could give you a little bit of perspective. If you find CS not challenging enough or not on target enough, you might want to get a degree in another engineering discipline like Electrical Engineering or Mechanical Engineering. Countless superb programmers come from another engineering discipline such as Electrical Engineering, Mechanical, Aerospace, etc. The reasoning for this is that if you find that you don't like programming 60 hours a week, you will have in demand skills in another sub-field to fall back on. Also, typically with majors such as Electrical Engineering, you can take courses that cross over into CS liberally, but also understand how computers work down to the Silicon. So my advice is stick it out and finish a degree as that is something that will never go away.
Anything less and you're pidgin holing yourself to a limited arena.
You'll really be shooting yourself in the foot if you don't get yourself a BA or BS degree. Try to get a part time job doing web development or look for internships with web developers.
We don't need noobs like you in the business. If you can't understand the relation between your future work and computer science (and you proved you can't) than don't waste your time with a degree... "teaches me exactly what I need to know "- How old are you? 16?
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.
Why did you enroll in a program that didn't claim to address your objectives?
Go to a Community College they have exactly what you want.
Translation : I'm a retarded web monkey "programmer" (actually just a glorified scripter) and am too dumb to see the benefits of learning CS since it's hard and stuff. Halp me!
Well I don't have a solution but I can tell you that you should stop your computer science degree asap. Computer Science doesn't really teach anything, you get a little bit of a lot of subjects with no structure, use or even good information. All the really bad programmers I know took Computer Science in school and I want to strangle them 3/4 of the time. They don't understand good code structure, they have no concept of a useful comment and they think managed languages run the world. If you want to learn good web programming do it on your own, buy a domain and just start coding a web page, you learn more through actually doing it then you ever will by hearing about it.
Sounds to me like community college is the route for you.
Computer science is truly the understanding (and development) of the underpinnings of computers - algorithms, data structures, etc. Web development is pretty much the USE of what CS has conceived - asynchronous requests, threading, programming languages, etc. If you truly don't care to understand the why and how of what you are using, and only want to know how to use the web language and library de jour, then I agree with you that a CS degree is not for you.
[quote] 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. [/quote]
What a horrifyingly broad and offensive statement. A CS degree will not make one irrelevant and left in the dust. Its what allows us to further our trade. Consider what would happen if an engineer didn't want to learn any physics and mathematics but simply wanted to get out there and build stuff .. that's a truly horrifying thought. But that's what you are insinuating .. that the study of some physics and math would cause these engineers to be left behind ...
just quit architecture school and get a job as a janitor
I've got a very classical kind of algorithmics and math-heavy CS degree and work as a web-based business application developer. My academic education has nothing to do with what I do daily, except perhaps has served as some kind of a demonstration that I am capable of critical thought, which is quite important in my every day job, making sure that customers' systems don't totally screw up their businesses.
I want to play Free Market with a drowning Libertarian.
I would complete the degree as long as it don't put you into crippling debt. While getting your degree you can dedicate yourself to teaching yourself the skills and technologies that you aren't learning in the class room. Maybe you could also build your own app, side business, or contribute to open source. Two years might seem like a lot at your age, but it's a blink.
A computer science degree is not about teaching you how to do software development. This is just as true for C as it is for the web. If you want real world experience, look into getting an internship. Your college or university should have programs in place to help you get one.
If you want a good job, and you want to keep that job, do whatever minimum amount of work is necessary to get your degree. You are unlikely to regret it down the road when not having a degree could keep you from even be considered for a job opportunity. If that doesn't fit in with your plans, check out vocational schools.
I have CS degree and develop web apps. I've worked on web apps since before starting university too, so it's something I do because I enjoy it. I suggest you stick it out. I was fairly jaded many times in the content of my CS program, as I expected a lot more. Since graduating a few years ago, I'm realizing that there was more value than I thought in those courses. Often it wasn't entirely captured in the technical details of the course, but rather the process of getting stuff done in that field. Web apps are continuing to gain traction and unless you want to work on "brosure" websites, you'll probably end up using fairly extensive CS concepts to make your web apps awesome. That said, if you love something, a formal education isn't always necessary. However, if you want to get WORK in that subject, you may find customers/employers bizarrely more receptive to the degree. It's stupid. It's reality. Take care friend!
Look, I have seen people who know how to drag and drop in Dreamweaver call themselves "web developer".
But really, if you are on CS level development its just the same as regular development. Sure your choice of core languages will be somewhat more limited, but make no mistake. Webdevelopment for large sites is very complex, CS level complex. Most apps today require a good level of networking, and most websites are more and more just regular apps.
I work for one of the largest websites where you can buy stuff (yeah that one) and most our developers are just that, CS majors, with an occasional math and or fysics major.
You are in the right school, just do some extra curriculum interwebby stuff if you want too.
In the late 90's I wanted to get a degree in networking and security. There weren't any 4 year schools that offered this. Several CS department heads told me "that's what 2 year schools are for". So, my choices were to pursue a 4 year CIS degree or a 2 year AAS degree. About 4 years later universities started offering these classes. They apparently had a sudden change of heart when they realized the money they were missing.
I went the 2 year route. No BS classes needed. Just tech classes (already had my AA degree). Got a job immediately and had no college debt.
if you just want to be a web-monkey. Go start consulting on your own or something.
Later, if you decide you need to do something that requires a 4-year degree, go get one.
If your goal in life is to edit HTML files, then don't go get a degree at all. Like the (only 2 at the time of my writing this) other posters have said, build and run a website or 3, get a job as an intern at a company that does technology stuff, do things on your own and build a portfolio.
That being said, a career as a web designer is good for about 1 or 2 steps up, and then you are left as...a very experienced web designer, with a resume of short-term contract-type positions, and no educational background to show you know anything about databases, or actual programming, or business, or being able to make it through a degree program, or being able to deal with being around people, or anything much to give me or any other hiring manager a reason to spend more than 30 seconds reading your resume.
Just last week, I tossed a resume, for a new DBA position we're trying to fill, in the trash. Maybe he was a good DBA, but his resume was 10 years of web development and website administration, with 2 6-month stints at a place being an actual DBA in any sense of the word. Yes, I know any web developer that deals with running websites most likely has run the databases that back those websites, especially at a smaller company (I've done it myself at even not-so-small companies), but I can't suggest hiring someone to manage 2 dozen customer databases in a production environment with 12 months of short-lived "DBA" experience on a 10 year career in technology.
If you want to be a "Web Designer" for all of eternity, then teach yourself and build your portfolio of Things You've Done to show off to potential customers.
If you want a career in technology that might eventually lead to managing and hiring other web developers, or moving into Production Operations, or dealing with technology workers that do anything other than develop web pages, get a degree. Get a business or management or sociology degree if you think a CompSci degree will be a "waste", but give future hiring managers a reason to think you have the ability to learn more than how to monkey with HTML.
This space for rent. Call 1-800-STEAK4U
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
Seriously, HR doesn't care that you dropped out of college to get better with your web developing, all they see is "incomplete". The purpose of a degree (for capable people) isn't to teach you anything, it's to get past the incapable HR drones.
Get the degree AND teach yourself; it's the only way to both be on top of the game, and get a job.
I want to be a web developer
You don't say where on that path you are. Have you made websites already but lack specific knowledge on certain web technologies? Or do you not even know what a <div> tag is yet?
why am I wasting my time getting a computer science degree?
Well, why are you? Have you answered that question? How did you get to where you are today? What made you think that a CS degree was a good idea in the first place? Have those reasons become irrelevant, or wrong? What changed?
getting left in the dust, and becoming irrelevant has me horrified
Here's the thing: web development changes very rapidly. You can learn a bunch of stuff now and still get left in the dust and become irrelevant. Veterinarians learn a skill set for life. Web developers do not - the field requires constant learning and updating of knowledge. Are you prepared for that? Is your desire for a classroom environment realistic, when once you leave that classroom you will need to keep learning on your own? Are you just putting off the inevitable by doing school at all?
I want to start my web development career now.
So there's your answer. What's stopping you from doing this? What blocks are in your way to achieve this end? What's stopping you doing this now, tonight?
And what kind of web development career? Freelance? Employed? If so, by what kind of company? What kind of websites?
Where do you see yourself in ten years?
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.
Why do you want something more structured? Will that structure bridge the gap between where you are now and where you want to be? Is this actually relevant, or just a way to try and adapt "what you're doing now" into "what you want to be doing in the future" without a big step change?
Frankly I don't know any web developers who went to a school for web developers to learn web development. If such schools exist I would personally be surprised if they actually offered value for money. The field changes so rapidly that any "authority figure" is no such thing, but just a bozo like you who only has web pages as source material. So, is that worth the money, the debt?
Sorry to answer questions with more questions, but these are the kinds of things you should consider IMHO. You have some big decisions to make. Good luck.
Most of the knowledge that I use everyday as a web developer was learned through my internship and first job. However, to get your first job (and future jobs) you will need that 4-year degree in Computer Science, Computer Engineering, or a related field.
I recommend that you find a local company who is willing to hire a motivated developer for an internship. Whether the internship is web or app development, it'll serve you well to get some real-life development experience with version control and all that.
First it gives you a good fundamental understanding of computer since and software engineering that will be value. Maybe you don't want to be a Web developer forever, a degree helps you to move on later on if you want to.
The other thing is, a degree also shows you have the guts to complete things. You may drop out and may not miss that much, but you will have that stain in your CV.
In the end you will probably have to explain this in every interview you go.
You can't really shortcut the benefit you'll gain from a pure CS degree - employers do in fact care about your pedigree. If you make it through two more years of grueling, abstract computer science that is a strong voucher of your ability. Spending the next two years specializing in whatever is the latest-and-greatest in web design instead of two years learning "ancient computer science history" isn't going to help you, and here's why: in two years the tools in vogue will be completely different from those in vogue now, and two years hence they'll be different again, and two years after that they'll be different - on and on and on.
You will constantly have to reconfigure your skills if you want to stay competitive. Your career as a web developer isn't going to hinge on any particular brief skillset you've developed because you are going to have to stay motivated and continuously adapt whether you're in school or in the workforce. Getting the degree just proves to future employers that you know MORE than the latest fad web technology. Many people do not.
You have lots of free time in uni. Make use of it. Build your website. Contribute to dozens of open source projects. Learn about them, install them, use them, provide patches and improvements. Go through the whole stack:
- learn to install and manage an OS (say Debian Linux)
- learn to install and manage the web server (e.g. Apache)
- learn to install and manage the DB server (e.g. MySQL)
- learn to install and program the scripting language of your choice (perl, python, php, ruby...)
- learn HTML, CSS, JavaScript
- learn SQL
- learn the concepts behind NoSQL
- learn server-side MVC frameworks
- learn client-side MVC frameworks
That's for year 1. :)
A computer science degree from a good school will give you the grounding in a breadth of topics that will prepare you _indirectly_ to come up with technologies like javascript, http servers or a document database. That's what courses like Algorithms & Datastructures, Distributed Systems, Database, Compilers and Concepts of Programming languages.
It should give you a rounded background on what computing is all about, but it won't make you a hands-on engineer. It's not intended to be an applied degree.
If you aren't getting theory, you're not getting a comp sci degree, you're just doing a hands-on course in, what seems, outdated technology. That's not worth paying degree money for. Buy a couple of good books for that.
If you just want to use Javascript & HTML to crank out web-application, you don't need a degree. Bail, but know you're limiting your options.
I was very pleasantly surprised at the rigour and breadth of my theoretical computer science degree and it's made me a much better engineer. I'd do it all over again.
In many ways the degr is not about leading but signaling prospective employers or clients that you can learn and stick it out through time. If you wind up competing with people who have degrees you may find yourself at a disadvantage no matter how good you are. In addition, as others have pointed about the degree is about learning theory and concepts that you can broadly apply; not building a specific but perishable skill set.
I'm a consultant - I convert gibberish into cash-flow.
I also agree that you should just hang in there and get some kind of degree. It is a "MacGuffin" and a stupid system but you really do need a degree to open certain opportunities. You will not be left behind by waiting until the end. Also you will never have so much free time as you have now to pursue side interests, so make the most of it.
BTW, at University, you also you have the greatest selection of potential life partners you will ever be exposed to, dive in while you can. Afterwards you might find slim pickings :)
My little Linux and tech blog
I'm sorry, but it's incredibly naive to think that you should simply bypass the fundamental and core concepts involved with software engineering/development simply because you wish to be a web developer. If you truly wish to be a proficient developer, you should have a real idea of what's going on "under the hood" and a real grasp of the various programming methodologies, concepts and techniques which will be taught in any competent CS program.
University degrees about giving yourself options, and learning structured problem solving. Most, but not all, of the good to great programmers that I have seen have all had university degrees, but not necessarily Comp Sci, Comp Eng, or Comp informics. One of the best programmers has a philosophy degree. The university degrees are about giving you broad perspective, and not just about giving you the skillz.
Having an university degree is not essential, but it is way easier to get ahead faster. The vast majority of people I know who do not have degrees tend to be very naive about their view of the world and problem solving. Learning calculus may not give you direct programming skills, but it will give you another lens in which to view the problems that you need to solve, as just about any subject that has any rigor. The old adage of "you only get out of something what you put into it" definitely applies. If you are cruising through uni on all the fluff courses, your not doing yourself any favours.
It sounds like you want to get out into industry, but consider your financial implications if you do. Personal circumstances vary hugely, so if you are not giving up a free or heavily subsidized education by parents or scholarships, then my advice is get out to industry, and see what's what, as quick as possible. If you're currently on student loan it will not cost you anything to wait a few years, and you'll probably value the university education more. Who know, you might that you actually want to that Zoology degree.
If your question is do you necessarily need to stay in school to be able to eventually get the job that you want, then the answer is no. You can try to find a better way. But when employers out there post up a job, and they have 5 people apply with no professional experience, and 2 of them have a college degree, the people with the degree are more likely to get an interview. That's my experience anyway. The reality is with computer science, you only learn so much in college; everything else you are going to have to learn on your own. Technology changes very quickly, you might be learning one language in school today, and you might never need it throughout your career. Conversely, you will learn a lot of new languages on your own and after school, that you might use in a job, but won't even be touched in school. My suggestion is to stay in school. While you're there, see about applying for an internship, or search craigslist for a junior web developer position somewhere. Graduate with a degree, and experience and go into your first job with a leg up on your competition. Good Luck!
Technologies come and go. Web programming is an important technology TODAY, but will it be in when you are 40? 50? 60? Health care is getting better, 70?
There were a ton of guys who thought the exact same thing about COBAL.
For ten or fifteen years they were fine. Then times changed and they were middle aged with a mortgage, kids and an out of date skill set.
So early over focus is short sighted.
You should get that full CS degree that teaches you 'unnecessary things' for the same reason that Olympic athletes do 'unnecessary' sit ups, push ups and jog every single day, it builds the fundamentals and prepares you for your goal.
Once you are out in the field, never stop learning. Always be trying to push your limits and expand your skill set.
Stay in school. You won't learn specific "web development stuff," but you'll learn important concepts that will help you design and write better software.
While you're doing that, you should also go take a bunch of other courses unrelated to computer science - english, philosophy, ethics, languages, economics, psychology, business administration, biology, chemistry, physics, etc. Being familiar with many fields will help you. Being a single-trick pony will not.
Learn to read & write. There are VERY few programmers out there who can write complete, coherent sentences - you'll immediately distinguish yourself if you're one of them. Develop your 'soft skills' too - how to talk to & listen to people, how to create & deliver a presentation, how to argue & persuade without name-calling and shouting - politics is often a dirty word, but politics is what drives most organizations. Learn how to present your arguments in a way that appeals to your specific audience, and gets the results you want.
Conventional wisdom here will tell you that many of these skills are useless to you because they're "not technical skills." As a counter-argument, I submit to you the obvious frustrated desperation evident in many of the IT professionals posting here who are clearly miserable bastards whose sole source of pleasure is shouting at people on the internet who disagree with them. If you don't want to be like them, don't follow their career path - diversify & broaden your skill set early, and do it methodically - even if you don't want to be a manager at all, having leadership skills & people skills will enable you to advance, get better jobs, and have more control over your own workload & choice of projects.
tl;dr - college is not vocational training. You have PLENTY of time to stay current and explore web dev technologies in your spare time & on breaks. Get involved with open source projects, or start one of your own if you can identify a need that's not being filled; Use your time in college to:
1) Get laid. Nobody ever said, "Gee I wish I'd had less sex as a college student," on their death bed.
2) Develop deep fundamental skills across a wide range of topics.
I made the mistake of sticking around way too long shooting for a four-year degree. I've had a couple friends who have done hiring at software companies tell me that a degree is one of the last things they take into account when determining who to interview, and that two years of experience trumps two years of school every time. On the other hand, it's worth mentioning that almost all of my professional contacts (including those friends), as well as the lion's share of the practical coding ability I learned early on came by way of my university's Computer Club.
Have you considered seeking out an internship (at the very least, to supplement your formal education)? My other suggestion would absolutely be to get involved with open source projects like the ones found on Github. Granted the learning curve for many of those projects is monsterous, you do learn a lot about practical coding extremely quickly.
The point of Computer Science isn't to teach you how to a particular job.
But how solve these problems yourself.
If college just taught you HTML5 and JavaScipt and PHP. You may be able to get a job, but what will happen after those technologies go out of style.
When I was in College leading edge Web Development was writing CGI application. While Javascript and CSS were available they were recommended not to be used because it was all too common that their browsers wouldn't support it. If we had to save data we would normally save it as a Text File on the server as getting a Relational Database system was often too expensive and required too much computer resources.
My methods and tools in programming for the Web has changed many times over the decades. However I can pick these methods up very quickly in part to my skills I learned in taking Computer Science. C/C++ skills made an easy transfer to JavaScript and PHP and Java. Parallel processing methods made its way to designing Web Services and handling AJAX. LISP/Artificial Intelligence helped me grasp the more advances levels of SQL. Unix inter-process communication and Operating Systems helps me really understand how the Web Server works and how to find was of interacting with it. Even Good old Data structures Loops and Procedures and performance analysis I use daily across many daily work to make my tools run smoothly.
Learning new tools and languages are rather easy, I don't need to go to training classes (If they make me, I am very board) because I have the skills to adjust to changing technology.
Going to college to be a Web Developer isn't a good plan. You can go to college and a goal of being a web developer after is OK, however you should Go to college with the goal of understanding Computer Science, in which you can use these skills in Web Development.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
If you can only learn in a classroom format, you're doomed in a fast moving profession. Switch to something slower moving or you'll be back to school in 5 years or less.
If you merely need knowledge from a classroom format and don't care what corporate HR thinks (aka you're ok with never being hired and being a contract worker, because HR gives zero respect to associates degrees) then my local tech school offers:
Web and media digital design aka online graphics artist.
Web and software developer from the school of business
You can also pay 4 times as much per credit hour and take 1/4 of your credits in liberal arts electives and 1/4 in math and learn about the same thing for a 4-year degree, which HR more or less respects, so you could end up an employee as opposed to lifetime contractor. If you actually looked you'd probably find some manner of graphics artist class in the art department and surely the b-school has something you'd like.
Or just switch schools if what you want isn't offered.. I went to 3 schools. Its really not a big deal this early in your schooling. Note that if they rubber stamp all incoming (for example) calculus transfer credits as denied, that doesn't mean you can't sweet talk a dean into a special exception, or follow the appeals process, or demand the right to test out (assuming you actually learned the topic...) or just F it and get the worlds easiest "A".
Amusingly around dotbomb collapse time I was attending a private college at night for CS, and they theoretically offered all specializations at night but in practice only offered your "web developer" classes. Needless to say the job market stank and I didn't want to do "web developer" anyway, so I simply moved to an online local university (a local university where practically the whole CS curriculum was available almost every semester and online 24x7 so I had no problem working full time).
If you're a noob, unless you've already experienced a "higher calling" to do webdev, you really do owe it to yourself to try electives like business analysis class, database design, maybe a networking, project (mis-)management, and the CS you're already complaining about. Maybe you think you're a future frontpage jockey but you're really unknowingly a DBA or router jockey. Won't know till you try it.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
A degree matters only insofar as you try to meet people who are interesting and interested in what you want to do. Research your professors. Join the CS club. Join the math club. Join the Fine Arts faculty for whatever social events they hold, because some of those people can do your site design, or your art, or help you understand how visual thinking works. Meet people. You need to behave as if you are interested in what you are doing. If you are interested, and if you apply yourself to those interests, then you will find that your degree benefits you.
If you're doing a program online, then you need to engage with people a different way - look at the teams behind tools you like, and reach out to them via forums. Participate in communities that cater to your field. Meet people who are launching web startups nearby.
Find people. Meet them. Engage with them. This is the work you will be doing for a long time, so get started on it.
.
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.
Once upon a time, I (and I think most "real" programmers) looked down on web development as "toy" development, the sort of thing a company's owner's "good with computers" nephew did as an excuse to put him on the payroll.
As you correctly point out, though, web development has very much become a form of "real" programming, in some ways more complex than doing native apps. Between communicating with a backend datastore (generally some form of SQL); controlling nontrivial UI logic and AJAX (or comparable) updates through several layers of code from native on the server to client-side Javascript; and now HTML5 has basically made the browser as close to a "native" environment that speaks Javascript as we could ask for - You very much do need a CS degree (or at least that level of understanding) to do any serious web development in the present world.
Aside from the variety of HTML5 demos Google has put together to show off its graphical capabilities, check out Fabrice Bellard's Javascript PC emulator booting into an actual 2.6.20 Linux (CLI, at this point) environment. When "web development" now includes potentially needing to write device drivers, don't think you can take a "CS Lite" degree and jump into a job. If anything, consider your specialty an extension of the core requirements for CS, not a stripped-down version.
There is nothing about designing a pretty website that requires a computer science degree. For that, you want a design degree.
On the other hand, designing a good user interface is not about making a pretty web site. It's serious science, highly technical, and you'll need to understand not only computer science, to make the guts of it work, but other disciplines to understand how humans and computers interact.
Web design technology has changed a lot in the last decade. The fundamentals of computer science and logic have not. Learning the latest in web technology will help you get an entry level job, and as long as you race to learn the next new technology six months from now, you'll be well stocked on entry level jobs for the rest of your life. Or at least as long as you can keep up with that particular rat race.
If you learn computer science, and the fundamentals of why things work and how to get things done, you'll be in a good position to have a career. That doesn't guarantee you a job. But it does mean you'll have a lot easier time translating an entry level job to a sustainable career. Maybe that doesn't seem important right now, but once you get things like a mortgage and a family, that is way more important than being perfectly equipped for the sort of job posting that is just a list of the tools they're using right now.
Easy Online Role Playing Campaign Management
the thought of wasting two more years, getting left in the dust, and becoming irrelevant has me horrified.
Get a junior / intern position doing the work you want while you finish school. That way you get some money (hopefully), keep your skills fresh and gain work experience. Then when you graduate in a few years you have a degree and some experience, you can go for more mid-level positions.
I think you got confused with the X-IS degrees out there (MIS, CIS etc). Computer Science is a S-C-I-E-N-C-E covering the nuts and bolts of how computing works both in abstract and MULTIPLE-applied environments. It is HARD CORE SCIENCE. You don't learn one language. You learn lots. You don't learn one OS. You learn many. And how all of these are built.
The "I love a managed language" people you are referring to, are the one's taking a "Java class". Some colleges mix and match CS with CIS and don't differentiate.
CS courses are things like: Finite State Automata, Algorithms and Data Structures, Relatational-Database Engine design, Compiler design and optimization, Operating systems design, Discrete Math, Graphics Architecture and Mathematical Transformations, OOD/OOP, Structured Programming, Software Engineering. (Notice there is no "language" course listed).
Anyway. My two cents.
Most colleges are not vocational colleges - that is, they do not focus specifically on work skills that you'll use in a job. They are not specifically training you for a career, rather, they're providing you with the theoretical foundation and building blocks to understand, appreciate, and contribute to a specific discipline. That some of these provide job skills is at best a secondary concern.
If you want to have a specific job, or follow a specific career, then focus on that job or career. We're starting to move out of the era of college-degree-required (at least for IT-related jobs) so there's no great stigma.
That's not to say a college degree is worthless however. As other posters have no doubt pointed out, there's a big difference between being able to make something work, and make it work well. Without understanding the theory, that information is hard to arrive at. If the technology changes, that theoretical knowledge allows you to evaluate the new offerings on an even footing, rather than having to diverge from your specialized skillset.
Last, and specific to web development in general, I've noted two types of folks that call themselves web developers. One makes pretty pages, and one makes web applications. The two rarely seem to share skillsets. One relies on artistic flair and a knowledge of HTML, CSS, and some common javascript libraries - but nothing fancy. The other usually seems to need a good grounding in HTML, CSS, and javascript, but focuses on back-end development, database management, and so on.
If you're going to be the first type - a computer science degree is probably not very useful. If you're going to be writing web applications, a computer science degree is probably going to be very helpful.
I understand and feel your pain, however a question for you is where do you see yourself working ?
Do you plan to strike out on your own -no problem. However maybe do you want join a start-up or a large corporate organization (corporate bureaucracy)
The former are usually more focused on talent and skill. If it's the latter, then the thing is that in all likelihood, that degree will be what determines whether they (Hiring Manager, HR) even look at your resume before discarding it, I've seen cases where they didn't even bother to vet if the individual possessed the skills needed. Checkout ads in monster or some such to get a flavor for what you can expect. On the chance you do get in, then after a few years when it's promotion time, the lack of a degree might still influence whether or not you get your promotion, or whether you get to take home as much pay.
What I would recommend doing is continue on with the degree, however see if you can get a part time gig doing some web development on the side with a small operation after checking out their work. May not be structured but you will learn :-)... all the best and good luck.
My advice would be to spend your summers (or whenever you have time) doing an internship somewhere (there has to be a company that does what you want to do, and if you are a good student you should have no trouble getting in), so you can do what you want to do (learn in the field) while still getting the benefit of a college education. (Alternately, you could start your own website/business but I image that would be hard to do while in school).
Also, and this is often forgotten nowadays, going to college is not merely about gaining knowledge in a specific field, it is more generally about become a well-socialized, well-rounded, knowledgeable person who can meaningfully contribute to society (that's why there are government grants, you are expected to return the favor).
Go to college to get an intelligence certificate. Its not a place to learn skills. At the end of college, you won't have skills; you will have a sheet of paper that says you are intelligent. That paper, called a diploma, says only that you are intelligent enough to learn new things. You want something else. You want a skill. Diplomas do not say you have any skill (see above). College is the wrong place to get a skill because college won't give you even a piece of paper that says you have said skill. If you don't even want a piece of paper that says you have a skill (these are called certifications), then don't even go to school.
You have an opportunity to get a piece of paper saying you are intelligent enough to learn things about computers, and you don't see that as anything but a waste of time. Incredible. Maybe you should be a business major.
I had to comment on this. I am in the same situation, though a bit further along. While I tend to agree with you that the degree isn't training you for the skill set you will need to succeed, and you really won't have the experience to land a great position, you should still finish. The logic is this.. All the Hiring Managers and HR agents will filter you out based on if you fit a checklist of requirements, and it is never recommended to lie about a degree. So you want the degree to show that you completed a program to present yourself as worth while. But what you should also focus on is building a portfolio of projects, build things, anything. Be passionate about what you are building. I find that in my interviews it was my small personal project and my passion for the project that really peaked the interviewers attention in me. After a while you pick things up, you learn from other developers. Just prove you are willing and able to take on projects you don't like to reach an ultimate goal.
Just because you are in a CS program, (which has never been a "vocational" degree program), does not prevent you from picking up whatever other skills you desire. As you pointed out, the CS program puts you in the "programmer mindset"; you've keyed on to the actual purpose of a CS program, which is NOT teaching you the "language of the month." They are trying to give you the skills you need to be able to pick up the language of the month on your own far more rapidly than you might be able to otherwise.
Just like a vet would be well served by obtaining a zoology degree prior to entering veterinary school, many people find that a CS degree well-serves their educational goals in addition to the constant "self-education" that is a fundamental part of any computer career.
"Web development" is a rather vague job description. If it's about graphics design, web page layout, UI look & feel etc, then yes it's more "art". Tacking a CS degree onto that seems waste of time.
If it's about programming PHP, JavaScript (or whatever the popular web programming language is this month), database backends etc, then a CS degree doesn't seem out of place. But perhaps original poster could do better by taking targeted courses in the direction / languages he wants to add to his skill set.
Talk to your advisor. Unless your school has a crummy program with limited options there is probably a lot you can learn in a CS degree. To put it bluntly, if you don't understand how a CS degree applies to web development, then you probably need a CS degree.
If all you are focusing on is which technologies they teach, you are wasting an opportunity and may run in to problems further down your career when ad-hoc design with no fundamentals just isn't good enough.
You could always look into a digital design or graphics design curriculum. Some of the better art schools are lightyears ahead of the computer sci schools in teaching ways to really use the web and digital media.
Good luck,
Dear Slashdot,
I know exactly what I need, better than my teachers do. They're all old fuddy duddies stuck in the past. I'd drop out and teach myself, but I want someone to rubber stamp my degree. Can you help?
Have you considered DeVry or the University of Phoenix?
DON'T go through with HR. My biggest problem has been avoiding the trained monkeys in HR who seem to bias towards genial, friendly, sociable expensive fuck-ups. What I like is 5+ years *working* experience, some working code I can look at, and a one-on-one conversation where I can ask difficult questions. This will tell me more of what I need to know than any degree. Write something useful. Make it work. Show me your work. Look presentable and sane. Speak English well enough to communicate with the other English speakers in the office. After that, I don't care if you know the specifics of our application or setups. If you've got all of the aforementioned, you'll figure out the rest.
Please do not read this sig. Thank you.
Calculate what the next two years of your tuition would cost. Offer an 8th of that amount to an established web developer to let him/her shadow them on the job for six months.
I'd expand into statistics because there's so much data to analyze and the techniques are still valid in 20 years. Machine learning also overlaps statistics and computer science.
Don't drop out. The CS degree will (or should) give you a good understanding of the foundations, and these don't change very much over time. This understanding will make it much easier to be a GOOD developer, rather than a one trick pony or somebody whose code appears on The Daily WTF. A sound understanding of the foundations will make you a *much* better developer for *much* longer, and able to progress further. How do you know that in 10 years time you still want to be a web developer?
Oolite: Elite-like game. For Mac, Linux and Windows
Some people are just not cut out for academia, nor is academic persuit a prerequisite for a career as a technician.
An undergraduate degree in a mathematics or science discipline is not job training. It is learning something interesting for the joy of the persuit of knowledge, plain and simple. It is also a valuable way to learn self-discipline and useful information, but not the only way. If you are not earning your undergraduate degree as an end in itself, you may very well be wasting your time and money.
You can also change as you age. You can find joy in learning at any age.
I'm also a current CS student and faced a similar dilemma.... pretty sure it was right after sophmore year. So I took a year off from school, excited about devoting all my time and focus on the programming specialty *I* am interested in (and use for work).
That didn't happen.
With the abrupt end of all structure in my studies (that college provided), the structure of my life/routine eroded away bit by bit. I ended up spending almost no time 'honing my skills,' dealt with some depression, and when I finally returned from the year off, the transition back to college life and structure was WAY harder than expected. Much more difficult than starting freshman year.
Of course, this is just my personal story, but I'll wager this is a common scenario. Especially if you aren't the most driven, focused, or organized person (I've got mild ADD, never was a problem at school, but definitely became a factor during my time off.)
So my advice - stick with the school thing. In your free time, start building up a portfolio of web dev work you've done. Get involved with doing webdev work for school clubs, professors, etc (ideally working with a team so you can find a mentor).
Also, and I can't stress this enough - there's SO much extra breadth and depth of knowledge that a general CS program provides an aspiring web developer. Anyone can learn to throw a website together- having a full CS background and deeper understanding of whats going on "under the hood" when programming will give you an extra edge over any one-dimensional website guy.
What you learn at university is not about technology, it's rather
- to be curious and to explore avenues that you don't know: this will help you draw those lines between opposing domains that no body had seen before
- to multitask, meet deadlines, and work under pressure (why would you need that?)
- to communicate with people who don't know what you are talking about (customers, boss?)
- to teach yourself new stuff.
Comments like this really piss me off. Students today are always finding ways to say "I'm too good for these courses". Yes, you're only interested in web development. Yes, I agree that schools can do more to accomodate people like you. And YES, I think you're missing the point of your education. The computer science courses are there for the same reason calculus courses are there - to expand your mind and get you to think about probelms differently. And the skill of thinking about problems differently is what's needed in all aspects of programming.
If you're worried about being left in the dust, then do some projects and start building a portfolio to show off. I'm sure you're able to do that while attending school.
Just because you're interested in web development now, doesn't mean you're going to be in 10 years. The world is changing and technology is changing. If you're going to succeed in the future, you're going to need to understand the fundamentals, and that's what computer science teaches. If you think you're good enough to test out of a class, then talk with your teacher. Otherwise, if you only have 2 years left then quit crying like a baby and take the courses. 2 years is nothing.
Back when I was in second year comp sci (mid/late 90s) we had a course which was roughly titled "Programming in C". The basics of C were covered in a single week; after that it was all about algorithms etc... One of the students asked the professor why we had gone over learning the language so quickly to which he gave an answer which has stuck with me to the current day:
"We are not here to teach you C. C is only a tool. We are here to teach you how to solve problems."
That's what your degree is about. Gaining the knowledge and background to solve problems.
It really doesn't matter what it is in. A CS degree will help a lot when you are first starting out but once you have 2-3 years experience it doesn't make much difference. This is coming from a software engineer with a history degree... I was an intern at a company that built computers, changed degrees to history after I started working there, later graduated and was hired on fulltime as an associate engineer. After 3 years I left. Now, after 5 more years in tech, it doesn't even come up in interviews. The guy in the cube next to me has a degree in business, on the other side is a former marine with no degree. Once you get your foot in the door, prove yourself as competent, and do a little networking, you are pretty set in this industry.
Will code HTML for food.
When I was in school (the latter '90's) my Programming Languages professor deliberately chose a textbook that was issued in 1985. He did this not because it was his book and he wanted the money (it wasn't his book, and only used copies were available), or because he had some particular fondness for the languages presented therein. (Pseudo Machine Language/Assembler, FORTRAN, COBOL, Ada, Smalltalk, and PROLOG, IIRC.) He used an outdated textbook because he wanted us concentrating on the actual point of the course, which was to learn to be able to analyze any computer language, suss out what was important to look for, and thereby learn any computer language with reasonable skill in a very short period of time, along with spotting the strengths and weaknesses of the language.
That would have been considerably more difficult if he had used a language (such as C) with which a reasonable number of the students would already be familiar.
I went down the same road you're considering, dropped out of school and did self-taught. While I can honestly say I've done well IMO, not having the degree has kept several doors closed for me.
I'm not trying to belittle you but the fact of the matter is there are more and more people popping up all over the place who have a knack for web design/programming/network security/etc. Employers aren't looking at the degree so much to determine what you know, but how you got to where you are currently. Were you part of a more formal structure? Did you learn how to communicate effectively? Are you able to cope with difficult clients/customers? How do you cope with high stress/short deadlines?
In a recent interview, the interviewing manager I was with quite literally said "I don't consider or look at the resumes/applications of people who don't have at least a BS. They typically have the talent but are severely lacking in formal structuring and communication skills." These are skills you get with a degree and with years of experience. It's not something you can spend 6 months studying on your own and learn. If you're doing well in your classes, stick with it. You may consider it a waist now but it will pay off down the road. Consider it an investment in yourself. Investments don't pay off right away (the ones that do tend to be crappy anyways) but always grow with time.
1) "Web Developer" can cover a rather broad spectrum.
If you want to do architecture for large sites then stay where you are; you will want the theory.
OTOH, the multidisciplinary thing could make sense. Maybe you want to get an Arts major (web design / graphic layout) or a Psych major (Human Factors / Ergonomics / User Interface design) and a computer minor?
Then again, don't overrate college. One of the smartest programmers I ever worked with never went to college. One of the best object oriented developers I worked with was an English Major. I guess I would ask if you want a degree to get you resume past Human Resources or whether you actually want to learn?
I have two questions about what you said here:
The fact is that web development has taken huge bounds in the last few years, and sadly most universities haven't caught up.
1) What giant leaps in state of the art are you talking about here?
2) Is it possible you're new to this and are mistaking the normal fast-paced evolution of computers, tools, and ecosystems as a one-time isolated event? (If so, give it another 5 years; things will be moving just as fast (if not faster) in 2018.)
Many companies won't even look at you if you don't have a degree from an ABET accredited school. ECPI and ITT are a couple schools that do NOT show up on the ABET.org website as accredited schools.
People like this make me happy! Due to their mindset of wanting to know everything that's important RIGHT NOW and not caring about the big picture, I'm guaranteed to have a job in the future! When the world changes and web development isn't so big and these people are stuck at the local gas station or working at Walmart, I'll be sure to think about this person when I'm sitting in my nice big desk because I have the skills needed to continue on to the next thing when web programming goes out of style.
... just sayin...
No one learned anything about their career nor gained any work experience by completing their undergraduate degree. Seriously... it's a checkbox on a job application. Don't sweat it. It doesn't matter. I have zero doubt there are Theater major and Womens' Studies graduates out there doing web development on a level you will never ever approach, even if you do complete your C.S. degree. It's a farce... the degree means nothing. You learn by doing.
News flash... The purpose of college is not necessarily to train you for a job.
First, what is the purpose of your degree, to you? If it's to enable getting a job, then you should know that the order in which résumés are generally evaluated, all other factors being equal, is people with an advanced degree, then people with a bachelor's degree in the field (in the case of IT, that could be IT, MIS, computer engineering or any given engineering), then people with a bachelor's degree relevant to the core business of the company, then people without a degree but with a lot of relevant experience, then anyone else. Generally, the last category is never even looked at, except in the most desparate job markets, or where you know someone. So, again with all things being equal, the closer you are to the front of that queue, the more likely you are to not be overlooked before getting an interview. Some jobs will become unavailable to you with each step further to the right. Those that disappear are not always the best quality jobs, but remember that this point is predicated on your intent being to use your degree to get a job.
If on the other hand, your purpose in getting a degree is to learn as much as possible about your chosen field, then you don't need to worry much about the degree. Take a bunch of classes that interest you, and I do not mean just in computers (Steve Jobs famously attributed his design sense to a calligraphy class he audited), and then when you have nearly the requisite number of hours for a degree, go see a counselor about how to get a degree (any degree) with what you've done. Most likely, you'll have to take a few filler classes (math and economics are likely, because you should end up pretty close to a math or business degree, depending on your interests) to make up the difference and get the degree at that point.
If, instead, your purpose is to get a good education, switch to liberal arts (if necessary, switch colleges) with an emphasis on classical learning, languages and literature. Avoid schools whose idea of liberal arts is grievance studies, and whose idea of Western culture is an unbroken trail of oppression, and look for one that really grounds you in Western culture. The most salient benefit of such a course of study is that you will learn how to learn on your own, as well as how to express yourself well, how to set and obtain goals, how to lead and how to maintain a balanced and well-lived life. Unless your goal is a profession (by which I mean the real ones: law, medicine, engineering), this will give you the basis to do anything at all you are good at with the rest of your life, and do it well. And if your goal is one of the professions, this is an excellent basis for a graduate degree in said profession.
Second, assuming that you've decided you do want a degree, for any of the above reasons, I fail to see how that should stand in your way. Whether or not you are getting a degree, it is useful to have a job. It's experience for after college, money for now. So why not build up a website on a topic of interest to you, and make it the best you can? (I have a colleague who built a website about touring motorcycles to learn how to administer databases, for example.) Being interesting to you will keep you focused and improve the quality of what you produce. Once you've got the site the way you want it, use it plus your being enrolled in college to get either an internship or part-time web job (if you want to work in corporate settings) or small contracts (if you want to do contracting). This will build up your ésumé as you study, and will give you something to stay interested in while you're taking courses that you don't yet see a use for. (Who knew that taking linear algebra or structures and properties of materials would help me be a better system architect? Which is not to say every course will prove useful for every person, but you'd be surprised at what comes up decades after college.)
Finally, having decided on a degree path and having gotten a job that you want to do, the best advice I can offer is
-- Two men say they're Jesus. One of them must be wrong. - Dire Straits
"... far removed from the skills I need to succeed as a web developer." You feel that way because you don't really know yet how these things relate to "web development" or good software development in general.
Algorithms - the ability to evaluate the computational complexity of your code/solution is a must
Data Structures - the difference between lists, arrays or hash tables will help you pick the right data structure for your code
Database - any non-trivial real world application interacts with databases
Operating system concepts - want to write a scalable application that can support thousands of simultaneous web requests? understanding how multithreading works will be handy here
Computer networks - how various protocols such as TCP, UDP, HTTP, etc actually work will make you a better web developer
As some people have mentioned, a lot of these classes teach foundational concepts that will make you a better developer. They'll afford you the flexibility to adapting to never-ending changes in the software industry.
No one with this mentality is worth a damn. Specific technology, like programming languages and tools, are trivia. They are fashion. You're chasing the red queen if you think you'll get ahead by always having the latest fad on your resume.
Don't be the web monkey who can use node.js. Be the programmer who can write something like it, or better, from scratch.
One of the degrees we offer here at Penn State is "Information Sciences and Technology". While there are many CS aspects to it, which are taught (Databases, Programming, Mobile and Web Development, etc.), there are more aspects of humanities and "big data" involved - learning how to interpret and visualize quantitative measures, and learning to process large-scale data (e.g., CiteSEER was created here), and some aspects of software development, project management, business management. We also have a strong cyber security group and teach cyber law. We want our students to be strong computationally (e.g., understand scalability, algorithms, data structures), but theoretical computer science, as interesting as I find it personally, takes the back-burner. From what I understand, our graduates have among the highest average starting salaries among the BSc-level programs here. Other schools have iSchools as well, whose programs are worth considering. (There is a spectrum from "library science" to business or CS. Choose wisely.)
If you want a career in technology that might eventually lead to ... get a degree.
In my extensive personal and observational experience a CS degree does not lead into flexibility WRT job titles or opportunity to advance as you state, it just pigeonholes into a different set of jobs, mostly developer-type roles.
If you really wanna "eventually lead to" management or production or sales, don't get a CS degree and try to transfer and compete with people who actually got degrees in that specific field. For example, if you wanna be an accountant then get a degree in accounting, don't argue if a CS or MIS degree is better before you transfer into accounting. Maybe MIS would be 1% better, but a degree actually in accounting would be 100% better.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
If you have connections, legitimate skills, and can sell yourself college is optional. Go out and convince someone that you are worth hiring. Bypass HR and recruiters if possible, in many cases they will simply toss your resume for lack of "traditional" accomplishments. Your goal is to talk to the people who make the final decision on whether or not to hire you, not those who make the initial decision.
For everyone else, a degree is important (well, legitimate skills are important regardless). I work for a tech company in the Fortune 150 and our software engineers work on everything from UI to our products down to the kernels. We have awesome intern programs as well as programs that rotate you in different jobs (3-5) over your first 3 or so years of employment. You won't get any of those positions without a degree. It's still possible to get in here without one, but you better have an impressive background and hopefully some connections on the inside.
Mistakes are costly, so companies have to be cautious. Even if you are willing to accept a salary that is lower to get in the door, your benefits package has a fixed cost. As large as my employer is (>50K employees globally), my benefits still cost them nearly 20K a year.
My Masters didn't strictly apply to the job I held today, but it got me in at a higher position level and salary. Even if the skills don't directly apply, the 18 months of writing papers has been invaluable in helping me write docs for work. In my case the degree both helped me at my job and got me more money than I would have otherwise been offered.
Some of our best software engineers have no degree, but they are really good at what they do.
Ever feel like you are driving the getaway car?
Becoming a veterinarian requires graduate education; zoology is a pretty reasonable undergraduate degree to get before going to Vet school. So unless you are saying that getting a CS degree is one of many very good options for completing a necessary first step on the way to becoming a web developer (which, while it might be true, doesn't seem like what you are trying to say), this probably wasn't the analogy you were looking for.
You could probably drop and and instead pay for specific classes in web development technologies offered by any of a large number of organizations which specialize in offering classroom training in specific technologies. You'll probably be a minimally competent web developer using the specific technologies you train in faster than you would be if you continued with the CS degree with no specific focus on web development, OTOH, you'll probably spend money much faster on training than you are on getting a CS degree, and get less breadth for it -- you'll also have much less of a grounding in the fundamentals of programming and be less able to adapt to changes in the market for different kinds of development and different technologies for web development as if you had stuck out a CS degree, particularly if you are the kind of person for whom "something more structured" and "the benefits of a classroom and an authority figure" are important to your ability to learn.
Alternatively, if you know that you want to specialize in web development, you could stick with the CS degree and focus your class selection, within the range of options available to complete the degree, on those most applicable to web development. And you should do web-related projects (personal or for others) or seek out web development related internships alongside your schooling to apply what you are learning to the area you want to specialize in.
I have a daughter attending Utah Valley University (blatant plug) in web development. (I tried to discourage her being a system admin and all...) And she's been involved in projects dealing with reformatting for tablets and smart phones, html5 and so on. So I think you should check out the schools available to you and their curriculum to achieve your goals. I know when I went to college, there wasn't a web without a spider and computer science was learning programming languages and defining OSs and nitty gritty stuff like that. (yeah, dinosaurus irrelivantus and i did take a cobol class right after pascal and fortran) Of course, as stated above, get an account and put up a site. show the world what you've got, but try to keep it from the hackers who love to fix your site for you...
And that's great, if you think you make a go of it as a consultant. When that doesn't work out and you start applying for jobs, you'll find that HR departments really like to see some alphabet soup after your name. You get a job with your skills, you get an interview with your credentials.
I will agree that most CS degrees are perpetually 5 years behind the times. Many CS graduates can't code at all (a surprisingly large number). Many more have no concept of how to write a secure program, or how to deal with concurrency issues. I've kind of enjoyed giving my latest hire an education in how not to secure a web app. Oh, look, I'm accessing another customer's records by changing the ID number in the URL. Oh, you changed that to a form? Sorry, I can hack that too.
First of all, "web developer" covers a lot of ground. You seriously need to narrow your focus. Maybe by technology. Maybe by target market. Whatever, but you need to be a lot more specific about where you want to be and what you want to be doing, if for now other reason than the fact that there are thousands of "web developers" who live and work off-shore and will be your competition when you enter the job market. The best thing you can do for yourself is to distinguish yourself from nameless, faceless off-shore workers. Do it with your mastery of a given technology (recognizing that you will always be refreshing your skill set if you hope to remain employed) or with your familiarity with a given business need.
A Computer Science degree is not the same as Programmer. If all you want is to be a "web developer" then perhaps a technical college or diploma is what you really want.
Four year colleges and universities do not tech skills for Tech Jobs they primarily focus on theory and programming which web development really isn't. The required training in the neccessary technical skills can be found at a two year college for a lot less money. Then finish up with a four year degree in advertising or marketing design. Your pocket book will thank you.
Hey, sounds like the CS classes and related requirements might be a bit tough right now, hard to get through without immediate motivation. Been there.
Just tough this stuff out. A good chunk of CS students take over 4 years to finish their degrees because the classes (especially math requirements) can be hard if you're not accustomed to exerting effort at something not immediately interesting.
Once you get your degree, you'll have an easier time getting jobs, and you'll get paid more for doing the same work. Long term, the degree is the right call. You also might not want to do web dev forever, and a CS degree gives you maximum flexibility.
Also, academic CS is really important, data structures and algorithms show up in interviews a lot. And the core of CS isn't hard. Discrete math and calculus and linear algebra can take a bit of effort, some theory-related proofs. Just roll with it. Be glad you did.
There's more to being a web dev than coding. You have to know now to get along with coworkers. You have to work as a team. You have to learn HOW to build complex projects. A computer science degree will hopefully tell you how to engineer something, not just build something. There is a HUGE difference. I get that school is expensive, and it may do nothing more than prepare you to work for The Man for 30 years... If you want to go the entrepreneur route, then go for it. You'll fail, just expect that a few times, and eventually you'll succeed. maybe. :D
There are far too many "web developers" already. Web development is an additional skill for copywriters, illustrators, and office admins. In 1998, you could make big money as a "web developer". Back then, it was important to get into the field fast and not miss out on the dot-com boom. That's over.
Most web development today uses some "framework" or content management system. Users of those need only a modest level of training. Weeks, not years. It's more like learning Microsoft Office.
I've been working primarily on embedded Linux development for the last decade. I'm pretty good at it. But it's been a very long time since I've done any coding for Windows, and I haven't done web development since the days of hand-coding HTML in a text editor.
So if you want a generalist, I'm not your best choice. If you want to optimize linux for 99.999% uptime while efficiently routing 10-gigabit traffic through multiple virtual machines with the ability to patch in a fix while the machine is still running, then I'm your guy.
It's not just general stuff about being able to understand general algorithms and such, it's far more than that. Assuming your school does a good job you'll be learning about how to architect and design... and a lot of that transcends domain boundaries.
The *same* exact skills that I use for architecting software I've used when our systems group didn't do their job and the software team had to take over and produce the needed artifacts (customer required). How you go about defining interfaces between hardware components isn't really any different than what you do to do so between software components.
In fact, I'm now working at developing a business process for a whole new line of business. There's hundreds of government documents regulating it. So... it's take all the same skills that are used in successful software development and apply to this instead. Setup an architecture framework for the process that meets your needs. In this case it's ensure that the regulations are traceable to the process we generate and that the process is created in such a way that certain structural requirements are met. Then it's decomposition to individual subsystems (individual processes) and flowing requirements down and then designing them. It's the same skills behind it all.
Yes, there's domain specific stuff that may not be apropo to what you're *currently* wanting to do. But there is (or should be!) a lot of domain-independent skills that are applicable to a whole wide range of design domains including web design. Learning this set of skills makes it very easy to transition jobs in the future if needs or wants change.
Colleges generally tell you a Computer Science degree will solve all your problems and make you infinitely employable... which is nonsense. After having spend 5 years getting a CS degree and a Psychology degree, I can tell you though that the point of finishing a CS degree isn't to achieve some end goal, but to learn how to think like a programmer. Many courses, covering many topics, you'd don't get good at any one particular thing, but if you apply yourself, you do get very good at understanding abstract concepts, breaking problems down into manageable pieces, knowing what capabilities are out there, and knowing how to find the information you need in order to figure something out.
What the college says aside, a CS degree can teach you how to think like a good programmer, and that's more important than any particular skill.
Learning particular skills comes from finding opportunities outside your classwork to work with what you're wanting to work with. For web dev stuff, maybe start out finding a charitable organization with a horrible website, build them a new one, and pop up one day saying "Hey, I'd like to donate this...", and go from there.
Well...ok, it's not a degree but rather graduate certificate. I say get your bachelors in something you like and then supplement/complement with something like this.
http://www.extension.harvard.edu/degrees-certificates/professional-certificates/web-technologies-certificate
I think the combination will give you a solid foundation.
at some junior colleges was the best educational move I ever made, at least with regards to employment. My biology and chemistry degrees were nice for general information, and as a time to experiment with different fields.
I'm not sure what aspect of web development you want. I've been doing web development for large web sites over the last 10+ years after a CS degree and 15+ years of other work. I've been the lead on teams of up to 20 people - front-end, back-end, web servivce, CMS, DBA, creative. I can jump in and help any of them out when they have problems or risk missing a schedule or production issues. My CS degree and experience on real-time OS kernel development and Linux/Windows device drivers and database servers (writing the server, not writing SQL to use the server) and other non-web jobs have all be invaluable and influence me weekly if not daily.
If you want your career to be implementing small-to-medium size webs sites with a CMS and standard components, or writing HTML & jquery while someone else writes the back end, then you can probably drop out of school now. Two years working cheap for experience and resume and making connections will put you in better shape than a CS degree (e.g. I build sites for non-profits for free to keep up my skills when I don't feel I have enough hands-on work or want to learn a new technology for my job).
If you want to do more than front-end or small sites you should take as much advantage as you can of your education. A CS degree is probably best depending on what your school offers, but I'd add as much engineering/systems education as possible. The one thing missing from most CS grads is an understanding of what makes a stable system. I've worked with many EEs, MEs, CEs, and even and MD who got into programming. They are usually great at seeing where an architecture is going to break under stress before it happens. While CS grads see it break and still say something like "how could that have happened?" and aren't as good at figuring out what happened and fixing the root cause.
As you are apparently interested in a very narrow set of skills instead of any Conceptual Knowledge, please refrain from studying anything.
Studying is about getting an education, which can be used essentially for your whole lifetime. You just want to know how to cobble together web stuff. You apparently don't have the intelligence and foresight to learn general algorithms and data structures and to apply that to the task at hand (which may be web coding for the next five years and something entirely different after that).
You are too stupid to see how Compiler Construction courses will teach you a critical skill that can be applied to reading config files, writing shell programs, compilers, JSON parsers, HTML parsers and yes, sophisticated web applications.
So, you are so incredibly shallow and dumb you should not clog up the education system. Others deserve using it, you don't.
I used to think like you. I was a year and a half into my degree and was wondering why I'd ever need to learn what a B-Tree does. Or the algorithmic complexity of merge sort. Or why I'd need to learn Haskell. But, it turns out, you actually do need those things to be a good web developer. I know, because prior to my current job, I was a good web developer (I'm now working on a new test automation suite, but I do web dev on the side), working among a sea of awful web developers (yeah, I would think that maybe I sucked, but I was the person managers called on when they needed a project done on time, or to fix something that someone else screwed up. Customers specifically asked for me). Awful developers had 2 year degrees in CIS, or none at all, or a degree from the local school who has probably the worst CS department in the country (I'm looking at you, UCF. I had a person tell me they had never heard of a tree structure, and had no idea how to traverse one. WTF).
So here's the thing. You can go learn PHP or C# or Java and become a web developer without a degree. And you will probably think you are very good at your job, and you will probably be happy with your paycheck. But then you're going to turn out a piece of shit web app. It will happen, trust me. Everyone, even those with degrees, turns out a piece of shit at first. It won't work right, it will be too slow, it will not conform to UI standards, so on and so forth. Now you're going to have several problems. One, unless you're really bright (which statistically, you aren't), you won't know where to start with regards to making your app run faster, or work better, or do all the things that it needs to do to be a usable app. And that sucks for you, because it's going to take you time to learn that sort of thing, which you could have learned part of in college. And now your employer is going to wonder "why did we hire this kid when there are 10 kids with degrees waiting for jobs? He's no better, and he's costing us time and money". And that's going to suck for you because you are no longer going to be happy with your paycheck. And then someone like me is going to have to fix your shitty web app. So I guess it works out for me, cause I get paid, except that I hate fixing shitty web apps.
Tech / IT Needs trades / tech schools / an badges system.
Community Colleges do have drop in and degrees but most max out at 2 years.
CS can be very theory loaded with lot's of skill gaps.
Now there is a lot of IT stuff that 4 years pure class room is extrema over kill and even then you still have big gaps.
Now the tech schools are good but are held back by the old degree system.
Now look at tribeca flashpoint very good school with real hands on work but it's only a 2 year school so while you can learn a lot more then a 4 year school in half the time the lack of a BA BS still holds people back.
We have way to much push for 4 year degrees and a lack of apprenticeships.
We should have some kind of a mixed 1-3 year apprenticeships and tech / trades schools for IT.
https://itkan.wordpress.com/2013/01/30/megatrends-education/
Some schools have created entire Information Science Technology colleges that serve this exact need, one of the first and best is at Penn State, http://ist.psu.edu/. These do a much better job of preparing you to work with a range of higher level technologies (html, databases, VB or Java) with focus on business and real world application.
Most schools have an IT focused business degree option that gets you exposed to databases and programming, but you still get the whole business core block of Accounting/Logisticts/etc as well.
I actually dropped out of comp sci as and undergrad and did the business school IT focus before graduate school in comp sci. So glad I did, the business degree was far more useful as a programmer in the real world. I enjoy being able to specialize in a certain comp sci field, but the undergraduate part is horrible and completely useless in preparing people to actually work.
Seriously, a general-purpose computer science degree will serve you well. You just won't see it right away. I just finished writing an interpreter- something I had only done in college 25 years ago. I constantly bump into subjects that I took in college and would be utterly unfamiliar with had I not taken the "rip out the guts and figure out how these compu-thingies really work" courses. You might not learn exactly the thing you need right out of school, but what you will gain is a deep insight into what computers do and how they do it. And that will help immensely if you make them your career.
"Programming" is actually a very stupid term. Yeah, you are writing programs, so you are in some way "programming". But there are almost an infinite number of ways how you can do that. And 99,9999999999999999999% of those ways are incredibly bad in terms of efficiency, correctness and maintainability.
Computer science now has a massive corpus of hard knowledge (e.g. parser theory, sorting algorithms, complexity analysis) plus a massive corpus of soft knowledge (e.g. "analyse problem thoroughly, talk to stakeholders before starting to code"). Exactly like the medical and judicial professions have massive corpuses of knowledge we expect a medical and a legal professional to know in detail.
Just with computers there are bazillions of amateurs in the business who do massively stupid things and then proudly declare their CS-related ignorance. The notion of "self-trained hacker who learned everything in his bedroom" is still prevalent in society and the business world.
CS graduates should simply stop working with the amateurs, but alas, we are way too stupid when it comes to human aspects of our profession.
I had a 2yr degree and went back for my Bachelors. I wanted the quick path to my 4 yr degree so the school representative suggested a liberal arts degree. My computer certifications counted for credit and I had the ability to choose many relevant courses, even online courses from other schools (which I took from the comfort of my home). When I was done, I had the 4 year degree that many HR people look at for job qualification, with comp sci as a major. I took additional certifications which did double duty for school credit and as additions to my resume. Best of all, I got to choose classes that I felt were relevant as electives. A lot depends on the college you're going to regarding what is available and allowed, but some similar approach may help you find what you need. Also I agree about taking an internship - you cannot go wrong getting a foot in the door of an employer. If not a job later, an internship can make a great recommendation - get a written letter of recommendation. Letters of recommendation are added value when submitting your resume for job consideration. That's my 2 cents...
would like to say that I've been in web dev for about 4 years with _some_ history in C/C++. I didn't go to school and (gasp) it hasn't held me back. It's all about performance in this industry. If you can do it faster, cheaper and make a more stable and higher performing end product, then all else quickly falls to the wayside.
My opinion is that all you need outside of work experience is to read a couple of key books (GoF and Martin Fowlers - Refactoring are at the top of the list) and a basic understanding of how memory is handled in your language of choice and how that impacts performance.
Start focusing now... there are basically 3 paths to follow in web dev.
Interactive Designer - Builds HTML/CSS but is mostly design focused, understands colors, proportion, etc
Client Side Dev - Build HTML/CSS and JavaScript, guru on all things that happen in the browser
Server Side Dev - Build PHP, Ruby, Node, etc... Tries to focus on data and business logic and keep their head out of the browser wars.
And the whole concept of a CMS like Drupal, Joomla or WordPress needs to be eliminated. If you are using one of these you are configuring, not coding. These should purely exist for non-dev, DIY "W3BM@5TRZ". Focus instead on RAD ( Rapid Application Development ). A dev can build in one of these faster then they could in a CMS and it's a less tedious and error prone process.
It seems silly initially, but much of philosophy is about logical structure and ordered consequences. My programing skill nearly doubled because of my coursework there.
It's been a few years, but the son of a co-worker of mine took a year long web developer program at our local technical institue. It focused solely on the skills/tools needed for that specialty. My co-worker is a senior software architect with an engineering degree and 30 years in the industry. He fully supported his son attending this program to get the education needed for his chosen profession.
This is in Canada, and I don't know what the equivalent would be in your area, but the school wasn't one of those private, for-profit types you see commercials for, but an accredited polytechnic (sait.ca).
Major == business
Minor == computer science
Profession == developer team lead
I was in the exact same boat, not seeing the value of computer science and its relation to my web development career; however, knowing the fundamentals of computer science is important and will make you a more well-rounded individual, more valuable employee, and more hirable (many HR depts wrongly assume comp sci === web development).
My solution was to get a major in business and only a minor in computer science. The key part of the business degree is that it makes you much more likely to be promoted to a position where you can manage developers or lead a team. You will make more money, you can still take on the challenging code projects, you become more valuable to a company, and you can have more say in what technologies you and your team get to work with. This also allows you to work not just in development houses, but also in large corporations who are looking for a director or manager of their internet presence. By having the business degree (I choose finance) you are better prepared for taking on a mangement role and duties, and having the minor in computer science means you have enough supplemental knowledge that you can (theoretically) work with and understand the needs of your team.
If the guy had a clue he would recognize that a "web application" and a mainframe application presenting itself via a 3270 terminal are actually very much the same - if you think about high-level concepts. You have a relational database, you have data models, business logic, security, the need to proper testing, user requirements, transactions and so on. The fact that rendering on a 3270 screen is different than rendering to a DOM tree is very much irrelevant from that perspective.
So, you can see "web apps" as the latest fad in Applied Computer science. A gifted and determined CS graduate will churn out good DB/2-Cobol-3270 apps as much as MySQL-Java-HTML apps. After a proper training/learning period, of course. You need to learn the idiosyncracies of a certain technology. But all the basics about algorithms, data structures, relational theory and so on are wholly independent of 3270 or HTML.
First off, there's a lot of stupidly bad advice here. The OP states that his intention is to become a web developer and feels his current 2 years of CS is useless. Naturally everyone becomes polarized and offers their bad advice. On the same token, most bad programmers will do the exact same thing when a customer comes to them and asks for a solution to a problem. The correct advice should first identify the problem correctly, then offer the right insight to lead the OP to the correct solution for his unique situation.
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.
Why do you think you'll become irrelevant? Because the technology you learn today will be deprecated for next year's flavor of the month technology? And if that's the case, why do you think learning that particular technology will grant you anymore longevity?
Consider this: technology will always become obsolete. If you accept that, then you will continuously be forced to learn new things regardless of how you learn it.
Secondly, why do you want to start your career right now? Is it out of envy? A feeling of wasting time?
I would be lying if I didn't say I wanted to graduate 4-5 years earlier. After my first year in college, the internet bubble burst. I was entering CS with older peers landing rock star programmer jobs with little effort. And that all quickly changed.
At the same time, the core fundamentals of computer science are allowing me to stay relevant today. I started with the web, went on to complete my 4 year CS degree and now I've been able to learn the Android SDK on my own time without the aid of classes. What little I remember of my advanced game programming course (I didn't stay in it) and linear algebra has allowed me to work at the 2D level canvas without ripping my hair out.
When you understand and correctly apply the theory, you are able to digest much more complicated things much more quickly. You know a bad algorithm when you see it. You know how to correctly optimize rather than wasting your time with trial and error. But if you sit through class thinking "I don't see the direct connection" well consider trying to do algebra without knowing how addition works. That's what you're up against.
Now despite that, that doesn't mean that school is best for everyone. If you feel you are capable of learning things on your own, no matter how complex or how convoluted, then school may actually slow you down. But if you still feel you can't correctly teach yourself, then school is a good option.
If you feel you can go faster, then do so. By that I don't just mean stopping school. You can actually accelerate your school if you have the desire. I had the option of actually graduating a quarter early, but I chose not to in order to explore other topics the school offered (one was the game programming course). Looking back, graduating in 3 years is actually do able with summer courses and maxing your units per semester/quarter.
Finally don't discount the trade-offs. Starting work early is good for those that want to be entrepreneurs. Those that simply want a desk job for the rest of their lives, it is probably a really bad idea. Never again will you be surrounded by people of the exact same age and never again will you have culturally "approved" time to actually just sit down an learn whatever you want. That includes studying abroad on educational loans and studying seemingly useless topics. At my age, people around me find more interest in these sorts of topics than their own specialty simply because they're hired and forced to work on their specialty for at least 8 hours a day. As a student I thought I could sit in front of the computer all day, today I look for things to get me away from the computer.
The degree might have a different name. However, CIS degrees are like CS but they emphasize business or whatever rather than theoretical computer science. I believe they are usually easier degrees. I would try CIS doubled with design for a web developer.
Democracy Now! - your daily, uncensored, corporate-free
When I was going to college, I felt the same way, and did not finish my Computer Science degree. Like you, I believed that I was missing out, and wanted to get started right away. I also noticed that the things I learned in the real-world seemed light-years ahead of what they were teaching. In 1997-2002, some of my professors were teaching stuff like prolog, rather than more modern languages. I graduated with an easy major, am now seven years into my career, and really wish that I had stuck it out. I have hit a wall, and am finding that I need to go back and teach myself the theory that I missed out on to go to the next level. Namely Discrete, Calculus, and Algorithm theory, which I thought I did not need. Except now, I'm trying to learn them while also trying to take care of a family. Part of this is due to my growing interest in Quantum Computing and AI. Something that I never thought I would be interested in at the time I made my decision. One thing that stuck with me that I read on this site is that you don't need to have a degree, or know Computer Science theory and Math to know how to be a developer, but you do need them if you want to be a great developer. Regardless of what dead language they were using in college, or modern language I use now, I never realized until later on that the theory is mostly the same, and also the most important.
So I've been getting a lot of great emails in response to my post. It seems that a common solution to my problem is a code school/code bootcamp. I've been recommended programs such as Portland Code School, Flatiron in New York City, and Boston Startup School. I think these are a great idea and very well may be my next step in my career. I think it will be beneficial for me and anyone else who may be in my position if we can aggregate an extensive list of these programs, for I've found it hard to search for them on google. Thanks slashdot for all your responses. Side note: Most of the programs I have managed to find are Ruby on Rails based. I think RoR is a great framework, but I would be more interested in one that teaches a JavaScript/Node stack.
You can take classes in web development and then you'll know how to do web development.
Or you can finish your Computer Science degree and then you'll know how to think like a Computer Scientist.
You pick.
I surprised this hasn't been suggested.
The comparison is offensive, proves the need of the author for extended schooling, and that he likely can't hack a cs degree all in a single sentence.
The BSSE is what you want. There are 22 schools in the USA that offer the degree at this time.
Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
You're in the throes of obtaining an education in computer science, but lament about not getting training in web development. Issues with the quality of your CS program aside, these two things are not equivalent entities.
Web development is about using specific tools to build a class of applications. Computer Science is the study of the foundational concepts underlying the tools, concepts that your web development tools mostly abstract from your concern. It may sound like I'm denigrating a specific career focus on web development, but no, it's just a matter of your priorities. If web development is what you want to do, go get that training and do it well.
That said, a decent understanding of CS concepts will server you well in _any_ application development. It just may be a little difficult to see that right now...
You don't need a CS to do what is basically the fast food of CS. Computer Science is, unsurprisingly, yet surprises many, is not about computers, but rather computation. People who don't understand the basic theory of computer science, are not computer scientists, nor are they programmers. They end up as a programming language end-user and the actual computation is black magic to them.
It is why you see self-trained monkeys talking about how ActiveRecord or Spring, or whatever, is "magic".
The theoretical stuff that the idiots sneer at is absolutely required to understand applied computer science aka every day stuff.
Of course to understand the theory you need a base mathematical understanding that includes, algebra, set and group theory, relational theory(ever hear people talk about how the relation in relational database means how tables are 'related'. Not only are they wrong, they are pathetically wrong. Associations are not relations), induction, and a bit of linear algebra, calculus and stats.
My two cents, you still need a degree, which I don't think you disagree with. Computer Science is what my undergrad is in and I worked my way through as a web monkey as well. If there had been a Software Engineering BS where I attended I would have gone that route. The structure and fundamentals of full life cycle apply to any development effort (including web development). Make sure you're getting the data structures down, which still apply as well as Requirements, Testing, and a solid focus on Cybersecurity and Networking if you want to make yourself an even bigger draw.
My biggest complaint are 18-month coursework or self-trained individuals who more often than not end up being hacks. Don't be a hack.
Have you thought about getting a degree in Human Computer Interaction, or maybe a more of a design degree. I felt like Computer Science was a waste too, but just at face value. You add value to it by what you do with it. In an HCI or design degree, you could always work on amazing web developer stuff. Coding is just a tool.
The value of CS is that it teaches you good theory and technique about how best to solve problems using computers. After getting my CS degree, I continue to surprise myself with how much better I understood and programmed in comparison to people who tool lesser tracks. Learning the languages is really cake once you understand a few of them.
What I did find was that my degree didn't teach me immediately marketable skills. So I crammed my electives full of telecommunication classes on topics like Unix administration, web development, and database management. That would be my advice to you. If you're in a theory-based CS program, and even in certain application-based programs, use your free electives to take some classes that make you immediately sellable.
The CS degree will help keep your education useful far longer than a telecommunications degree and your immediate skills will shoe you in the door right out of college. You'll get your web development job, you'll get sick of web development, and you'll have a CS degree to lean back on when you are fed up with that track.
TL;DR It doesn't matter if you graduate (it's a personal choice), build a strong network of people (college helps with this), continually hone your skills as a developer, begin freelancing immediately, begin networking immediately, strive to get Cs in your classes so you can spend less time studying and more time on the important things which are building your portfolio and expanding your network.
I don't have a college degree and I'm currently making 90k+ a year. Freelance I'm doing 5-10k a year, and my full time job I'm pulling mid 80k, with 3 weeks paid time off, medical/dental, etc. I'm currently interviewing for jobs over 120k with the 4-5 years of experience I now have. I did however go to college for 4 years. In my 4th year at school a bunch of federal money was misplaced in NJ and I could only get the 8k out of the 12k for tuition, so all my financial aid was dropped. This forced me to get a job. For the first 3 years of school I went for business. My fourth year I had switched to comp sci, but by second semester I was booted from college for lack of fund. So the only formal train I have is an initial computer science class teaching you the basics and a data structures class.
I can tell you that most of the people I have worked with who have gone to good schools with a comp sci degree, are typically mediocre at coding, organization, innovating, and learning new technologies. If you have a passion for anything, you will become the best at it, regardless of whether or not you have a college degree. If your just doing it for the degree and the 9-5 grind until you retire, you will never be the best, or even good.
My overall point is that it really doesn't matter if you graduate or not. If you passionate about something, and build a strong social network you will achieve success. Being that your halfway through school. I would tell you to finish, aim to get the lowest possible grades in your classes while still receiving credit, and devote the time you would have spent studying to building a strong freelance business, and networking with potential prospects. If you do this for the next two years you will not only have a lot of money, a strong group of people around you, but also a college degree and connects to land you a full time if you want it. Or you may just want to continue building your freelance gig.
Actually, the most useful these days would be a marketing degree. Web design was once thought of as the balance between graphics design and programming, but now days everything comes down to SEO. Being able to design a site (and landing pages) that get good placement on google is more valuable.
Flexible bare-metal recovery for Linux/UNIX
You'll pick up around a dozen industry-standard certifications while completing your degree online, at about half the cost of traditional tuition. It's a non-profit school started by 19 governors of Western US states to provide high-quality, affordable education. Apparently, employers love it, because you get the degree plus certifications, and because the curriculum is competency based (you don't pass by just showing up - you've got to actually show you can do the work).
In all of your observations you are very much correct. After doing this work for 20+ years, this is what I have learned: (1) Your Resume is the Projects you have worked on and the tools used in those Projects. Job Titles and who you worked for mean less. Intelligently describing each project you worked on is TruGold in an interview no matter how old it is. (2) Stick with the most widely used tools until you have 3-5 years with each one and then they become secondary (SQL,.NET,JS,XML,CSS,HTML) (3) Go after projects that are most widely sought after with clients (CMS, CRM, LMS, eCom, SEO) (4) If the project is worthy, do whatever it takes to be part of that project solo or on a team. (5) Certifications and Degrees are more important for Gov work only. (6) Create a tool that websites will use (e.g. Sitewide bad url checker) by doing this you automatically convey to clients that you understand the engine for the wrench you just created. The sky is the limit in this field, what you invest is what you will get out of it.
Hi Bill, how is retirement? You still find time to swim in the ole money pit?
This may be the last best chance you get to learn what you can in a college setting. Take it for all its worth, you could end up getting to the market place and finding out how un-interested you are in your past passion. Or find that you actually could use a lot of CS knowledge for web "insert fad here".
Good leaders run toward problems, bad leaders hide from them.
Learn to finish or Learn to quit. Either way, sounds like you are about to learn something.
I only look human.
My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
The meritocracy (a la http://news.slashdot.org/story/13/02/11/1254254/should-techies-trump-all-others-in-immigration-reform ) says don't bother with the degree. Just show everyone what you've got and you'll be allowed up a step or two on the ladder (if you're good).
... and study Medieninformatik (http://de.wikipedia.org/wiki/Medieninformatik - can't be bothered to find an English explanation of the degree). Pretty much what you want. Other countries might have similar things. The US of A are so old-school, not sure whether to laugh or cry about that though.
buy a cheap pyewta, install favorite distro, pick a language and start coding
simple games are fun, but i also program tools to make my professional job easier. my employer technically owns the code, but unless you actually work for a software house its unlikely you're employer is going to pursue any claims (if you use the code later don't use trademarks and don't make it blatently obvious that the code is pilfered).
object pascal is a good language to self-learn... so install lazarus/free pascal.
php is a popular and fairly easy scripting language, and makes learning c/c++ easier afterwards (try php.net for guidance)
python and visual basic is for losers
c is awesome but for many apps horribly inefficient for development and unless you're dealing with massive amounts of data or you're writing a driver for real time data acquisition its probably overkill... you can easily spend ages creating a crappy c program that will perform just as bad as a quick and dirty php script
This all seems to be centered around "School or no school". I have a different question...why do you want a JOB? You're questioning the "old school" approach of going to school in order to get a job. Why not question the "old school" way of making a living...working at a soul-stealing big company day after day, year after year. All that just to live in one of the few places where such companies congregate and putting all the money they pay you on a mortgage to live in a horrendously over-priced mcMansion. Yeah, I know...Bitter Much? Well, yes, actually. After a BSEE degree followed by about 25 years of CS work, I'm questioning the sanity of the whole thing. Just as getting a degree is becoming "old school", so is "getting a JOB". The future is entreprenurial and merit-driven employment. JOB not only requires "old school", it is OLD SCHOOL.
It may seem like a good idea now to cut you're losses and start work. However, if you're on a good CS course, you would hopefully start seeing how the things you had been taught applied to real world software engineering. As one or two others have already noted, the things you learn in your CS course will actually help you stay relevant as time passes. With a deep understanding of the fundamentals of CS, the parts that really don't change, you will be much better prepared to assimilate new information as new languages, frameworks and paradigms are created.
I pointed a friend at Design Patterns by the GoF a couple of months back and his response was "I hope computer science has moved on from that in the last 20 years." That's the wrong attitude. The fundamentals stay very much the same. MVC frameworks for example, may be the current hotness in web development, but the design pattern was documented many years ago.
I felt the same way about my CS degree for the first 3 years, I didn't feel it was relevant to real world software development. Then I had to do a 6 month placement as a required part of my course. I worked as a web developer at a large media and marketing company. What I had learned in the previous 3 years set me up to quickly understand and get up to speed with the code I had to work on and my placement was such a success, something I attribute to the education I received, the company hired me after I graduated.
CS is a complicated area with a lot of fundamentals to cover. It is a career where art meets disciplined engineering. College should teach you the fundamentals and how to write functional, good code. It's the boring bit. Over time you'll learn from your own mistakes (and you will make mistakes) and write better, more beautiful code. Don't discount the fundamentals because they are a little boring.
Always makes sure you get a degree so you'll have a more easy starting position. Whilst in college try to get a job that is to do with the field in which you are interested, 2 years experience doing that will give you an edge when the employers are flooded with applications from graduates. Another important tip is to get involved with some extra curricular activities you might come across related to your field, e.g. contests, it can show you have motivation to go that extra mile. And if you are lucky you'll have a great time doing that. For example during my college years I have worked as an embedded Linux programmer, been a teaching assistant on the other side of the world and participated in an engineering challenge. Then in the end your employer will be more interested to hear about your projects beside your studies than anything else. And maybe you'll even find some interesting work that has very little to do with your education or previous interests. For instance I had only 1 small course on tele- and data communications during my study as an electrical engineer, but right now I am working as a telecom engineer and enjoying every day!
At least those who got 3 or more score. :-)
I really agree with you. I'm now 45, with 20 years behind working in IT, and now I'm in my last course in CS. Well, slowly but straight.
Thanks again.
I'm the quintessential old guy. I've been in the IT industry in one form or another for going on 30 years now. I am self-taught and did not get a university degree. I made a name for myself and of the 6 jobs I've had, I've never had to write a resume. My jobs always came to me and I've never been unemployed for more than a few days.
Having said that, those days are over. Unfortunately, the only thing a degree is useful for these days is to bypass the HR filters and you need that if you haven't already developed the kind of reputation that has you bypassing HR. Anything you learn while getting your degree is second only to the primary purpose which is to not get your resume thrown out before it's even looked at. While you're getting your degree, work for non-profits and open source projects... Build yourself some credibility in the community because that will provide multiple avenues for increased employment (either through remote contract gigs, or some hiring manager recognizing the work you've done and taking a flyer on you)...
That's exactly what I thought, that zoology IS the degree you get to become a vet
I only go to uni so i don't have to pay taxes. I don't need these stupid ass dumb shit teachers to teach me anything. Why should I? I have a certified IQ of 110 and these losers fucked up their whole life so bad they're stuck as teachers. They don't even know shit about the subject they're teaching. If they knew anything about it, they'd be getting paid hundreds of thousands to do it right.
Look into the A.S. degrees at community colleges.You will find courses that are directly relevant with hands-on experience using today's commercial tools. If you pay attention these courses will offer enough on the theory as well as current practice that you will be in a good position to grow your knowledge as web development continues to evolve. That is, while the courses tend to be focused on getting entry level jobs working with products from Autodesk, Microsoft, etc, a good school will also provide a broad enough approach that you could easily adapt what you learned to other products, or FOSS, or whatever becomes the Big Thing next year.
Since you have 2 years toward a baccalaureate, you have probably taken many of the prerequisite AS courses. This means you could consider taking a broader range of web tech courses or even think about doing a double major: one degree in web dev, and perhaps a second in accounting, project management, etc.
Whether you go with the double major or not, you will have an excellent opportunity to hit the job market with an appropriate degree, AND a solid portfolio.
Will
I have something of a unique take on the subject, coming from a mix of traditional education, and actual experience. I was at university for 5 years, though I never did graduate. I also have 15 years on the job experience, in many fields of software development.
It has been my experience that a degree is a 50/50 proposition. Some of the best programmers I have worked with did not have degrees in computer science. The very best programmers I have ever worked with did not have degrees at all.
It is a new science, a very young discipline, and at this stage is unwhole, unformed. It has roots in maths, philosophy, and a hodge-podge of other well established fields. It is coming into its own, but it is not there yet, and the academic bias is futile at this point.
The very best database developer I have ever worked with was an ex-marine with a degree in accounting. The vey best general programmer I have ever worked with has no degree at all, yet has a multi-million dollar company, and he writes better code than anyone I have ever seen. The very worst programmer I have ever worked with had a masters degree from a university (non-US) in computer science, and could not code anything to save his life, but he could talk his way up into any situation, without the actual chops to back his talk up. The least well paid developer I know has a Doctorate in CS.
YMMV, but it is a young duscipline and we are still sorting ourselves out.
Get a job working for your university's new media or IT department doing web development. That's what I did. My degree isn't even in CS and I was able to get a job offer, as a web application developer, after college. I got to hone my HTML/CSS skills as well as become familiar with ColdFusion. I ended up going a different path. But by working there it would get you experience you could put on a resume. It's all about getting your first job. After that it seems like the degree matters less and less. I would imagine getting a CS degree would help on the web developer front though.
but getting a computer science degree to become a web developer is like getting a zoology degree to become a veterinarian.
No. gettign a CS degree to become a web developer is like getting a zoology degree to become the guy who removes the shit from the elephant cage.
Web development has taken huge leaps and CS could no "keep up"? Which huge leaps shoud that be - o i forgot - Mysql now has nearly all feature you expect from a db. Moreover object oriented frameworks for MVC are how the thing everybody likes. Nobody has ever heard about such a thing before in the last 20 years.
CS is about designing constructing information structures and applications. It is about estimating things before starting to type - and not to rely on AWS to provid you with everything you need.
Web development is about implementig a very small part on the front end there, and has strong element which are more a trade than a science (designing a gui can only partially be learned).
There's a difference between a good web developer and a hack who thinks he's a web developer. Good web development, contrary to popular belief, involves actual computer science knowledge. If you don't understand data structures, the algorithms that underlie the technologies you're using, and how the operating system your software is running on works, you're not going to get to be a GREAT developer. The fact is I use data structures every day to make intelligent decisions about how to model my data and how things should be structured in my database... I use the object oriented stuff you'd learn in computer science 102 to make intelligent engineering decisions that allow me to reuse code on a daily basis as well. Computer science classes are valuable to the profession and without them or the equivalent training (or knowledge) you'd might as well push a broom. You can get by without the degree but you need to have atleast taken (in my opinion)
1. Intro to computer science 1&2
2. Data Structures
3. Algorithms
4. Relational databases
5. Statistics
At that point you've got 5 classes in the subject plus all of the pre-req math classes. So you'd might as well finish the degree. Who knows you might learn something useful and applicable.
(1) A Computer Science background will not get in the way of being a web developer. I think there's been a trend of late to ask CS-nerd questions in job interviews (Google's influence I think).
(2)If you want to develop web sites you should just do it. If you want someone else to hire you to do it, the simplest demo projects will beat "no experience in the field".
I want to say a couple things that I've learned over the last couple years about this very subject. I've recently turned 30, so I'm not much older than you, and I started @pdxcodeschool, which is a 12 week intensive school for becoming a web developer so I understand your argument. My hope is that since I'm not much older, and I understand your argument at my bones, that I'll be able to provide a satisfying answer to why you should stay in school.
Firstly, you /can/ change colleges. Especially if you're only in your second year, most schools will accept 2 years of credits max.
Secondly, not everything taught in college is taught in the classroom. This is the last time you're going to meet a huge number of people in a compressed space. If you're like a lot of others, you may meet your wife/husband there and you will probably meet many of your best friends for life. This is the last time where you can royally fuck up and not get arrested (though not too royally I'll admit). This is probably the last time the government will pay you to study abroad in exchange for you learning a language of interest like Arabic or Chinese. And lastly, this is probably the last time that you're going to have 4 years dedicated solely to improving yourself.
Thirdly, I went back to college when I was 26 and the experience was dramatically different for me. All the annoying classes that I took when I was 18 were actually pretty amazing because I was so much more invested. I went back because I wanted access to larger companies like Google which literally will not accept you without a degree. I'm still working at a small company, but you may find that you want to do something different after you do web dev for 8-9 years; maybe you'll start a code school like I did, or maybe you'll decide you want to do GIS or something else that's really cool. I really feel like you get out what you put into education, if your teacher is droning on take that time to hack on something at OpenHatch and get into open source so that when you come out you have an awesome resume (because that CS degree really _isn't_ going to get you a job even though they're promising it).
Lastly, you could quit and join a code school, but I can tell you that overall maturity is a huge factor in our selection process. We can't feed our kids if we don't get paid, and we don't get paid if our students can't find work with our help. Our students spend 40 hours a week in the classroom, 20 hours a week at home studying, and spend another 5-10 at networking events and community groups. Not a single one of the students comes in without having read the homework because it's embarrassing to be catching up instead of making something awesome. The students @pdxcodeschool are putting so much of their life into this, even if I weren't a content expert I suspect that they would be able to get jobs as programmers after this much dedication.
I understand your feeling that you're wasting your time and I hope that this helps you find a path that makes you happy.
CS is a science *not* a programming degree (let alone a specific type of programming). So, do yourself, you're parents (who are, undoubtedly paying your tuition), and the CS faculty a favor and drop out. Go to a community college to take a few programming classes and get a job as a junior web grunt.
Now, let's tackle some real problems.
Getting a computer science degree is just idea-gathering. To really become a computer scientist you need to practice writing code. The rule of thumb is that it takes 10,000 hours of your life to become really good at something.
-- Betting on the survival of the media industry is a serious risk. I advise investing elsewhere.
Learning computer science means you are learning fundamentals of computing. With these fundamentals, you are able to learn just about anything else (including web development) much more easily.
Writing web code isn't really any different than writing code for any other purpose. Concepts like scalability, efficiency, maintainability, all still apply. Writing web applications just requires a bit more knowledge of computer security, but otherwise it's basically the same.
Most web development classes I have seen focus on learning some particular technology, like the syntax of writing PHP or ASP code, etc. This is something you really shouldn't be spending lots of money on anyway. It is all freely available information. It might be hard to wrap your head around at first, but getting a CS degree from a good school will give you insight into learning any technology.
Also, I don't think you necessarily need a CS degree from a good school. You can probably learn everything from the internet. There are no secrets taught at university. Having a diploma just helps you get a job as there aren't good ways to figure out that people are really good computer scientists if they don't have a degree. Maybe that will change one day.
What does being a great PHP programmer mean? That you know all the basic function calls by heart? No it means you write beautiful PHP code. But there is no reason why just studying PHP would give you this ability or why this ability would only be limited to PHP. Learn how to think and you are off to a better start than most people who just want the answers and not the ability to get the answers themselves.
Stop being horrified. Everyone falls behind at some point. It's called life.
Catching up now and then is no big deal. Relax and enjoy college.
expandfairuse.org
nominal
Get a BA. Then apply to a Master of Library and Information Science program. Libraries are desperate for people with programming skills. However, it is a bit of a clique, and you need an MLIS to progress. Academic librarians can get tenure and are very well paid.
The valuable web developers that are "inventing what's next" are the ones who are figuring out how to send tasks to India without completely screwing a project up.
Someone flopped a steamer in the gene pool.
First thing, "web developer" is a fad. It will become meaningless or very-low wage employment in the not too distant future. What do you do then? This is the reason CS education is so broad: If you do it right, you can switch fields, and it is expected that you will have to do so several times in your career. Also, any prospective employer that sees you have dropped put will conclude you do not have the mental stamina for longer projects, and they may well be right. So stick it out, find things that are interesting in there and make sure you get a good all-around CS education.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Go study abroad for a year. Pick a country you have never heard of and go. It's gonna be the greatest or the worst year of your life. In both cases it's going to be the most educating year. It'll also give you time to think what you really want to do. It's going to open up new possibilities. It's going to widen your perspective more than any drugs could ever do. You'll have time to start your career one year later, or if you want to keep studying it didn't even waste the year (remember to study also while abroad)
Spending 6 months studying on your own isn't going to mean jack on a resume, a degree will. You want experience that's going to get you into the field? Try open source or work on projects for free. Companies stopped training a while ago. Maybe you can get a fake identity and pose as an H1B visa holder...you'd get hired in a heart beat then...and they'll train you. But seriously do not drop out, it's the only thing middle management and HR will bother looking at regardless of how good or bad you are as a developer.
One other thing to consider... If you think you might ever want to emigrate and work in another country, even for a few years (and I highly recommend it!), you'll be in a much better position if you have a university degree.
Many countries run a points system which they use to qualify potential immigrants, and a degree is usually worth a lot of points, if not an absolute requirement. I've found this to be true of at least the UK and Singapore: both wanted to see my (original) diploma as part of the visa approval process. A degree does give you a lot more options. Options are good.
and been in the computer biz since 1974 and the biggest mistake I made was NOT getting a degree. It really does not matter what kind - it is just a piece of paper that HR monkeys like and you just might want to get pass those spuds. But it opens doors and gives you better choice...to work for idiots. But then every place I have been has been run by idiots. Does anyone work for sane people? Still, gotta make a living.
Start making websites AND stay in school and get your CS degree.
Provided that you're not making sites using something with a bit of a learning curve (Java EE), you should have plenty of time to get your hands dirty and get your products and name out there. If you do intend to use something like Java EE to make websites (I use Java EE, so I'm not knocking Java EE), a CS degree could very well help you by exposing you to a broad range of subjects that encourage thinking of solutions outside of the box. Just sayin...
If your only concern is making middling wages as a web developer for the next 5 years or so, then by all means skip the degree.
If you'd like to earn much more money in the long run and do something other than slap websites together at some point in the *gasp* "future", then an education in CS will give you the foundation you need to learn how to learn all the new technologies that will keep coming down the 'pike.
Of course, it's possible that the CS program you're in is horrible, and that the professors are bad. If so, look for somewhere else.
But if you are basically asking whether, as a web developer with some sort of job, you're too good for a CS degree, then "no" is not a strong enough response.
In the University I work at, in Mexico, we have at least three "canonical" careers, with very different orientations, and several more specialized choices for a given field:
- Computer science: Algorithmical, mathematically oriented. This career is mainly targetted towards research and academia, towards applications where you have to develop AI, DB research, etc. This career is taught at the Science Faculty, and shares the most with Mathematics. The last two years are unstructured and mostly made up by "optative" subjects, so students can shape their specialization.
- Computer engineering: Targetted towards practitioners. Programmers, networking people, etc. This is where I teach (operating systems). It has a strong mathematical foundation, but much less than computer science. This is taught at the Engineering Faculty, and shares the first two years with the ~10 different engineering careers. It has five different "specializations", so the last two years have subjects devoted to specific aspects.
- Informatics: Teaches the basics of programming and DBMX, but is mostly targetted at people who whill integrate computing into the business workflow. It is taught at the Accounting and Administration Faculty. I am not familiar with that faculty's output profiles.
There are field-specific careers (i.e. a new career on informatic applications in medicine), but I am not familiar with them.
I guess similar base profiles should be available in the US universities. Mind you, my university is quite large (>300,000 students), so it can spare some "extra" choices :)
It's more like getting a B.S.E.E.E. to be an electrician, or a B.S.E.M.E. to be a mechanic.
First of all, having a degree will help you get those first couple jobs until you gain more experience.
Beyond that, your attitude highlights the problem with the majority of "web developers" - they don't see themselves as computer scientists. This leads to inefficient, cobbled-together solutions. Web developers often want to "just make web sites" but never learn anything about the real skills of software development: requirements gathering, architecture and engineering, testing, deployments, etc. You end up being a web "programmer" but not a web "developer".
I'm not saying that a college degree will give you all of this, but what I am saying is that you shouldn't picture yourself apart from the rest of computer science.
I like my women how I like my sugar.. granulated.
I second this. I also am enrolled in a BS/IT program, like the OP, which has pretty much been worthless for my career as a front-end developer. What has been useful is that my company pursues the newest technology with each website we do. Four websites ago we went with .NET MVC 3. Three sites ago, MVC 4. Two sites ago, responsive designs and mobile integration. My current site may shed the .NET framework altogether.
Throughout this process I had no idea how to use the next technology -- my team and I just learn by doing it. And, we're better off for that. Get out there, grab something unfamiliar and put it to work. It may take a little longer to make something, but the experience itself is invaluable.
Of course, most replies here are from those who entered the CS field and have a certain mindset. That mindset values certain attributes over others. It's the proverbial tech guy vs. sales guy argument. I know people who got their degrees, me being one of them, and have good paying jobs. I also know others that seemed flaky and weren't patient enough for formal schooling. One of them is still barely getting by and seems to always be looking toward the next big thing. However, a few others came up with some brilliant ideas and are now financially independent. They now provide those other guys with the "good paying jobs". It really depends upon what you're comfortable with in life and the amount of risk you're willing to take. I can't judge either side because if having a good paying job so you can raise a family and be a responsible adult makes you happy then you should do it. If you're not that type and would rather surf all day but hire a coder to write an app that predicts ocean swells and you make a fortune off it then so be it. But, I don't think you'll ever get both sides to agree on what's most important in terms of personal development. They see things differently. At least nowadays the tech side has a lot more opportunity to move beyond a "job" and become more entrepreneurial.
Get the Computer Science degree. You are learning skills you may not appreciate at this time, but what is the half life of web programming? We don't know. At some point web programming may become irrelevant, and you will need a broad base of skills for another career.
Three points :
If you notice what I said in that entire sentence, and the next - I didn't say get a CS degree. In fact, I explicitly mentioned several non-CS degrees immediately following where you ended the quote.
The point of getting the degree, as many other people also posted, isn't to show your credentials for {INSERT FIELD HERE} . It's to show that you can learn - anything - and follow something through to completion. Newly-graduated college students don't get hired because they're experts in their field, they get hired because they graduated, and as an aside while they were earning their degree, managed to do something that shows they have the ability do do whatever it is related to what they're applying for.
Disclaimer: This all, of course, assumes you pursue and get a job somehow related to your field. Job availability may vary by market. Past performance is in no way related to future gains. Not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform. This information is subject to change without notice. And you "Art History" or "Humanities" majors out there, you should have talked to a guidance counselor before you left High School.
This space for rent. Call 1-800-STEAK4U
If you want to get a degree, get one in any field that is quantitative and difficult -- engineering, economics, whatever -- and learn to develop software by writing software, not reading about it. Pick a project that's a stretch for your current skill level and work it to death. Many of the best developers I know took degrees in something other than CS. And knowing another field will give you a richer knowledge base to draw on. Anyone can learn to develop good software regardless of education. It is about creativity, intelligence and drive. Not the degree.
Respond to some craigslist ads until you get your first website development contract. Pick one that has a moderately relaxed schedule, and is fairly simple – within your current capabilities or slightly beyond. Only charge a nominal amount; you're not a professional yet. Then read everything pertinent at w3schools.com, and make that website! Focus on completing the contract (that's the hard part), and you'll pick up some very valuable knowledge along the way. Then do the next one.
In the meantime, keep studying computer science. It's more valuable in web development than you might imagine, especially if you get into anything truly innovative. And honestly, if you find that you hate contracting, it's better to find out while you've still got your educational backup plan.
I am in development and dont have a CS degree. I always wanted one, couldnt afford it. I have tried to do as much studying on my own and recently tried to do Coursera to learn more. Trust me it does help to have that knowledge whether its via a academic program or self-study. I doubt you will have the time or inclination to do self-study once you are out there in the rat race. So dont miss this opportunity!