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
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.
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.
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.
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 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.
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.
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. :)
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!
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.
Agreed, if all you want to do is be a web developer, a CS degree is not going to get you there any faster than if you did self-study or got an associates degree in programming from a community college. If you see your CS classes as a waste of time and not getting you closer to your goals, then you're in the wrong major.
CS is not meant to prepare you to be a web developer or business application developer any more than mechanical or structural engineering prepares you to be a carpenter. If you want to be a carpenter, don't get an engineering degree. If you just want to be a programmer (and there's nothing wrong with that - it can be a lucrative career), don't get a CS degree.
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.
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.
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.
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.
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.
A CS degree does pigeon hole you, and you spelled pigeon wrong. A mechanical or aerospace engineer can learn to program and get a job programming, a CS degree will however not get you working on designing engines or aeronautical devices.
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.
How did this even make the frontpage of slashdot? This guy's an idiot. He thinks he's being left in the dust learning the fundamentals, but thinks learning a single application framework to develop web-pages with won't mean he's left in the dust when it goes away and he doesn't know the fundamentals well enough to transfer to different technology with all his skills in tact. The fundamentals mean when you go from one language to another you aren't starting from square one in any of them. The fundamentals mean in any given technology old or new you can reason about appropriate ways to do things without having to go read endless descriptions of idiomatic techniques for the language which you then use haphazardly because you have no reasoning skills to correctly compose them.
Seriously the dude who wrote this question just needs to hear: You're wrong. Just wrong. So wrong. Keep on keeping on because you don't see what value it has to you, but it's significantly more than you clearly have any idea. You're wrong, the end.
I have no degree, I had to study so bloody hard to get these fundamentals over so many years that I wish to death I had just got the stupid loans and done the stupid CS degree. I screwed the pooch and made up for it the hard way, don't make the same mistakes.
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
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...
I respectfully disagree. I think the career experiences you gain after university can take you in many different directions, and with CS especially you have options in many different fields (far more opportunity to move around from CS to something else than from Aero to CS). Straight out of college, the Aero or MechE degree isn't going to get you a job as a software engineer at Google or Facebook. It may get you a job "programming" somewhere obscure, but you're going to be hard pressed to find a top-tier employer hiring a software engineer these days with a person who is a recent graduate and who didn't do CS. (I also believe there's a difference between computer science, software engineering, and programming, but that's probably a long enough rant for a different post.) The computer scientist could easily get a job at Northrop or Boeing working on embedded control systems for aeronautical / space systems. If they build the systems that model these components and work closely enough in the field, perhaps that bleeds over into an actual aero design job, but to be frank I'd say the chance of that happening is about the same as someone with an aero or MechE background landing a job as a software engineer at a top-tier company. However, the CS person has a much wider swath of potential employers and industries than the Aero person.
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.
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.
This is pretty asinine... Sure someone with a CS degree isn't qualified to design engines or aeronautical devices, it would be scary if they were allowed to.
That said, a CS degree doesn't pigeon hole you any more than any other degree program. With a CS Degree you can go on to Systems Engineering, Software Architecture & Design, Software Engineering, IT, Software Team Management, Real Time Software (the stuff that gets embedded in Airplanes and such), any of the various aspects of Game Development, etc...
It's a VERY broad field... Pretending it isn't is just silly.
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 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/
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.
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).
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
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 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.
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.
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.
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
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!
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)...
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).
(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.
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.
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.
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 :)
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.
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