The Apprentice

  • I never went to college. I started programming at a young agethrough my father's encouragement. When I hit high school I had already started doing some projects for his non-profit, including working on updating their main client information system. In a way I guess I had an apprenticeship.

    My vocational highschool had a computer science curriculum which I was a part of. Every other week I spent there. There were no theory classes and everyone started with qbasic. Then when on to c++. There was very little teacher involvement. you were given a book and left to your own devices. This was fine for me, but I think a lot of my classmates would have like a structured curriculum and more teacher involvement. Most kids took 3 years to get past basic. I just tested out of it and c++ and made my own curriculum up as I went along.

    I also during this time would study on my own with my brother in law. He was studying computer science at a university in maine. We'd do his homework together and compare results before he turned it in.

    I've never found not having a degree to hinder me. It seems to me that a degree just gives you some fundamentals. Experience matters more, as does passion. I'm not even sure that a degree is worth it at all. This industry requires constant continual learning to stay relevant. Things change very fast. Some of the fundamental courses like Data Structures & Algorithms I think are good to have, but many course offerings seem to be fluff.

  • Ben Moorhouse (9/9/2011)


    Grant Fritchey (9/9/2011)


    Ben Moorhouse (9/9/2011)


    Grant Fritchey (9/9/2011)


    I consider military service a plus, but degree's... nope.

    I hadn't even considered that!

    Is there a specific skill/discipline you like to glean from military service?

    Not really. Just four years of honorable service means a lot. It doesn't mean they're great, amazing people. It just means they step up (it's a volunteer service) and deliver enough (trust me, if you don't, you don't stay in).

    Very good shout!

    Plus (in the UK anyway) if you go into a techy area, they'll often fund you getting a degree and other qualifications so you come out with a lot to show for yourself

  • I have 30+ years in the industry, in various positions ranging from QA to development to DBA to BA to leader to owner, and in my role as Owner I would rather have an experienced person with a degree acting as lead and "junior" developers slinging the code. The junior developers work cheaper (because their education cost less) and they are eager to gain knowledge and experience. I never minded someone coming in to my shop, spending a year learning How Things Are Done, and then moving on to another position; I'd find another keener to plug in.

    Does a degree guarantee knowledge and expertise? No, the basic problem in any education system, whether it be HVAC Repair, brain surgery, or computer programming, is that the one who graduates last in their class is still called "graduate" or "doctor" or "junior programmer". Does a lack of a degree infer a lesser ability? To a certain extent, yes. As a hiring owner/manager/boss man, it's still up to me to determine the quality of the person sitting in front of me and assign "worth" (or salary, if you will) to that person.

  • "It depends."

    Yes, I know. The classic DBA answer. But it honestly depends on the person.

    Some people learn critical thinking and analysis skills during a college or university program that will serve them well in whatever career field they go into. Others learn them somewhere else - and some folks never learn them.

    I've seen folks both with and without formal training who are both really good and really horrible at what they do. Having a degree may or may not have been necessary to get a person to where they need to be in their career field. That's so dependent on the person that I don't think there's an actual yes or no answer.

    As Grant mentioned - military service, however? Yes, I weight that pretty heavily. A college degree? That depends on what I'm hiring for and what the person actually learned from it.

    -Ki

  • It has been my experience that developers without degrees may be able to function well in one roll, but it is more predictable (not always) that developers with a good bachelor's degree in computer science can handle many different functions well because of the broad range of topics they have been trained on (concepts, object oriented techniques, database normalization, sql, web development). I've seen many instances where the developer with a degree can handle presentations and public speaking better which is good when it comes time to present that new piece of software at a conference. I also feel that many developers without a degree tend to lean on bad practices they've learned along the way because they were never taught the proper way to do certain things early in their career or before their career started (like database normalization). Also, I've never found a mathematical degree to be comparable to a computer science degree (as some job boards would have you believe) I have experienced times when a developer without a bachelor degree will hit a snag when it comes to understanding a mathematical concept needed for a query or program (not often but I have seen it).

  • I was trained by the military as a programmer 33+ years ago so I guess you could say I had vocational training.

    About 20 years ago I got my degree in Business Administration. And, about 15 years ago I taught at networking classes at a community college.

    Some people do poorly in the college environment. Sometimes they find the pace in their major far to slow, and sometimes they are just intensely focused on their major and the other courses are just noise. For these people vocational schools would be a much better choice.

    The idea that "everyone must have a college degree" or they are unemployable is silly.

    As an employer I want employees that: (1) Want to learn and work, (2) Have good communication skills, (3) Are trainable, (4) Know what they don't know and know when to ask, (5) have an understanding of the concepts the job requires rather than the mechanical keystrokes a particular piece of software uses.

  • developerguy11 (9/9/2011)


    It has been my experience that developers without degrees may be able to function well in one roll, but it is more predictable (not always) that developers with a good bachelor's degree in computer science can handle many different functions well because of the broad range of topics they have been trained on (concepts, object oriented techniques, database normalization, sql, web development). I've seen many instances where the developer with a degree can handle presentations and public speaking better which is good when it comes time to present that new piece of software at a conference. I also feel that many developers without a degree tend to lean on bad practices they've learned along the way because they were never taught the proper way to do certain things early in their career or before their career started (like database normalization). Also, I've never found a mathematical degree to be comparable to a computer science degree (as some job boards would have you believe) I have experienced times when a developer without a bachelor degree will hit a snag when it comes to understanding a mathematical concept needed for a query or program (not often but I have seen it).

    I've run into a lot of masters level students with horrible habits. I've self taught develop highly scalable solutions. I've also seen very good masters students and very bad self taught developers. I've actually found that more developers come out of University with bad practices they have to unlearn than the self taught.

    The good developers have experience behind them and a passion that helps encourage them to grow. I really don't think it has anything to do with a degree.

  • Of course a lot of programmers did get their degree from a vocational school rather than a university. I don't think a four year degree should be required, however, there is a such large body of knowledge and standard practices in the realm of database, programming, and network security that to disregard or be ignorant of these things should be considered professional incompetence and a threat to public safety. As automated computer systems become more entwined into the infrastructure, healthcare, and financial systems of our society, I often times consider wether IT workers should be required to go through a certification process and be licensed like electricians or accountants, which would perhaps involve an apprenticeship.

    Then again, programming could simply be designing a video game or an Excel spreadsheet. The question would be which IT jobs would require certification and licensing.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • Some go to higher education to get a piece of paper, and others to get a fresh start. Whatever the reason, ideal job candidates come out of higher education with the ability to learn how to learn (quickly). Those making it through a MS or PHD program are more likely grasp highly complex problems quickly and to think about unintended consequences. They also tend to have a higher pain tolerance for steep learning curves on new tech.

    The degree does not have to be in computer science, but a few classes in computer science are always a plus. My BS and MS training as a Mechanical Engineering does not help me directly in working with databases, and software development, but the problem solving skills honed through additional education have definitely helped out. We have a DBA who has a Library Science (Librarian) degree. Her ability to organize and relate large amounts of information is a great asset. My best developer is an English major. Needless to say, his documentation and object naming is very good, and he is good at producing user interfaces that make sense to the average user.

    Regardless of whether a person has a degree or not, the people I hire have to enjoy learning and a personality that will fit with the team. However, if you don't have the "proper" degree, you won't stand a chance making it past HR's procedures:

    INSERT INTO tblNeverToBeSeenAgainArchives (JobCandidate_ID) SELECT JobCandidate_ID FROM tblApplicants WHERE HasDegree=FALSE;

    DELETE FROM tblApplicants WHERE HasDegree=FALSE;

  • I think a degree helps but after reading your post I have some other thoughts. I think it does depend on the individual. If a person with a low aptitude makes it through college it doesn't make them a star developer. But when someone with a high aptitude is motivated and learns all they can in a well developed well rounded curriculum I think it makes them a more effective developer than they would have been otherwise.

    You can polish a stone and it still isn't worth much. You have to start with a diamond to begin with, so I guess its much more individualized than my previous post.

  • I'm getting my BS, not because I feel the industry requires it, but because I don't want it to be a limiting factor. If it makes no difference in whether I get hired because my abilities speak for themselves, that's fine, but I don't want to be in the position where I have experience but no degree, and can't find a job because of it.

    Do I think vocational training would be useful? Absolutely.

    ---------------------------------------------------------
    How best to post your question[/url]
    How to post performance problems[/url]
    Tally Table:What it is and how it replaces a loop[/url]

    "stewsterl 80804 (10/16/2009)I guess when you stop and try to understand the solution provided you not only learn, but save yourself some headaches when you need to make any slight changes."

  • This thread is just another version of "should we promote certificates". 🙂

    Having spent 30+ years in the industry as a jack-of-all-trades (master of none I admit) I've seen great self-taught/horrible self-taught and great degree/horrible degree developers.

    I've actually come to the conclusion that CS teaches the *wrong* stuff. Everyone who thinks CS teaches you underlying theory is only half right. CS teaches theory--but not *useful* theory.

    I mean sure, learn a couple of sorting algorthythms in CS 101 but do it to teach the *important* stuff. Not how to sort--instead teach *why* bubble sort is such a horrible choice. (Because it works way too hard, that's why!)

    I guess the true importance of theory can be boiled down to an appreciation for elegance. That's really what development is all about. Something that's simple, fast, *and* easy to maintain, that's the holy grail.

    So the theory you should be teaching (beyond the basics of looping, branching, syntax etc) is how to recognize which technique will be better in a given situation, how to break down a problem into pieces, *why* we document, how to write user documentation that is actually helpful, principles behind UI design (why you don't use 15 colors on one screen 🙂 )...and all of that with emphasis on why one way is better, not just how to do x, y, and z.

    You concentrate on elegance in CS and mix it with apprenticeships in the real world and you'll vastly improve the developer average skill--and halve the learning time.

    Because when someone knows the why of a thing they tend to make fewer stupid mistakes...

  • I have a degree, but in Physical Education. I got into development and databases because my best friend at the time was the software development manager at a local company. This was in 1999 before the Dot Com bubble burst and he couldn't get anyone to come and work at the location he was at because it is a fairly remote location and the pay was less due to a lower cost of living. After months of his prompting I applied, interviewed with him and others so it wasn't solely his decision, and was hired. He knew I had the aptitude for the job and I basically served as an apprentice under him and another developer at the location. After 12 years in the industry, I wish I had a better math and theoretical background as I do find I struggle a little with higher level concepts. I get them eventually, but I am frustrated by that.

    I think IT, needs a hybrid solution. Something like math and theory, language (writing and communication) classes part of the day and practical internships/apprenticeships the rest of the day. It is hard to get a job without experience so a hybrid would give you the best of both worlds. In the US anyway I think we've gone too much towards a liberal arts education that leaves a lot of graduates without usable skills.

  • syen (9/9/2011)


    ...Whatever the reason, ideal job candidates come out of higher education with the ability to learn how to learn (quickly). Those making it through a MS or PHD program are more likely grasp highly complex problems quickly and to think about unintended consequences. ...

    Sorry, I have to disagree. Learning how to learn is (or should be) a kindergarten/grade school fundamental.

    My experience has been that those with higher degrees are more likely to look for complex solutions to problems whether the problem is simple or complex. Typically they seem more interested in theory and less interested in effective solutions requiring gruntwork.

    As for the ability of those with MS or PHDs to think about unintended consequences, we need look no further than all the economic experts (lots of MSes, MBAs, and PHDs) in Washington DC to see that they are not any better at thinking about unintended consequences.

  • syen (9/9/2011)


    However, if you don't have the "proper" degree, you won't stand a chance making it past HR's procedures:

    INSERT INTO tblNeverToBeSeenAgainArchives (JobCandidate_ID) SELECT JobCandidate_ID FROM tblApplicants WHERE HasDegree=FALSE;

    DELETE FROM tblApplicants WHERE HasDegree=FALSE;

    That's a big shame syen - You'll miss a lot of amazing developers with that procedure in place! I'd be having a word with HR.

    It's horrible to think that someone could be chosen for a job over me simply because they have a degree in "David Beckham Studies" from Staffordshire Uni and I have no degree!

Viewing 15 posts - 16 through 30 (of 94 total)

You must be logged in to reply to this topic. Login to reply