Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
"What is the nature of the thing, what does it do?" - Hannible Lecter

All these titles should carry specific information to others. These days people will call themselves anything and get away with it, my general advice is to understate any pretentious titles and concentrate on your real experience.
A savvy employer should understand these distinctions...


Requires (none)

Actually writes the code implementing software. Anyone can start as a programmer. The programmers central skill is the ability to transform a high level (algorithm) expression into a sequence of lower level operations (code). But since we all do that every day with mobile phones, video recorders, microwaves and desktop computers, that makes almost everyone a programmer. If someone introduces themselves as a programmer I assume they have fairly deep coding skills, but that doesn't imply they know anything about computers at all.

Computer Engineer

Engineers computers
Requires (physics, electronic engineering, VLSI, CS, screwdriver)

You can spot an SE by the screwdriver. He deals with the actual physical implementation of computing platforms. This ranges from anyone who built their own PC from cards, to members of the team designing Intels next chipset. All good CEs have deep understanding of binary logic, timing and bus protocols, system components like RAM, ROM, DMA, clocks, interface devices and a register level understanding of the processor and all its internals. A good CE has built at least one computer from component level. Mine was a 68000 based SBU roughly equivilent to an Applemac, made on a wirewrap Eurocard. But, the discipline is broad, and anyone who has designed a small cluster or company network from stock parts and had to take account of physical wiring, heat dynamics, component compatabilities and so forth should count themself as a Computer Engineer. A good CE also has a soldering iron in his kit. SEs are invariably male.

Systems Analyst

Analyses Systems
Requires (programming, theoretical computer science, experience)

The SA usually comes to an existing scenario which needs automation. The SA analyses the system revealing entities, relationships, control and data flows, transformations/functions, stores, pipes etc. S/he then expresses this in a very high level 'formal' language such as Z, VDM or another psudocode appropriate for describing high level architectures. The hayday of the Systems Analyst was the 60s and 70s when most automation took place. Another more modern role for the SA is to 'rediscover' legacy horrors which have no documentation as a pre-analysis stage to a rewrite. The best attributes of a SA are patience, detective like skills, and experience is vital, you cannot walk straight out of college and call yourself a systems analyst, you should have tackled at least 4 or 5 difficult problems. Some good social and political abilities are also useful when analysing large organisations as there will inevitably be hidden processes and agendas that, although not a part of the technical spec, need routing around. Women make exceptional SAs, Ive met some. Women that is.

Software Engineer

High level product engineering
Requires (programming, software engineering, some theoretical CS is good)

SE is an identifiablty separate skill. The SE is usually a programmer, at least senior team leader or head of development. The SE takes an overview of a large application. You are not a software engineer if you are working alone or in a 2 man team. Sommerville describes the essential roles of SE. Overseeing Specification, Systems analysis, Prototyping, Development, Test, Version Control, Maintainance and patches. The SE sees a project as a whole lifecycle, a much bigger and broader view than any of the individual coders or teams. There is nothing pretentious about calling this 'Engineering', it is quite appropriate. If the Manager and Team Coders are good a rookie SE can come straight from college and survive under that title, experience is not as important imo. Anyone who did very well at just CS could probably cope nicely once they saw 2 or 3 projects through, or blag it from first principles.

Software engineering/Product Manager

Requires (SE, CS, experience, experience, experience, confidence)

Managers do very little at all except take responsibility and deal with people. Certainly the best manager you can work under has 25 years of practical coding, a higher degree in computer science and has worked in all of above roles in their time. In reality most 'managers' are nothing like that. In many areas of human activity its possible for a person with no experience of a field to come along as a 'Manager' having studied only a 'Management' degree. In software it is not. Such self appointed managers fail very quickly because software is unique. Managing code production requires insights into very complicated issues that pedestrian management skills cannot deal with. A good Manager has risen from at least 5 years SE imho. I taught elementry programming to students on an undergrad course 'Software Engineering Management'. Looking back I never would have hired any of those students fresh out of grad, it just can't be taught on a theoretical level. One might be able to blag a crony job as manager of some media company, but SEMs out of their depth rarely last the first week. Real SEM is very active and stressful.


requires (the mind of a hacker)

Hacker form a subset of all the others. People are either hackers or they are not, but that doesn't stop them from becomming very skilled and sucessful carreer programmers, software engineers or managers. A hacker is a warrior-poet-artist-scientist, indeed best summed up in Podmasters link given by EdwardG. Sourcerer is excellent! Also Codesmith and Code Poet. Hackers are the creative force behind software development. All genuinely new advances in computer science are the fruit of hackers, even if faceless corporations end up eventually robbing them of the patents, IP and attribution. Large teams may create code of immense scale, complexity and reliability, but without hackers in their ranks it can only ever be a derivitive extension of principles. The hacker introduces something else important to the discussion, latent ability, they are whether they know it or not, natural computer scientists and it doesn't matter if they are formally qualified. I recognise fellow hackers by their attitude to problem solving.

My self title is 'computer scientist', which is my formal qualification and outlook.
My given title is CTO, which is just an accident of our company being less than 5.
If asked my answer is the same as Abigails, 'I work with computers', and see where it goes from there.

In reply to Re: What do you call yourself? by andyf
in thread What do you call yourself? by bassplayer

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others cooling their heels in the Monastery: (7)
    As of 2021-05-06 07:54 GMT
    Find Nodes?
      Voting Booth?
      Perl 7 will be out ...

      Results (70 votes). Check out past polls.