Techies Saying No To College
peter303 writes: "Todays NYTimes reports (annoying free subscription required) how many young men are skipping formal college to pursue high paying IT jobs.
Is this a wise move?" Every fall this debate comes back up. I enjoyed college, but I don't know how much of what it taught me will be relevant in my career. But should techies skip out?
I'm sorry to break it to you, but the Ithaca in Upstate New York is actually spelled "Ithaca". Ithica is a Greek isle.
Secondly, I am able to write a paragraph if I need to, but in the case of a slashdot post, it is not important. Slashdot is an imformal setting where it doesn't matter. The only people who seem to care are snobs like yourself.
Another factor in my decision (as mentioned above, if you actually _read_ what I had to say), was my uncertainty as to _what_ I wanted to study.
Well, I'm glad they taught you "how" to program. I took some Computer Science, and it was neat. I expose myself to a lot of different things, including art and literature. In a way I almost dread going to college for fear I'll end up with an obnoxious and condescending world view similar to the one you are so eloquently expressing.
As for knowing "how" to program, there are several ways to do that. Your method is certainly a valid and proven method, and I'm sure it has served you well. It is not, however, the only viable way to learn. By a combination of self-teaching from textbooks obtained at the local public library, tutoring, users groups, formal instruction, and on-the-job training I have learned quite a few languages, but more important than that is the underlying logical basis of programming that transcends languages, platforms, and paradigms.
Right now (if I were not on lunch break) my employer is paying me to learn as much as I can about Neural Nets, and has supplied me with as many books as I can go through to do so.
My points are in order of importance:
Try to be a little more accepting of other styles learning.
Your reply is dripping with contempt. All it does is go to show your own insecurity.
Don't be superficial. This is in informal forum. The fact that you were so eager to pick on my form distracted you from actually listening to the content.
That's all folks.
---
Play Six Pack Man. I
I also used to stay up late running a BBS, hacking, engaging in drawn-out philosophical discussions with friends, reading, and such in high school. In fact, I was probably much like you. I had started my own business in high school, and likely could have continued that full-time, or perhaps gotten a job as a programmer. I had a lot of contempt for higher education, and, like you, thought that since I was smart and motivated enough to learn a lot on my own, it would be a waste of money to attend University. Yet I chose to go that route anyway, did very well in first year, and have now become very academics-oriented, a side of me I did not know existed. I am now very happy with the path I chose for myself, and realize how completely misinformed I was previously. To think that I might have drudged through life, never knowing what I was missing out on makes me appreciate this experience much more.
It disappoints me to read these comments on Slashdot along the lines of "I'm smart, so I don't need a University education", or "a lot of University graduates are stupid, therefore a degree is useless", etc. In my experience, this notion is incredibly wrong. I think if you are smart, that's all the more reason to get a degree! It's not about learning to code, it's not about getting a piece of paper. Higher education is about enlightenment, appreciation, and thinking. If you are smart, you'll be a better thinkiner, and be able to better appreciate the field you are studying, leading to enlightenment. I think it's a crime to be too stubborn to take advantage of one's intellectual ability in this way -- you are cheating yourself. A large portion of the most brilliant people on this planet are to be found in academia. I have had the good fortune, through attending a well-respected institution, of being exposed to some of the most brilliant minds in mathematics and computer science. I sincerely doubt that there are many people that smart in the "real world", as such a truly bright individual would simply not be able to find satisfaction in an ordinary line of work. So this begs the question: if academia is good enough for them, why isn't it good enough for you?
Regrettably, I find it difficult to put into words precisely what I am getting out of my University education. I KNOW that when I graduate, my academic accomplishments will be meaningless and insignificant to anyone else in the real world. But I take great pride and interest in them anyway. I don't feel this is born out of any psychological need to justify my chosen path. I actually disliked my first two years of University, and thought it was largely a waste of time (except for the social aspects). Had I not attained top grades, I may even have dropped out. But now I've become more comfortable with the academic life, and am beginning to find the experience more enjoyable and more rewarding as I study my field in greater depth. In fact, I wish I didn't have to stop soon in order to graduate. But when I do graduate, I know that the PROCESS of getting a degree will have made me a better person -- I already see that.
P.S. if you go into mechanical or computer engineering, as I believe you said in another message in this thread, you likely will not experience what I'm talking about. At least at my University, the engineering programs tend to be too practical, and in particular, lacking in intellectual content. You will study a broad range of subjects, but never in much depth. In my opinion, to truly get the most out of a University education, one must study some kind of art, such as philosophy or mathematics (which I would consider more of an art than a science, and computer science is essentially a branch of mathematics). I know several extremely intelligent people who have started in engineering programs, and virtually all of them have hated it. Some are struggling through and not getting much out of their university experience, whereas others have transferred to other programs and begun to enjoy it more. Engineering programs are great if you want to get a job or learn practical things, and you certainly do learn interesting things, but they are definitely not for everyone, particularly those looking to be challenged intellectually.
To return to your point, I did not get any offers of entrance scholarships either. MIT was certainly not an option. Yet I managed to put together pretty decent grades in high school, and be admitted to a University that is highly respected in its own right. Since then, I have been awarded a couple of upper year scholarships, which I didn't need because co-op jobs covered all my expenses anyway. Seriously, it sounds like you're just looking for excuses. There ARE options other than Harvard you realize, and if you have the skills to get a decent tech job right out of high school, then you certainly have the means to cover all of your school-related expenses by working during the summers. The bottom line, is that it's worth it. I would have made hundreds of thousands of dollars by now had I not attended University, but I have no regrets.
I think it's fair to say that most of us geeks are much in need of college. Knowing a few languages hardly means that one's education can safely grind to a halt. I mean, if all you want to do for the remainder of your life is a little Perl and SQL, that's cool, but that's really not a great approach.
;)
I think that there's a big difference between "saying no to college" for now, and "saying no" for good. I'm skipping it for now. There's too much gold to be mined in the tech industry for me to hold off right now. I'm sure that lots of others feel the same. Anybody that says that there's absolutely nothing to be learned from college is a liar or a fool.
However, there are plenty of geeks here that learned little or nothing in college. And that's quite possible. But you could learn things if you went back and re-focused your work.
I still think that going to college for the purpose of furthering your programming knowledge borders oon foolish. Again -- possible, but generally unlikely. Some people float through their teenage years, and don't really focus until college. I like to think that I had a hell of a productive time in high school. I did more in those four years than most people do in high school, college and grad school combined.
Does this mean that I don't need college? Hell no. I want to major in everything, learn everything that they have to teach, and die at 99 with a dozen degrees. But right now I shouldn't be in college, as I'm sure that many of you aren't for the same reasons. There's too much life to live, tech will change too much in the next four years while you're pursuing that philosophy major.
Or maybe mwarps was right when he wrote of me (well, flamed):
Anybody with ½ a brain, and even two nanoseconds of a real college education knows this guy is full of crap either because he's completely moronic, or hasn't been to a real school.
His picture looks like he spends his time sitting in front of a sticky keyboard looking at alt.binaries.erotica.* and 'coding' HTML. Another fine candidate for the "Why Couldn't Social Darwinism Take This One" award.
But really... If you seriously think you're going to get anywhere significant in this world, without that piece of paper, you're going to end up nothing but a bench-drone or a tech somewhere useless, fixing a useless piece of hardware, broken by a worthless collegeless geek, just like you.
I'm not so personally insulted by this as I am by the implication that all of us that aren't in college are "worthless" to the world, and would be better off dead.
But what do I know? I've never been to college.
-Waldo
-------------------
Bad move... I'm working full time while going to college, and I'm paid less than people who have less experience. Why? Because they have a degree, I don't. Who will be the first one out if layoffs hit? Me, even though I'm the best at what I do here. Besides, college, getting away from home, interacting with other classmates, dorming, etc. are all things everyone should experience for at least a year or two. I got handed my first issue of 2600, got into medieval re-creation, introduced to Japanese animation, experimented with overclocking, learned to live on a $5 a week food budget, and learned a great deal about women at college. Although I'm anxious to graduate, and classes are driving me crazy, I wouldn't have given up this experience for the world.
"Evil beware: I'm armed to the teeth and packing a hampster!"
Lex orandi, lex credendi.
Mike said that he would be more than happy to bring me on full-time, and made an additional offer. He told me that he would pay 100% of my university tuition costs if I wanted to keep taking courses at the university. If I only managed a C grade, he would pay %50 and for a D or less I was on my own.
More high tech companies need to consider making offers like this to their employees. Educational institutions cannot keep up with the high-tech market - it is simply impossible to teach the teachers while they themselves are busy teaching their students.
I don't know about other "nerds" but taking random courses that I am interested in paid for by the company I work for seems a lot more appealing than going through someone's idea of the perfect high-tech ciriculum. All you prove in the end is that you've learned how to memorize.
I am not interested in articles about life extension advancements.
In the united states at least there is a decent segment of the population (mostly working class families) that are above the level where they can get financial aid, and way below the level where they could afford to pay for school on their own without taking on unmanagable amounts of debt.
This comes in part from reigional differences in wages and cost of living. Where I grew up (and still live (working as a programmer)) in Ithaca, NY there are a sufficient number of college students that have come for the ivy league experience at Cornell that they raise the cost of living quite a bit, and then there are also grad students that are starving enough to build a nuke, program the next greatest software suite, run your network, etc... for $8/hour. A small (less than 15' x 15' ) studio apartment in a lousy neighborhood (across the street from a crackhouse actually) is $350/month. I got lucky and snagged a tech job by knowing the right people and being in the right place, and after 4 years i've worked my way up to 36k/year as a consultant...
In any case, i decided to put off college indefinitely because i couldn't afford it, neither could my parents, and i wasn't ready enough to pick a field to go into, since i'd pretty much be locked in after i finished until i could pay off a massive (probably $50-100k loan)... with the constantly shifting future of the tech industry it is hard to pick a feild to go into that is both interresting, having new developments, and is going to be able to provide you with a job 4-6 years later and ofr long enough to pay off a loan.
My reasoning for not going to college right after high school was more born of a pragmatic evaltuation of my options, with many options and not very many known variables, i took the one which gave me the least chance of making a catastrophic mistike. For me this was to settle into a 9-5er until i could either afford to go to college (and had a good idea of what i wanted to go for...), or until i found a neat enough and stable enough job not to care.
As it is now, after passing the 4 year experience mark i've had a lot more offers for work (and good stuff too) than i can take, so i'm okay for the moment.
I guess i just wanted to be a voice for people who didn't go to school, because i've seen a lot of people putting that decision down as irresponsible, impatient, or just poorly though out. I'm seeing a lot of people writing off the non-degreed people as a bunch of idiots, which i think is a particularly narrow view. A good portion of the programmers i know have taken a similar path, and most of them have been successful. Several have found their calling and gone to school, several have saved up and bought or build houses and settled down in the community, and several of the younger ones (me included) are still feeling things out.
---
Play Six Pack Man. I
I'm all about continuing education, but folks have to remember that learning for the joy of learning doesn't have to take place in the classroom...
Having taught at a top-10 university in CS (I taught a physics course the CS program used as a "weed out" course), I would have to add "...and if you don't get any joy out of learning material that isn't directly related to coding for cash, if the only compelling reason for your being in college is to make making money easier, then go out and do it. Don't waste your time with college."
As an anecdote of no statistical relavence, two of my former students who received this advice from me and acted on it (they were intending to do this anyway--I just reiterated their convictions) are very happy with their decisions. They both plan to go back to school when they are good and ready--30-somethings make better "nontraditional" students than 90-hour-workweek IT slaves anyway, IMO.
YMMV and all that.
I'm about to spew off on my views about education and how it is very much misunderstood, thus, condemned on traits that are not really applicable to it. Update: I basically stick to CompSci and Programming. I didn't get to the College/University paradigm...
Firstly, people tend to not quite understand the difference between the fields of programming and computer science. They are not the same thing. A computer scientist has a ciriculum rooted mostly in theory and discrete mathematics. Programmers, conversely, deal in a much more pragmatic atmosphere. It's theory vs. the practical.
Computer science is mostly concerned with computation in a general sense (asymptotic analysis, formal langauges, automata, etc.). These, on their own, do not stem from programming. They do, however, enhance it. A computer scienctist can live without programming (usually, they don't...) but a programmer sure can't live without computer science. I'm sure people can tell a programmer who doesn't understand the notion of a time complexity analysis or data structures. They probably suck.
Programmers are concerned with actually getting some tangible system up and running. In other words, they have real jobs =). Many more esthestic issues arise in programming. Style, modularity of code, etc.
They tend to collide in the world of software engineering. Whether this is an engineering discipline or a computer science one is still up in the air. Suffice is to say, it uses the theoretical and some time-tested practices to achieve it's goals. It is much more practical than computer science.
Now, here comes the real problem: people tend to not know what field they are in. They misuse the terms. Also, those who go to school tend to find that it is not what what they thought, mostly because of the misunderstanding and gross misuse of the terms. I find those who want to program do this the most. They can't understand why they have to use something that they see no use for. Often, this is a mix of short-sightedness and bad instruction. As soon as some math-oriented theory creeps in, a large chunk of people say "This is stupid". When you have to program in a language you don't see as useful (e.g., Scheme), they say "This is never used in the real world". Perhaps you should stop and think - what is the point to the course I am enrolled in? In the class I had that used Scheme, it wasn't to learn Scheme outright, but rather to grasp concepts in programming languages that Scheme demonstrates more clearly.
Think about this: how in the world would you tailor an education system to meet the expectations of everyone who used it? You probably can't. What is important to realize is that even if some of the course doesn't seem useful, there probably is - you just need to look deeper. That's a sign of a good student as well. Getting more out than what is put in. Following the implications.
However, after extolling the virtues of education, I should note that it is not for everybody. Assess what you need and don't go just becuase you are supposed to. However, don't put it down as wasteful because I can guarentee you many people down the road will say "I'm glad I took that."
This post got a little off track and has to be cut short due to time, but I think I (sorta) got my point across =).
Woz
"Education is what remains after what has been learned has been forgot". Certs and working knowlege are time limited. The education I'm getting at University is timeless. Sure that "Physics of Semi-conductors" class may not apply to my sys damin job, but figuring out complex realtionships between properties of physics definatly helps the overall thinking process.
This summer I worked at a .com and got stock. This is good considereing I'm making a lot on it. However I did consider moving to California to take a tech job. I decided against it. College is good. Girls and parties are fun. Working in a (nearly) all male office over the summer gave me a new appreciation for the other sex. But i made the decision because I LIKE LEARNING ABOUT PROGRMAMING. Sure I'm a decent programmer right now but there's no way I could... say... impliment an operating system with TCP/IP from scratch right now. Also, I'm interested in grad school. I think that if I can come up with an interesting idea in grad school I can make my .com million$ rather than my current .com thousand$.
Anyway, that was not the point of my original post, just some context for my school's philosophy.
--Ben
We almost hired a very bright young programmer who hadn't gone to college. He scored VERY high on the BrainBrench.com C and C++ skills tests, and had other good credentials.
I asked him to provide some example code for me to look at, and he gave me a a short example where he had to optimize a C++ program that did a string rewrite (ie. convert character "A" into "BC", etc.) for a specified number of times. He precomputed the translation once, and gave up there, not realizing that he had taken steps toward moving from a O(N) algorithm to an O(N lg N) algorithm.
It was clear that he had never been drilled in recognizing certain algorithmic patterns, and thus his optimizations employed many language speed up tricks to make C++ faster, but largely ignored using a simple but better algorithm to improve the speed. I rewrote it to use the better algorithm (compute string replacements for levels 2, 4, 8, etc., when needed, rather than 1-N) and eliminate the repeated string copy (by rewriting front to back, then back to front, in a single buffer), and beat his "optimized" version.
In short, while he was great with language skills, particularly w/ C++, he had a lot to learn about algorithms in general, which is the kind of formalism that a university will drill you in, and which is very helpful. For the type of numerical and graphical software development we are doing, it is almost critical.
Still, we would have hired him anyway, but he decided to work elsewhere. Language skills alone made him quite valuable to many employers. But for someone who seemed as talented and bright as he was, he could really achieve much more.
"It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
That is actually very insightful, if not a tad idealistic.
Most young men "skipping" college dont have the first damn clue what the hell they are doing. A good number of people right out of college still barely have much of an idea.
I have had very little college and right now it does "work for me". I have been programming professionally about two years (I am only 20) and I love it, I get tons of actual real world practice and when tough situations come up I have enough knowledge of theory to formally handle the problem. It may take me just a little more time than someone who is practiced at say writing a spell checker.
But the first time you do any kind of transition from "Theory to Practice" OR "Practice to Theory" where you see the need for something you are not familiar with working with or you are doing something that you are not familiar with actually doing but you know the dry theory of 'how' something should work down pat.
Its a trade-off the problems come in when people who skip the college part dont really know enough, then your career is in very serious danger and the only implications in your future are going back to school if you cant actually do the work
Does a college education garauntee you can make it as a programmer? No.
It does show and prove to any potential employer that you have made it through four years of training and you should be able to make it through the transition of Theory to Practice, its just more learning.
What do I have to show that I can adapt and learn other than raw experience without a degree? All I have is my resume listing all of the work I have done and if that is not enough to prove to an employer I can adapt then they will hire someone with a degree who has a better chance of making it.
With a degree I would say as a developer with a few years of experience the possibilities for you are very endless.
I do kind of have a central point, neither way is the wrong way IMO, its just harder to actually make it without the degree everyone knows that but the most obvious things tend to be overlooked
Now thats not relevant to what this poster was saying which is without a education that is equally wide in knowledge not just programming you cant truly understand what missing your education means to you.
Since I have had about a year of college it really *does* change the way you think, maybe not about programming but about people and everything else in your life (at least for some people)
The year I spent in college inspired me to get the heck out and work for a while but I know that the degree will enhance me as a person beyond what most people without a degree ever really push for..
Its great that you can program in every known assembler to man and you make 90K / year but what if you cant do something really simple like write a well formed document describing your work?
Jeremy
- Communication skills - most high schools, even good ones, seem to avoid this, and though they offer the standard college-prep course, it's laughable (Let's analyze works of fiction, instead!). In my school back in the 80s, parents would call up teachers and complain that their children had too much schoolwork (HA!) and the first thing would be dropped would be essays and papers. Even a decent college education will tell you how to present ideas appropriately for both formal and personal communication, and this is NOT a skill that can be easily picked up by programming -- you need to have the critiquing that completes this. And given that code should be 50% comments, I'd think this is highly necessary.
- Teamwork - I hate it too, as I was always an individual learner, but you have to be able to work in a team in today's society. While the way many OSS projects are run are like that, you sometimes don't have the choice of who's on board your team, and you have to work with them personally, thus the group assignments they give in college are very necessary.
- Responsibility - College is odd - you go typically from an envirnoment that you don't control (due to parents, teachers, etc), to one where you have nearly full control. Many students have problems adjusting to this, as seen by freshmen dropout rates, the Freshmen 15, and how many go running back home to find part-time jobs to pay for extras that they initially thought they could afford. However, after 4 years of this, most learn how to handle their time and money to be able to do well in classes and still enjoy themselves. Showing this type of responsibility can be impressive to a potental boss, knowing that you know how to manage time and resources. Many (not all) high school kids can do that.
Those are just a few, I strongly believe there is more. And there are cases where skipping college may certainly be justified, but that doesn't work for 99% of those going into IT out there.But with colleges now aiming towards 5 yr programs, costing more and more, and the fact that IMO computer science/eng training tends to be about 3 years behind the rest of the world and focuses too much on specific aspects instead of a general feel for it, suggests that those that doubt the need for college will feel justified in skipping, and may or may not succeed later in life. It would be nice for companies that do actively hire students out of high school to provide tuition credit for night classes or online degrees, if only to help train their employee better.
"Pinky, you've left the lens cap of your mind on again." - P&TB
"I can see my house from here!" - ST:
RANT
Everyone who says that going to college is falling behind in the field is adding to my growing list of reasons to bring back clinical lobotomies. Pure and simple.
They think that learning to hack out a shopping cart is what CS is about. Sure, they can learn that without college. They probably learned to do all these things from ``Teach Yourself Perl in 24 Hours'' or some other shit book.
This sentiment infuriates me. They think they're not going to learn anything by going to college... Okay, then, these 37331 boyz know how to write CGI scripts. It'll land them their dream $70K webmaster jobs. Now, maybe they could explain to me briefly Turing's Halting Theorem and present an informal proof in a paragraph or less. Or maybe explain the Knuth-Morris-Pratt string matching algorithm and present a proof of correctness. Or... how about implementing user-level multithreading with continuations and briefly explaining what basic problems need to be overcome once the basic operators (fork et al.) are implemented.
These people can't do those things, whereas a college undergrad could, probably starting around sophomore year. And guess what, that college kid knows more about better coding and theoretical CS than the high-school dropouts ever will. College educations make for much better programmers, even if graduates do not choose to become computer scientists per se. Having a college education is not about falling back by four years, it's about spending four years learning about how to be very very good at what you do.
Sadly, these 18-year old high school kids are probably more likely to get hired than a 23-year old college graduate for some jobs. The reasons are that (1) they don't need to be paid as much, and (2) that they know all the latest buzzword languages (Java, C#, Delphi, etc.). The college kid will have the background to pick up this buzzword crap quickly, but will not necessarily have it on his resume. Very sadly, that makes a huge difference when it comes to hiring, though the college graduate will be doing a far better job simply because he will have learned e.g., good coding techniques.
Aside from these purely practical considerations, the kids who go from high school into the workforce are missing out on other things. Ever hear the phrase ``well-rounded?'' Well, I personally know of no more boring entity than someone who can only talk about computers. A college graduate will at least have been forced to learn something about art, history, literature, and science (other than CS). That makes for far better people.
Founder's Camp
Founder's Camp
News for non-Nerds. Stuff that matters.
I've always though what's important about school in general is not to memorize how to code, etc, but rather to learn how to work. Thinks like how to manage time effectively, how to get the job done even if you don't want to, how to effectively use available resources, how to ask for help, etc. These are things that do you a lot more good in the real world than a class on C...
It all comes down to what you know and how far you want to go. Without a degree upper management is pretty much out of reach. Some senior technical positions are out of reach. You basically have to go a lot farther to prove yourself to those around you, but once you do prove yourself, nobody cares if you do or don't have a degree.
There are companies that require degrees for decent jobs. Do some research into where you want to work. Do some research into if you want to work for such a narrow-minded company.
I've tried going to college 4 times. I have about 60 credits. Sure I want a degree eventually, but it's just not worth it at this point.
The worst part about college is paying thousands of dollars for classes where you occasionally know more about the subject (or at least the current state of the art) than the professor.
Make your own decision about college, nobody else really cares.
chris
-- I need more coffee. It's Monday. There is no such thing as enough coffee on a Monday.
(Apologies to Frater 219, for some reason I could not find a link to the individual post.)
What follows is a post that discussed this very issue over a year ago. I took it to heart and have enjoyed college ever since. It has opened my eyes up to a whole new world, one I would have never seen if I'd kept my nose buried in a keyboard. People should not go to college just to help them start a career. They should go to college to learn about life.
---------------------------------------------
---------------------------------------------
Geeks, go to college. (Score:5)
by Frater 219 on Monday April 12, @01:05PM EDT
(User Info) http://
Don't go to college to learn to be a better geek. Academic computer science won't turn you into a system administrator, Web designer, or Perl hacker. You won't learn how to optimize a kernel configuration, recover files from a crashed disk, build a fast database, or tell your boss nicely that his ideas about information technology are stupid or violate the laws of physics. You may learn a lot of good theory -- but you could pick that up elsewhere, too.
Go to college to learn about culture, or history, or philosophy, or literature. Go to college to sit up late nights screaming at your best friends about what an idiot Rene Descartes was. Go to college to watch your best friends do the Rocky Horror Picture Show. Go to college to find out what the hell this postmodernism thing is that Larry Wall's always on about. Go to college to refute postmodernism, and to be called postmodern for doing it. Go to college to meet people who will be impressed with your intelligence instead of thinking of it as threatening.
Don't go to an easy college, and don't go to a place that lets you get by doing nothing but technical stuff. Go to a place that makes you do a lot of heavy reading and writing. Take tough courses. Learn to write well; not only will it help when your boss asks you to document your project, but it'll also help you sound better on Slashdot and USENET. Don't scorn "well-roundedness" or "communications skills"; the stars of geek culture are no bunch of illiterates.
Study music. Music, as Pythagoras demonstrated, is a form of mathematics, and musicians, like hackers, keep pounding on their work in search of the Right Thing. Study psychology and sociology. They represent our attempts to figure out how the systems called the human mind and human society work, so that we can make them work better.
Read Nietzsche. Refute your parents' religion. Then refute your refutation.
Get into politics. Which politics don't really matter -- be a socialist, or a libertarian, or even a Republican if you have to. Go to activist events. Take politics courses. Insist on bringing up free software in the middle of your classes. Derive the Debian Free Software Guidelines from the works of John Locke.
Go not unto/. for advice, for you will be told both yea and nay (but have nothing to do with the question)
academia is where a lot of GPL software comes from! What would we freeloaders do w/o college students sharing their homework with us??
try { do() || do_not(); } catch (JediException err) { yoda(err); }
I agree those things need to be learned, but I disagree that going to college is the place to learn them.
College doesn't prepare you for the working world. Every college student/grad that I know is grossly unprepared to the rigors of daily corporate life.
What prepares people for work and teaches them time management, how to ask for help, responsibility for ones actions etc. is work. The more jobs you have the more you learn about how to work. I think that starting in an entry level position and learn form the people who are there. They have a lot to teach people who are interested in learning.
Aside from that getting a college degree is important to some people, and sometimes is very important to getting a job. Not all places will hire people without degrees. I know in my office there are a handful of people working in the MIS department without degrees, and most of them have some heavy experience instead.
If you don't live in the US and would like to move there to work having a degree is almost a must. A 2 year diploma from a community college is acceptable with 2-3 years of experience. If you want an H1B (3 year) though, you either need hefty experience, or a degree.
Phil
I found college fun, and it was a good way for me to hook up with some job experience in computers. But other than that, it was a waste of money. I didn't graduate because I got hired before I graduated and the company that hired me didn't care. Most IT places are looking for people with experience and brains anyway. Just because you have a college degree or any other kind of certification doesn't mean you know jack shit.
My brother just took one of those 6 month crash course Oracle/VB/Powerbuilder thing that says they have a 99% placement rate. He doesn't have any real job experience in IT, and no one will hire him because of that. Crash course certs are usually useless anyway, but it does go to show that most place want experience above anything else.
Need Free Juniper/NetScreen Support? JuniperForum
A long-standing professor once shared his opinion with me that a college degree didn't mean that you were trained in a certain profession or pursuit, but that you were trainable.
Not sure if I 100% agree with him, but when I look to hire someone, I really can see the difference between somebody who pursued advanced education and someone who didn't. That's not the only criteria of course, but college courses add a good dose of structured learning that high school just doesn't do.
From an AI point of view, it's like comparing a procedural solution to a neural net: the procedural solution has a better chance of reflection, of telling you HOW they got to a certain conclusion.
[
Algorithms and big-O notation
When, how and why to normalize a database
Compiler theory, parsing and grammers
How to elicit a requirements document from a customer
Various software development models from Waterfall to Spiral
How to write a design document for a 3 tier project including UML diagrams, Entity-Relationship diagrams and architectural diagrams
How to work well with others (numerous team projects)
Time management skills
Distributed computing (CORBA/DCOM/Java-RMI)
How hardware works down to the most miniscule level
The above list is stuff I have learned in 3 years of college that I am very sure I would not have learned if I rushed off into industry to become some C++ developer.
Ask yourself this question, how far do people without college degrees go in industry? Besides the prodigies who create their own companies (e.g. Shawn Fanning, Bill Gates, etc) most people who rush into industry will spend their lives as code monkeys instead of software engineers. Companies rarely high school/college dropouts project managers or lead developers and when they do that is usually their glass ceiling.
Frankly my time in college has given me a larger skill set and more knowledge than if I was just cranking out C++ for some company for the past 2 years. This means I am more valuable as an employee and more able to set my own career path unlike a high school graduate who knows how to hack C/C++/Java but not how to engineer projects or exactly how and why certain things work.
Last time we discussed this was in January of '99, when we all argued over the relative merits of my existence. (One of the more nerve-wracking experiences I've ever had.) Adam Penenberg (who has since quit after Forbes wanted him to expose a source in a hacking story) did a story on me called "Quit School. Join the web." I guess I'm a better example now -- I've got my own company that's actually doing very well. So I guess you can still chalk me up as an advocate of "joining the web."
-Waldo
-------------------
And how many of them will know anything about philosophy, or psychology, or history, or any of the other things that a higher education can offer? College isn't just about job training, it's about expanding your mind and your knowledge, of discovering areas that you didn't know existed.
Most of the managers I've worked for, the good ones at any rate, preferred to hire software engineers who had degrees in subjects other than Computer Science, because they knew that they would bring a richer mix of experience and creativity to their work.
--meredith
Sometimes a scream is better than a thesis
As a student who is just beginning his Freshman year in CS at Cornell, I have to admit that this was a question that I had to consider over the past year and will probably grapple with all four years of college. Each month, when I write a check to make the monthly tuition payment, I wonder whether I would be better off earning about 2 1/2 - 3 times more each month than I am currently giving away. And each month I come to the same conclusion--no.
While most of what you learn in college will not in any way relate to your future career, the people you meet and the experiences you have will be carried with you the rest of your life. If you always dreamed of working in a shared office space as a UNIX sysadmin, then maybe college is not for you--but, if you have ever wanted to start your own business or do high-level research in CS, then there is no better place to be than a major university.
In college, classes only occupy a small portion of your day. Unlike work in an IT department, which we leave you drained and too tired to really do meaningful independent work, college will leave you with plenty of time to pursue whatever you want. If you have any aspirations or career goals that extend beyond IT, then you can use the extra time that you have in college to get a leg up. For instance, I want to develop my own web network; where will I be better able to begin--working 40+ hour weeks for an established company or in my bountiful free time at college (especially considering that there is nothing else to do in Ithaca). If I acheive my objectives and reach a point where I would be better served by dropping out, I have no qualms about doing so. Remember, it is easier to drop out of a good college after getting in than it is to reapply to a BS program after going directly to work.
For those who aspire to nothing more than the IT life, go ahead, college has little to offer you. But if you would like to meet smart people, learn interesting things, and get a leg up on a future career in your free time, then give college a chance. I think Bill Gates answered this question best when he said that college is an excellent option that should only be dismissed in favor of the opportunity of a lifetime. Take his advice if you ignore mine.
ByteMyCode.com: A Web 2.0 code sharing community.
You may never experience speeds so high elsewhere. Your poxy ADSL lines can't compare to a fight pipe. Of course you'll have to be up at around midnight to get it but there's nothing like downloading a redhat image at 600k+/s...
--Ben
*This is not to say that nuclear weapons were the wrong thing at the time but too many of the scientists involved weren't considering the outcome of their work.
I think that the vast majority of techies you see in the industry without a degree are because they are genuinely smart people. You never hear about the stupid tech who dropped out of college and is now working at McDonalds, because the fact that he's working at McDonalds removes him from the tech industry.
I spent most of the last 10 years in the video games industry, my responsibilities usually revolved around lead programmer of tools group, lead (3D) engine developer, and more recently lead developer of cross platform distributed systems for massively multiplayer. I'm currently ranked a "Programmer 4" in the industry HR vernacular, which is as senior as I can get without putting on a manager hat as CTO.
During this time I've participated in the hiring (and firing) of a decent number or people, and I've seen many more come and go. One of the more interesting things I've noticed over the years is the statistical signifigance of an observed inverse correlation between college experience and raw creativity for complex problems.
In the games industry, understanding the implementation and optimization details of Knuth-Morris-Pratt is useful only in the abstract. You must then understand how and where it is applicable, and know when to use Quicksort or merging presorted lists instead.
The level of design creativity needed, at larger and more complex system levels, quickly surpasses the mindset of most college trained programmers I've seen. They seem incredibly well prepared to calculate a good O() factor for an algorithm, but lack the more important ability to understand how to balance several algorithms whose O() terms are interdependant.
Most game programmers today are not "hackers" in the old school sense. Yes, the idiotic schedules force most to skip the formal prototyping stage (the prototype becomes the game almost invariably), but the design complexity and elegance signifigantly exceeds that of most catagories of software in use today. (This is an educated opinion, I've also worked in CAD/CAD/CAE, embedded systems, distributed networks, and avionics before getting bored and coming to games.)
Bottom line, your assertions about the ignorance of non-college educated programmers is true only for some subset of self-educated programmers. Yes, I would agree that many web site coders fit your description. But I know for a fact that in games, one of the most demanding programming carreers, _most_ of us (including myself) do not have degrees. Also, the more senior level the programmer, the less likely they are to have one.
By the way, most of the better game programmers continue to spend 1-4 hours a _day_ on pure and applied research. (What percentage of CS grads can say this?) My personal CS library is better than the community college I grew up near. Most of us continue to read confrence proceedings, and if we were patenting our innovations most of the senior programmers I know would have hundreds of actually non-obvious and unique inventions filed. (Instead we have an unwritten code that lets us continually steal them from each other once we see them on screen from a legitimately obtained demo.)
You would be surprised how well rounded some of us uneducated programmers are.
There may be quite a few "self-made intellectuals" out there, but nothing can replace the interchange that takes place within a community of learning. Communication skills are essential to good product (and personal) development, and college is the best choice for the vast majority of people to develop those skills. If there's one thing I regret about my college years, it's that I didn't indulge myself with more philosophy, history, or lit courses.
Community of learning? Oh, you mean the coffee house! I get it....
I mean really, I expemted eng 101 and went to lit 102, in that class I found out that the sophomores were no smarter than the freshmen, and just as few were able to hold a conversation for more than two minutes without mentioning getting drunk. I met exactly 2 people out of the 200 I had contact with that were on my level in any way. The classes were dull repetition of things I'd gone through countless times in high school. The occasional insight was marred by the fact that we had to halt the entire class while a dozen people had it explained to them. I went in to college with high hopes of encountering intellectuals, people interested in knowledge and learning, people able to discuss a vast range of topics. Instead I found that it was exactly like my senior year of highschool, only infinitely more expensive. When I go back, it will be simply to take the classes I want to get the degree I want. My general knowledge and interests will continue to be excersised outside of that area in places like Slashdot, and in group philosophy sessions with my the group of friends I've gradually acquired over the years who can keep up with me and occasionally surpass me.
Kintanon
Check out JoshJitsu.info for Brazilian Ji
It's not that obvious of course, it depends on the person. To me programming and system architecture are an art. I spend a lot of time working with clients trying to find the right software architecture to match their organizational needs, or trying to match their security requirements to what their corporate culture will bear. From that standpoint, I don't regret my BA in Anthropology at all. College taught me how to learn, Anthropology (and Psych) taught me about cultures and personalities. And since software is typically designed for *people*, that background is very helpful.
I've known great CS majors (my wife has a masters in CS). But with one exception, the best programmers and architects I know were dropouts or majors in completely different fields (Nuclear Physics, Philosophy...).
The key to college is learning how the world works. If you can pick up skills on your own, then don't bother with CS. If you feel more comfortable with formal learning, then by all means take it--but don't focus on it exclusively.
There was I niavely thinking it was about opening one's mind. You should study what fascinates you, not what's going to pay the most when you leave college, uh I mean university. It's no wonder there's so many ignorant college grads walking around, I can see the t-shirt now 'I want to college and all I got was this lousy job'.
First, excuse me while I LMAO and make a note to myself to start marketing these shirts on college campuses everywhere.
I used to think that was what college was about too, but that's one of the hardest lessons that I learned while getting my degree. It's about getting the piece of paper so you can get your foot in the door. If you're lucky, you learn a lot about yourself and about how the world works in a relatively safe environment. At my alma mater, they seem to be more caught up in their own finances (and they're a public university). The education was just meeting their end of the agreement, but it was clear that their heart wasn't in it (with the exception of a few individual professors). It's quite sad. I guess it comes from a college degree being the status quo. Nowadays, the average college student is just an average person of average intellegence. When universities deal with that kind of quantity, what's their incentive to create a challenging curriculum for the above average student?
This has gotten me thinking recently that this mediocrity has seeped into the tech industry. It has become a popular career choice, encouraged by schools and government (in the U.S. at least). Back before it was popular, most of the programmers out there were folks who got into it in spite of how unpopular it was. Now, I am underwhelmed by so much of the programming talent that I see. Of course, there are still many traditional geeks, but they're so much harder to find when they're standing in a crowd of people who got into programming for all of the wrong reasons.
Even worse, I've noticed that the CS curriculums seem to be dumbing down a bit to accomodate this new breed of programmer. For example, teaching Java as Programming I, without bothering to teach object oriented thinking and skipping over many of the useful basics like trees and linked lists. What's next? Drop assembly because it's too hard and nobody uses it anyway? (For those who are sarcasm-impaired, I realize that all programmers should be exposed to at least a little assembly or machine code, if for no other reason than to give you a real understanding of what is happening when your code executes. And yes, I know assembly for various archetectures is still used.)
-Jennifer