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 am surprised no one has mentioned the $ factor, as in, pay. I worked at a company as a production manager where I found out that another guy, also a production manager, made $20000 more than me. I asked my boss what gives, who promptly told me that he had a degree whereas I didn't. Since that time I have found again and again that pieces of paper justify higher pay. I disagree with this premise, but it is what it is.
-
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.
One does not study Shakespeare for career prospects except, say, in creative writing or (likely theatrical) acting. Also, I daresay most programmers do not study the nuances of the Platonic solids, least of all at university-level. As it happens, some people choose to study a subject because they have an interest in it. Even if a graduate finds their degree to be of little help in finding a job, they will still have matured from several years of the student life. Further, I wouldn't gauge a university's effectiveness or reputation by its number of graduates, nor the quality of programmers it produces. As with all things, programming or otherwise, with a degree or a handful of GCSEs, an individual can find the right job for them if they look in the right places and apply themselves properly. If they are not the right candidate for the job, their choice of education + institute should not be condemned if they are rejected.
Sometimes a fist in the face says more than a thousand honeyed words.
-
Phil_Murray wrote:
Education skills != Real life programming ability
I agree, but usually graduates have a good foundation and get up to speed very fast on real world problems. I don't think they would have if they did not have a formal education.
"To alcohol! The cause of, and solution to, all of life's problems" - Homer Simpson "Our heads are round so our thoughts can change direction." ― Francis Picabia
Fabio Franco wrote:
I agree, but usually graduates have a good foundation and get up to speed very fast on real world problems.
I don't know about where your "graduates" come from but here those graduates always have "real world" expertise because they have already worked at real jobs. Now the fact that those jobs were acquired via a connection with the school doesn't alter the fact that the experience originated from the job and not the school.
-
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.
I had a college educated co-worker who couldn't code his way out of a paper bag. (Come to think of it, I haven't coded robots, so neither can I. :-D You should get what I meant. Making the bag wet would make getting out without ripping something, pretty hard too.) The advantage of college is that it gives the perception that you are smart. Reality can be quite removed from perception. Getting someone who is dumb as a post as an apprentice is no picnic either, so it can be perceived as a risk to take someone on. Other people swear by accredidation as the only way to take on employees, while people who have been in the business for a while are accepted easier.
-
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.
Mike Hankey wrote:
I've known a lot of programmers that couldn't program.
I'm lucky, I've only met one. I winced whenever I was assigned to team with him. In three man teams, for two of us, each would have to do 67% of the work needed to get the project finished and he'd provide 1%.
-
Mike Hankey wrote:
I've known a lot of programmers that couldn't program.
I'm lucky, I've only met one. I winced whenever I was assigned to team with him. In three man teams, for two of us, each would have to do 67% of the work needed to get the project finished and he'd provide 1%.
I've been on both sides of the fence but when I was a team leader I figured you are only as good as your worst programmer so I took the extra time to teach and coach and in the end it paid off.
VS2010/Atmel Studio 6.0 ToDo Manager Extension
Version 3.0 now available. -
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.
jeffreyhamby wrote:
No artists interprets nature as a lawyer interprets the truth.
That reminds me of Clinton's "What's the definition of 'is'"? :laugh: Spotting someone who could become a good programmer is a gift I don't have. Seeing a good programmer is different. It's a worthwhile endeavor to spend time to bring someone else up to speed, it's not worth spending time when the information you are giving is going straight out the other ear. One time, I was assigned to an indexing task. I knew the tech who would be talking to the customer didn't have the SQL background to explain what I was doing and I wouldn't be there to explain to the customer. In one case, I decided to drop an index. I knew the customer would demand to know why I was removing it. I explained to the tech what indexes did, how they worked, how two specific indexes were related, one was superior, the other inferior. Why I was dropping the better one. He thanked me for teaching him more about SQL in two days than he had ever learned in two years working in an operations group dedicated to maintaining SQL DBs. I wasn't trying to mentor him, I was trying to protect him from an unfair situation I was going to put him in. I also got to learn new things from him. I don't know if he would make a good programmer, but I have more hope for him than the 80% of the people in class going "huh?", when I thought the teacher had clearly expressed one of the simpler concepts in programming. Just today I read an article teaching about 0 and -0 in JavaScript. It was news to me that 1's and 2's compliment could co-exist on the same operating system. It was also obvious the author had never heard of 1's and 2's compliment, because he certainly messed up the binary representation of what's going on under the hood. (IE Beware of who is teaching what.)
-
I've been on both sides of the fence but when I was a team leader I figured you are only as good as your worst programmer so I took the extra time to teach and coach and in the end it paid off.
VS2010/Atmel Studio 6.0 ToDo Manager Extension
Version 3.0 now available. -
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 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 thought we had apprenticeships, but they are commonly called internships. This question is a hot-button for me today. I don't mean this to sound like a rant, but I am deeply frustrated. I used to work as a hardware engineer. I only had an Associate degree in Electronics tech at the time. I mostly created the position myself while working for a small company that had hired me to do electronics assembly. The company went public to raise money, I worked on several projects, some were strictly hardware, and some involved embedded programming on hardware that I designed (I ended up teaching myself assembly language programming before the first project was completed). I was also responsible for purchasing 90% of the electronic components, the associated inventory, and working with a few outside vendors i.e. machine shops. The company went through a downturn, and I was laid-off. I was repeatedly turned-down for engineering positions in the subsequent job search because of my degree, although my experience was never an issue. I ended up working as an engineer for a friend after that, but that only lasted a couple of years. Then someone approached me and asked if I could untangle some obsolete embedded controllers. He was trying to get started in refurbishing systems that had these controllers in them. The controllers happened to use componets I already knew how to program, and I worked on those for several years as an independent contractor. I also designed a few other controllers and built all the circuit boards in my basement for several years. However, I was till only just barely getting by, and frequently I wasn't getting by when my clients had poor sales. My sister persuaded me to return to school, and get a degree in something. Anything, she said, would make me "more employable". So, I spent a few years obtaining my BS in Computer Science. I graduated Aug 2001. Not a good time to graduate. The job fair on Sept 11th at school was a dud. The only internships were in accounting. After a few months, I enrolled in another university and I received my M.S. in Computer Science in May 2006. So far, and it is now 6 years later, I still haven't been hired! The new "internship program" at the university that was started my last semester there generated 8 internship positions for 50 students, and only 3 of those 8 were in software. The others were in civil engineering, of which I was obvioulsy not qualified for. So, I didn't get into any internships. I have tried to target entry-level po
-
I thought we had apprenticeships, but they are commonly called internships. This question is a hot-button for me today. I don't mean this to sound like a rant, but I am deeply frustrated. I used to work as a hardware engineer. I only had an Associate degree in Electronics tech at the time. I mostly created the position myself while working for a small company that had hired me to do electronics assembly. The company went public to raise money, I worked on several projects, some were strictly hardware, and some involved embedded programming on hardware that I designed (I ended up teaching myself assembly language programming before the first project was completed). I was also responsible for purchasing 90% of the electronic components, the associated inventory, and working with a few outside vendors i.e. machine shops. The company went through a downturn, and I was laid-off. I was repeatedly turned-down for engineering positions in the subsequent job search because of my degree, although my experience was never an issue. I ended up working as an engineer for a friend after that, but that only lasted a couple of years. Then someone approached me and asked if I could untangle some obsolete embedded controllers. He was trying to get started in refurbishing systems that had these controllers in them. The controllers happened to use componets I already knew how to program, and I worked on those for several years as an independent contractor. I also designed a few other controllers and built all the circuit boards in my basement for several years. However, I was till only just barely getting by, and frequently I wasn't getting by when my clients had poor sales. My sister persuaded me to return to school, and get a degree in something. Anything, she said, would make me "more employable". So, I spent a few years obtaining my BS in Computer Science. I graduated Aug 2001. Not a good time to graduate. The job fair on Sept 11th at school was a dud. The only internships were in accounting. After a few months, I enrolled in another university and I received my M.S. in Computer Science in May 2006. So far, and it is now 6 years later, I still haven't been hired! The new "internship program" at the university that was started my last semester there generated 8 internship positions for 50 students, and only 3 of those 8 were in software. The others were in civil engineering, of which I was obvioulsy not qualified for. So, I didn't get into any internships. I have tried to target entry-level po
No, I wouldn't say this sounds like a rant. It sounds to me like a legitimate expression of frustration at what appears to be an unfair situation. You seem smart and skilled. I sincerely feel for you. What I hear about the current hiring environment is that people with some specific skills (J2EE is at the top of the list) are getting multiple offers, and that generally, hiring is picking up. I really hope that's real and that it opens some doors for you. The other thing I'd suggest is that you find some people currently working in the field and ask if you could take them out to lunch (they'll probably buy ;)) for an informational interview. I've done that in past lives and learned a lot from it, not the least of which was (because I asked) what characteristics they look for in hiring, how my interpersonal skills affected them, and generally, how I could make myself into a more attractive candidate. Location is also really important, although it's not at all easy to change, especially on a prayer that you'll be luckier in the new location :(. Finally, when I think about the possibility that I'll be looking for a job at some point (and I deeply hope I won't), I find that I imagine myself in the interview referring to Code Project articles I've written. Something like the interviewer asks about code I've written and I describe some projects, but say that if they want to see specific code they can look at my articles[^]. Not to come across as a CP zealot, but if you can spend some time writing articles that are of general usefulness, it might be a real selling point for the skeptical potential employer. And from your post, it's clear you communicate well, and know how to write. In any case, I wish you the best of luck Steve.
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[^]
First you need to define the scope of a programmer! I started programming over 50 years ago - before people even knew how to spell "Computer Science". I had no degree, the country was in a recession and I had just got out of the Navy (I was an ET). The company that eventually hired me (to be a machine operator) gave me their aptitude tests, which I scored higher than 95% of the College graduates. The dept. manager that had an open slot decided he needed programmers more than an operator. He gave me the H/W manual and the accompanying Assemble Language manual and a few days to read them (plus the other indoctrination literature). He then handed me a program - pretty much completed, told me generally what it was expected to do and then asked me to look at it and explain it to him (which I did). After that I was classified as a "Programmer". At that time, the other "Programmers" had degrees in almost any conceivable course taught back then - Mathematics, Psychology, English, Physics, Music, etc. I remember the first computer classes that colleges began to offer - A course in "Numerical Analysis" (otherwise known as Fortran). Of course, programming was much simpler back then. Machines were typically around 4KB memory (as much as 16KB) - some were character machines, others were word machines. When disk (and drum) drives became available they were nowhere near today's capacity - they were as little as 10KB and somewhat later as much as 20MB. The first removable disks (disk packs) held 2MB of data. BTW, my "KB" and "MB" were "1000" and "1,000,000" characters. As I indicated, things were much simpler back then. We did have to figure out ways of doing things (like how to fit a 6KB program" into a "4KB of memory - either usurped part of the disk or use 2 tape drives - to avoid repeated wind - rewind). Of course, as time went on, we developed more sophisticated techniques - higher level languages, COBOL, PL/1, ALGOL, Assembly Language Macros, APL, etc. (IBM dominated the computing world back then until the government forced them to "unbundle" - pretty much the same thing Microsoft gets away with today - BTW, prior to unbundling, IBM gave away its S/W to whoever bought or leased its H/W - including the OS source). Back then computer languages were typically procedural. Of course, once colleges started up Computer Science programs things started changing. MIT, IBM, ATT and others collaborated (up to a point). IBM developed VM H/W, ATT went off and developed Unix and C. Of course, Xerox PARC (on the west coast) deve
-
I had a college educated co-worker who couldn't code his way out of a paper bag. (Come to think of it, I haven't coded robots, so neither can I. :-D You should get what I meant. Making the bag wet would make getting out without ripping something, pretty hard too.) The advantage of college is that it gives the perception that you are smart. Reality can be quite removed from perception. Getting someone who is dumb as a post as an apprentice is no picnic either, so it can be perceived as a risk to take someone on. Other people swear by accredidation as the only way to take on employees, while people who have been in the business for a while are accepted easier.
KP Lee wrote:
The advantage of college is that it gives the perception that you are smart.
I disagree with this. I don't know what college your co-worker went too, but the college I go to makes me feel dumb. Some of the courses & projects I have done in college have been extremely hard. I mean I had a 4.0 when I graduated high school, but I do good to keep a 3.5 in college now.
~ Somebody left a footprint...o0=... here...
-
No, I wouldn't say this sounds like a rant. It sounds to me like a legitimate expression of frustration at what appears to be an unfair situation. You seem smart and skilled. I sincerely feel for you. What I hear about the current hiring environment is that people with some specific skills (J2EE is at the top of the list) are getting multiple offers, and that generally, hiring is picking up. I really hope that's real and that it opens some doors for you. The other thing I'd suggest is that you find some people currently working in the field and ask if you could take them out to lunch (they'll probably buy ;)) for an informational interview. I've done that in past lives and learned a lot from it, not the least of which was (because I asked) what characteristics they look for in hiring, how my interpersonal skills affected them, and generally, how I could make myself into a more attractive candidate. Location is also really important, although it's not at all easy to change, especially on a prayer that you'll be luckier in the new location :(. Finally, when I think about the possibility that I'll be looking for a job at some point (and I deeply hope I won't), I find that I imagine myself in the interview referring to Code Project articles I've written. Something like the interviewer asks about code I've written and I describe some projects, but say that if they want to see specific code they can look at my articles[^]. Not to come across as a CP zealot, but if you can spend some time writing articles that are of general usefulness, it might be a real selling point for the skeptical potential employer. And from your post, it's clear you communicate well, and know how to write. In any case, I wish you the best of luck Steve.
Tom Clement Serena Software, Inc. www.serena.com articles[^]
Tom, Thank you for the comments. After reading them, things seem a bit brighter. I think I have 1 or 2 items that I can turn into an article. I used to be very enthusiastic about J2EE, but when I started playing with C#, I liked that better. That was about a year ago. I've been working on about 3 applications I wanted to sell, nothing really major. Based on that as 1 year of self-imposed "profesional" experience, I've been concentrating on entry-level C# positions. So far, the ones that I've gotten a response from have also had a requirement for ASP.net, which I haven't even touched, and I don't get any further consideration. J2EE also comes up in the same conversations, but I've never done anything with it outside the classroom. Steve
-
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.
You're now evaluating a graduate based on the institution where he graduated. You'd do the same with apprentices "graduating" from Adobe, Google, IBM, Microsoft or Oracle - you'd know what and how they do by knowing where they come from. The only different thing would be a shorter feedback loop: you're know evaluating an institution based on the overall success of its graduates in various enterprises, and then evaluate fresh graduates based on the rating of the institution. You'd evaluate apprentices directly based on the success of the companies where they did their apprenticeship. No amount of standards compliance would be able to convince you to hire a former apprentice from IBM if all feedback from the industry is that IBM trains people in a way you can't use.
-
Fabio Franco wrote:
I agree, but usually graduates have a good foundation and get up to speed very fast on real world problems.
I don't know about where your "graduates" come from but here those graduates always have "real world" expertise because they have already worked at real jobs. Now the fact that those jobs were acquired via a connection with the school doesn't alter the fact that the experience originated from the job and not the school.
jschell wrote:
because they have already worked at real jobs.
Which is the case of many graduates, but not all of them. It's up to them to decide whether they want to start working on internships right away when they start college (or the first couple of years). And there's still the case of people who simply weren't born for the job.
jschell wrote:
experience originated from the job and not the school
That's the idea.
"To alcohol! The cause of, and solution to, all of life's problems" - Homer Simpson "Our heads are round so our thoughts can change direction." ― Francis Picabia
-
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[^]
Not necessarily. The degree WILL help you get your foot in the door with most companies because the HR departments typically screen out applications without their minimum credentials. But that doesn't help you keep the job an ultimately it's usually your performance (and that of your code) that matters. It helps to know someone, or to have the recommendation of someone in the industry that is resepected or who already works for the company. Sometimes you can circumvent the standard process if you know someone who can vouch for you. Short of that, small companies and startups are much more likely to take on someone without a degree if you can show an aptitude for the work. If you know your stuff and it shows instantly to the hiring manager (who is likely to be your boss in a small company) they may be willing to roll the dice with you even without a degree. Keep in mind though, that without a degree you are likely to earn less even if you can get a position. This is especially true with small companies and startups where budgets are tight or non-existant. You'll have to prove your worth to the company very quickly.
Dan Dingus
-
Yes, lets bring back Apprecticeships! It has been an excellent experience for me. While I had been taking the odd programming class since highschool, it took me a minute in college to realize what was my true passion. I first majored in Art, Business, English, before taking an Html refresher course, and a computer art class for Flash (both for fun) and realizing that I needed to get back into programming. I applied for the comp. sci program directly and studied at it for a solid year. Disaster struck (I got married), and my wife didn't want to live in my parent's basement while I finished school. I did the only thing I could afford to do (and remain married to my lovely wife). I dropped out of school and started working construction. It was definitely the worst 3 years of my life. Then, I got super lucky. I had a friend who had worked for me in the restaurant industry. He had gone a shorter route, and received a 2-year degree from a technical school based on programming. I was always telling him about my woes working construction, and eventually he was telling me about his woes dealing with unreliable programmers who couldn't not manage to focus, or do a decent job at all. I said "Hey, surely I can do that." He agreed to teach me on our own time, and I bought some books and would study in between working long hours at my construction job. He brought it up in passing to his boss that I had been learning the language, and he said "We should do an apprenticeship." Lucky, blessed, whatever you want to call it, that's what I was. I've been working with one of the best (though small) companies in the world, and I got to learn a bunch of the "tricks of the trade" from my good friend. Because of how good the boss was to give me my chance, I have an intense loyalty to those guys and am willing to work extra-hard so that we can all enjoy continued success. He told me in our interview "Anyone can get a programming book and learn from it, but what it takes in this industry is a passion for computers." Without that I certainly would have failed (or probably not have been interested in the first place). Anyway, sorry to ramble on a bit. I just wanted to share my story since I was lucky enough to have first hand experience. None of what I learned during my apprenticeship could be replaced by what I learned at the university, just as my acedemic learning cannot replace what I've learned through work experience. I still yearn to go back to school so that I can learn more about the theory, and t
Great story Vaughn!! Thanks for sharing it!
Tom Clement Serena Software, Inc. www.serena.com articles[^]
-
KP Lee wrote:
The advantage of college is that it gives the perception that you are smart.
I disagree with this. I don't know what college your co-worker went too, but the college I go to makes me feel dumb. Some of the courses & projects I have done in college have been extremely hard. I mean I had a 4.0 when I graduated high school, but I do good to keep a 3.5 in college now.
~ Somebody left a footprint...o0=... here...
KP Lee wrote:
...the perception that you are smart...
What I meant by that was the perception of others, not your own. At the same time, I mentioned that reality can be different. The first day of college, I felt swamped. I went into a class thinking I was really smart in math. Because of this, I jumped into a course where everyone else had already taken a year of training. The teacher jumped into training where he had left off before, everyone else knew what was going on, I thought college was MUCH tougher than high school and for the first time in my life I was really challenged. Two days later I'd had 4 hours sleep and dreading trying to keep up with the next ton of new stuff to learn. Wondering if I had to drop out. To my surprise, nothing new had suddenly popped out again. I realized the first class had been a review, he was just refreshing everyone's memory. I kind of skated through the next two years fighting my adviser all the way. He wanted me to take courses to finish my AA, I only wanted to take courses that would transfer to university because I was going to get a BS. In high school I had a 3.0 because I refused to put in any effort, popped up to 3.5 in college because I thought I had to work at it in the beginning and maintained 3.5 in university because the courses there forced me to work even harder. It's OK to feel dumb, just keep on going. I've read texts where I thought they were trying to string together 12 to 15 character words in order to SEEM smart. By the time I had deciphered the meaning, I had come to the conclusion that was precisely what they were doing.
-
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 think the answer comes down to definitions. If you're defining a programmer as a person who just writes code in one language according to a specification created by someone else, then no; a college education is of marginal value in that case. The more involved a person is in design and architecture decisions, the more valuable the education becomes. And, let's be honest here: the "I just hack code" guys are the one's whose jobs are getting outsourced, and even that is just a temporary stopgap until they can be replaced with code generators. To be fair, though, I don't think apprenticeships have ever really disappeared, they've just gotten shorter and more informal. No one who understands the college/university education system expects a recent CS grad to already be a competent programmer. That isn't the point of any serious CS degree program, nor should it be. The point of the degree is to provide a solid grounding in the theory of computing so that the graduate is better equipped to get up to speed in whatever work environment they end up in. The difference is that you don't have to spend all that time teaching the new guy the basics of algorithms, data structures, graph structures, matrix/vector operations, etc. Sure, you could do all that in an apprenticeship program, but is that an effective use of the mentor's time? Furthermore, who says that the mentor is even good at mentoring? Teaching and doing are two completely different skillsets. They aren't mutually exclusive, but being good at doing something does not mean that you're able to explain it to someone else. One more observation, from my previous career in construction: there is a marked difference in certain personal traits between people with different levels of education. In my experience, there is a strong direct correlation between education and things like reliability, perseverance in the face of adversity, and emotional stability. I won't argue causality here, since I don't think it can be clearly separated in this case (a person with those traits is more likely to be successful academically, and formal education also tends to reinforce those traits). However, it goes to my overall point that that it's silly to try and calculate the value of a CS degree based on how well the average new grad can hack code.