Do you need a college education to be a programmer?
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
I joined the military back in 1995 as a programmer. I've always wanted to, but never had the time to get my degree, so I'm all experience. I think you at least have to have real world experience or a degree to get a job nowadays.
-
There's a lot of benefits to a structured education that you wouldn't get with an apprenticeship. One perfect example, we have a certain person in our company who writes at the third grade level, should have probably been forced to take more english/technical writing courses. Not that taking the courses will guarantee you'll be better at anything, but it'll give you a chance at becoming more well rounded.
Hi Albert, Your point is well taken. I agree that one can get something a bit intangible from attending college (irrespective of the course of study). Perhaps its a little more humility in the face of the vast amount of knowledge that you (might) get exposed to in college? Curing the sophomoric attitude that comes from the first sense of having it all figured out? Really, makes one a more pleasant person to be around :). Following this line of thinking, maybe it's the 4 years of thinking that matters, not so much that it was thinking about computer programming.
Tom Clement Serena Software, Inc. www.serena.com articles[^]
-
Getting into IT now? You'd have to be very lucky to get a job without a degree these days but then that's probably true for most skilled jobs. When I started? No, a degree was not necessary.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me
Yep, I agree that that is the reality of things now. My question isn't about the practical requirements as they exist, but more a call for pondering whether other ways of training people should be part of the mix.
Tom Clement Serena Software, Inc. www.serena.com articles[^]
-
My belief is that most degrees are not required for their 'applicable' job. Often I have seen people with degrees and have totally different roles. This does not mean they are not 'using' their degree though (sometimes that is the case... Getting a job at Wally land after graduating for example). It seems that for the most part a degree says that the person is teachable. It does not say they know how to do XYZ. That is experience. Apprenticeships accomplish it. But so do internships. And so does hard work after school. While an apprentiship may show the person is teachable, that person has now locked into that field or specific study. Were they studying under a .Net Guru or a Java expert? Were they working with managed memory or native? Who was their study under and who did they themselves study under. Some bad habbits may come from that chain. A degree compensates and adjust for best practices. In addition it allows the receiver to dabble in other fields. Maybe it turns out they do not want to be a web developer but would rather be a project manager for web development. This is why degrees have significant breadth. Apprentiship offers great depth study, but at a cost.
Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet.
Very well put Collin. I think college is a way of growing in your way of thinking, your writing skills, your speaking skills, and your confidence in your ability to always find the answer. Should apprenticeship be part of the overall mix?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
What's a piece of paper got to do with it? You can either do the job or not. I've known a lot of programmers that couldn't program.
-
Very well put Collin. I think college is a way of growing in your way of thinking, your writing skills, your speaking skills, and your confidence in your ability to always find the answer. Should apprenticeship be part of the overall mix?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
It certainly wouldn't hurt. Some programs I have seen require internship (usually tech schools though)... Not much difference really but I think the expentance is slightly different. For the individual it has advantages for people to "try out" before signing on the dotted line. For the employer they also get to "try out" the individual to see if they are a cultural fit and if they meet the real job requirements. It also would get the student to take that leap (talking to companies etc.) and still have the saftey net of school (hmmm that really wasn't for me, I think I will start a slightly different path). However making it part of the mix though would be against the university system which in away already has an Apprentiship type system in place. Get your degree Find a Professor to study under Be his lacky (TA, Reasearch Papers etc.) Study for MS Study for Ph.D Become Associate Professor Kiss the Deans butt for years Become a tenured Professor Get your own lackies to Teach and write your papers So keeping this in mind most Universities would not want to 'require' it... Just offer it which they do with internship and Co-Op programs.
Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet.
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
From a technical standpoint it's still my contention after working professionally for 20 years that you don't need a college degree. Nothing I've seen from classes, course outlines, or actual graduates has shown me that a degree makes you a better programmer or prepares you for enterprise development. Apprenticeships would be a wonderful thing. In the meantime, junior development positions I think are a nice way to handle this. Otherwise, coding on your own and creating a portfolio has been a good way to get in the door for an interview when I'm the hiring manager. From an HR standpoint, and sadly, often you need a college degree just to get an interview.
No artists interprets nature as a lawyer interprets the truth.
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
I don't think my degree necessarily helped me other than get me interviews. As others have said HR uses the requirement of a degree as a means to whittle down the applicant list - I have tried applying for jobs where I was told that only "red brick" university degree applicants would be considered. It's all really about getting your foot in the door, once you have done that you have no need for a degree. I would be more interested in what someone can do rather than what they know - but that means diddly-squat if I never get to interview these kinds of people if the manager or HR have binned applications from non-degree holders...
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
-
Yoiks! Way to make me feel 2 feet tall, Roger! Elephanting hell, though, you do have a point though I think it diminishes with time and experience; in other words I'm vastly more knowledgeable now but, more importantly, I've learnt to value that I don't know everything so take extra care to cover all the bases and ask for input from as many sources as I can. Fortunately, nothing I work on is a safety critical function but I'd like to think that I bring the same rigor to my craft as anyone, regardless of formal qualifications. ps Close to finishing my comp science degree - you're never too old to learn!
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me
mark merrens wrote:
I've learnt to value that I don't know everything so take extra care
That's called wisdom, Mark. Some get it, some never do.
mark merrens wrote:
Close to finishing my comp science degree
Way cool! :-D I'm just getting started on my MS, myself, about 30 years late. Better late than never...
Will Rogers never met me.
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
College doesn't teach you to program. It teaches you to learn and to be disciplined.
Everything makes sense in someone's mind
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
-
I consider it an excellent idea. But that being said, there needs to be some sort of standard associated with a profession. In a sense, a college degree is a contract; it tells an employer that a candidate has shown competency in this and that area of knowledge. It doesn't guarantee that the individual is a good worker, or honest, or cares about doing quality work, but it does establish a level of expertise as a minimum. There's no reason that this can't be extended to apprenticeship, but without it I'd be cautious about what I hired a programmer to do. Would you want to entrust programming a safety-critical function to someone who is self taught and has no certain background? I've known a number of excellent engineers in my career who lacked an engineering degree. They were excellent at their jobs, since most engineers never need half the stuff they teach us. But what if a job came up that really required an in-depth understanding of physics, or a theoretical understanding of the limits of a technique that most pick up as a rule of thumb, along with general engineering judgement? I wouldn't want one of these guys in that position, especially if public safety was an issue. I've caught a number of serious errors before they've happened because of my degree, things overlooked or not adequately explored by engineers who lacked my education. I would be surprised if such things didn't happen regularly out there in the real world. Programming is a similarly demanding job - at times. Most of the time, though, it just requires a bit of reasoning skill, and a good understanding of a language or two, and a good set of requirements to program a task. Apprentices, and even completely self-taught individuals are entirely capable of doing most routine assignments. I think a set of skills that can be demonstrated via testing, or demonstration to other professionals - a review board, of sorts - would be perfectly acceptable way to train most programmers. Even the reviews people receive here at CodeProject I would consider in evaluating a programmer; we have some of the most skilled programmers on the planet here, and I'd bet that few of them have any formal programming degree. I like the idea! :)
Will Rogers never met me.
I have always said that the most useful thing I learned in my engineering degree was to analyse the problem and search on my own to find a solution. About all the things I saw in the lessons... I only use one or two, the rest was just to acquire personality ;)
Regards. -------- M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpfull answers is nice, but saying thanks can be even nicer.
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
Tom Clement wrote:
Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer?
Depends on what you mean. In general yes. Not because they are necessarily better for it but rather because of the following. 1. They are more likely to get an entry level job while in college and because they are in college (program associated with college) and thus can bumble their way to learning practical programming or perhaps even be mentored in to it. 2. Employers are more willing to accept graduates with less experience than non-graduates. However an individual who has the following can succeed. 1. Desire/Drive to program 2. Ability to program 3. Social skills sufficient to talk themselves into a programming job. Note that 1/2 say nothing about excelling in those. Also note that 3 is a skill that programming itself will not teach.
Tom Clement wrote:
you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Far as I am concerned when mentoring works it works really well. The novice is driven to please the senior and the senior must stretch outside their comfort zone to insure that the novice succeeds. I can't speak as to the programming industry in general but my perception is that companies that hire inexperienced developers often do so only as a source of cheap labor and either have no mentoring programs in place or do it in a way which doesn't provide benefit (to neither the novice nor the senior.)
-
There's a lot of benefits to a structured education that you wouldn't get with an apprenticeship. One perfect example, we have a certain person in our company who writes at the third grade level, should have probably been forced to take more english/technical writing courses. Not that taking the courses will guarantee you'll be better at anything, but it'll give you a chance at becoming more well rounded.
Albert Holguin wrote:
...but it'll give you a chance at becoming more well rounded.
And yet in 40+ years of programming I have never needed any knowledge about Shakespeare nor the Iliad. Nor how theoretical refrigerators work nor how to prove anything about Platonic solids. Oddly enough I also haven't seen any reputable university educational programs that actually seemed to produce either of the following 1. Significant number of graduates 2. "Good" programmers consistently. I have certainly seen educational systems that produced large numbers of graduates with 'degrees' that were basically useless. And their are institutions that seem to produce more qualified graduates on average compared to other institutions. But the percentage is not significant and I suspect it is the opportunities that such institutions provide rather than the actual teaching that produces better candidates.
-
I consider it an excellent idea. But that being said, there needs to be some sort of standard associated with a profession. In a sense, a college degree is a contract; it tells an employer that a candidate has shown competency in this and that area of knowledge. It doesn't guarantee that the individual is a good worker, or honest, or cares about doing quality work, but it does establish a level of expertise as a minimum. There's no reason that this can't be extended to apprenticeship, but without it I'd be cautious about what I hired a programmer to do. Would you want to entrust programming a safety-critical function to someone who is self taught and has no certain background? I've known a number of excellent engineers in my career who lacked an engineering degree. They were excellent at their jobs, since most engineers never need half the stuff they teach us. But what if a job came up that really required an in-depth understanding of physics, or a theoretical understanding of the limits of a technique that most pick up as a rule of thumb, along with general engineering judgement? I wouldn't want one of these guys in that position, especially if public safety was an issue. I've caught a number of serious errors before they've happened because of my degree, things overlooked or not adequately explored by engineers who lacked my education. I would be surprised if such things didn't happen regularly out there in the real world. Programming is a similarly demanding job - at times. Most of the time, though, it just requires a bit of reasoning skill, and a good understanding of a language or two, and a good set of requirements to program a task. Apprentices, and even completely self-taught individuals are entirely capable of doing most routine assignments. I think a set of skills that can be demonstrated via testing, or demonstration to other professionals - a review board, of sorts - would be perfectly acceptable way to train most programmers. Even the reviews people receive here at CodeProject I would consider in evaluating a programmer; we have some of the most skilled programmers on the planet here, and I'd bet that few of them have any formal programming degree. I like the idea! :)
Will Rogers never met me.
Roger Wright wrote:
...but it does establish a level of expertise as a minimum
Expertise at what exactly? Getting grades? A developer with no degree and 4 years of work experience will vastly outperform a person with a degree and no experience (as long as all other particulars are held constant.)
Roger Wright wrote:
But what if a job came up that really required an in-depth understanding of physics, or a theoretical understanding of the limits of a technique that most pick up as a rule of thumb, along with general engineering judgement?
That of course is domain knowledge. Just as domain knowledge is needed for jobs related to medicine/health, finance and telecommunications. And on average how many jobs exist in those sectors compared to the sectors that require the knowledge that you refer to?
-
mark merrens wrote:
I've learnt to value that I don't know everything so take extra care
That's called wisdom, Mark. Some get it, some never do.
mark merrens wrote:
Close to finishing my comp science degree
Way cool! :-D I'm just getting started on my MS, myself, about 30 years late. Better late than never...
Will Rogers never met me.
Roger Wright wrote:
Better late than never...
Good luck with that!
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
Well, Yes and No! When I went to University, this place had One Computer, occupying an entire building, costing Many millions of dollars, with the computer power of a Commodore64. the art those days was to have that expensive computer calculating constantly (No Idle Time allowed), and having hundreds of punch card terminals, Tape Banking Stations, and other quaint hardware pieces, a myrad of staff to work it al and make it sing. No-one was allowed in or even near that building without proper authorisation. I did my obliguatory projects there, but decided that there was no future in computers. I opted instead for pure mathematics, at the other end of the campus, where computers were totally distrusted, and got a degree there. Now the real value of the degree, apart from acquiring knowledge, is the skill of learning to analyse, discuss, and contemplate concepts. This is what I learned both in formal discussion groups, as well as in the pubs and clubs in evening time. Many years later, I acquired a Commodore 64, and armed with knowledge about how to approach a problem, I developed skills in programming it, first in basic, later in assembler. From there I moved on to learning 'C', 'C++' and got (More than)familiar with MFC. Many years later again, I am running a Company,with my Partner that provides POS terminals. This involves More than just Software development. It involves Marketing, Accounts, Personell Management, Cash Flow Analysis, None of which either of us ever studied at university. Now, for Startup Programmers, We give anyone a chance. Believe it or not, it takes less than three monthsto Seperate effective coders from non-effective ones. To be able to be promoted however, one has to be able to show leadership,and management skills. a Degree to us is a First indication that you spent 4 years with inteligent mates, discussing issues. No, on balance, get a degree in anything, it shows you can learn and understand. To me a Law degree, plus apparent computing skils is as good as an IT degree :)
Bram van Kampen
-
Very well put Collin. I think college is a way of growing in your way of thinking, your writing skills, your speaking skills, and your confidence in your ability to always find the answer. Should apprenticeship be part of the overall mix?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
Tom Clement wrote:
Should apprenticeship be part of the overall mix?
That is a great idea. For instance, you cannot graduate with an engineering degree from the University of Cincinnati without doing coop work. So, it takes 5 years rather than 4 to get your degree there. When I needed some programming help, I hired an intern from the local university (Colorado). A very bright and delightful girl worked for me, earned some money for her schooling and hopefully learnt what it meant to work with users rather thasn code a linked-list or bubble sort as part of her computer science education.
-
Roger Wright wrote:
...but it does establish a level of expertise as a minimum
Expertise at what exactly? Getting grades? A developer with no degree and 4 years of work experience will vastly outperform a person with a degree and no experience (as long as all other particulars are held constant.)
Roger Wright wrote:
But what if a job came up that really required an in-depth understanding of physics, or a theoretical understanding of the limits of a technique that most pick up as a rule of thumb, along with general engineering judgement?
That of course is domain knowledge. Just as domain knowledge is needed for jobs related to medicine/health, finance and telecommunications. And on average how many jobs exist in those sectors compared to the sectors that require the knowledge that you refer to?
Disclaimer #1: I didn't give you the 1-vote. Disclaimer #2: I have a B.S. degree in computer engineering: Wright State University class of 1984, go Raiders! I've found your type of contempt for formal education to be pretty common among long-time developers that don't have a degree. Your experience with college folks with little or no concrete work background is that they over-complicate things with fancy sh!t that fails to get the job done. This is made worse by the college kids themselves, who think their degree grants them superhuman powers and act like it. My experience with non-degreed developers is that they tend to have a narrower range of responses to a given problem. Through trial and error and a lot of hard work they've discovered a sheaf of approaches to the problems they encounter. It's the old "when you have a hammer, every problem is a nail" thing. Time is the great leveler. Once a developer has 15 or 20 years of experience, that background is much more important for deciding whether they are a good fit for a team than whether or not they have a college degree. I'm of the opinion you're still not worth a crap as a programmer when you graduate if you didn't work as one during school. I started working as a programmer in 1980, after only two programming classes. The company that hired me used me as slave labor on contract. I wrote FORTRAN, various assembly languages, and did system management and technical writing for a pile of customers by the time I graduated. My work experience was as valuable as my education.
Software Zen:
delete this;
-
What do you think: Does someone really need to rack up huge student debt and spend 4 or more years in dry college classes just to become a programmer? What about bringing back apprenticeship? Wouldn't it be great for you if you had some smart kid learning from you and helping you out for a few years? Wouldn't it be great for him or her? Here's an article discussing the apprenticeship movement: Let's bring back Apprenticeships[^] I went to college, then to law school. Then I quit that business, took a course in C programming, and made a career of it. I'm not the greatest programmer out there, but I can do the job. Are we investing our treasure wisely spending it on formal education (perhaps wasted in my case), when there are more direct ways of learning a profession. In Texas, where I got my law degree, you could be licensed to practice law based either on formal education or an apprenticeship with a lawyer. Is this such a bad idea?
Tom Clement Serena Software, Inc. www.serena.com articles[^]
What you need to learn depends on what you intend to achieve. Pure mechanical programming just requires common sense, an understanding of (boolean) logic, and a good book. However, if you want to write the most efficient cloud-computing libraries, juggle complex multithreaded applications, or develop new computer languages, then you pretty much have to know all those 'dry college classes'. Apprenticeship is probably a good middle ground. In switzerland there are IT apprenticeships, but they're more about IT infrastructure than programming. It's certainly possible to put a focus on programming and then get a job in that area though: knowing how to set up and fix your own PC is something specifically small companies appreciate.