Training Computer Scientists

  • jfuller 57139 (7/1/2015)


    I was surprised how strongly I disagreed with this article. I have a BS in Computer Science and while it's true that the technical skills I learned while getting my degree are no longer relevant, what I learned that is still relevant is the art of Critical Thinking. I've always felt that any competent developer can learn any language as the concepts are similar (i.e. loops, input, output, etc.), it's only the syntax that's different. However not everyone can take a complex problem (or non-complex problem for that matter) and break it down into it's component parts that logically fit and work together in a way that makes sense for a machine. I've interviewed plenty of people that can write code but very few that can think critically (and the ones that can think critically are the ones that I hire).

    And how many candidates have degrees? Far, far too many can't think critically. I'm not sure uni teaches this well.

  • russ960 (7/1/2015)


    I would have to disagree with the idea that electricians and plumbers don't get any formal schooling. Maybe not university education but there is extensive education needed to pass the required certifications/licenses for those occupations. Also something very useful in these occupations is they have a requirement for apprenticeships. Something that isn't totally a bad thing.

    Apprenticeships and learning on the job aren't formal. Many of them get some training, but I'm not sure I'd call it schooling and relate it to university.

  • ZZartin (7/1/2015)


    A math degree is not job training to be an accountant and a CS degree shouldn't be thought of as job training to be a programmer.

    We have accounting degrees.

    I agree with you, but that's not the point. The question is if you are looking to be a programmer, should you go to university.

  • Len.Geoghegan (7/1/2015)


    I also strongly disagree. Most plumbers and electricians go through a lengthy training period, whether formal education, formal apprenticeship, or just by starting as a gofer.

    I've worked with some very good self-trained programmers and wouldn't hesitate to try working with another, but every one I've worked with was missing some skills that should be picked up in formal training. Of course, I've also worked with a few with advanced degrees who knew everything and couldn't apply any of it well!

    You're mixing two things. If tradesman can go through a training as a gofer, why not programmers? I'm not saying someone that's self-taught it ready to go. I'm saying that going to work and getting experience is as good as getting a degree and then learning on the job.

  • ZZartin (7/1/2015)


    I think part of the rational is that it's a very easy criteria for a company to look at and see that X person was capable of putting in a certain degree of commitment to some long term goal.

    I think that's very true. A degree is a commitment to a 4 year long project. One that has sidetracks and requires some effort to move forward.

    However I think the irrational part is that the end result is less and less any more than that. It also doesn't remotely predict that the person will spend years working for you or focusing on smaller projects at any skill level.

  • There are a lot of elements to this topic. One is that universities in the u.s. have gradually acquired the role of teaching trades/crafts/skills with the explicit promise that they will lead to a job. This was not the original intent of a university education -- it was to build well rounded people (well, men back in the day) with solid grounding in the classics, and later in the basic sciences. No promise of a skill that would lead to a job, because the expectation was people already had a company in the family or that they would have no problems hanging out a shingle and earning a living somehow.

    While not the case in the U.S., in many countries universities are also free, or nearly free, which made (makes) even more explicit the absence of a connection between an education and earning a living.

    The fact that as pointed out in many comments that university in the U.S. costs a FORTUNE is a symptom of a greater problem.

    There are still quite a few countries where job skills are taught in channels separate from universities. Germany is a good example -- a combination of vocational school and work results in a qualification as a banker, baker, insurance company 'worker', auto mechanic, computer programmer, etc. Universities are for scholars, researchers, managers, higher level skills.

  • I don't think you should need a CS or IT or whatever they call them these days to be a programmer. Some years back I worked on a huge accounting project for a major financial institution. Instead of learning accounting to do it right, we thought the accountant how to program, and he would oversee what we did.

    My own degree is a B.S. Aeronautical Studies. Which basically means flying, we did have to take quite a bit of science classes, but only 1 computer science class (I took a few more).

    Right now in my company I am teaching a boot camp for recent graduates that we take in for entry level position. The two that I am responsible for this week both have CS degrees. Honestly it would have been better if they did not.... SOOO much to un-teach 🙂

  • With the resources we have available to us today (including the wonderful forums at SSC), all you need to succeed in this business is aptitude and desire. There are even places for people who don’t have well developed communication/social skills where little interaction with others is required, just the ability to make things happen programmatically.

    Having said that I’m glad I made myself earn a BS (journalism). It was a difficult slog where I worked 12 hour shifts from midnight to noon on weekends to put myself through school (uphill both ways through the snow) but in addition to the acquired education, I learned what I could make myself do to get where I wanted to be.

  • I've had a successful career without a degree, and lots of my coworkers and friends my age have also. We graduated college with basic computer literacy (or a bit more) into a job market where that was a scarce commodity, and those of us with aptitude naturally drifted into computer jobs. But that boat is long sailed. I don't think I have a single developer or networking colleague under 30 without a degree.

    Also, automation is going to continue to eat most of the non-devops admin jobs and drive down the salaries of the ones that remain. So not only would I recommend a degree, I would very much recommend one focused on programming. Not an "IT skills" program.

  • One thing I'd also note, and should have said in the piece, is that just because you leave high school and go to work doesn't mean you can't get a degree. If it's important to advance for you, then work on it part time while you have a job. Learn both ways.

  • Being a college drop-out and utterly w/o degree, yet, I'd argue, a relatively successful career within IT, I'm frankly not sure what a college degree would have done for me. I've worked with people with advanced degrees and people with no degrees at all. I've not seen any substantial qualitative difference between the two.

    Yes, total anecdote, and just an opinion, but, from what I can see, maybe one that needs to be at the table here.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

  • Many universities have separate curriculum for CS, CIS, and MIS, but they overlap at the 100 and 200 level. The vast majority of IT jobs are about applied technology, it's a profession and an art, not trail blazing computer science. Even at companies like Google and Microsoft, only a small percentage of the IT staff are engaged in what would be called computer science.

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

  • I think it needs to be said that there is a distinction to be made between what a university should be teach and what it is... additionally what a business should be expecting versus what it is.

    A University should be teaching someone how to think and how to learn, Some basic skills are needed. In my BS and MS degree fields I only had a total of 15 credit hours (out of 150-ish credit hours) that were programming focused. The rest was focused on seeing if I could learn material and apply it in the method of my choice to accomplish a goal. I have come up with some inovative solutions to problems in various roles I've been in. I have noted some differences between myself and others that did not have that same experience in university. Some of that is that the "think outside the box" is much harder for some than others (and it might not just be related to university).

    Businesses of the past have taken people based on aptitude and ambition, not solely on degree. Up until the .COM boom of the mid 90's to early 2000's, a CS degree was desired but the ability and willingness to learn was required. Ambitious people would research and learn and invent technologies in order to accomplish a goal. I think businesses have flipped that around, the degree is required, the ability and willingness to learn was not even on the table. Do you learn in a business environment? Sure, you learn office politics. You don't learn things unless you are tasked to learn it.

    Both Business and university have shifted from where they should be. University should teach people how to learn and how to think, they are increasingly teaching people only the specific programming languages not Computer Science. On the flip side, business has gone overboard on requiring bullet by bullet knowledge of a specific language and doesn't care if you know how to learn.

  • You either have a head for this stuff or you don't. If you don't, a four-plus year degree may help you fake it well enough to get a job and white knuckle a mediocre career building technical debt for some underfunded department that can't afford to retain real talent.

    That being said, I agree with comments on the original article that "computer science" was the wrong major for the author of the post. She should have been taking the Information Systems and Technology course. That is, the COBOL track, not Fortran. And if she couldn't RTFM well enough to understand that distinction, she might be in the wrong field all together.

  • Steve, I think this is a great discussion topic and it has always evoked a lot of passion for people, usually based on their own background.

    I've worked with people who only have their high school diplomas and people who have doctorates in computer science. I myself have a BS in Statistics. I had to take classes in another subject for my degree and I chose computer science. With that said, here are my opinions on the subject.

    If you were to graph everyone's technical proficiency, I believe that it would reveal a set of people who "have" to get a college degree to be successful in the technology space and a set of people getting a degree would be a waste of money and time. I think those two sets would be found on either end of the graph.

    What about the people in the middle? I think those people still need education, but where they get it depends on their learning style. There are two major things that I learned in college that I wouldn't give up for the world. (Ok, there are many things, but learning how to play pool doesn't count for this discussion.)

    One is computer theory. I think this is lacking in people who haven't taken computer classes. This is something that needs to be learned in order to write efficient code and to pick up concepts quickly in meetings. It can be learned outside of college, but some people don't think they need it. I think this was most evident when ASP first came out. I saw SO MUCH spaghetti code from developers with no coding theory in their background. While computer language changes, the basic theory is still the same. Recursion, modularization, set theory. These are all static. How and when they are used changes.

    The second is mathematical problem solving. I personally don't think the current computer science degrees have enough mathematics. I received my degree 20 years ago. While I've never directly used it, I indirectly use it all the time.

    Being that I can only really comment on my own background. Would I be the same Database Developer today if I didn't obtain my degree? Absolutely not. I fall into the category of "needing" the degree. My computer programming knowledge didn't start until college. College allowed me to "catch up" with all of my college counter parts. I was blessed with some excellent teachers who focused on good programming skills and theory. I learned Codd's laws from the ground up, I have a solid understanding of set theory, and while I hated mathmatical "word problems" in elementary school, I love them now. (maybe a little too much.)

    I saw the comments on the lack of learning about communication. I agree on that. Unfortunately, it is true in almost every college major. I used to be a full time artist, and the artists in the community complained about the same thing.

    Mickey Stuewe
    Sr Database Developer
    My blog
    Follow me on twitter: @SQLMickey
    Connect with me on LinkedIn
    --------------------------------------------------------------------------
    I laugh loudly and I laugh often. Just ask anyone who knows me.

Viewing 15 posts - 31 through 45 (of 96 total)

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