Training Computer Scientists

  • I think the comparison is similar to say a

    mechanical engineer to a plumber or a

    electrical engineer to an electrician.

    The college or university education develops the capability of abstract thinking to which generally creates new innovation.

  • Steve Jones - SSC Editor (7/1/2015)


    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.

    Hmm... well there are a couple sides to this, if you want a career as a programmer of some kind yes you should go to a university because right or wrong it will give you a competitive edge in landing a job at least when you're starting out over someone who doesn't have a degree. That said if you don't already have interest in programming and you go to a university expecting job training you're not going to have a good time, however if you are genuinely interested in programming and what makes a computer tick then yes go get a degree you'll learn quite a bit.

    I do think that universities should make it clear that a CS degree is not a coding degree and you'll be spending more time learning theory and doing math than writing code.

  • Mickey Stuewe (7/1/2015)


    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.

    Thanks. That was interesting.

    Of the many people I have met who are really good at something, the most impressive were people who were really good at at least one thing (but often many things) completely unrelated to their profession. I don't necessarily mean they 'had a hobby', more like that they were not simply mechanical engineers, but also had played clarinet in an orchestra all through school, or something like that. In other words they had learned more than one thing really really well, and had thereby learned in no particular order: how to learn; that there are many ways of looking at the world; that most people see the world differently than you; that perseverance is important; that curiousity is important; an appreciation for expertise; AND an appreciation for the spirit of the amateur in the classic sense (someone passionate about something that isn't their main profession -- not the common meaning of 'hack').

    It sounds like you had something like that (at one point an artist, now db developer). One guy I work with now used to be a logger. He is a stellar worker in large part I think because of much of what he learned in the forests.

  • The career path for someone with a CS / CIS / MIS degree is more structured. Once you get that degree, in the eyes of most HR departments you're basically qualified for any entry level IT position.

    However, for those of us without a 4 year or higher degree, we really have to stay on top of our game and accept the fact that there are organizations that will never hold the front door open for us or offer a salaried position.

    But that's OK, we can still enter through the side door and bill by the hour.

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

  • venoym (7/1/2015)


    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.

    you're also missing what an employee/student needs to be successful. The issue for me, is that university is a really expensive way (in the US) to improve your education and prepare you for work. At least in technology, I think there are better ways.

  • Mickey Stuewe (7/1/2015)


    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.

    Well written, and thanks, Mickey.

  • ZZartin (7/1/2015)


    Hmm... well there are a couple sides to this, if you want a career as a programmer of some kind yes you should go to a university because right or wrong it will give you a competitive edge in landing a job at least when you're starting out over someone who doesn't have a degree.

    Perhaps, but you're 3-5 years in. If I go work for 3-5 years, do you have an advantage? You can't compare someone leaving secondary school for a programming job to someone that's older after college looking for a job.

    Your point is well taken. I think we disagree on this, but certainly it's valid to say a degree gives you a leg up. In the US, however, it also provides an anchor in debt.

  • Steve Jones - SSC Editor (7/1/2015)


    ZZartin (7/1/2015)


    Hmm... well there are a couple sides to this, if you want a career as a programmer of some kind yes you should go to a university because right or wrong it will give you a competitive edge in landing a job at least when you're starting out over someone who doesn't have a degree.

    Perhaps, but you're 3-5 years in. If I go work for 3-5 years, do you have an advantage? You can't compare someone leaving secondary school for a programming job to someone that's older after college looking for a job.

    Your point is well taken. I think we disagree on this, but certainly it's valid to say a degree gives you a leg up. In the US, however, it also provides an anchor in debt.

    Where are you seeing all these new hire programmers without degrees? Not being snarky, I just can't remember the last one.

  • I think that any young person who has an opporunity to attend university should. However, simply getting an acceptance letter along with an approval for up to $200,000 in loans is not an opportunity. It's only worth the time, effort, and expense if you have reason to believe it will more than pay for itself once you graduate. Unfortunately, dust like credit cards and subprime mortgages, society will make that student loan offer to anyone with a pulse these days. They'll extend an offer to your cat on it's 16th birthday.

    However, I don't subscribe to the idea that everyone is entitled to (or really needs) a university degree to start or maintain a good career. It's no wonder that many IT folks don't have a degree; we think like engineers, and the engineer aspect of our personality tells us that we can do the job without it. It's a rational trade-off.

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

  • Steve Jones - SSC Editor (7/1/2015)


    venoym (7/1/2015)


    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.

    you're also missing what an employee/student needs to be successful. The issue for me, is that university is a really expensive way (in the US) to improve your education and prepare you for work. At least in technology, I think there are better ways.

    I'm totally with you on that score.

  • cdesmarais 49673 (7/1/2015)


    Where are you seeing all these new hire programmers without degrees? Not being snarky, I just can't remember the last one.

    Meet some at almost every event I go to, at user groups, etc. It's not a majority. It's not even close. It's a small percentage, but it seems to be growing.

    A good number of the MVPs, well known SQL people, don't have degrees.

  • Well said Steve.

  • Steve Jones - SSC Editor (7/1/2015)


    cdesmarais 49673 (7/1/2015)


    Where are you seeing all these new hire programmers without degrees? Not being snarky, I just can't remember the last one.

    Meet some at almost every event I go to, at user groups, etc. It's not a majority. It's not even close. It's a small percentage, but it seems to be growing.

    A good number of the MVPs, well known SQL people, don't have degrees.

    Probably this is mostly an age and years of experience difference, or maybe a UK versus USA difference but I see it differently; the proportion of software developers without a degree used to be about 30% (the proportion without CS or MIS or IT degrees was between 95% and 100% in 1967) and has decreased a lot over the years; the picture in SQL specifically may be different - after all, there were no SQL developers at all when I worked briefly on computing at RHEL (summer 1966) and thoughout the first twelve years after I decided (in late September 1967) computing was what I would do therel there was no commercially available SQL (first formal release of Oracle was summer 1979, they beat everyone else to it) and for quite time after that SQL developers without degrees were as rare as hens' teeth.

    Tom

  • Eric M Russell (7/1/2015)


    It's no wonder that many IT folks don't have a degree; we think like engineers, and the engineer aspect of our personality tells us that we can do the job without it. It's a rational trade-off.

    Careful with the term "engineer" please; there are very few countries in the world (and the USA is not one of them) where someone can be registered as an engineer without either an American 4 year degree or its local equivalent or a long and sometimes painful process of establishing that they have the required knowledge of engineering; and if people get past that hurdle they generally have to have an adequate track record of real engineering experience. So engineers (real engineers, that is, not footplate shovel wielders, or motor mechanics, or someone wielding a drainage rod, or whatever) tend not to have the personality aspect that you suggest.

    Tom

  • Steve Jones - SSC Editor (7/1/2015)


    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.

    That's a reasonable question, but it might be instructive to pharse it a little differently: If you are looking to be a programmer, do you need education or do you need training?

    The answer isn't really simple, because it depends on what sort of programer do you want to be. It also depends what kind of education is available, and at what cost, and on what kind of training is available, and at what cost.

    If you want to be a programmer who does what he's told and nothing else and programs only in the languages that have grabbed a chunk of market for no other reason than outrageous hype (eg Basic, C++, APL, etc) or languages which survive mainly because there is an enormous legacy of code in them because they were in comon use before anything was understood about principles of programming language design (eg Cobol), then all you want is basic skill training. There are some universities which will provide such training and spend 4 years and a lot of your money for something that should take about 8 weeks and a lot less money. Such university courses could usefully be abolished to save their victims from wasting their money. So people whose idea of programming is this should not go to university for their training - but if they can afford it they should go to university and study something unrelated (music, French literature, Organic chemistry, Civil enginering, Literae Humaniores, or whatever they choose - it might even be CS or Maths) that they will enjoy studying because (provided they pick a decent University and course) they will enjoy it and it will improve their interpersonal skills.

    If you want to be a programmer who can pick up a new language (and a new programming paradigm) at the drop of a hat, and can design new languages without making all the classical mistakes and get them accepted (even if only with a very small market share) or to have serious influence on what the companies you work for decide to do (and maybe end up at VP or even chairman level) then you need a technical degree. It could be CS, or SwEng, or Maths, or Mathematical Logic but it must not be one of those courses that just trains you to write Java and a bit of C++ or C#.

    A CS course must cover concepts like type theory including Abstract Types, Existential Types, Universal Types, explicit and implicit type systems, and programming language semantics including Operational Semantics and Denotational Semantic, language paradigms (Procedural Languages, Logic Languages, Process-oriented Languages, Functional Languages, Relational Languages) and code structure concepts and their strengths and failings (Structured Programming, Object Oriented Programming, Spaghetti Programming [the world's most popular and common style :hehe:], cut logic, cut-free logic, parallel logic, Lazy Evaluation, Eager Evaluation, Exlicit Eagerness control, normalisation including normal forms and unnormalised tables, Codd's "laws"), and error management including detection, containment, recovery, and reporting). It must also inlude learning to write some decent code in a range of languages (something like C#, F#, Haskell, one of the MLs, Smalltalk, JavaScript, C++, Prolog, Parlog, CSP, CCS, SQL) but must not degenerate into coder training, and ideally also cover enough mathematical logic to handle the halting problem and the incompleteness theorem and computational complexity of algorithms, which of course will need a bit of recursive function theory and set theory and maybe enough topology/calculus to cover the underlying ideas of Scott-Strachey semantics. Of course (depending on the country) it may need additional courses in things like English writing.

    So I sort of agree with the editorial both because certain degrees are a waste of resource and shouldn't be taken and because some people go for the wrong degrees. But I also disagree with it in that I think a good degree can provide (a) a few years of fun and (b) a backround of knowledge and understanding that will improve a programmer's capability to do new and interesting things enormously.

    Tom

Viewing 15 posts - 46 through 60 (of 96 total)

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