Career Advice: Don't Call Yourself a Programmer
Ian Lamont writes "Patrick McKenzie has written about the do's and don't's of working as a software engineer, and some solid (and often amusing) advice on how to get ahead. One of the first pieces of advice: 'Don't call yourself a programmer: "Programmer" sounds like "anomalously high-cost peon who types some mumbo-jumbo into some other mumbo-jumbo." If you call yourself a programmer, someone is already working on a way to get you fired.' Although he runs his own company, he is a cold realist about the possibilities for new college grads in the startup world: 'The high-percentage outcome is you work really hard for the next couple of years, fail ingloriously, and then be jobless and looking to get into another startup.'"
I'm self employed, and even though my boss is jerk he's not going to fire me because I call myself a programmer.
If it's one thing America's taught me it's that doing useful work is the worst way to earn money around these parts.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Don't worry what you call yourself. Do good work and people will want to work with you.
In casual conversation among people who wouldn't know the nuances of the various "programmer"-like terms, I do say, "I'm a programmer." It gets the point across simply that most people understand.
If I'm in a semi-professional setting of white collar adults, I usually say "software developer."
On a resume or among those who know the industry standard, I say "I'm a software engineer" because that's my title.
If it's tied to a conversation that might have career potential, I give the true classification at work: senior software engineer.
Because, you know, the 1000+ currently open job postings for keyword "programmer" on Monster.com are just a perfect example of situations where people are already looking to fire you. After all, that's why they created the posting, just so they could waste company resources and fire someone.
/sarcasm
I do not respond to cowards. Especially anonymous ones.
Well, to me, "software engineer" sounds even more high cost than "programmer", since it implies college education.
In Canada, it's illegal to practice engineering, or call yourself one, without a engineers license. There's nothing worse than retards who get a college degree in programming and start calling themselves "engineers". It's an insult to every actual certified engineer in the world.
. . . and 'real' engineers everywhere weep. Obviously every case may be unique, but calling yourself one thing which has a set of implications does sort of slander professionals in the field whose titles you are trying to snag.
It doesn't matter if your first job leaves you unemployed and searching again in a few years. It matters that you're working with people who are smarter than you are and learning how to actually program and write software effectively. Job security? Pay? If you end up as an undifferentiated code monkey left to your own devices or, worse, fighting a monstrous legacy code base and bureaucracy that you're powerless to alter *cough*IBM*cough... you can very easily find you've crippled the rest of your career. At best, the work will be a dull slog.
Go for the startup, if they sound like they have some idea of how to do things right and will offer you meaningful professional development. If you can't take a career risk at this point in your life, when do you think you will be able to? And then for Job #2, you'll have some Skills. You'll be infinitely more employable. You might even be able to look at the monstrous legacy codebase and say, with the authority of experience, that this stinks and there's a better way to do it and yes you will do that refactoring, and you won't hate your job.
The World Wide Web is dying. Soon, we shall have only the Internet.
Programmers can be outsourced. Employees with unique skills and an interest in the business can't be. Diversify yourself and stay engaged with your management and you will have nothing to worry about, even as a fresh grad.
Make sure your website can scale properly. These days there is no excuse except for laziness. Getting slash dotted? Spin up 100 EC2 hosts for a day and load balance them. This isn't rocket science.
I've always hated the term Software Engineer. I've never identified with engineers, or engineering. To me software development is a form of applied mathematics, not engineering.
Programmer is usually associated with a low-skill person who cranks out code. A developer is someone who has to understand the problem inside and out, not merely just complete the task as prescribed.
AccountKiller
Invent new meaningless titles for yourself, and for extra grins make them acronym out to something amusing.
Architect of Systems Software
Architect of Computer Interaction Design
Personal Computer Programmer
High Availability Software Head
I'm sure you can do better. There is nothing better than seeing your name and title on a contract, slide or sign and thinking, really, nobody noticed.
Too many people in IT don't know the first thing about writing code. I think things are changing though. Companies seem to realize you can get by with less people that can do more if your workers can actually program.
Calling oneself a "programmer" tells us exactly what we want to know when we're looking at candidates. So many people put C, C++, Java, C# or whatever on their resume and can't even write a simple for loop.
Patrick McKenzie isn't right about how he describes businesses and employees. We see resumes all the time where someone highlights how they saved their last company six, seven, or eight figures. We don't want to hear that. We want to hear that you have the skills needed to do the job we're hiring you for.
He also isn't right about the language not mattering. It's much easier to go from low level languages to higher level languages than vice versa. If someone was an expert in VB or Python, we would be very hesitant to hire them for a position that required coding in C. And if someone can pick up a language in just a few weeks, then they should do that before they apply to jobs asking for that skill set.
That's why I put "20th Level Code Rogue/Network Warlock" on my resume.
If you were me, you'd be good lookin'. - six string samurai
They are not professional engineers in terms of software or industry. The word engineer dates back to the old days.
Calling yourself an 'Engineer' in Canada depends on the province you are in. For example, New Brunswick only 'Professional Engineer' is registered while in Ontario it is both 'Professional Engineer' and 'Engineer'. And yes I hold an engineering degree in computer engineering.
Since the site seems to have been overwhelmed here's the cached, text only version: http://webcache.googleusercontent.com/search?q=cache:www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/&hl=en&strip=1
http://compsoc.man.ac.uk/~shep/
I don't know, would you rather be a joomla programmer or a web guy?
When the foot seeks the place of the head, the line is crossed. Know your place. Keep your place. Be a shoe.
In Canada it's illegal to call yourself a software engineer unless you have the right training and certification. It's like calling yourself a civil engineer in the us without a license.
Actually in the United States you can call yourself what ever you want. What you can't do is sell your services as a independent Engineer without having the appropriate certification. If you work in the Engineering department of a company in an Engineering capacity, then you have every right to call yourself an engineer. If you have graduated from a university with a degree in Engineering, you have every right to refer to yourself as an engineer. If there is no certification organization in your field you can sell your services as an engineer. The certification organizations would like you to think otherwise, but they know full well that in the US an engineer is defined by what you do not what your certifications are. This is also on a state by state basis, unless seeking a federal government contract.
If my state offered a certification in software Engineering then I'd be happy to go about the process. But there are very few states that offers Software Engineering Certification (Texas being the only one I can think of off the top of my head, and even that one is not nationally recognized).
Instead, growing up on the west coast full of gullible idiots, I call myself a "holistic digital globalistic digital metaphysicist."
Non impediti ratione cogitationus.
I've had a terrific career, culminating in a six-figure salary, six weeks vacation, very flexible start times (they wearily put up with my 10AM arrivals as long as I stay to 6), and my choice of projects, and my boss's, boss's, boss's boss recently writing me to congratulating me on 25 years of service and 40 years since I started programming (at 13, with punch-cards) with kind words like "one of our best assets" and "one of a kind".
My secret? I started with a "real" engineering degree and a few years experience at it, then went back or the CompSci degree. I was going to take CompSci at 18 after 5 years of "fun" programming and some paid work doing stats with FORTRAN for civil eng grad students; but backed out with a funny feeling that I should start off in closer touch with the "real world". Best call I ever made.
Being grounded as first an engineer, accountant, doctor, lawyer, nurse, salesperson, surveyor, MBA, technician, any profession that involves a lot of data - in these web days that includes "graphic artist" and "PR", is the difference between GP and medical specialist.
The value you add is that you can skip over half the money spent on software - the requirements analysis, the whole phase of explaining the problem to programmers. Plus, you can go back and forth from yor base profession to w"mostly programming" as the needs of the business come and go. Where there are big software projects, you're the obvious guy to be project leader, you know when the hired programmers are BS-ing or just off-track.
And you're the guy everybody relies upon when the IT systems are balky.What really freaked me is the calls for help I getfrom "kids"- Junior engineers in their early 20's who grew up with Windows PC's and the Web- but they've never studiedprogramming at all. They really aren't sure how to replace me!
So: don't just not call yourself a programmer - don't be one. Enhance another profession with programming.
What?!? You don't put two spaces after your periods?!? Better start looking for a new job!!!1
If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
When I worked in Texas I heard about some legal trouble that Microsoft got into. They were handing out these pieces of paper that said "certified engineer" on them. Well, in Texas law (IIRC) the only legal way you could claim to be an engineer was if you had a professional engineer license issued by the state, or you operated a train. People got around this by using the "MSCE" acronym and not defining the term on resumés, business cards, and such. People would also say that they "have an engineering degree" which was OK under the law since people did not claim to be an actual engineer but only had the training to become one.
It was a couple years after I heard about this Microsoft trouble that they stopped issuing "MSCE" certificates but started to use the terms "professional", "developer", "technician", "architect" (I have to wonder if that term is legally loaded as well), "administrator", "specialist", and perhaps a few other terms. Microsoft no longer claims to be producing engineers.
Point is that people cannot just call themselves an engineer if they like. Words mean stuff. The word "engineer" is a legal term in many states. Putting "software engineer" on a business card or resumé and not having an engineering license from the state can get a person in trouble for practicing engineering without a license, or some other crime.
I've had jobs where my title included the term "engineer" but I've never been licensed by the state as an engineer. That somehow seems to get around the law. Perhaps my engineering degree, issued by a state recognized university, allowed me to do that without legal trouble. Maybe the "certified engineer" term is what got Microsoft in trouble.
Point is that certain words have legal meaning, "engineer" is one of them. Be careful how and where you use that word.
I am armed because I am free. I am free because I am armed.
Very few people working in software today are actually programmers. Most people are software developers, some are architects. Both of those groups do some significant programming very occasionally.
Most work is maintenance - adding features and interfaces to working systems; the skill is the utilization of the components to hand. After that, configuration and customization; taking the wrappers off something and making it work in our environment and process. The next biggest activity is development - bringing a set of components together and getting them to do something new. Finally architecture - thinking at a high level about how the infrastructure will work.
Some places have a need for programmers - people who implement sophisticated algorithms over complex data structures day in and day out. Not that many though.
--------------------------------------------- "In the end, we're all just water and old stars."
No, it's called a divorce :P
I am an ACCA student. Got a query on Accountancy/Finance? Maybe I can help!
As a historical note, "coder" used to be a separate job role from "programmer". Programmers wrote programs. On paper. Coders had the job of translating the program into machine code and entering it on the card punch. An early assembly-language system was dubbed "auto-coder" for that reason.
(There's some similarity here with how "computer" used to be a job description as well.)
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
They are not professional engineers in terms of software or industry. The word engineer dates back to the old days.
Untrue. They are very much considered engineers in industry. My grandfather worked for the railroad briefly in the 1930s and in other industrial settings. He had a state issued stationary engineer's license, this implies there is a non-stationary engineer's license that probably referred to train engineers. The stationary engineer's license that he possessed allowed him to fire the boilers in the electrical power generating plant of an army munitions factory during world war 2.
I get your point, but its a mistake to think licensed engineers only consists of the white collar design and build type jobs. At least as recently as the 1950s.
maybe it's implying that if you're a "programmer", all you can do is to turn pseudo-code to some language.
what people want nowadays are software developers.. because they don't know what they want the software to even do, but they want some of that sweet, sweet, sweeeet software.
world was created 5 seconds before this post as it is.
I guess tht makes me a union man. Really, I never understood what that term meant. (ACM - Look it up if you don't get it.)
the growth in cynicism and rebellion has not been without cause
...and the fact that individual software developer consultants cannot incorporate (well...you can form the s-corp, nobody will stop you, but the IRS will take all your money away after you have made any).
And also the fact that software developers are chronically overworked.
And also the fact that employers don't want to pay real money for the work.
And last but not least, plenty of would-be software developers don't really have what it takes, and are just attracted to the field for the highly portable and marketable skill set. Once they land a job and discover how much it sucks, they move to management (an ANY industry) as quickly as they can.
The whole article seems misguided. A "let me tell you how it is" (with a complete disregard for the reality).
Often wrong but never in doubt.
I am Jack9.
Everyone knows me.
If you do not have an Engineering degree, you should not call yourself an Engineer. As someone who works for an Engineering University, who does NOT have an Engineering degree, I would never water down what an Engineer is. It is prestigious, and should remain so. Respect the title. If you're not one, don't call yourself one.
Sheesh. This is silly. The only place where there is an issue is when someone hangs out a shingle that and practices engineering. People with creative job titles (i.e. Database Engineer) and graduate engineers (4 year degree EE without license) are not being prosecuted for calling themselves by their job titles or degrees UNLESS they hang out a shingle and open a contract engineering company or are claiming to own a company that holds an authorization certificate and does not.
This whole trying to make engineering work like the law industry isn't going
-- $G
If you haven't read TFA, don't waste your time. It's all an opinion piece from one guy's perspective. [citation needed] should appear after every assertion.
The game.
A CS professor, Dr. Thomas Plew (RIP) in the late 1990s/90s, said "software engineer" was a better title than programmer. I don't remember if he said software developer was good or bad.
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
...PLCs. For right now, PLCs are the way to go.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
Something tells me you've never seen the curriculums for undergraduate software engineering degrees. They're computer science degrees with mandatory software management courses thrown in replacing what would've been elective courses in Computer Sceince. At least in the States they are. Nothing about the curriculums make them more "engineering-like" than Computer Science. Unless my CS program just happened to be more "engineering-like" compared to everybody else. Perhaps ABET accreditation makes all the difference.
I'm a programmer. I have been for over 25 years.
I'm not going to jump on the bandwagon of "software engineer". I think it's as ludicrous as "sanitation engineering."
Any employer who thinks "programmer" is a derogatory or lesser term is too blinded by buzzwords for me to be happy working for them anyhow.
I do not fail; I succeed at finding out what does not work.
The author, Patrick McKenzie, describes himself as an "awkward twenty-something CEO of a multinational company." As an "awkward fifty-something CTO of a multinational company," I can state that I have never read a more truthful and cogent collection of career advice for this profession.
What he says is the way it is.
Please don't take this personally, but I've known quite a few hardware degreed folks who style themselves as software engineers. In my old line of work (Dept of Defense), actual software engineering had a lot to do with formal methods, verification, testing, and frankly oft-times math well beyond the bog standard diffeqs that so many engineers consider to be their final math course. Many degreed hardware engineers don't have a clue (nor do some computer science folks). And no, having an engineering degree in another discipline doesn't give you the "right" (facetious here) to call yourself a software engineer.
;)
Not trying to be a dick about it, but just sayin'.
Never expect Human Resources to be human or resourceful.
Support SETI@home
Note this passage in the Florida statutes (471.031 (1)(b)1.): "A person may not [...] use the name or title “professional engineer” or any other title, designation, words, letters, abbreviations, or device tending to indicate that such person holds an active license as an engineer when the person is not licensed under this chapter, including, but not limited to, the following titles: [...] 'software engineer,' 'computer hardware engineer,' or 'systems engineer.'"
I can tell you from personal experience that the State of Florida will prosecute someone simply for having a business card with the title of "Software Engineer" who is not a Registered Professional Engineer in the state. (No, it wasn't my card.) People thinking that "people with creative job titles [...] are not being prosecuted for calling themselves by their job titles or degrees UNLESS they hang out a shingle and open a contract engineering company or are claiming to own a company that holds an authorization certificate and does not" are living in a dreamworld. A printed card clearly violating a statute is what's known in the legal profession as "physical evidence," and prosecutors wanting an easy conviction love these kinds of cases.
programming anything but the most trivial applications is computer science, e.g. math, and lots of it. Every single aspect of programming involves lots and lots of math, even for supposed 'application programmers'. Take a few 300 level CS courses (you need them to work on big projects) and you'll find it's really just discrete math. As soon as you get past a web form + php for 20 users you're in math territory, if only to just make your app fast enough to scale.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
See this comment. You absolutely cannot call yourself whatever you want in the US. Rules vary by state, but in almost all states the reason you have every right to call yourself an engineer if you work in the engineering department of a company in an Engineering capacity, is because that industry is specifically exempted from such requirements (in Florida, it's the aerospace and military industries, with some other, lesser, exceptions). Calling oneself a "Software Engineer" without also being a Registered Professional Engineer is specifically listed as a prohibited act in the statues.
The "certification organizations" are irrelevant; this is state law.
I've had a career in programming for about 30 years so far. I've loved the tech side of things, and I've always called myself a programmer. (or grunt)
People either know what it means or they don't and you have to explain it to them.
Calling yourself a software engineer does not change the job.
A programmer by any other name is still a programmer (and smells as sweet).
I am not a lawyer,and the following is not legal advice:
I can see where anyone who is a sole proprietor or owns a company and entitles them self a "systems engineer" or "software engineer" would run into trouble under that law. After reading all of 471, I can't see where some guy who gets a job as a programmer at a company he does not own and gets handed a stack of business cards that say "software engineer" on them would be prosecuted under 471.031. Would seem there are more than a few provisions in that law to prevent people in that situation from being prosecuted (see .003, 0.31, .023).
In other words, a printed card may or may not violate the statute, and you probably should get some legal advice from an actual lawyer if you are concerned about it.
-- $G
Although most likely true, this just goes to show that adjectives follow fashion and fall out of favor.
The bible of software engineering algorithms?--The Art of Computer Programming (vol. 1-4) by Donald Knuth.
I'm pretty sure that the humble Knuth wouldn't have a problem describing himself as a Programmer.
There's a live copy of MSDOS visicalc on that site; I grabbed it, ran it (under XP) -- awesome nostalgia. Thanks!
I've fallen off your lawn, and I can't get up.
Plus, creating maintainable code is an even more difficult skill. The pool of people who can program is limited, and the pool of those who know how to build maintainable code is even smaller.
I've seen a lot of newbies make spiffy stuff, but when I look at their code or have to fix or change it when they move on, Mamma Mia!
Table-ized A.I.
If everybody inflates their title to avoid the pitfalls of peon-sounding titles, then it dilutes the worth of the higher titles, and pretty soon they all mean nothing.
"I'm not a trash-man, I'm a Waste Engineer!"
It just becomes a never-ending bullshit game. If we were good at that, we'd instead go into marketing or politics.
Table-ized A.I.
You just have to specify "Software Engineering" to distinguish it from real actual engineering.
Citation required. Seriously.
I live in Canada. While I do know that there are penalties for misrepresenting oneself as having actual engineering training and education, I am unaware of any prohibitions on the term "software engineer".
I've called myself a software engineer for decades now.... Nobody has ever so much as looked at me sideways for it.... it's even been listed on official records of employment that the government itself has records of... if it were illegal, I'm pretty sure I would have heard about it by now.
File under 'M' for 'Manic ranting'
My job duties range from architecting caches and DSP structures, to coming up with clever ways to break systems, to automatically generating performance characterization suites, to analyzing the bulk quantities of data that result from them.
To do all these things, I write a fair bit of software to achieve these goals. But, in the end the software is a tool to reach some other end. It isn't an end in and of itself.
Therefore, while I program things (and program them well, IMHO), I don't consider myself a "programmer." My primary work output isn't programs. It's architectural decisions, performance analysis, etc. Programs are just a tool I use to get there. The fact that I fashioned my own tools just means I'm more likely to achieve my goals than someone who can't make their own tools when none exist that will give them the answer they need.
Now, if the primary output of my job was software, where others provided the requirements inputs, and I produced software to meet those requirements for someone else's consumption, then I might consider calling myself a programmer. But honestly, I have to believe a large quantity of software gets written to further some other immediate need, not as an end in and of itself.
Program Intellivision!
What is the American obsession with working for a startup company all about? Is it just the prospect of working hard for a few years and then cashing in when it goes public?
To have a right to do a thing is not at all the same as to be right in doing it
At the end of the day, your life happiness will not be dominated by your career.
What if being called a programmer makes you happy? ;-)
Like it is for people who are forced to work with sub-IQ nitwits.
If you don't want a programmer, what in the hell is your business doing developing software?
One day I feel I'm ahead of the wheel / the next it's rolling over me / I can get back on / I can get back on
I call myself a codemonkey. Reclaiming the term! Codemonkey and proud of it! (Mostly because it's an inherently funny word.)
EM&C - Electron Manager & Capitalist