Don't Call Yourself A Programmer, And Other Career Advice

If there was one course I could add to every engineering education, it wouldn’t involve compilers or gates or time complexity.  It would be Realities Of Your Industry 101, because we don’t teach them and this results in lots of unnecessary pain and suffering.  This post aspires to be README.txt for your career as a young engineer.  The goal is to make you happy, by filling in the gaps in your education regarding how the “real world” actually works.  It took me about ten years and a lot of suffering to figure out some of this, starting from “fairly bright engineer with low self-confidence and zero practical knowledge of business.”  I wouldn’t trust this as the definitive guide, but hopefully it will provide value over what your college Career Center isn’t telling you.

90% of programming jobs are in creating Line of Business software: Economics 101: the price for anything (including you) is a function of the supply of it and demand for it.  Let’s talk about the demand side first.  Most software is not sold in boxes, available on the Internet, or downloaded from the App Store.  Most software is boring one-off applications in corporations, under-girding every imaginable facet of the global economy.  It tracks expenses, it optimizes shipping costs, it assists the accounting department in preparing projections, it helps design new widgets, it prices insurance policies, it flags orders for manual review by the fraud department, etc etc.  Software solves business problems.  Software often solves business problems despite being soul-crushingly boring and of minimal technical complexity.  For example, consider an internal travel expense reporting form.  Across a company with 2,000 employees, that might save 5,000 man-hours a year (at an average fully-loaded cost of $50 an hour) versus handling expenses on paper, for a savings of $250,000 a year.  It does not matter to the company that the reporting form is the world’s simplest CRUD app, it only matters that it either saves the company costs or generates additional revenue.

There are companies which create software which actually gets used by customers, which describes almost everything that you probably think of when you think of software.  It is unlikely that you will work at one unless you work towards making this happen.  Even if you actually work at one, many of the programmers there do not work on customer-facing software, either.

Engineers are hired to create business value, not to program things:  Businesses do things for irrational and political reasons all the time (see below), but in the main they converge on doing things which increase revenue or reduce costs.  Status in well-run businesses generally is awarded to people who successfully take credit for doing one of these things.  (That can, but does not necessarily, entail actually doing them.)  The person who has decided to bring on one more engineer is not doing it because they love having a geek around the room, they are doing it because adding the geek allows them to complete a project (or projects) which will add revenue or decrease costs.  Producing beautiful software is not a goal.  Solving complex technical problems is not a goal.  Writing bug-free code is not a goal.  Using sexy programming languages is not a goal.  Add revenue.  Reduce costs.  Those are your only goals.

Peter Drucker — you haven’t heard of him, but he is a prophet among people who sign checks — came up with the terms Profit Center and Cost Center.  Profit Centers are the part of an organization that bring in the bacon: partners at law firms, sales at enterprise software companies, “masters of the universe” on Wall Street, etc etc.  Cost Centers are, well, everybody else.  You really want to be attached to Profit Centers because it will bring you higher wages, more respect, and greater opportunities for everything of value to you.  It isn’t hard: a bright high schooler, given a paragraph-long description of a business, can usually identify where the Profit Center is.  If you want to work there, work for that.  If you can’t, either a) work elsewhere or b) engineer your transfer after joining the company.

Engineers in particular are usually very highly paid Cost Centers, which sets MBA’s optimization antennae to twitching.  This is what brings us wonderful ideas like outsourcing, which is “Let’s replace really expensive Cost Centers who do some magic which we kinda need but don’t really care about with less expensive Cost Centers in a lower wage country”.  (Quick sidenote: You can absolutely ignore outsourcing as a career threat if you read the rest of this guide.)  Nobody ever outsources Profit Centers.  Attempting to do so would be the setup for MBA humor.  It’s like suggesting replacing your source control system with a bunch of copies maintained on floppy disks.

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.  You know Salesforce, widely perceived among engineers to be a Software as a Services company?  Their motto and sales point is “No Software”, which conveys to their actual customers “You know those programmers you have working on your internal systems?  If you used Salesforce, you could fire half of them and pocket part of the difference in your bonus.”  (There’s nothing wrong with this, by the way.  You’re in the business of unemploying people.  If you think that is unfair, go back to school and study something that doesn’t matter.)

Instead, describe yourself by what you have accomplished for previously employers vis-a-vis increasing revenues or reducing costs.  If you have not had the opportunity to do this yet, describe things which suggest you have the ability to increase revenue or reduce costs, or ideas to do so.

There are many varieties of well-paid professionals who sling code but do not describe themselves as slinging code for a living.  Quants on Wall Street are the first and best-known example: they use computers and math as a lever to make high-consequence decisions better and faster than an unaided human could, and the punchline to those decisions is “our firm make billions of dollars.”  Successful quants make more in bonuses in a good year than many equivalently talented engineers will earn in a decade or lifetime.

Similarly, even though you might think Google sounds like a programmer-friendly company, there are programmers and then there’s the people who are closely tied to 1% improvements in AdWords click-through rates.  (Hint: provably worth billions of dollars.)  I recently stumbled across a web-page from the guy whose professional bio is “wrote the backend billing code that 97% of Google’s revenue passes through.”  He’s now an angel investor (a polite synonym for “rich”).

You are not defined by your chosen software stack: I recently asked via Twitter what young engineers wanted to know about careers.  Many asked how to know what programming language or stack to study.  It doesn’t matter.  There you go.

Do Java programmers make more money than .NET programmers?  Anyone describing themselves as either a Java programmer or .NET programmer has already lost, because a) they’re a programmer (you’re not, see above) and b) they’re making themselves non-hireable for most programming jobs.  In the real world, picking up a new language takes a few weeks of effort and after 6 to 12 months nobody will ever notice you haven’t been doing that one for your entire career.  I did back-end Big Freaking Java Web Application development as recently as March 2010.  Trust me, nobody cares about that.  If a Python shop was looking for somebody technical to make them a pile of money, the fact that I’ve never written a line of Python would not get held against me.

Talented engineers are rare — vastly rarer than opportunities to use them — and it is a seller’s market for talent right now in almost every facet of the field.  Everybody at Matasano uses Ruby.  If you don’t, but are a good engineer, they’ll hire you anyway.  (A good engineer has a track record of — repeat after me — increasing revenue or decreasing costs.)  Much of Fog Creek uses the Microsoft Stack.  I can’t even spell ASP.NET and they’d still hire me.

There are companies with broken HR policies where lack of a buzzword means you won’t be selected.  You don’t want to work for them, but if you really do, you can add the relevant buzzword to your resume for the costs of a few nights and weekends, or by controlling technology choices at your current job in such a manner that in advances your career interests.  Want to get trained on Ruby at a .NET shop?  Implement a one-off project in Ruby.  Bam, you are now a professional Ruby programmer — you coded Ruby and you took money for it.  (You laugh?  I did this at a Java shop.  The one-off Ruby project made the company $30,000.  My boss was, predictably, quite happy and never even asked what produced the deliverable.)

Co-workers and bosses are not usually your friends: You will spend a lot of time with co-workers.  You may eventually become close friends with some of them, but in general, you will move on in three years and aside from maintaining cordial relations you will not go out of your way to invite them over to dinner.  They will treat you in exactly the same way.  You should be a good person to everyone you meet — it is the moral thing to do, and as a sidenote will really help your networking — but do not be under the delusion that everyone is your friend.

For example, at a job interview, even if you are talking to an affable 28 year old who feels like a slightly older version of you he is in a transaction.  You are not his friend, you are an input for an industrial process which he is trying to buy for the company at the lowest price.  That banter about World of Warcraft is just establishing a professional rapport, but he will (perfectly ethically) attempt to do things that none of your actual friends would ever do, like try to talk you down several thousand dollars in salary or guilt-trip you into spending more time with the company when you could be spending time with your actual friends.  You will have other coworkers who — affably and ethically — will suggest things which go against your interests, from “I should get credit for that project you just did” (probably not phrased in so many words) to “We should do this thing which advances my professional growth goals rather than yours.”  Don’t be surprised when this happens.

You radically overestimate the average skill of the competition because of the crowd you hang around with:  Many people already successfully employed as senior engineers cannot actually implement FizzBuzz.  Just read it and weep.  Key takeaway: you probably are good enough to work at that company you think you’re not good enough for.  They hire better mortals, but they still hire mortals.

“Read ad.  Send in resume.  Go to job interview.  Receive offer.” is the exception, not the typical case, for getting employment: Most jobs are never available publicly, just like most worthwhile candidates are not available publicly (see here).  Information about the position travels at approximately the speed of beer, sometimes lubricated by email.  The decisionmaker at a company knows he needs someone.  He tells his friends and business contacts.  One of them knows someone — family, a roommate from college, someone they met at a conference, an ex-colleague, whatever.  Introductions are made, a meeting happens, and they achieve agreement in principle on the job offer.  Then the resume/HR department/formal offer dance comes about.

This is disproportionately true of jobs you actually want to get.  ”First employee at a successful startup” has a certain cachet for a lot of geeks, and virtually none of those got placed by sending in a cover letter to an HR department, in part because two-man startups don’t have enough scar tissue to form HR departments yet.  (P.S. You probably don’t want to be first employee for a startup.  Be the last co-founder instead.)  Want to get a job at Googler?  They have a formal process for giving you a leg up because a Googler likes you.  (They also have multiple informal ways for a Googler who likes you an awful lot to short-circuit that process.  One example: buy the company you work for.  When you have a couple of billion lying around you have many interesting options for solving problems.)

There are many reasons why most hiring happens privately.  One is that publicly visible job offers get spammed by hundreds of resumes (particularly in this economy) from people who are stunningly inappropriate for the position.  The other is that other companies are so bad at hiring that, if you don’t have close personal knowledge about the candidate, you might accidentally hire a non-FizzBuzzer.

Networking: it isn’t just for TCP packets: Networking just means a) meeting people who at some point can do things for you (or vice versa) and b) making a favorable impression on them.

There are many places to meet people.  Events in your industry, such as conferences or academic symposia which get seen by non-academics, are one.  User groups are another.  Keep in mind that user groups draw a very different crowd than industry conferences and optimize accordingly.

Strive to help people.  It is the right thing to do, and people are keenly aware of who have in the past given them or theirs favors.  If you ever can’t help someone but know someone who can, pass them to the appropriate person with a recommendation.  If you do this right, two people will be happy with you and favorably disposed to helping you out in the future.

You can meet people over the Internet (oh God, can you), but something in our monkey brains makes in-the-flesh meeting a bigger thing.  I’ve Internet-met a great many people who I’ve then gone on to meet in real life.  The physical handshake is a major step up in the relationship, even when Internet-meeting lead to very consequential things like “Made them a lot of money through good advice.”  Definitely blog and participate on your industry-appropriate watering holes like HN, but make it out to the meetups for it.

Academia is not like the real world: Your GPA largely doesn’t matter (modulo one high profile exception: a multinational advertising firm).  To the extent that it does matter, it only determines whether your resume gets selected for job interviews.  If you’re reading the rest of this, you know that your resume isn’t the primary way to get job interviews, so don’t spend huge amount of efforts optimizing something that you either have sufficiently optimized already (since you’ll get the same amount of interviews at 3.96 as you will at 3.8) or that you don’t need at all (since you’ll get job interviews because you’re competent at asking the right people to have coffee with you).

Your major and minor don’t matter.  Most decisionmakers in industry couldn’t tell the difference between a major in Computer Science and a major in Mathematics if they tried.  I was once reduced to tears because a minor academic snafu threatened my ability to get a Bachelor of Science with a major in Computer Science, which my advisor told me was more prestigious than a Bachelor of Science in Computer Science.  Academia cares about distinctions like that.  The real world does not.

Your professors might understand how the academic job market works (short story: it is ridiculously inefficient in engineering and fubared beyond mortal comprehension in English) but they often have quixotic understandings of how the real world works.  For example, they may push you to get extra degrees because a) it sounds like a good idea to them and b) they enjoy having research-producing peons who work for ramen.  Remember, market wages for people capable of producing research are $80~100k+++ in your field.  That buys an awful lot of ramen.

The prof in charge of my research project offered me a spot in his lab, a tuition waiver, and a whole $12,000 dollars as a stipend if I would commit 4~6 years to him.  That’s a great deal if, and only if, you have recently immigrated from a low-wage country and need someone to intervene with the government to get you a visa.

If you really like the atmosphere at universities, that is cool.  Put a backpack on and you can walk into any building at any university in the United States any time you want.  Backpacks are a lot cheaper than working in academia.   You can lead the life of the mind in industry, too — and enjoy less politics and better pay.  You can even get published in journals, if that floats your boat.  (After you’ve escaped the mind-warping miasma of academia, you might rightfully question whether Published In A Journal is really personally or societally significant as opposed to close approximations like Wrote A Blog Post And Showed It To Smart People.)

How much money do engineers make?

Wrong question.  The right question is “What kind of offers do engineers routinely work for?”, because salary is one of many levers that people can use to motivate you.  The answer to this is, less than helpfully, “Offers are all over the map.”

In general, big companies pay more (money, benefits, etc) than startups.  Engineers with high perceived value make more than those with low perceived value.  Senior engineers make more than junior engineers.  People working in high-cost areas make more than people in low-cost areas.  People who are skilled in negotiation make more than those who are not.

We have strong cultural training to not ask about salary, ever.  This is not universal.  In many cultures, professional contexts are a perfectly appropriate time to discuss money.  (If you were a middle class Japanese man, you could reasonably be expected to reveal your exact salary to a 2nd date, anyone from your soccer club, or the guy who makes your sushi.  If you owned a company, you’d probably be cagey about your net worth but you’d talk about employee salaries the way programmers talk about compilers — quite frequently, without being embarrassed.)   If I were a Marxist academic or a conspiracy theorist, I might think that this bit of middle class American culture was specifically engineered to be in the interests of employers and against the interests of employees.  Prior to a discussion of salary at any particular target employer, you should speak to someone who works there in a similar situation and ask about the salary range for the position.  It is <%= Date.today.year %>; you can find these people online.  (LinkedIn, Facebook, Twitter, and your (non-graph-database) social networks are all good to lean on.)

Anyhow.  Engineers are routinely offered a suite of benefits.  It is worth worrying, in the United States, about health insurance (traditionally, you get it and your employer foots most or all of the costs) and your retirement program, which is some variant of “we will match contributions to your 401k up to X% of salary.”  The value of that is easy to calculate: X% of salary.  (It is free money, so always max out your IRA up to the employer match.  Put it in index funds and forget about it for 40 years.)

There are other benefits like “free soda”, “catered lunches”, “free programming books”, etc.  These are social signals more than anything else.  When I say that I’m going to buy you soda, that says a specific thing about how I run my workplace, who I expect to work for me, and how I expect to treat them.  (It says “I like to move the behavior of unsophisticated young engineers by making this job seem fun by buying 20 cent cans of soda, saving myself tens of thousands in compensation while simultaneously encouraging them to ruin their health.”  And I like soda.)  Read social signals and react appropriately — someone who signals that, e.g., employee education is worth paying money for might very well be a great company to work for — but don’t give up huge amounts of compensation in return for perks that you could trivially buy.

How do I become better at negotiation?  This could be a post in itself.  Short version:

a)  Remember you’re selling the solution to a business need (raise revenue or decrease costs) rather than programming skill or your beautiful face.

b)  Negotiate aggressively with appropriate confidence, like the ethical professional you are.  It is what your counterparty is probably doing.  You’re aiming for a mutual beneficial offer, not for saying Yes every time they say something.

c)  ”What is your previous salary?” is employer-speak for “Please give me reasons to pay you less money.”  Answer appropriately.

d)  Always have a counteroffer.  Be comfortable counteroffering around axes you care about other than money.  If they can’t go higher on salary then talk about vacation instead.

e)  The only time to ever discuss salary is after you have reached agreement in principle that they will hire you if you can strike a mutually beneficial deal.  This is late in the process after they have invested a lot of time and money in you, specifically, not at the interview.  Remember that there are large costs associated with them saying “No, we can’t make that work” and, appropriately, they will probably not scuttle the deal over comparatively small issues which matter quite a bit to you, like e.g. taking their offer and countering for that plus a few thousand bucks then sticking to it.

f)  Read a book.  Many have been written about negotiation.  I like Getting To Yes.  It is a little disconcerting that negotiation skills are worth thousands of dollars per year for your entire career but engineers think that directed effort to study them is crazy when that could be applied to trivialities about a technology that briefly caught their fancy.

How to value an equity grant:

Roll d100.  (Not the right kind of geek?  Sorry.  rand(100) then.)

0~70: Your equity grant is worth nothing.

71~94: Your equity grant is worth a lump sum of money which makes you about as much money as you gave up working for the startup, instead of working for a megacorp at a higher salary with better benefits.

95~99: Your equity grant is a lifechanging amount of money.  You won’t feel rich — you’re not the richest person you know, because many of the people you spent the last several years with are now richer than you by definition — but your family will never again give you grief for not having gone into $FAVORED_FIELD like a proper $YOUR_INGROUP.

100: You worked at the next Google, and are rich beyond the dreams of avarice.  Congratulations.

Perceptive readers will note that 100 does not actually show up on a d100 or rand(100).

Why are you so negative about equity grants?

Because you radically overestimate the likelihood that your startup will succeed and radically overestimate the portion of the pie that will be allocated to you if the startup succeeds.  Read about dilution and liquidation preferences on Hacker News or Venture Hacks, then remember that there are people who know more about negotiating deals than you know about programming and imagine what you could do to a program if there were several hundred million on the line.

Are startups great for your career as a fresh graduate?

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.  If you really wanted to get into a startup two years out of school, you could also just go work at a megacorp for the next two years, earn a bit of money, then take your warchest, domain knowledge, and contacts and found one.

Working at a startup, you tend to meet people doing startups.  Most of them will not be able to hire you in two years.  Working at a large corporation, you tend to meet other people in large corporations in your area.  Many of them either will be able to hire you or will have the ear of someone able to hire you in two years.

So would you recommend working at a startup?  Working in a startup is a career path but, more than that, it is a lifestyle choice.  This is similar to working in investment banking or academia.  Those are three very different lifestyles.  Many people will attempt to sell you those lifestyles as being in your interests, for their own reasons.  If you genuinely would enjoy that lifestyle, go nuts.  If you only enjoy certain bits of it, remember that many things are available a la carte if you really want them.  For example, if you want to work on cutting-edge technology but also want to see your kids at 5:30 PM, you can work on cutting-edge technology at many, many, many megacorps.

(Yeah, really.  If it creates value for them, heck yes, they’ll invest in it.  They’ll also invest in a lot of CRUD apps, but then again, so do startups — they just market making CRUD apps better than most megacorps do.  The first hour of the Social Network is about making a CRUD app seem like sexy, the second is a Lifetime drama about a divorce improbably involving two heterosexual men.)

Your most important professional skill is communication: Remember engineers are not hired to create programs and how they are hired to create business value?  The dominant quality which gets you jobs is the ability to give people the perception that you will create value.  This is not necessarily coextensive with ability to create value.

Some of the best programmers I know are pathologically incapable of carrying on a conversation.  People disproportionately a) wouldn’t want to work with them or b) will underestimate their value-creation ability because they gain insight into that ability through conversation and the person just doesn’t implement that protocol.  Conversely, people routinely assume that I am among the best programmers they know entirely because a) there exists observable evidence that I can program and b) I write and speak really, really well.

(Once upon a time I would have described myself as “Slightly below average” in programming skill.  I have since learned that I had a radically skewed impression of the skill distribution, that programming skill is not what people actually optimize for, and that modesty is against my interests.  These days if you ask me how good of a programmer I am I will start telling you stories about how I have programmed systems which helped millions of kids learn to read or which provably made companies millions.  The question of where I am on the bell curve matters to no one, so why bother worrying about it?)

Communication is a skill.  Practice it: you will get better.  One key sub-skill is being able to quickly, concisely, and confidently explain how you create value to someone who is not an expert in your field and who does not have a priori reasons to love you.  If when you attempt to do this technical buzzwords keep coming up (“Reduced 99th percentile query times by 200 ms by optimizing indexes on…”), take them out and try again.  You should be able to explain what you do to a bright 8 year old, the CFO of your company, or a programmer in a different specialty, at whatever the appropriate level of abstraction is.

You will often be called to do Enterprise Sales and other stuff you got into engineering to avoid: Enterprise Sales is going into a corporation and trying to convince them to spend six or seven figures on buying a system which will either improve their revenue or reduce costs.  Every job interview you will ever have is Enterprise Sales.  Politics, relationships, and communication skills matter a heck of a lot, technical reality not quite so much.

When you have meetings with coworkers and are attempting to convince  them to implement your suggestions, you will also be doing Enterprise Sales.  If getting stuff done is your job description, then convincing people to get stuff done is a core job skill for you.  Spend appropriate effort on getting good at it.  This means being able to communicate effectively in memos, emails, conversations, meetings, and PowerPoint (when appropriate).  It means understanding how to make a business case for a technological initiative.  It means knowing that sometimes you will make technological sacrifices in pursuit of business objectives and that this is the right call.

Modesty is not a career-enhancing character trait: Many engineers have self-confidence issues (hello, self).  Many also come from upbringings where modesty with regards to one’s accomplishments is culturally celebrated.  American businesses largely do not value modesty about one’s accomplishments.  The right tone to aim for in interviews, interactions with other people, and life is closer to “restrained, confident professionalism.”

If you are part of a team effort and the team effort succeeds, the right note to hit is not “I owe it all to my team” unless your position is such that everyone will understand you are lying to be modest.  Try for “It was a privilege to assist my team by leading their efforts with regards to $YOUR_SPECIALTY.”  Say it in a mirror a thousand times until you can say it with a straight face.  You might feel like you’re overstating your accomplishments.  Screw that.  Someone who claims to Lead Efforts To Optimize Production while having the title Sandwich Artist is overstating their accomplishments.  You are an engineer.  You work magic which makes people’s lives better.  If you were in charge of the database specifically on an important project involving people then heck yes you lead the database effort which was crucial for the success of the project.  This is how the game is played.  If you feel poorly about it, you’re like a batter who feels poorly about stealing bases in baseball: you’re not morally superior, you’re just playing poorly

All business decisions are ultimately made by one or a handful of multi-cellular organisms closely related to chimpanzees, not by rules or by algorithms: People are people.  Social grooming is a really important skill.  People will often back suggestions by friends because they are friends, even when other suggestions might actually be better.  People will often be favoritably disposed to people they have broken bread with.  (There is a business book called Never Eat Alone.  It might be worth reading, but that title is whatever the antonym of deceptive advertising is.)  People routinely favor people who they think are like them over people they think are not like them.  (This can be good, neutral, or invidious.  Accepting that it happens is the first step to profitably exploiting it.)

Actual grooming is at least moderately important, too, because people are hilariously easy to hack by expedients such as dressing appropriately for the situation, maintaining a professional appearance, speaking in a confident tone of voice, etc.  Your business suit will probably cost about as much as a computer monitor.  You only need it once in a blue moon, but when you need it you’ll be really, really, really glad that you have it.  Take my word for it, if I wear everyday casual when I visit e.g. City Hall I get treated like a hapless awkward twenty-something, if I wear the suit I get treated like the CEO of a multinational company.  I’m actually the awkward twenty-something CEO of a multinational company, but I get to pick which side to emphasize when I want favorable treatment from a bureaucrat.

(People familiar with my business might object to me describing it as a multinational company because it is not what most people think of when “multinational company” gets used in conversation.  Sorry — it is a simple conversational hack.  If you think people are pissed off at being manipulated when they find that out, well, some people passionately hate business suits, too.  That doesn’t mean business suits are valueless.  Be appropriate to the circumstances.  Technically true answers are the best kind of answers when the alternative is Immigration deporting you, by the way.)

At the end of the day, your life happiness will not be dominated by your career.  Either talk to older people or trust the social scientists who have: family, faith, hobbies, etc etc generally swamp career achievements and money in terms of things which actually produce happiness.  Optimize appropriately.  Your career is important, and right now it might seem like the most important thing in your life, but odds are that is not what you’ll believe forever.  Work to live, don’t live to work.

About Patrick

Patrick is the founder of Kalzumeus Software. Want to read more stuff by him? You should probably try this blog's Greatest Hits, which has a few dozen of his best articles categorized and ready to read. Or you could mosey on over to Hacker News and look for patio11 -- he spends an unhealthy amount of time there.

281 Responses to “Don't Call Yourself A Programmer, And Other Career Advice”

  1. Peter October 28, 2011 at 6:03 pm #

    Dont call yourself teamcoach.. then we know, you keep others from their work.

    And dont call yourself consultant or architect; then we know for sure you have no technical background; your good in talking or drawing but miss reality perspective.

    Worst of all call yourself manager, then you admit your not a technical person your only good in talking (at least you think so) other people think your even talking nonsense; but feel glad they dont see you.

    Call yourself a handy engineer not afraid to program; in fact you like it.

  2. NoName October 28, 2011 at 6:28 pm #

    tl,dr but seriously, this stood out:

    “Their motto and sales point is “No Software”, which conveys to their actual customers “You know those programmers you have working on your internal systems? If you used Salesforce, you could fire half of them and pocket part of the difference in your bonus.” (There’s nothing wrong with this, by the way. You’re in the business of unemploying people. If you think that is unfair, go back to school and study something that doesn’t matter.”

    Go die in a fire.

  3. Chris Anderson October 28, 2011 at 6:42 pm #

    First of all thanks for the post, it was entertaining and also a good perspective.

    I couldn’t help thinking I’d like to see something with this tone of voice directed at the #occupy movement.

  4. Ben Winston October 28, 2011 at 6:49 pm #

    thanks for the great read! i am currently a developer (not programmer) at one of those mega-corps doing Big Freaking Java Web Application development, among other things. although you do make some points that seem very harsh (see above commenter for a sample reaction), i really appreciated this look into what businesses think about software. i’ve felt pretty jaded because i’m not doing “cool” things at work, like they do at Google or Facebook or any of the startups i read about on HN. but this makes me look at what i was missing: developing software isn’t about programming, it’s about improving a business. and when i look at it that way, i’ve already helped my business impress clients that bring in millions a year. and i’m only six months out of college!

    so, yeah, thanks for the insight. i’m gonna keep this in the favorites bar for the next time i feel like my job is meaningless :)

  5. John Pencola October 28, 2011 at 6:53 pm #

    Wow. What a refreshing, no bullshit, reality check this will become to a lot of folks. Hopefully taken to heart. Thanks for putting this out there and keep up the good work!

  6. kasey_junk October 28, 2011 at 6:56 pm #

    Amen. That is all.

  7. Henrique October 28, 2011 at 7:02 pm #

    Boring read, and demotivating. I don’t think there’s something to learn here, except that we should be glad that there are too many people out there thinking the opposite.

  8. chx October 28, 2011 at 7:22 pm #

    So then what aspiring young software developers actually put on their resume if not “programmer”? I think I missed that one.

  9. Deconstructized October 28, 2011 at 7:31 pm #

    Wisdom.

  10. FeepingCreature October 28, 2011 at 8:11 pm #

    100 does show up on a d100. Dice are 1-offset.

  11. Doug October 28, 2011 at 8:18 pm #

    Thanks for the Career Advice, from a… 30 year old? Who made a bingo card site???

    Sorry to sound REALLY harsh, but Patrick, pretty sure you’ll look back in 5 years and wonder how you could be so arrogant to think you could proffer so much broad advice with so little experience. Sorry, I actually do admire you, read most of your posts, but do yourself a favor and get real. This could all be summed up with, have some common sense, get to know yourself and human motivation, and don’t follow trends.

    Bring it on….

  12. jonny October 28, 2011 at 8:41 pm #

    Great work, man. It’s cool to have a look into the heart of things–as hard as it is for people to look at that difficult heart (as some commenters have shown).

    Cheers, and I’d like to hear more in this vein on HN.

  13. Patrick October 28, 2011 at 8:42 pm #

    Bug: “When you have a couple of billion lying around )”

  14. Patrick October 28, 2011 at 8:46 pm #

    Bug: “It is the right people to do,”

  15. Cidney October 28, 2011 at 8:46 pm #

    Thank you for a great read and great advice. It really gave me some perspective on what to expect after college and some clue as to what I should focus on improving; interpersonal skills, public speaking and able to pass the fizzbuzz test of course.

  16. Alistair October 28, 2011 at 8:47 pm #

    This was interesting and I largely agree.

    Some thoughts:

    - Your focus seems to be on maximizing salary, ahead of all else and this is not a logical goal of all personality types. For example, I could network more with the bosses at my work and this would likely increase my perceived value and thus salary, however I dont particularly like them so I choose less salary over pretending to like people that I don’t like.

    - It is important to always be mindful of the experience you are getting. Even if your salary is low, if you are rewriting Google’s search algorithm from scratch you can be pretty much guaranteed
    either a large pay rise in the future or your next job will have an amazing salary.

    - I would say in most cases the person who will decide is in a dev team lead type role. They are not interested in how you increased revenue or decreased costs in previous roles. They are interested in how you used technology X and design pattern Y so you will be able to hit the ground running in their team (ok and increase revenue or decrease costs). So for business people sure focus on this, but technical people aren’t business people.

    Anyway, awesome post.

  17. Josh October 28, 2011 at 8:50 pm #

    As a 36 year old programmer who has makes over $1 million per year… this is spot on!

    Fantastic post. I found my way eventually, but I wish I had read this when I was in college :)

  18. Patrick October 28, 2011 at 8:51 pm #

    Bug: “saying Yes every time”

  19. Patrick October 28, 2011 at 8:57 pm #

    Bug: “you’re just playing poorly” (no period)

  20. James October 28, 2011 at 9:04 pm #

    ‘So then what aspiring young software developers actually put on their resume if not “programmer”? I think I missed that one.’

    Whatever conveys the value you will bring. Ideally something that shows that you a) created more value than you cost, or b) saved more value than you cost.

    I used to craft my resume to play up my skills and knowledge, but saying I had five years of Java or a CompSci B.S. meant whomever was judging me would have to do assorted estimates and guesses to determine if I was going to, ultimately, make money for them.

    OTOH, if I said I reduced the cost of running a service center because I wrote code that processed more transactions in less time, upping profits, or helped created a Web site that earned X dollars per year, the math becomes much easier.

    The problem for many people is either lack of such experience or lack of knowledge about what they contributed to the bottom line. I now encourage people to keep an updated resume that focuses on the bottom line, and to not wait until they are actually job hunting to figure out just what they’ve contributed (because by then it’s too late or too hard to find out).

    Whatever your experience try to out it in terms of tangible value. And if you don’t have hard data then make up something defensible. (Don’t plain lie; you want to get an interview where you can explain your value in factual concrete terms. If you’re guestimating, say so in the interview. The fact that you even think in those terms will be notable.)

  21. dude October 28, 2011 at 9:15 pm #

    lol @ enterprise

    plenty of real ‘programmer’ jobs where we are valued, they’re just not at bigcorp

  22. PJ Brunet October 28, 2011 at 9:19 pm #

    It’s just marketing from my point of view. Do you drink pop or soda? Same difference.

    Every market is different. For example, here’s convincing evidence PHP “programmers” should call themselves developers – http://www.google.com/insights/search/#q=php%20developer%2Cphp%20programmer&cmpt=q

  23. Nathan October 28, 2011 at 9:58 pm #

    Such arrogance. What you describe is a pointless existence dedicated to serving the prison that is your career, only to starve the intellect and serve the system. Indeed there are ways to live a very above average life (monetarily and otherwise) while not falling into the soul sucking pit described in this post.

  24. Matt October 28, 2011 at 10:17 pm #

    Patrick,

    I appreciate your advice. Thanks for the effort you put into your blog.

    I find your writing is taking more and more effort to understand, though. For example: “All business decisions are ultimately made by one or a handful of multi-cellular organisms closely related to chimpanzees, not by rules or by algorithms.”. How about: “Business decisions are made by people, not algorithms.” Easier to understand, and shorter. Or, “It might be worth reading, but that title is whatever the antonym of deceptive advertising is.” I didn’t bother to decipher that- I just want to get to the good stuff! I know you know you’re writing to nerds, but that doesn’t mean we’re different than everyone else and can understand this kind of writing without effort.

    Anyway, I’ll still keep reading your posts, even if you ignore this Random Guy On The Internet.

  25. mmmpork October 28, 2011 at 10:40 pm #

    Awesome post and full of truth. There are some commenters who seem really shocked and offended by what you are saying and actually calling you arrogant!! That just makes me laugh. A lot of developers I work with live very sheltered lives and have enough basic skill and overconfidence that they can keep their head in the sand and plug along from programmer gig to programmer gig. Some of them really think they shit gold bricks but they can’t speak to the real value of any of the work they do. As a woman engineer, we face a lot of extra challenges, largely social. Women are generally socially conditioned towards modesty, even in very simple language like prefacing things we say with “I think” or “I feel”. I’ve had to learn to speak about myself in the terms you’ve described and express expertise and overconfidence when I don’t really feel that way about myself just to be taken seriously by my various managers. There’s a great book I read called Corporate Confidential that was written by a former VP of HR from a financial institution. Everything you say is spot on with her advice. Thanks for the great post.

  26. Steve Phillips October 28, 2011 at 10:46 pm #

    ‘…If you used Salesforce, you could fire half of them and pocket part of the difference in your bonus.” (There’s nothing wrong with this, by the way. You’re in the business of unemploying people. If you think that is unfair, go back to school and study something that doesn’t matter.)’

    You, sir, are an asshole.

    Most meaningful study has nothing to do with destroying jobs, and you know it.

  27. Clark October 28, 2011 at 10:53 pm #

    Career advise nicely explained for developers… I wish I read this when I graduated from college. Took me a few years of stumbling to realize the business side of an engineering career.

  28. George October 28, 2011 at 11:03 pm #

    This is so true. Exactly what I’ve experienced.

    I’ve seen so many of my fellow CS students focus on such unimportant things like the depth of some Framework/API just to end up highly qualified in a underpaid job and exploited. And then others, that couldn’t even spell programming got hired for high status jobs simply based on their communication skills.

  29. bubba October 28, 2011 at 11:05 pm #

    My main rule of thumb is: just find a job free of psychopaths and you’ll be happy. I worked at one place where the Senior System Administrator kept demanding to know why an error was made in our department by my co-worker. He wanted a rational reason for irrational behaviour. He would complain often over several years that he was never given a “reason”. Another place, this programmer would always say “Am I right?” every 2 minutes while in conversation, willing to argue for long periods of time and causing much distress until people said he was right. Such people will drive you slowly insane. I finally stopped caring about the type of place I worked and was happy to finally find a place free of psychopaths.

  30. bubba October 28, 2011 at 11:09 pm #

    And another thing … why do hiring people care if I know XP, Agile, Scrum, etc. These strategies will be quickly picked up in the working environment through experience. The one implemented are determined already by lead programmers or other leaders, and I have little say in the near future how they are done.

  31. Anonymous Coward October 28, 2011 at 11:09 pm #

    I pity you, as well as all those who have had to suffer through your misanthropic perspectives while working alongside you.

    Many coding jobs are as you describe, and in fact, if you’re talented and have some degree of drive, you can most certainly find a job working for a company at which you will create user-facing, business critical software that is a pleasure to build.

    Drop the notion that working at some large corporation is in any way good for your career trajectory (or development of complementary skills), and find a startup in your community that needs someone who can code (not that hard to find).

    Don’t listen to this crap. If you’re great, there are great opportunities. For all the rest, maybe this crap applies.

  32. rxp October 28, 2011 at 11:59 pm #

    I’ve been working in industry for just over a year now, and man, I wish I’d read this a year ago! Lots of good stuff in here for people just starting out their careers.

  33. Tony Mechelynck October 29, 2011 at 12:16 am #

    90% of programming jobs are in creating Line of Business software.

    How very true. And even if you get hired by a “software company”, the chances are that your “customer-facing” programs will still be payroll, accounting, or project management — the constant changes in legislation (for the former two) or the constant bugs and snags (for the latter) make sure that there will always be small and tedious adjustments. Sounds familiar? You bet. Been there done that, in the early seventies — and got bored, so I “made it happen”: studied the mainframe’s system software (which was fully documented, in those times) and became “the” onsite software troubleshooter. Much more fun for a few years, with crash trips on weekends from Brussels to Paris or Manchester when there was a severe hardware breakdown. Until my direct boss said I couldn’t “give” a (very small but tricky, and with nice output) software utility to the hardware makers, it had to be “sold” (and of course they wouldn’t buy it). So I quit. My take on the matter is: if it ain’t fun, it ain’t for me, because if then I take it, I’ll botch it, and I don’t like that.

  34. Peter Ashford October 29, 2011 at 12:19 am #

    Your advice makes sense if optimising your remuneration is your only goal. Geeks, like most people, have a range of motivations. Businesses, like people, are run by people who value a range of different things. The last person I hired, I hired because he had a passion for technology. And I didn’t try to talk down his wages.

    Not everyone is an asshole who wants to screw their workmates over.

    I’m glad that I don’t work in your world, or with you.

  35. Rudd-O October 29, 2011 at 12:20 am #

    Lovin’ the haters in the comments. Such incidence of haters is usually a sign that your article is spot-on, and you struck a chord that really BUGGED people who are MISERABLE in their lives (which made them react negatively to your wisdom). Congrats on the post.

  36. Hollywood Extra October 29, 2011 at 12:20 am #

    Anyone who refers to themselves as an “Anonymous Coward” should never start a comment with “I pity you.” Your pity is grossly misdirected.

  37. Chance October 29, 2011 at 12:26 am #

    Great post! After 10 years at the worlds largest software company I can tell you every bit of this is true.

  38. Stefan Mensink October 29, 2011 at 12:46 am #

    Overall a good post, but…

    - Startups. The thing about them (or small/growing companies in general) is, I really think it can be good for young people to work at one for a while. They generally provide you with more insight into the way businesses work than any big company ever could. If you decide to spend a while with a startup, spend time in getting to know how the company works, how the workflow works, how decisions and connections are made, etc. I’ve worked at a startup and learned a lot, and had a lot of fun too.
    - Your blog is mainly about money, which I have no problems with. I mean the reason people work is for money, isn’t it? My advice, however, would be to focus on fun too. Anyone can work that job where you’d build CRUD app after CRUD app every day. Find something inspiring, and be inspired. Also, try to inspire others. Giving yourself the chance to tackle interesting problems with beautiful solutions can make the difference between an OK job and the joy of getting to work to create something awesome.

    The statement about reducing cost/improving profit however is spot on! Developers should pay attention to the companies they work in, and possibly even make suggestions that could accomplish one of these goals. Don’t just focus on getting your app done or adding as many features as you can, focus on how it wil work best for the people that are going to use it!

  39. Rafael October 29, 2011 at 1:43 am #

    Sorry but you will be de damn rich and damn miserable. I see even a divorce in the horizon. You focus on getting rich instead of being happy. Bad focus.

    I feel very happy being a programmer and feel very sorry for people that feel miserable just because the run into “the upper positions” because they wanted the money. ;)

    Good luck anyway ;)

  40. Scott Brickey October 29, 2011 at 2:07 am #

    Almost died laughing at “Someone who claims to Lead Efforts To Optimize Production while having the title Sandwich Artist is overstating their accomplishments” :)

    Well written, and VERY accurate.

  41. Jhon October 29, 2011 at 2:36 am #

    Interesting to read. Not everything applies to everyone, as the comments shows, but it’s nice to have a “marketing” point of view of the job.

  42. Jose October 29, 2011 at 2:37 am #

    I agree, people that develops software(or any other specialist) could ignore bast areas of knowledge, from economics to marketing and others thing. They are smart and they should not have problems acquiring this knowledge if they want but they have because they ignore what they don’t know.

    The fact that some of them hate this article so much is a proof of the typical “Denial”, when we don’t want to acknowledge reality.

    “It might be worth reading, but that title is whatever the antonym of deceptive advertising is.”

    @Matt: I don’t understand the above statement either.

    Disclaimer: I’m developer myself.

  43. Sandra October 29, 2011 at 2:46 am #

    You forget it takes a specific breed of people to follow the advice you attempt to share in this article. I think you could have summarized it all by saying: go to school for engineering, then go to school for business and you’ll get where business majors get to in a software company.

  44. schiptsov October 29, 2011 at 3:55 am #

    Nice style, which looks like copied, along with some sentences, from Spolsky.

    Good imitation is much more difficult to do that just copy-paste.

    Congratulations.

  45. Michael October 29, 2011 at 4:06 am #

    I have to laugh about the asshole comments here. Your posting applies for Germany too and I have made some of those experiences too but I’m currently shifting my profession from mechanics engineering to computer engineering and I’m wondering what will await me after college. Apparentely the same :-D

  46. nyctech October 29, 2011 at 4:16 am #

    I have never read a log post quite like this. You did a fantastic job of weaving great advice in with what seems to be a soured retrospective on career choices. As a former software architect building crappy back office software who is now a tech recruiter I think this is a great read for fresh grads. It can also serve as a compassionate companion read for those toiling away in a cubicle farm building expense tracking applications for corporate entities. Outside of that it was an empathy evoking read that frustrated me because your narrow view adds a bitter tone to the entire blog entry.

  47. Rob October 29, 2011 at 4:17 am #

    Interesting read. Most of it is true, and that’s really sad.

    But why not try to change this, rather than giving advise on how to fit in to this model of bullshit? I grew up in Europe and live in Canada now. I could not believe the crap that was dished out during interviews here (I was the person interviewing). It seemed that every candidate was the best thing since sliced bread. (Note: they were not).

    Personally I prefer an honest representation of your skills and experience. That’s also why I do not like sales :)

    Money is important, but it’s more important to like your job.

  48. Lincoln October 29, 2011 at 4:18 am #

    Amazing insight. While I’m not too concerned about what benefits I get, the programming and negotiation sections were illuminating.

  49. Mike October 29, 2011 at 4:58 am #

    This is, no joke, one of the best blog posts I’ve ever read by anybody, anywhere. Keep up the fantastic writing, this is exactly the kind of stuff I wish I had known when I graduated from college 15 years ago, and it is spot on.

  50. Nitish October 29, 2011 at 5:16 am #

    Thanks for the post! I am a final year Computer Science Engineering Student and the post seemed “Enlightening” :)

  51. xivSolutions October 29, 2011 at 5:24 am #

    Interesting to see who chooses to post their comments anonymously, and who puts some form of user name ( or even link to themselves). Of particular interest are those who flame the “you are in the business of unemploying people” statement.

    In most cases, the purpose for developing software, and the software most valued by most companies, is ALL about automating some task. Automation USUALLY means eliminating 1-to-many human worker positions and letting the computer do it. There are exceptions, but as a rule, I gaurantee you this is true for most of the industry.

    To those who post anonymously “Anonymous” and “Anonymous Coward”: grow a pair. Really? If you valued your opinion as much as you seem to think the rest of the world should, you wouldn’t hide. I suppose at least “Anonymous Coward” chose to hide behind an appropriate handle. I respect Steve Phillips’ comment, because he had the confidence in his opinion to identify himself in his post, with a link. I disagree with him, and find his comment a bit harsh, but I am going to go from here to his page and find out more about him. I just might get additional perspective.

    I found this article to be quite informative, well-written advice on CAREER DEVELOPMENT. Hence, the focus on . . . career development. Items such as salary, benefits, etc. ARE important. I agree with the opinion of others (who seem confident enough in their opinions to identify themselves, with links, even!) that for many, happiness with the work can and should be a key factor. How the individual ranks this in comparison to salary/benefits depends on life situation and goals.

    Thanks Patrick for the great read, and for sharing your experiences.

  52. Buzz Hornsby October 29, 2011 at 5:35 am #

    Some of this is accurate, but much of it is the jaundiced view of a young programmer who’s not happy about his career path so far. The bombast and over-generalization undercut your overall point.

    Some of us have absolutely no stomach for the “sales engineer” idea. Some of us are not interested in IT World and the larger machinations of industry titans. Some of us are perfectly happy to let the marketroids, money guys, and player-wannabees inhabit that world of gossip and fashion. Some of us just like code, tools, languages, making things work, breaking them, and making them work again.

    And some of us have had fantastically successful careers. It still says “programmer” on my resume, despite the specific titles I’ve been given. Works for me.

  53. Sam October 29, 2011 at 5:38 am #

    I read a study recently the detailed the level of compartmentalisation in highly-successful people was so total and complete that they had passed far beyond the clinical definition of sociopath and many of them sat squarely in the “psychopath” branding. Pretty chilling stuff. In order to become successful you must forget who you are and where you come from and ramifications your actions has on other entities.

    This whole article is dripping with psychopathic telltales.

    And it depresses the hell out of me to know that you’re right on nearly every point.

  54. Mike Finney October 29, 2011 at 5:42 am #

    Nice blog! One thing that I want to understand better is how to connect the money outcome to the Software Development that I was a key part of.

  55. Pedro Azevedo October 29, 2011 at 6:31 am #

    ‘Perceptive readers will note that 100 does not actually show up on a d100 or rand(100).’

    Perceptive readers might also note DX includes X, and rand(X) starts with 0.

    Stopped reading.

    Makes some good points, but ruined by excessive cynicism.

  56. easatbank October 29, 2011 at 6:59 am #

    Bravo, Patrick.

    I’ve been a “software developer” for 25 years, contracting in more than 10 different industries, dozens of combinations of languages, stacks and platforms. You demonstrate wisdom well beyond your years.

    I’m very dissappointed with the number of readers who have missed your message, focussing on phrases and other minutae and imagining that they understand your article.

    The debate your article has created is inspiring and will help it live on to ripe old age.

  57. Peter October 29, 2011 at 7:00 am #

    Patrick, what is the purpose of the commenting feature on this site? I’ve read the entire page and I’m wondering what benefit you see.

  58. Marcel October 29, 2011 at 7:12 am #

    Peter Drucker originally coined the term profit center around 1945. He later recanted, calling it “One of the biggest mistakes I have made.” He later asserted that there are only cost centers within a business, and “The only profit center is a customer whose cheque hasn’t bounced.”

    Source: http://en.wikipedia.org/wiki/Profit_center

  59. Rikard Ottosson October 29, 2011 at 7:56 am #

    Of course our business is about eliminating staff. Who is dumb enough to create a LOB system that requires as much manual administration or more than the preceding system or manual process? I think this was a great, positive blog entry that warns that if you strive to look at the big picture and stay concious of your goals you can find a good place where you’ll thrive, whether it is as alpha-geek in a small outfit or a salesy senior dev tech. I have to agree on startups, when you need to see ur kids it doesn’t seem cool with the long hours anymore, just juvenile. Also, re the comments about techy people focusing on tech and not sales, I have to say I haven’t come across a single instance when getting the picture hasn’t been useful. Many deva better versed than me in using the coolest IDE boosters, the awesomest OSS frameworks etc, still took longer to implement features because they could not understand the client’s requirements as they did not care about the big picture.

  60. JohnFx October 29, 2011 at 8:15 am #

    I think this may be the perfect article on the career of a programmer. I wish I had written it first.

    Awesome stuff!

  61. I'm a programmer October 29, 2011 at 8:38 am #

    Are you really in the IT industry? With this type of arrogance, if u don’t belong to the IT industry, then u are too retarded to even comment; if you are, then u are an absolute failure.

  62. kanna October 29, 2011 at 8:47 am #

    fantastic article. reflecting the realties of the world

  63. Benn Linger October 29, 2011 at 9:12 am #

    Excellent read. Truly the best post of its kind I’ve read in recent memory.

  64. Thomas Frank October 29, 2011 at 10:06 am #

    This was an awesome read and I really want to make all my computer science/engineering major friends read it before they graduate.

    Also, to the above commenter: who cares how old the author is or what his product is? Age doesn’t matter, and just because you’re not impressed by his product doesn’t mean it’s not successful or that a lot of work hasn’t gone into it.

  65. Programmer October 29, 2011 at 10:11 am #

    I don’t understand anyone who calls this a good or even true article. It’s entertaining to a degree but I can’t recognize anything in it.

    I *love* everyday I get to get up in the morning and write code. It’s the one thing my entire life that fills me with so much happiness I sometimes think I don’t deserve it. My client loves my work and so does the rest of the small startup I’m working for. I make great money and I feel useful and my work meaningful every day.

    And this like every other job in my life just fell into my lap. I was recommended by contacts. I’ve seriously never had a problem getting good jobs (my last job was programming mobile games which was hilarious).

    I feel like the writer gave up on life and wrote a complaining article instead of moving on to bigger and better. Everything single thing that people complain about I’ve found that it’s very possible to avoid it. Like “I work in a megacorp doing java and it’s boring!”, well keep your eyes and out when the moment is right you switch to a better job at a smaller company where you can be more important and people care.

    If you’re American: I seriously advice you to get some work experience in Europe where we have 5-6 weeks of vacation and good benefits by law. America treats it’s workers like dog food it would seem.

    Anyway, these kinds of articles make me annoyed because they contain solvable problems that are portrayed as somehow unsolvable or hard to solve.

    My advice is to call yourself a programmer and if someone fires you count your blessings you don’t have to work at a crap company like that.

    Cheers!

  66. Patrick October 29, 2011 at 10:20 am #

    I read and agreed with a lot of this article, but I think there’s some really bad career advice given. “Your software stack doesn’t matter” is a very very bad piece of advice. The industry has changed, and your software stack does very much matter. Are you a wordpress professional with published modules? Are you deeply involved with working with the peoplesoft platform? How about someone who’s been writing oracle forms for the past five years? When a employer hires you, they do NOT want to train you. There’s no “sink or swim” in this industry, because if you’re not a pro in the desired software stack you’re just not going to get hired. You can choose to be platform agnostic to open up your job choices, but the pay won’t be as good, and the companies will be smaller. Competent companies with competent IT management know exactly what their software stack is and will go to great lengths to find (and even relocate) people who are professionals in THEIR preferred technology stack.

    There you have it.

  67. Jeremy Hutchings October 29, 2011 at 11:01 am #

    Culturally narrow and ignores a lot of the psychology, though a good list of points for people to go though from their own point of view.

  68. Mentifex October 29, 2011 at 11:12 am #

    I am a programmer of artificial intelligence and I do not care whether you hire me or not, because my AI software will make you obsolete.

  69. Developer Analyst October 29, 2011 at 11:38 am #

    Awesome article and bang on in terms of career advice.

    I will be recommending this article to all developers I work with.

    Thank you for putting the time and effort into writing it!

  70. YetAnotherProgrammer October 29, 2011 at 11:39 am #

    Dear Patrick,

    Don’t call yourself a programmer, really, because you’re not. You’ve taught english and played bingo, where is the programming in that? I would be ashamed to call myself a programmer knowing that a person like you calls himself a programmer too. Programming it’s an art, it’s a joyful activity, you’re just to much of an ass to know that. If you just don’t like programming, don’t do it, it’s that simple, but don’t rant about something just because you’re not good at it. The shit you just wrote (yeah, it’s shit, anyone who believe it actually has some real value, besides entertainment, are in a real need of a reality check) reminds me of all those “alternative medicine” gurus: they try to sell you water telling you it will cure your headaches, and at the same time, rant about the uselessness of traditional medicine.

    In conclusion, you are *NOT* a programmer, you will *NEVER* be a programmer, *STOP* acting like you are a programmer, i call myself a programmer because i’m proud of it, i would call myself an asshole if would write rubbish like this, i would call myself a dumb-ass if I would thing this article has some value.

    Sincerely,
    YetAnotherProgrammer

  71. Gregory October 29, 2011 at 12:15 pm #

    Thank you for a nice article. You say in the beginning

    “The goal is to make you happy, by filling in the gaps in your education regarding how the “real world” actually works.”

    Let’s assume your description of our “real world” is correct. Does it make you happy knowing this “fact”? It sounds more as if you gave up on what really made you happy and joined the dark side instead.
    If your goal was be to make us happy by filling this educational gap of ours, then you failed.
    We should strive to change this reality and not give in to it.
    The course I would add to every engineering education would be

    “Learn to play an instrument”

    It would sure bring me more happiness.

  72. Chuck Norris is not a programmer October 29, 2011 at 12:15 pm #

    >> starting from “fairly bright engineer with low self-confidence and zero practical knowledge of business.”

    Programmers often start as kids with talent for seeing details in things. That’s a universal world-wide phenomenon. You can’t write code if you can’t tell a=b from a==b. And often that brings lack of talent for the big picture => hence zero knowledge of business.

    A good way for any programmer to boost his (but not hers) big-picture-skills and self-confidence is to train martial arts, boxing, wrestling, self-defence…. disciplines that train you to get the feeling for the big picture of things. In a very real-world stressful environment very unlike computer programming.

    People will feel self-confidence and you will get a better job. Or you can slam down somebody’s laptop on the meeting if you don’t agree with him. Or push the guy that called you ‘geek’ on your way to the toilet. Some knowledge of necessary force and conceal carry laws is also helpful so you don’t end up doing time for slicing throat of a sales guy who called you the “working bee”.

    The more different things you know the better you will fare.

  73. Mike G. October 29, 2011 at 12:28 pm #

    Great info on how the corporate world works, for a technical person with blinders on. Be careful though kids, if you start communicating too well people will try to make you a manager before long…

  74. Ben Leslie October 29, 2011 at 12:40 pm #

    If you “write and speak really, really well.”, why do you keep using collections of letters like “favoritably” as if they were words?

  75. Thibaut Colar October 29, 2011 at 12:41 pm #

    So a programmer is the guy that does the “boring” work and might have a sense of ethics which obviously is incompatible with success (Not the first time I hear that stupid argument unfortunately).

    Well I rather be that, than a yuppy that thinks being successful mean laying off as many people as he can.

    “Line business software” … boring, yes. But there is a reason why there is “business” in there. Maybe if your business and it’s software was best of breed that would be a better way to be a successful and LIKED business, rather than using the cheapest thing you can find and the lowest number of employees possible and then rely on marketing, phony SEO and what not.

    What’s your credential exactly, you started what? Bingo something … ho yeah that must make you a guru, ninja, expert or something.

  76. Joe Nelson October 29, 2011 at 12:48 pm #

    The article is wise to remind us that programmers are hired to solve business problems. A programmer looking to sell their services would be smart to keep those business problems in mind when talking to a buyer.

    However, as others have mentioned, the article is contemptuous of technical ability itself, and of pride in craftsmanship. This debate reminds me of one from 2400 years ago where a guy named Gorgias took Patrick McKenzie’s side.

    “Gorgias … asserts that it is an advantage of his profession that a man can be considered above specialists without having to learn anything of substance.”
    http://en.wikipedia.org/wiki/Gorgias_(dialogue)#The_debate_about_rhetoric

  77. Jerry October 29, 2011 at 1:18 pm #

    I will be sure to take none of your advice.

  78. mgb October 29, 2011 at 1:28 pm #

    Clearly you’ve only ever done the roll-two-ten-siders d100 trick. There are (or were) a few non-offset 100 siders made. They’re not very fun to roll, but they do have the singular advantage of having a 100 on them.

  79. Peter Drinnan October 29, 2011 at 1:56 pm #

    I have been calling myself a business solution provider for years. Same thing as the author here in how long it took me to realize the word “programmer” is a no no.

    btw, I am having a hard time believing new comp sci grads can’t solve the FizzBuzz test. I need to put that thing to the test on some of my junior guys next week.

    Thanks for the great article and I also enjoyed reading a lot of the comments.

  80. mark wusinich October 29, 2011 at 2:15 pm #

    I finished reading this great article and then I was like “What’s this thumbnail of bingocards doing here?”. Good work. Glad to have finally found where you are writing now.

  81. John (TentBlogger) October 29, 2011 at 2:39 pm #

    this was epic. what a read. great stuff. it was shared with my startup team and we all had a great laugh.

    :)

  82. Jack S October 29, 2011 at 3:06 pm #

    That is a very long rant, a few gems in there… keep it up!

  83. Someone October 29, 2011 at 3:28 pm #

    Remember that it may be illegal to call yourself an engineer if you don’t have an accredited degree in engineering, in certain countries (eg some commonwealth countries)

  84. Smart Company Software October 29, 2011 at 3:43 pm #

    Wow, I think I’m going to have to read this again! *scrolls to the top of th page*

  85. jw October 29, 2011 at 3:50 pm #

    Focusing your career on value creation (be the person who creates the thing that people buy) can lead to ownership of the values creation if you’re smart. Just be sure you understand what “ownership” means, and you won’t end up working for an absentee landlord (AKA a VC). It’s the theme of mISV if you’re paying attention.

  86. Clinton Gallagher October 29, 2011 at 4:53 pm #

    Honestly, the first word that comes to mind every time I read:

    c) ”What is your previous salary?” is employer-speak for “Please give me reasons to pay you less money.” Answer appropriately.

    is asshole.

  87. Diego October 29, 2011 at 4:58 pm #

    What if we didn’t have the programmers?

    “…pretty sure you’ll look back in 5 years and wonder how you could be so arrogant…”

  88. David October 29, 2011 at 5:18 pm #

    “Showed It To Smart People” just about cried laughing.

  89. Wouter October 29, 2011 at 6:51 pm #

    There are some good points buried in this post, in between all that Machiavellian psychopath babble. Overall, a decent enough read; and I’m I don’t know you.

  90. ADnD October 29, 2011 at 7:17 pm #

    “Perceptive readers will note that 100 does not actually show up on a d100″

    <– Your geek card is confiscated ; ) (like the other person, I quit reading at that precise point ; )

  91. bit October 29, 2011 at 7:30 pm #

    Reading through the negative comments is tiring.

    1. To think that you can get by without following any of the advice laid out in the article, you’d be in the minority. I can’t believe that the majority of “programmers” out there will achieve career satisfaction without first recognizing for themselves the ultimate value of their output to humanity. Sure, you’ll be happy for a long time just to be coding in ignorant bliss, but at some point a lot of people will be looking for something more. I’d like to think (again, another assumption) that the people who don’t end up looking for more and maintain happy lives are in the minority and simply were able to find their happiness elsewhere (such as from family) to make up for the drudgery of their work-life.

    2. The world isn’t run by programmers. It’s that simple. This article merely aims to give you a different perspective. We’d like to think that we live in a perfect meritocracy, but the truth is that the career progress of the majority of programmers are in the hands of non-programmers. We need to recognize that and make sure that we cater our services to them. They are, after all, our clients.

    I know a good chunk of people out there are perfectly happy being “programmers” and being seen that way by the outside world (in fact, I’m very good friends with a lot of such people), but you have to recognize that not everyone is like that.

    Just because you disagree with the author’s beliefs doesn’t make them any less true. Also, you just have to accept that the fact that some truths don’t apply to everyone. If it doesn’t apply to you, it likely applies to someone else, so don’t be so negative about it.

  92. regeya October 29, 2011 at 7:59 pm #

    “I couldn’t help thinking I’d like to see something with this tone of voice directed at the #occupy movement.”

    Hey, OWSers, you don’t want to direct your anger at the banks; direct your anger at coders, instead, because their job is to eliminate jobs.

  93. Laslo October 29, 2011 at 8:03 pm #

    Good post but I think you should really read this: http://susam.in/blog/re-infosys-tcs-or-wipro/. It has a completely different view point than yours. I’m not really favoring one post over the another but a healthy debate is a good thing.

  94. coolingfan October 29, 2011 at 9:06 pm #

    Thanks for all the advice. I’m starting my first non-academic work in a week and I feel like there are a lot of “business” skills that I need to hone.

  95. JohnK October 29, 2011 at 9:10 pm #

    This was good advice for all engineering folks. It should give most of us something to think about irrespective of whether we believe everything that was written. Self Promotion is a necessity for your career and your business. Know how business works, like profit vs cost centers. Playing with fun stuff is okay but it should not be the do-all and end-all. Engineers as a whole are terrible at helping each other out. Yes life is competitive but help each other network.

  96. Ardhi October 29, 2011 at 9:52 pm #

    “This blog is about the business aspects of running Bingo Card Creator, a small software company. Want more great articles? I keep a list of my best work curated. A brief summary of the last few years is available here. If you like what you see, I encourage you to sign up for the RSS feed. Thanks for visiting!”

    And you said about that startups is not a good place to work for money? I bet you dont have any employees right now.

  97. Faturita October 29, 2011 at 9:53 pm #

    I found a lot of true in your post, but I do not think it is a good idea for engineers to follow the path that you are suggesting in it. If you want to be good at negotiation, marketing, etc, well, you should have studied business instead of engineering. Let the people with MBAs work out all the business things, and we will keep going making the world spinning and get the money that we deserve for doing that.

  98. Drake P October 29, 2011 at 9:53 pm #

    Just read the entire article. I’m gonna bookmark this and re-read it when I’m done with school and looking for work. Hopefully it will save me from a few things. Also, I loved your summary of Social Network.

    “The first hour of the Social Network is about making a CRUD app seem like sexy, the second is a Lifetime drama about a divorce improbably involving two heterosexual men”

  99. Catelu October 30, 2011 at 4:12 am #

    Yes, you really want to be in a profit center. Because you’re so smart that you hire some indians to design smart phones, you hire some chinese to manufacture them and then you sell them to the same indians and chinese at five time the price.
    But do you really think it will take long for them to realize that they can sell them themselves and “outsource” you?
    I would say people who bring the most value in a product should be best compensated, and most value doesn’t mean selling or “signing checks”. It’s a matter of time to see this happen.

  100. Andrew Underwood October 30, 2011 at 4:15 am #

    You hit the nail on the head. As a business leader in a number of IT companies I provide this advice to each graduate I meet.

  101. elh October 30, 2011 at 4:54 am #

    I’ve come to that conclusion too late , I’m 34 and my entire focus was to do a better job, to become a better programmer as the lack of social skills leaves withno familiy, frieends,gf or what not.
    Then I came to the conclusion it doesn’t matter , nothing matters anymore, I don’t matter,if I don’t make a difference then I consider myself as allready dead. I don’t think I would have believed this post in the begining, as not having a goal of delivering bug free software seems like a hack, non ethical, but its true no one cares really. I have a few more decades to think how I would spend my prison sentance beyond work, maybe ill find something.

  102. Name October 30, 2011 at 5:53 am #

    The comments that I skip first are the ones starting, or even just somewhere containing, the magic “skip me please” phrase. You know the one: “tl;dr”.

  103. Captain America October 30, 2011 at 6:05 am #

    Bug: “lead” instead of “led”, at least twice.

  104. Sheila October 30, 2011 at 6:29 am #

    To the people thinking that this advice isn’t good for real programmers who enjoy writing code — You might love to program, but without the authority to decide how to implement the solutions to the problems you will enjoy solving you will have to implement what you get told to. (or ignore what you are told, and see if you can get away with it–you might be able to)

    Even if you do get lucky and get to design something and work on it all the way to production deployment, other people in the company won’t immediately look to you for the next interesting project.

    This gets really old after a while. I’m at a point where this happens, and I’m ready to reboot and find a new job with lessons learned or at the very least learn how to be thought of as someone people will think of when interesting problems come up at my current company.

  105. Ender October 30, 2011 at 6:42 am #

    Spot on.

    For everyone that reacted negatively and with powerful emotion, you I recommend taking a moment to ask yourself why this upset you so much. I would suggest that there is great value in the answer to that question.

    If you think you are a super programmer that will get the corner office with low lights and squishy carpet due to your superior skills, you are sadly mistaken. The guys that make their way learned what this post details. Don’t typecast yourself and be well rounded. People that are good at one thing (programming) get paid for doing one thing well. People that are good at a lot of things (programming, analysis, management, communication) are hard to find and are paid for doing a lot of things well…which means a LOT of money. If you say that money doesn’t matter to you, it means you are probably still living with your parents, don’t have a wife, and certainly don’t have kids.

    Keep up the good work. Best post I have read in a long time.

  106. John October 30, 2011 at 6:47 am #

    Thanks for this article. I retweeted it before I finished reading the whole thing. Also, nice talk at BoS2011.

  107. Rafael October 30, 2011 at 6:54 am #

    I really enjoyed reading the points made here.

    Now, allow me to also give you a piece of advice to your career:
    Hold the narcissist inside of you.
    Also, you do not need to show excessive criticism to gain respect from others (although, it may work with some particular kind of people).

  108. nobody October 30, 2011 at 6:58 am #

    Well although very harsh I also agree to most of the points described above.

    I recently got in to one of the biggest IT corp in the world and belive me its such a boring and unexicting stuff that I am told to do. They just kill you enthu and confidence and some time I think of quitting this field itself.

    But then you just cant keep blaming the system. There are lot of exciting stuffs there. You just need to seek it…

  109. Bret October 30, 2011 at 7:08 am #

    You guys should also read the awesome discussion about this post going on at reddit: http://www.reddit.com/r/programming/comments/lsyok/dont_call_yourself_a_programmer/

  110. anonymous October 30, 2011 at 7:31 am #

    nonsense

  111. fra October 30, 2011 at 7:54 am #

    Great post!
    Should be teached at school =)

  112. Jos Visser October 30, 2011 at 8:00 am #

    I am truly amazed by some of the negative comments on this blog post. I got 25+ years of experience, worked at small companies, at big companies, at my own company and currently work at Google and the only thing I can say is that this blog post contains a lot of great advice, truly useful insights and some gems that made me rofl.

  113. keven October 30, 2011 at 8:09 am #

    Great article & spot on! I’ve been a developer for 11+ years and have always found a balance between moving forward and being happy.

    So you’re a programmer because programming makes you happy?

    Awesome! But why do you need a job to program? As though they are mutually exclusive? You could be a Subway sandwich artist and STILL program till your heart’s content.

    You should be focused on your “career”, not your hobby. Heed these words: “Work to live, don’t live to work.” or you’re on a fast track to being miserable and burned out.

  114. Doug October 30, 2011 at 8:19 am #

    Nice post.
    To shorten the section on Stock Options and Equity. It does not matter, negotiate a good salary and treat options as an occasional nice bonus or surprise.
    I have made enough on options over the years to buy a car. Not a nice car, but pay off the minivan. Never be dazzled by the stock.
    As an individual contributor, you get maybe 0.1 percent of the total stock. A founder or investor is getting 20-30. A top hired gun CEO about 5. You payout will barely be worth the tax hassle.

    The technology is easy. Never forget that. If you know what people will buy, you can build it.

  115. tr00don October 30, 2011 at 9:33 am #

    This is a very interesting write up. I wonder though if those few people who began low and ended among the world’s billionaire elite today ever followed such rules. I think they actually broke every rule they could and still do. Sure, some of them didn’t make it to tell their stories. But my point is, rules are for followers.

  116. tom October 30, 2011 at 10:57 am #

    happiness is a warm gun

  117. RubyPanther October 30, 2011 at 12:47 pm #

    Shorter version:

    Resistance is futile, derp derp derp, all your base, derp

  118. Troy K October 30, 2011 at 1:59 pm #

    @NoName “Go die in a fire” person… if you’re a programmer, what do you think the purpose of your software is? A major point of software is to make business tasks more efficient. That roughly means your software makes things faster at the same price, or cheaper at the same speed. It means fewer people are needed to do the task. You are destroying job positions by programming. That doesn’t mean you cost people a job. It means they can now focus on the less-mundane and more important and rewarding things they do. I’ve been doing this for a while, and the places my software runs didn’t fire people once I automated their tasks. They moved them to more important things.

  119. Michael Giambalvo October 30, 2011 at 2:01 pm #

    This is a fantastic article, one I wish I’d read 10 years ago, but I have to take issue with this:

    “If you genuinely would enjoy that lifestyle, go nuts. If you only enjoy certain bits of it, remember that many things are available a la carte if you really want them. For example, if you want to work on cutting-edge technology but also want to see your kids at 5:30 PM, you can work on cutting-edge technology at many, many, many megacorps”

    In my (limited) experience, it’s the megacorps that will treat you like a cog and want to extract as much value from you as possible. They’ll “suggest” you work late and on weekends. On the other hand, both startups I worked at had a very flat organizational structure and understood the importance of work/life balance and preventing burnout.

    Not saying that’s the universal experience, but there are plenty of startups where everyone clocks out at 5:30pm, and plenty of megacorps where everyone works weekends. It’s important to remember that when you interview, you are also interviewing the company. Figuring out how much they respect their employees is one of the pieces of information you’re trying to pull out of your interviewer.

  120. Cristobal October 30, 2011 at 2:42 pm #

    Great post Patrick.
    Thanks for this useful piece of advice, I really enjoyed reading this post.

  121. Kat October 30, 2011 at 3:07 pm #

    this was just a too depressing, I don’t want to live in your world.

    I started programming with desire to create something beautiful like an artist painting a picture… if not this than whats the point in even trying? I don’t give a damm about the money long as it pays the rent.

    so please don’t believe we all have the same moral values as yourself.

  122. anon October 30, 2011 at 3:16 pm #

    This is literally the most ill-informed and shallow-minded “advice” I’ve ever seen on the internet. Kids, don’t listen to this moron.

  123. Corbin Dallas Multipass October 30, 2011 at 4:36 pm #

    Does anyone else find his software stack advice very dangerous? The entire point of a company investing in a software stack is so *the company* has a familiar point of entry to problems its employees might encounter. So when he says:

    “Want to get trained on Ruby at a .NET shop? Implement a one-off project in Ruby. Bam, you are now a professional Ruby programmer — you coded Ruby and you took money for it. (You laugh? I did this at a Java shop. The one-off Ruby project made the company $30,000. My boss was, predictably, quite happy and never even asked what produced the deliverable.)”

    I am quite sure that the other developers at the Java Shop will be thrilled they have to learn Ruby all of the sudden when the software breaks and the warranty is called in. That $30,000 is certainly worth covering the man hours of your coworkers learning and debugging an entirely different language plus the ill will sowed between your and your coworkers over them having to do so. And that of course will go a long way in developing your career, annoying all your coworkers like that.

  124. Srini Kadamati October 30, 2011 at 6:10 pm #

    Patrick,

    Great post! I’m a business / math guy who loves to hack around with different languages and I’ve always considered dropping business to pursue a CS degree instead. I’ve realized, both thanks to this article and other people I”ve talked to in the industry, that nobody gives 2 pinches of salt what you major in. I interned at a startup and their CTO was an english major who just was good at coding.

    I posted this on my Data Structures message / question board (we use Piazza.com for it) and I hope it help open the eyes to some other students that are concerned about things like a BA in CS versus a BS in CS (UT Austin offers both).

    Lastly, Patrick, I couldn’t help to notice a bug in your code. I’m guessing you’re using Rails because instead of showing the current date, your post showed “”. Just giving you a heads up since nobody else pointed it out!

  125. Bishwas Bhatta October 30, 2011 at 9:21 pm #

    Wow….this is wisdom! if i had read something like this a year ago…i’d be richer by few thousand bucks!

  126. Harm October 31, 2011 at 3:26 am #

    God this was good. The parts about Salesforce and the Marxist academic brought me to tears (of joy). You rule.
    I’m going to print this a hundred times and hand it out on the streets.

  127. NoBit October 31, 2011 at 5:15 am #

    Stunningly perceptive post. Thanks you, Patrick.

  128. Brianw October 31, 2011 at 5:31 am #

    ” It is ; you can find these people online…”

    Didn’t know if this was intentional or not, but still funny! :-D

  129. Brianw October 31, 2011 at 5:33 am #

    The software stripped out the code, but what I posted was a quote from you’re article that appeared to have application code that has been HTML encoded, which I assumed you meant to be interpreted as code (not literal text).

  130. CHLTX October 31, 2011 at 6:00 am #

    @Doug : Patrick may be still wet behind the ears, but for the most part, he’s dead on. I’ve been slinging code for nearly 40 years now, and I’ve learned most of the above the hard way. Reality may bite, but ignoring reality bites harder.

  131. CHLTX October 31, 2011 at 6:07 am #

    “How do I become better at negotiation? This could be a post in itself.”

    Yup. I got my current position after attending a negotiation seminar (which for me was mostly a review), and turning down 3 inappropriate offers. For the insultingly low one, I merely terminated the interview and told the hiring manager that I would not be working for him. After his 2nd follow-up phone call, I asked him to put me on his permanent do-not-call list.

    It wasn’t covered by Patrick, but I believe that the most important tactic to use in negotiation is “win-win, or no deal.”

    …which could be blog-fodder for me…

  132. Daaron October 31, 2011 at 6:11 am #

    Very well done post. It had me laughing and agreeing at almost every sentence. It’s obvious that several of the other posters that they have great trouble understanding sarcasm and lack the tools necessary to comprehend that all communications are transactions. Each one of the bolded items could easily be chapter and the post made into a book. With your wit, I think it would do well.

  133. Jason Fisher October 31, 2011 at 6:33 am #

    I think I agree with every single point made. I’ve been in IT for years, at startups (yes, employee #2), at mega-corps, and at privately held small companies, and the key in every case was to understand that as a developer or manager I am bringing business value to the people writing my checks. Even if they’re still paying me but I’m no longer bringing value to the organization (yes, this happens), it’s just no value to me to be doing that work anymore. I don’t like the corporate culture, but that’s my lifestyle preference; I can work for the 60,000 employee shops, but I choose not to as much as I can.

    As to majors and language choices, I’ve been a developer and problem solver for many years, starting right after I left academics with a Master’s in Classical Greek and Latin … degrees and GPAs were simply irrelevant once I started solving business problems for people by creating usable database applications.

    Great post and thanks for covering so many bases with it!

  134. Jason Gayda October 31, 2011 at 6:51 am #

    Great read! I can’t help but agree with 99% of your post

  135. John Wilbur October 31, 2011 at 7:12 am #

    Probably is spelled probably, not provably. Saw that at least twice. None-the-less, this is a very good, if very long article on what really matters, if money and the prestige, perks, and power it gets you.

    I have worked for mega-corps all my career — 30+ years. I love programming, but have a degree in engineering (not software), an MBA, a CPA, and have spent about 3/4 of the time doing trivial (to me) stuff that makes money, or saves costs for the mega-corps. The other 1/4, actually “programming” or (less interesting) managing programming teams. If you want to make money, get an MBA, manage a team, or better yet a Profit Center. But know it will be less fun.

    Great article! I’m sending it to my kids, who may profit from it.

  136. Danny October 31, 2011 at 7:49 am #

    Great advice.

    Especially the part about how good you negotiate is how much you make.

    That is so true. Instead of taking that course on compiler optimizations, take one on negotiation. You’ll make way more money.

    The biggest problem with Software developers is that they lack sales skills. You have to sell in order to succeed.

  137. Pablo October 31, 2011 at 8:11 am #

    *applause*

  138. Dan Sutton October 31, 2011 at 8:15 am #

    Hmmm… I’m a programmer, and I have been for 32 years. It says so on my résumé, which is 20 pages long, or something, and lists projects which go back to the early ’80s, when everyone programmed in machine code and lived in the forest, and nobody lived anywhere else. In my career, I’ve met maybe two people who can do what I do. Maybe.

    Every now and then, I change a byte of my résumé and resubmit it to monster.com, just for kicks: I then get 15 phone calls a day for a week or so, with people on the other end of the phone desperate to hire me.

    I think what you should be saying is, “Don’t call yourself a programmer if you’re a crappy programmer”. The fact that 90% (and I’m being generous here) of programmers are barely capable of spelling “programmer” lends some weight to what you’re saying, but real programmers (all three of us) need not take any notice of what you’ve written: that I’m even replying to it is largely due to the fact that I obviously haven’t had enough coffee this morning.

  139. Wayne Kenneth Seymour III October 31, 2011 at 8:16 am #

    Wow. I have been fortunate enough to have been taught by elder engineers on these principles.
    However, I’ve never seen a more succinct presentation on this info.

    I was taught; and had to learn over the years.

    Bravo.

    I’ll be reading this again from time to time, to remind myself.

  140. Anoymous Coward October 31, 2011 at 8:22 am #

    Idunno, almost nothing you wrote rings a bell with me, and I can’t say I have been unsuccessful so far. For the last ten years, I did indeed almost exclusively LOB apps. IMO, what makes such a job nice or boring is what your take on the project at hand is.

    Now I’ve switched jobs, and work more on sort of infrastructure things. But the last project I did was a huge LOB app – a team comparable to us in size was not able to complete it in almost three years, in fact, all they did was a completely unmaintainable mess.

    We spent the first almost four months doing nothing but research. Then we completed the project in another ten month. At the end, it had proper documentation, a well defined, maintainable, highly modular and loosely coupled architecture, provided a services interface for third party apps which wasn’t even in the requirements (it just so happened that the services interface we used internally was easier to expose than to hide), it had quite good unit test coverage, code was generally reviewed and kept in accordance with a well defined standard, and it had its own huge battery of scripted tests. During the project, we had to implement a custom authentication and authorization system, a licensing system, we had to integrate foreign technologies and components, and define, verify formally, implement and test various algorithms. Now, if that’s not programming fun, nothing is.

    Had we gone the same way the team chose which tried its teeth on the project before us, it would indeed have been an extremely boring project, consisting mostly of CRUD code, tons of hand-crafted HTML and CSS, and hand-written Javascript which is anything but reusable or maintainable. But it was our choice not to do so. The customer was happy and we were even happier.

  141. anemet October 31, 2011 at 9:58 am #

    I like the post and before reading the comments :/( I thought this guy is a real tech/business genius :) but now i’m kind of “dilematic” so to speak… but I know I want to earn much more money then I currently do, so of course I’ll follow some of the advices :P

  142. Leonardo October 31, 2011 at 10:39 am #

    @The people who did not get the d100 joke
    He isnt talking about the 2 D10 rolls, but the first D100s (yes, the ones that looked like a sphere) didnt have a “100″, but “00″ instead.
    And if you notice, he said 00-70, not 01-70, meaning he already included the “00″ roll. A “100″ would be a 101th side.

  143. Anonymous October 31, 2011 at 1:02 pm #

    It’s funny to see people’s reactions to this article.

    People are either passionate about their profession or not.

    I strongly suspect that the author of this article is not. Because if you are, then you are likely also good at what you’re doing. And if you’re good at what you’re doing, it’s very difficult not to get paid for it (assuming, of course, that what you are doing is worthwhile to begin with).

  144. Alan October 31, 2011 at 1:18 pm #

    For those who don’t appreciate this post because they prefer to think of businesses as full of people who are primarily concerned with the general welfare, this must sound harsh. Still, it won’t help you any if you are ignorant of the fact that this is basically how businesses think.

    Also, please read the last paragraph. The poster recognizes that the most important things are definitely not money or career.

  145. nuculerman October 31, 2011 at 1:37 pm #

    I like how you use “profit center” and “cost center” in one breath, then decree buzz words are mostly useless in another.

    Why make this complicated? It’s not. It’s common sense at it’s most common. If you want a job you need to convince an employer that you can produce more than you cost them. It’s really that simple. It doesn’t matter if you call yourself a programmer, an aquatic marketer, or a disciple of Zorg; all any rational company is going to care about is that they’re profiting off you.

    Programmers have three means of producing: modeling, automation and software products. The first is much easier to quantify. The second is only easy to quantify if your work results in people getting fired. The second is the real reason “programming” is a dirty word for MBA’s, because even if you write code that saves $200k worth of man hours a year, you didn’t produce anything of value unless your manager fires $200k worth of salaried employees, or even scarier for a manager, comes up with $200k worth of new productive work to give current employees. The third is self explanatory, and easiest to quantify. If you’re in the first or third line of work, it doesn’t matter what you call yourself, as long as you make it clear you’ve produced more than you’ve cost. If you’re in the second, you’ll want to market yourself as a business consultant, and find a nice IT/Software consulting company to work for.

  146. Experienced Developer October 31, 2011 at 3:49 pm #

    I’d add one more tip:
    Constantly improve yourself and your worth to the companies you work for. Do not rely solely on your employer to improve your skill set or keep your skills fresh. If you can get them to pay for time to improve yourself, then do it. If what they provide is inadequate, then take your own time and money to do it. It need not be extensive, the equivalent of a few days a year.

    Examples:
    Attending training and/or conferences(speaking at conferences for a bonus).
    Reading relevant periodicals.
    Attending and/or Networking at user groups and the like.
    Take a new job that has excellent learning opportunities (like learning new tech, etc)

  147. Rrrroy October 31, 2011 at 5:29 pm #

    What Rudd-O Said:

    Lovin’ the haters in the comments. Such incidence of haters is usually a sign that your article is spot-on, and you struck a chord that really BUGGED people who are MISERABLE in their lives (which made them react negatively to your wisdom). Congrats on the post.

    Double spot on.

  148. Pablo October 31, 2011 at 6:45 pm #

    I have to say that I wish I have read this 15 years back. I have seen all of this happening time after time, and most of us are not prepared for negotiation. We foolishly believe that science and tech will drive our goals to the upper maximun profit, and to live happily ever after… sadly, no.

    Excelent piece of wisdom. Thanks for sharing, I’ll do my part on re-sharing it with my circles.

    Thanks, a lot

  149. Patrick_Fan October 31, 2011 at 6:51 pm #

    Patrick, great article, I agree with it all. I’m pretty sure you could expand this into a book. I was lucky enough to have a professor touch on some of these items, but most were hard lessons learned over the years.

    The two biggest promotions of my career involved bars. (IT folks really seem to like their beer.)

  150. Mason October 31, 2011 at 7:26 pm #

    Really spot on advice, and like many of the commenters here I wish I had have read this at the start of my career. As someone with almost a decade of experience as a programmer and now running a startup with several other people, much of what is written here is the kind of perspective that you start to gain when you have to do all of the other things in business than just developing the product (the stuff that seems boring at the start of your career).

    Definitely bookmarking this blog.

  151. Severian October 31, 2011 at 9:13 pm #

    Having been a dev for ~10 yrs., I think this piece describes our industry’s version of what’s generally termed as “selling out.” A such:

    1. Most people do it–see the 90% figure. Who knows, from skill or just plain luck, you might end up in the other 10%.

    2. It’s the path of least resistance. I’d add that due to student loans/mortage/family, you may be forced to take this path.

    3. You may be on the way without even knowing it. Your startup’s going to get big one day, right? What then?

    None the less, I think there still are times when it’s worth bleeding for a project, if it’s something in which you really believe, have ownership, etc.–there actualy are people who’ve death marched themselves to fame and glory, see folklore.org–but you have to be able to recognize burn out.

  152. Venkat October 31, 2011 at 11:39 pm #

    Some points are exaggerated without any real intention. However, this post might be useful to those who don’t have any real goal in their life (may be like you? )

    “Your major and minor don’t matter” — How many company interviews you’ve attended to assure this? This basically applies to consultancy companies – but not product based companies.

    You speak about Programmers & Engineers in one place! There is hell a lot of difference between an engineer and a programmer – But your post shows that you’ve taken ‘Engineer’ as a synonym for programmer. Pity :(

    It is not necessary for you to graduate in B.S/M.S in Computer science to become a programmer! Do remember it.

  153. Chris November 1, 2011 at 3:06 am #

    Love it! What I would give to be the professor to teach reality 101 and see all those young faces as I crush their dreams.

  154. bithead November 1, 2011 at 4:42 am #

    Whatever – just don’t call yourself an engineer. ‘Software engineer’ is a term that shouldn’t exist period.

  155. Ben November 1, 2011 at 8:12 am #

    I’ve been reading your posts for a long time, and have used your advice to try and start my own microisv (MoodToolkit.com). Still have a long way to go, but your suggestions have already been a huge help.

    I think this post may be one of your best. You’re an outstanding writer, and you have a really good grasp of the way business actually works. Have you thought about writing a book?

  156. Alex November 1, 2011 at 8:13 am #

    Advice for timpanists: don’t call yourself a percussionist. You aren’t hired to hit drums. Nobody wants that anyway. You are hired to *create musical value*. Most of that time will be spent counting silence. Therefore, you need a job title to reflect that. Besides, you are not defined by the instrument you have studied and practiced. Do timpanists make more or less than cellists? It doesn’t matter, since a good musician can pick up either in a matter of weeks, and in a year no-one will be able to tell that you haven’t been doing it all along.

  157. Charles Sovereign November 1, 2011 at 11:16 am #

    I didn’t read everything.

    But, the start is your RESUME, USE (e.g. Jobskills non-profit org. in Keswick Canada, that help all people with the whole job seeking JOB seneraio, the hardest JOB there is).
    How to present your soft skills, the right objective, hard skills, etc.
    Some you pay for some are free, but definitely seek them out and use them.

  158. Tomasz November 1, 2011 at 2:26 pm #

    What an outstanding and eye-opening read. Thank you.

  159. Marleine November 1, 2011 at 4:40 pm #

    Thank you for writing this!
    Such perspectives are highly needed to help new grads see the full image. Sharing it around for sure!
    As for my opinion, well I can’t say it yet as I have no experience, but I can definitively look back at this post few years from now and see where it lead me.

  160. Christian Seppa November 1, 2011 at 10:59 pm #

    Thanks for all the fish, and a great article, sirrah.

  161. Spencer November 2, 2011 at 6:01 am #

    This post can best be described as a delicious cupcake sprinkled with rat droppings. Lot’s of awesome insight, but with a complacent and depressing conclusion. I choose to live to work. Fuck hobbies.

  162. atfalatktkb November 2, 2011 at 9:33 am #

    You hit the nail directly on the head. Great read.

  163. wart November 2, 2011 at 4:49 pm #

    This is bullshit.

  164. C Macintosh November 2, 2011 at 8:21 pm #

    All in all, a great post. I’ve been in industry for 6 years now and still find it challenging to think in terms of what business value I’ve contributed rather than “I wrote and refactored a bunch of features” in order to negotiate for what-have-you. You have given me some good things to think about. Thank you!

  165. Hans der Hase November 3, 2011 at 1:35 am #

    This post stirred up quite a controversy. I think the confusion and love-hate flamewar roots in a fundamentaly different definition of career.

    The love-gang (and the advise in the post) defines career as “do successful business and increase income and social status” while the hate-gang defines career as “find your passion and get really good at it”. Both are legitimate and can make a good living but they lead to different advise needed.

    The latter kind of career needs Andy Lester’ish “Land the Tech Job You Love” advice. The former needs advice like given by Patrick in this post.

    I think it’s important to keep an eye on the slightly malicious business aspects in any case. But I think this is as far as a techie has to go. One step further and it would be taking Robert Green’ish “48 Laws of Power” or Stanley Bing’ish “100 Bullshit Jobs” advice and that should be kept for the bullies and sociopaths of our world.

  166. Mugo November 3, 2011 at 4:04 am #

    Thanks for the great post.

    Been in the ICT industry for 4 years and have witnessed the situations contained herein over and over.

    And you are spot on about a college leaver working for a start-up; be extra careful.

    I joined a start-up on my 1st real job as the 1st employee; technically (after the secretary). 4 months later I was thrown into a deep end undertaking and was 2 months later unceremoniously fired after ‘failing gloriously’ on the project….

    The advice contained herein is rather global too, (Im from Kenya; some third-world country at the horn of Africa)

  167. ForskarGurra November 3, 2011 at 4:46 am #

    Well actually, some of the most important jobs are related to make other jobs (read: old ways of doing things) obsolete.

    Go back study some history if you don’t see that clearly.

    I bet some people considered entrepreneurs and inventors of the industrial revolution being “jerks” who took their jobs. But would we rather go back to before there were factories?

    It’s what really creates new value in society in the long run: being able to get more done while requiring less money and smaller workforce.

  168. Ice November 3, 2011 at 5:52 am #

    Work is about being of use to your company and dealing with people. Do both to the best of your extent.

    That’s it, no need to be so pessimistic about things.

  169. Ben Inkster November 3, 2011 at 7:36 am #

    This was an excellent post, Patrick.

    Based on your writing style and advice, I’d say that you’ve learned the lesson of not to sweat the haters. But, just to reinforce, DON’T SWEAT THE HATERS

    Your advice is sound, if a bit arrogant. I’m forwarding this article on to several engineer friends. These are guys who believe that if they don’t participate in corporate politics then they are not affected by them. They also are working 60+ hour weeks for salaries that are less than the people who work under them in their team.

    I think the reason for most of the negative reactions is because programming is perceived as an art – like writing prose. However, even with writing books, there are good authors who are starving and there are mediocre authors who make millions. It’s all about positioning and marketing yourself.

    In any case, great post.

  170. m913 November 3, 2011 at 12:17 pm #

    I am not a programmer. Nor an engineer. Nor a 20-something. I am a 50-something lawyer working for a state government. Yet I can say with assurance that most of this advice is true. Especially the end. Do what you love, but learn the best ways to get the best return for doing so.

    By the way, I loved the two-sentence summary of The Social Network.

  171. Jessica November 3, 2011 at 12:18 pm #

    @ Dan Sutton: I’m happy you hadn’t had your coffee yet and forgot that you had more important things to do. That was a win, right there.

    On the bright side, this article made me laugh out loud. The number of spelling errors was pretty egregious even for someone who doesn’t “write and speak really, really well”. I mean, really, you didn’t even run basic spell check? The general lack of concision and organization was pink icing on top of the princess cake. I made it through the whole article, though, because I am a champion, and was procrastinating doing something even more unpleasant. I was sure that I was going to click on that bingo cards link and get re-routed to the website of a billionaire’s consulting firm, but nope, I got . . . bingo cards. This was like sparkles on top of the pink icing on top of the princess cake. Or maybe the whole thing is satire and none of us got it, a la Machiavelli? That would make me feel better.

  172. Dom Finn November 4, 2011 at 5:17 am #

    Excellent post thanks. Only a certain type of person will read this and understand it. I don’t want to know the other types.

  173. Chris November 4, 2011 at 10:08 am #

    I stopped reading when you said “If you think that [the business of un-employing] is unfair, go back to school and study something that doesn’t matter.”

    I have no qualms with the business reasons for reducing employment, it’s called capitalism. There’s nothing unfair about it, but to claim other fields of study not fueled capitalism don’t matter is pathetic, short sighted, and the exact reason why engineers are ignored in political and cultural environments.

    Engineers in our time need a perspective into the future of technology through advanced science research. Engineers of our time need an understanding of art and design to incorporate into their products. (As companies like Apple have shown, there’s great capitalistic value in detail.) The best of our engineers need to have a worldview that opens up the possibilities of innovation, not boxes them into defined rolls. Sure, I haven’t said “programmer” yet, but at the end of the day there’s nothing stopping a programmer from doing just as great things.

    Scrolling through the comments, it looks like I was wise in not finishing reading. Oh well, wasted my time but there’s my $0.02

  174. Siderite November 5, 2011 at 8:05 am #

    There is a big difference between advertising and the actual product. You are advocating to not advertise yourself as a programmer, but what one calls oneself is a deeply personal issue. So I will continue to call myself a programmer, enjoy mambo-jumboing on my mambo-jambo and generally life. And if some employer needs to call me something else and pretend I do something else that what I am actually doing and being good at, then I don’t think I would like to be employed there anyway. I am not living for the money and I am not “in a business”: I call it life.

  175. David Murphy November 5, 2011 at 11:24 am #

    Also worth remembering that the largest part of corporate software spend apart from packages is maintenance of the code created sometimes decades ago. And after that it is packages such as SAP.

    It’s still well paid and even if you end up a corporate drone, you will still be a relatively well paid one.

  176. RM November 5, 2011 at 3:38 pm #

    The irony of this sort of career advice is (a) it will be better understood by folks more than halfway (if not completely) in sync with your career path and (b) you need to have really good timing to make good money, i.e. figure out when to don the suit vs jeans as a programmer to get that better-than-expected bump in pay.

    Things I agree:
    - Networking: VERY essential, especially with like-minded engineers/computer scientists (I married one!)
    - Negotiation: Its really an art that needs mastery. Talk to a relative who does sales and hang with him/her during some negotiation.

    Things I don’t agree / are missing:
    - Startups don’t pay well: There are few that have good leadership and see the company through sales. More work for someone out of school. But, 6-7 years dev experience could make good money, hold good number of shares to see the company through sellout.
    - Keeping up with news: Part of networking, but equally important is to check on industry trends and keep yourself on bleeding edge when possible. It keeps things fresh for you and shows foresight to your next employer.

  177. Marcel Sorger November 5, 2011 at 7:33 pm #

    Interesting read, but lacking.

    While it’s true that Line of Business software runs the world and creating value or reduce costs are the main goals for creating it the departments might have different things they value. If a department has a fixed budget, like most staff departments have, being a match with the departmental culture may be much more important. Things like sociability and the maintainability of your code might matter much more.

    While it’s true that a programmer is not defined by a software stack a specialist most certainly is. Knowing the intricacies of a stack takes time as well as learning the library, tools, the places where you can get help and even mindset of it’s designers. Being a specialist might be more important for a temporary consultant than for a fixed employee, but specialist are generally paid more then generalist at any task.

    Switching language and tools is simply NOT appreciated by departments unless you are asked to do it. While I have seen experiments with a new language or tool the resulting applications had to be rewritten, otherwise they would not be maintained by the departments. A department ideally wants 1 stack to do everything, so it’s easy to swap people around with a minimal learning curve. Switching the stack of a department only happens when companies merge or when the technology is at it’s end but most of the time the new thing of the supplier is used like a move from ASP classic to ASP.NET

    If you experiment with a different stack on the side it could be perceived as a treat, because you might want to leave for a company that actually uses that stack or the company actually adopts it and then all your colleges have to learn something new and they lose a lot of status to you. Also by showing that you’re such a great programmer they might frame you in the “HOBBIEST” instead of the “PROFFESIONAL” category, witch means that you spend to much time on projects to make them overcomplicated.

    Coworkers and bossed aren’t your friends, but who is? Any idea how many marriages go sour or company founders are at each others throat? People like the illusion that they are your friend and it’s enjoyable to have that illusion yourself, but things change so always have an exit strategy ready or have leverage so you’ll be able to blackmail them into acting nice again. Keep a logbook and save your mail so you can find out later what you did and what others did. I think that having dossiers on your coworkers is a little to much, bordering on paranoia, but when push comes to shove you can dig trough your logs and email to create those.

    Startups are great for getting all round experience and finding out what you like, because they will have you do any job that just happens to be there whether you’re qualified or not, but don’t do them too long or you will go crazy. I’ve been involved in 4 startups and in my experience it was always total chaos, with clueless people winging it, creating way to much stress and emotion to do a complex job well. The meager rewards and frequent near bankruptcies, have made me place a premium on money forever.

    After having acquired some marketable skill, go into consultancy. You’ll be working for a number of companies a year mostly between 1 and 4 so you can actually check out what kind of companies you like and how much you hate traffic. You’ll get a car, decent pay, a feel for the market, career coaching, some courses, insight in the development process and a network of former colleges. Mind you constancy companies make the largest margin on juniors, but wheel client in with seniors. Companies don’t want to make you senior because it costs them more, unless you can generate more business. This means that that they support you when you want to do courses but most of the initiative should come from you. After a couple of you will either quit because you spend too much time in your car and have to start over again and again, probably by having been taken over by a company you have been assigned to, or you are going to freelance, because your network has grown so large that you can find jobs yourself and cut out the middle man.

    These are just my thoughts, but does anybody have a different opinion or experience?

  178. Nurp November 7, 2011 at 5:17 am #

    TLDR.

  179. giga©loud November 7, 2011 at 9:39 am #

    Why sales is called as a profit center … don’t the sales guys earn salaries? don’t they spend lavishly on customers and submit heavy expense bills and go on fancy conference meetings? oh wait, I forgot about those fat commissions they earn … how come all this doesn’t count as a ‘cost’ to the company?
    Just bringing in business doesn’t bring in ‘Revenue’. Revenue comes in only when the products are delivered. Its good products that brings in more business not just good sales guy. I think engineers(Programmers) are the actual profit centers for the company. They earn modest salary and company doesn’t have to pay them fat commissions.

  180. Jay November 7, 2011 at 12:34 pm #

    Patrick,

    You probably never have worked in a regular programmer type job in a corp, What you are preaching here is mostly bull siat.

  181. Bob November 8, 2011 at 1:06 am #

    You and your kind in the culture of “corporate america” sound like Julia Roberts in “Pretty Woman” jive talking a client – a whore making themselves look good to score a trick. …And like Jason Alexander’s role as the conniving lawyer. …Bill Clinton comes to mind, as well. You may not all be, as you say, “sandwich artists,” but you are bullshit artists – all smooth talking, game playing, disingenuous, dysfunctional mind-fuckers, selling out their humanity for a dollar and status. So many coping mechanisms for working in such shit.

  182. Paul W. Homer November 9, 2011 at 10:56 am #

    Yep. But I do feel compelled to point out that although you are correct for most of the programming positions available, there are ways around all of these points in reality. For instance, it is possible to get a well-funded research-based programming job outside of academia (so the work isn’t directly about making money, but rather exploration and trying out new ideas). However, it’s extremely competitive and in order to get there, a person needs to understand all or most of the points you raised (particularly about being perceived as useful and networking). The best jobs never make it to the public and it takes a long time to establish enough of a reputation to be able to get yourself into consideration for them.

    Paul.

  183. Roy November 9, 2011 at 2:52 pm #

    That is a lot of very good advice. I have been a software engineer for 19 years (even before it was cool!!!) and I only realized much of that recently.

    In my experience, most people will never quit, no matter how much they are abused. I think at any given time, over 50% will claim they are “thinking about it”, but almost nobody actually will. When you are trying to negotiate a raise, the employer will be assuming you will not actually leave, therefore, your hand is weak.

    In my experience, the only way negotiation ends up in your favor is if they BELIEVE you are willing to walk. The only big raises/promotions I have been able to negotiate were over my letter of resignation, because I had already gone out and found another job and really am willing to go.

    If you try this, make sure your letter of resignation includes reasons they can do something about, in writing. Money, promotion, vacation time, benefits, etc. Then your leaving is THEIR problem, THEIR fault. If you don’t give solid logical reasons which can be addressed, only give verbal reasons, or just give a bunch of meaningless fluff reasons like “I hate it here”, they may decide they can’t stop you or it is just easier to let you leave and hire some new sucker.

  184. Smart Company Software November 9, 2011 at 10:59 pm #

    This is great stuff. It’s interesting to read how many people say you are spot on and how many say you are way off mark. Whatever the opinion, you’ve stirred up a lively debate!

  185. Aaron November 12, 2011 at 9:17 am #

    I love the controversial tone in your post and by the comments your writing style is dead on for provoking discussion.

    I deal with this every day as an Engineering manager where I’m paid to deliver value to the business. I want to deliver it as a software craftsman and take pride in my work.

    It is about balance and priority. Nobody would have heard of Michelangelo if he had not had patrons paying for his art. I’m sure that there were plenty other employed renaissance artists whom we will never remember.

    So take pride in being a programmer, but remember that it is a job.

    Otherwise feel free to code as a hobby. My hobby work plays by my personal rules without being tainted by ‘business’.

    Hacking on an open source package for ‘fun’ and self-learning landed me 2 different jobs.

  186. rf November 12, 2011 at 2:29 pm #

    I don’t know anything about start ups, so I can’t comment there, but most of the rest is spot on. The only real quibble I have is the advice that led to the title of the piece. When I hire programmers for our IT department, I don’t care what they call themselves. In fact the resume/application is only used for one thing-to decide who to interview. Once I’ve made that decision, it’s all about interview.

    One commenter likened the ‘selling yourself’ advice to a whore, and others have been less graphic, but the point is, you have less than one hour to convince me to hire you. We give a programming test to gauge your skills, but other than that you need to convince me that you really did those things you claim to have. I don’t know how many resumes I’ve seen that say something like ‘worked on team to optimize production distribution–saved company $5m per annum’ but when I get into the interview with them, it’s clear from their skill level and their lack on I depth knowledge of the project that they were one of those people that went to some of the meeting, but had little to do with the product. I also frequently have interviewees that can’t tell what they actually know or don’t, and because it going to take me $30-40k to find out (assuming I fire you in 6 months because you can’t program) I’m not going to take a chance on you.

    It’s a fine balancing line between taking too little credit and taking to much, and some of us managers (bad word, but I was ‘peter principaled’ into the job) have gotten pretty good guessing, but meet us halfway and learn to communicate effectively.

    For those that dislike the overall thrust of the argument, perhaps you’re in the 5-10% that get to do the programmer-bohemian lifestyle, hopping from startup to startup, and if that’s the case, bully to you. But be prepared that it may not work for you, which means this advice will be helpful. Or you may prefer the stability of a job whose status isn’t dependent on whether the VCs came through with more funding. I went from running my own small business, to corporate when a change in my health status meant I could no longer deal the the possibility of not having health insurance, even for a short period of time. Marriage, kids, mortgages are other reasons people sometimes start looking for stability.

    -rf

  187. Deepak November 13, 2011 at 9:29 am #

    A lot of posts say “money is not the only thing in programming”. Yeah! Sure, say that to girls who have only completed high school but are earning more than you dump you.

  188. Rolf Walko November 13, 2011 at 12:26 pm #

    Pad Thai at Aw Taw Kaw Market (31 March 2009 by Michael)

  189. JamesOsaka November 14, 2011 at 4:41 am #

    Hey Patrick,

    Great post. Recently purchased your app sumo (Mixergy? can’t remember) interview on scalable content generation and came here… was interested as I’m based in Osaka

    Seems like most of the visitors are programmers here? I think you really have to try to look at the position of someone you is hiring you when you consider your title.

    As a mid sized business owner with the occasional project I would never employ someone who’s title was programmer.

    To me that means some kid who gonna write some crazy code and leave halfway through the project when there’s a new video game release…

    At a minimum I want to hire a small team or mid size group of software developers. That gives me the confidence that if someone is sick or on holiday my project isn’t screwed. Presumably there’s also a track record there..

    Testimonials and a good web presence are key too…

    So maybe business software solution provider would work? If you plan to work for a big company and want to be a cog in the wheel then I guess programmer is fine …

    In terms of the art and the utility of programming I would say that marketing yourself, your relationship skills and your coding are most important in that order.

    Patrick, hit me up for ebisu and takoyaki if you’re in Osaka….

    J

  190. Bart November 14, 2011 at 12:52 pm #

    Good stuff. I’ve been working as a consultant for plenty of IT companies and most of what you say is very true. Programmer just hits the wrong note with people that have no clue about anything else than synergy, efficiency and optimizing the value of service to stakeholders.
    Go for developer, architect or Solution something or other. And when negotiating, pick a reasonable salary per month and add 500. I did this twice and was stumped to be hired. Impression counts, and having the balls to ask for a big salary gives an impression of competency.

  191. Bob November 17, 2011 at 10:37 am #

    rf on Nov. 12 – excellent and genuine, down-to-earth, in-the-trenches clarification and perspective without sounding like the author, a self-aggrandizing, slick (not in appearance) “big shot”/”playa.”

  192. Fletch November 18, 2011 at 2:24 am #

    About the first third of this post contains fascinating, correct, vital insight for its target audience (young developers). The rest of the post is interesting too. Is it true that programmer job applicants can’t program? Here’s what they asked me at my first job interview: http://www.saltwebsites.com/2011/best-cs-graduates-can-even-write-hello-world :-)

  193. 够戏博客 November 19, 2011 at 10:20 pm #

    各种压力,其实我也是个softer。、、。

  194. Programmer December 4, 2011 at 6:47 am #

    Im programmer.

  195. Programmer December 4, 2011 at 7:03 am #

    if I’m boss and build houses with my own hands I’m a bricklayer. I am proud to be a programmer. The shame is on those leaders who do not know how to build a wall with their hands. For it is certain that these lives the greed in their hearts.

  196. letskeepthisanoymous December 8, 2011 at 2:53 pm #

    This is a really good post.

    They taught us design patterns, etc at University and I was itching to be an agile engineer who plans projects, replans, then implements (software lifecycle and all that) but lets face it, there just isnt enough time. I get two weeks to build a new software system. While maintaining other software i inherited.

    Dont get me wrong I still want to build quality software but that just takes time.

    My approach before reading this was just to finish the software and fix bugs as they come up when users use the software.

    I felt rotten because all my programs are just lines of code with copy paste programming, repeating syntax countless times, loops inside loops inside loops – each making database calls…

    There really is not enough time to build it properly so i build it just to work now and intend to come back to it when things are quieter (if ever). This has assured me I am not a bad engineer, I am just solving business problems in as quick a time as possible…

  197. human mathematics December 8, 2011 at 4:47 pm #

    I really really liked most of this article. But negative feedback is the easier kind to give. You lost some eunoia with this line:

    If you think that is unfair, go back to school and study something that doesn’t matter.

    Do anthropology and astronomy “not matter”? Are you trying to imply that only college majors that lead directly to a well-paying job matter? Why assume college at all?

    If I try to clarify the argument behind the joke, it doesn’t pass muster. I liked computers, so now I am in line to make above-median money and therefore I should accept creative destruction or some other kind of economic social Darwinism?

    It doesn’t logically follow. And the quip, while sort of funny, is mostly just needlessly disparaging.

  198. Another Anonymous Coward December 14, 2011 at 3:42 am #

    @dude: “plenty of real ‘programmer’ jobs where we are valued” – this value being expressed how? With soda? I don’t say there aren’t, but “plenty” is IMO a word too strong. The reason for this is a simple one, which the article’s author also fails to mention: 90% of app development is still CRUD. You don’t need highly skilled programmers for this type of work, you don’t need to pay them well, and you won’t get very good people interested in doing this work. So yes, most of the programming jobs in programming are crappy. But so they are in any other field. Most of all cooks work in crappy fast-foods, very few waiters work in high level restaurants, working on the assembly line of a car factory is as fun as staring at a white wall. And all of these jobs are also not paid well.

    @xivSolutions: some of us may have privacy issues which prevent us from using our real names. Your experience in the working world is obviously limited, if you didn’t think of this.

    Now, about the article: this is the world view of a programmer who doesn’t care about programming, who just cares about payment. Not sure how many of us (who call ourselves programmers) do programming exclusively for the money. While it is useful to be a good negotiator and communicator, that’s not what gives programmers professional satisfaction, it just makes getting obstacles out of the way easier. Do you think the architects who designed the many new stadiums and sport buildings in China for the last Olympics were motivated by money alone? Do you think the constructor workers who built these buildings took pride in the money they earned?

    Other than that, would you hire a pigmentation specialist to paint your house? Or a pipes and fittings expert to repair your heating? I don’t think so. Why then do you think you stand a better chance to get a good programming job by not calling yourself a programmer?

    The author does get some things right, but derives the wrong conclusion, IMO. Here are my thoughts, based on a career longer than his (and I’d say with more accomplishments, even if I can’t talk freely about them):

    Focusing on what you want instead of what your customer or employer needs is the safest way to not get any work at all.

    Programming is not about code, technology stacks, programming languages, nor is it about earning money. It’s about solving problems. Coding skills, stack knowledge, communication skills and any other skills, hard or soft, are useless if you’re not able to put them together to deliver working and usable solutions. Sometimes, providing a solution means actually scratching an itch. That’s it. Don’t take the job if you doesn’t make you happy.

    Being good in what you do (i.e. solving problems in a comprehensible and usable way) usually tends to get you a big salary, with little additional effort (actually, just finding an ad for a good job and going to the interview). Really sucking at what you’re doing won’t get you a big salary no matter how good a negotiator you are. It’s up to you where you want to invest your effort: in becoming a good professional, or in fighting for a position about what your skills would normally allow. The difference is like the one between developing your strategic capabilities to win a war versus focusing entirely on the current battle.

    Negotiation and communication are indeed critical for providing comprehensive, usable solutions (social and financial aspects are as important as technical ones), because without them the chances of sound requirements gathering are dim at best. But they aren’t enough. Besides, negotiation and communication is what gets obstacles out of the way, not what gives you professional satisfaction, if you’re a programmer who actually likes programming.

    You spend more than half of your waking time at work (if you’re a programmer, more like three quarters of it). Money can only improve the time you don’t spend at work up to a limit. This won’t compensate for spending the time you spend working in a crappy environment, with people you don’t like, in bad working conditions, or having to obey heavily bureaucratic regulations – these being specific to any large company.

    In brief: get very good at comprehensibly solving customer problems, and success will come your way. Think about money first, and you’ll never get really successul as a programmer.

    Henry Ford, almost a century back, expressed some thoughts about success in any profession in a very nice way:

    The man who will use his skill and constructive imagination to see how much he can give for a dollar, instead of how little he can give for a dollar, is bound to succeed.

    If money is your hope for independence you will never have it. The only real security that a man will have in this world is a reserve of knowledge, experience, and ability.

  199. Karen December 15, 2011 at 8:59 am #

    Thanks Patrick!

    Your advice is priceless & timeless. Granted, it is not for everyone. Some people live with blinders on. Why else would someone (~80%) work at a job they hate, or for a company they despise for most or their entire lives?

    That you’ve sold out and are miserable? I don’t think they understood your position on the matter.

    I greatly enjoy your writing style. Keep up the good stuff!

  200. That is really attention-grabbing, You are an overly professional blogger. I have joined your feed and sit up for in quest of more of your great post. Also, I’ve shared your site in my social networks

  201. Shorten urls service make money December 20, 2011 at 8:15 am #

    great post, very informative. I ponder why the other experts of this sector don’t notice this. You must proceed your writing. I’m confident, you have a huge readers’ base already!

  202. peace, love, emphaty December 26, 2011 at 10:38 pm #

    F*ckin? amazing issues here. I?m very happy to peer your post. Thanks so much and i am looking forward to touch you. Will you please drop me a mail?

  203. fittings pipe December 28, 2011 at 2:41 am #

    Thank you for another informative website. The place else could I am getting that type of information written in such an ideal means? I have a challenge that I am simply now operating on, and I’ve been at the glance out for such information.

  204. n.podbielski January 4, 2012 at 9:19 am #

    Oh hell… I am quite good in what I do and I am (suprise!) and I am lack of communication skills and self estime…
    …and damn, you’re right that world sucks because all of this ‘i know x languages and have nice CV does’not matter. Mostly matters that what I am not good at: communication, and ability to sell my self as good, valuable employee.

  205. Hello there, just Free file games and programs on http://zabig.ru/

  206. The DNA7 Project x86 v.1.5 January 7, 2012 at 2:20 am #

    Hello, i think that i noticed you visited my site thus i got here to go back the want?.I’m trying to to find things to improve my website!I guess its adequate to make use of some of your concepts!!

  207. Adeline January 9, 2012 at 9:17 am #

    I actually find the post entertaining..Comments are lined up, therefore many people have experienced the points mentioned in the post and was able to relate to it. However, the outcome of our careers does not rely on one factor, it is influenced by several interrelated factors. Sometimes, even if we work really hard and we are fit for the job, things just don’t go our way.

  208. Karthik January 12, 2012 at 4:59 am #

    Being a person who has been development( I am not a programmer ) for some years now and this has been one of the most interesting articles on how the IT industry works. Some of the other articles that have been linked like [http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html] focusing on boons and banes to find great developers which was another nectar for an aspirants in development.

Trackbacks/Pingbacks

  1. Appreciate thyself | jjfiv - October 28, 2011

    [...] just came across this article Don’t Call Yourself A Programmer courtesy of the programming tag at Delicious, which I frequent via my RSS [...]

  2. How Fresh Graduates Can Grow | Swaroop C H - India, Technology, Life Skills - October 28, 2011

    [...] Update on 29-Oct-2011: Also read this great article by Patrick McKenzie (a.k.a. patio11) called “Don’t Call Yourself A Programmer, And Other Career Advice” [...]

  3. Industry 101, what college does not teach you. - October 28, 2011

    [...] how to surve as a programming in the real world. This is a must read for any would be programminer. Don’t Call Yourself A Programmer, And Other Career Advice by Patrick McKenzie << What is the Cloud and [...]

  4. Career Advice | Delightfully Distinctive COLRS - October 28, 2011

    [...] Patrick’s Blog, Oct [...]

  5. “Don’t call yourself a programmer.” « Aaron J. Wilkins - October 29, 2011

    [...] “Don’t Call Yourself a Programmer.” Share this:TwitterFacebookLike this:LikeBe the first to like this post. Programming Programming ← Starting over, and continuing. [...]

  6. Don’t Call Yourself A Programmer, And Other Career Advice | The Personal Blog of Artem Koval, M.Sc. - October 29, 2011

    [...] Incredibly satisfying reading. I’m relatively new to software industry but I can back at least 80% of article’s statements. Software Engineering Wisdom TwitterDiggFacebookDeliciousStumbleUpon [...]

  7. Don’t Call Yourself A Programmer, And Other Career Advice « that dismal science - October 29, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice Like this:LikeBe the first to like this post. [...]

  8. | Magic Blue Smoke - October 29, 2011

    [...] This article is a much-needed dose of truth and sound advice in an area (the professional side of being an engineering professional) that gets drastically ignored in most of our educations. The author’s observations match mine fairly well, and about the only thing I would add is a shorthand that I’ve myself had to learn in the past few years: [...]

  9. Go to Code with the Language You Know, Not the Language You “Should” Know | Magic Blue Smoke - October 29, 2011

    [...] This article is a much-needed dose of truth and sound advice in an area (the professional side of being an engineering professional) that gets drastically ignored in most of our educations. The author’s observations match mine fairly well, and about the only thing I would add is a shorthand that I’ve myself had to learn in the past few years: [...]

  10. I gave myself a job interview using FizzBuzz… « Earth Via Radio - October 29, 2011

    [...] top story on HackerNews last night was a blog post by Patrick McKenzie called Don’t Call Yourself A Programmer, And Other Career Advice. Buried inside the article was a reference to another blog post by Jeff Atwood, lamenting the poor [...]

  11. Job Searching « Strikee - October 29, 2011

    [...] in this blog post (Patrick is really smart) the job creation process is summarised amazingly in one line “Read [...]

  12. Realities Of Your Industry 101 | JoelsBlog.net - October 30, 2011

    [...] 101 Sunday, October 30th, 2011 | JFI1, Marketing Don’t Call Yourself A Programmer, And Other Career Advice. It's like recess without all the dangerous playground [...]

  13. Links 30/10/2011: GNOME 3.3.1, GNOME User Survey | Techrights - October 30, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice Engineers are hired to create business value, not to program things: Businesses do things for irrational and political reasons all the time (see below), but in the main they converge on doing things which increase revenue or reduce costs. Status in well-run businesses generally is awarded to people who successfully take credit for doing one of these things. (That can, but does not necessarily, entail actually doing them.) The person who has decided to bring on one more engineer is not doing it because they love having a geek around the room, they are doing it because adding the geek allows them to complete a project (or projects) which will add revenue or decrease costs. Producing beautiful software is not a goal. Solving complex technical problems is not a goal. Writing bug-free code is not a goal. Using sexy programming languages is not a goal. Add revenue. Reduce costs. Those are your only goals. [...]

  14. People are no Longer Necessary, or Even Desirable « The Compulsive Explainer - October 30, 2011

    [...] Don’t Call Yourself a Programmer [...]

  15. Do LOB Applications Require Good Usability? - October 30, 2011

    [...] a bit of tongue-in-cheek commentary, Patrick McKenzie talks about the real world of software development. I found it to be a fairly [...]

  16. ReShare : Brogramming, Interviewing, and Science Fair | amy.codes - October 30, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice I heard this only one other time when I was in college and it never made sense to me. I code, and I like to code. Now I know it means more than that. It’s not just programming, it’s also product design, time management, and communication. You can code something or build it. If you choose the latter, you’re an engineer. [...]

  17. Guide me!!!!!!soft engineers plz - October 30, 2011

    [...] planning for H1B visa too after 1 year.So guide me yaaro… Original Post By Prism Read => Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Software Reply With Quote + Reply to Thread « Video Gamers report [...]

  18. Don’t Call Yourself a Programmer | A+ Computer Science Blog - October 30, 2011

    [...] Don’t Call Yourself a Programmer Sunday, October 30th, 2011 | Uncategorized http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ [...]

  19. Hackers and Dreamers | Sealed Abstract - October 31, 2011

    [...] been a lot of talk lately about what it means to be a programmer.  Patio11 has a fantastic article about not being “just’ a programmer–about selling yourself as someone who creates [...]

  20. Not a programmer! – Brett Hutley's Blog - October 31, 2011

    [...] read the post "Don’t Call Yourself A Programmer, And Other Career Advice" on the weekend. It is mostly aimed at permanent employees at companies, although I thought there [...]

  21. Usability Counts | Blog Archive | Kalzumeus: Don’t Call Yourself A Programmer, And Other Career Advice - October 31, 2011

    [...] This article is great career advice. Even though it’s written for programmers, it’s really for everyone who has a job.  “Read ad.  Send in resume.  Go to job interview.  Receive offer.” is the exception, not the typical case, for getting employment: Most jobs are never available publicly, just like most worthwhile candidates are not available publicly (see here).  Information about the position travels at approximately the speed of beer, sometimes lubricated by email.  The decisionmaker at a company knows he needs someone.  He tells his friends and business contacts.  One of them knows someone — family, a roommate from college, someone they met at a conference, an ex-colleague, whatever.  Introductions are made, a meeting happens, and they achieve agreement in principle on the job offer.  Then the resume/HR department/formal offer dance comes about. [...]

  22. 不要自称为程序员 - 博客 - 伯乐在线 - October 31, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  23. 不要自称为程序员 « My Farmland | 净土 - October 31, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  24. 阮一峰:不要自称为程序员 | 西西笔记 - October 31, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  25. 异锐工作室 » 不要自称为程序员 - October 31, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  26. 不要自称为程序员 | Taylor[后端技术] |PHP工程师|业余运维 - November 1, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  27. I am a programmer | jacquesmattheij.com | Clean Code - November 1, 2011

    [...] Jacques Mattheij has written a great counterpoint to Patrick McKenzie’s article Don’t Call Yourself a Programmer. [...]

  28. what is programming? — coder . cl - November 1, 2011

    [...] to framework application and usage. There is a nice article describing the fact that I meant: Don’t Call Yourself A Programmer, And Other Career Advice. So probably you are not really programming in your current job position. On a private mailing list [...]

  29. Ruby is the Force. Rails is the Dark Side. | Wondible - November 1, 2011

    [...] the tools. And if you do understand the tools? Be careful playing with the dark side. If you shouldn’t call yourself a programmer, calling yourself a Rails programmer means your destiny has been [...]

  30. Don’t Call Yourself A Programmer, And Other Career Advice | Brent Sordyl's blog - November 1, 2011

    [...] Story: Don’t Call Yourself A Programmer, And Other Career Advice) GA_googleAddAttr("AdOpt", "1"); GA_googleAddAttr("Origin", "other"); [...]

  31. Nice to meet you, I´m an Automation Business Logic Specialist - Programacion de Juegos - November 2, 2011

    [...] Rara vez hago una simple página web. Pero la médula de lo que hago es programar. Sin embargo, estas recomendaciones profesionales, donde nos advierten que promocionarte como programador es colocar una fecha a tu despido me [...]

  32. 不要自称为程序员 | 幻灭月空 - November 3, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  33. Don’t call yourself a programmer … README.txt - November 3, 2011

    [...] http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ [...]

  34. What Do You Know Now That You Wish You Knew When You Started Your Career? [Ask The Readers] « Go Digital Apps - November 3, 2011

    [...] McKenzie recently wrote this awesome post (he calls it a README.txt for your career) on what he learned after ten years “and a lot of [...]

  35. What Do You Know Now That You Wish You Knew When You Started Your Career? [Ask The Readers] - November 3, 2011

    [...] McKenzie recently wrote this awesome post (he calls it a README.txt for your career) on what he learned after ten years “and a lot of [...]

  36. Read this | Cameron Macintosh - November 3, 2011

    [...] other day, I stumbled across this blog post on twitter: “Don’t Call Yourself a Programmer“.  It starts with the following: If there was one course I could add to every engineering [...]

  37. 不要自称为程序员 | Eleye.org 关注电子研发相关的新闻与技术 - November 3, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  38. Don’t Call Yourself A Programmer, And Other Career Advice | A Blog with No Name - November 4, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Software. [...]

  39. Noticeable Hacker news I read(2011/09-2011/10) | David Euler on coding and design - November 5, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Software [...]

  40. Don’t Call Yourself a Programmer and other Career Advice « You Got to be Kidding's Blog - November 6, 2011

    [...] http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ GA_googleAddAttr("AdOpt", "1"); GA_googleAddAttr("Origin", "other"); GA_googleAddAttr("theme_bg", "161410"); GA_googleAddAttr("theme_text", "999999"); GA_googleAddAttr("theme_link", "d8d7d3"); GA_googleAddAttr("theme_border", "35302A"); GA_googleAddAttr("theme_url", "BD934F"); GA_googleAddAttr("LangId", "1"); GA_googleAddAttr("Tag", "life"); GA_googleFillSlot("wpcom_sharethrough"); Share this:EmailPrintDiggFacebookRedditStumbleUponTwitterLike this:LikeBe the first to like this post. [...]

  41. Getting your first “real” job: 0 – Introduction | Seconds & pixels - November 6, 2011

    [...] start you off, if you are or were a CS student, you need to read this article. [...]

  42. Linkdump: 6/11/2011 « nTh among all - November 6, 2011

    [...] http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ – Like many job/career articles I’ve read, makes me alternately feel hyped up and depressed about future job prospects. [...]

  43. Почему рабочих рынков для программистов на самом деле два | александр.moskalyuk.name - November 6, 2011

    [...] Не называйте себя программистами – уговаривает коллег Патрик МакКензи, рисуя следующую картину для молодых программистов, помышляющих о работе внутри компаний. Внутри любой компании, пользуясь методикой гуру науки менеджмента Питера Дрюкера, есть центры зарабатывающие и центры тратящие. Люди, которые управляют зарабтывающими центрами, обычно не медлят с увеличением зарплат, присуждением бонусов и другим увеличением компенсации, так как хотят удержать тех, кто создает business value. Люди, которые поставлены во главу центра растрат, всегда будут стараться оптимизировать расходы, в том числе и за счет финансовых пакетов своих подчиненных: The person who has decided to bring on one more engineer is not doing it because they love having a geek around the room, they are doing it because adding the geek allows them to complete a project (or projects) which will add revenue or decrease costs.  Producing beautiful software is not a goal.  Solving complex technical problems is not a goal.  Writing bug-free code is not a goal.  Using sexy programming languages is not a goal.  Add revenue.  Reduce costs.  Those are your only goals. [...]

  44. 不要自称为程序员 » Ivy's note - November 8, 2011

    [...] 每年都有无数年轻程序员,加入软件行业。 他们在学校里学过编程,但是对这个行业的现实一无所知。 Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 ================================== [...]

  45. Don’t call yourself a programmer « Stuff From Hsoi - November 8, 2011

    [...] great article, “Don’t Call Yourself a Programmer, and Other Career Advice“. It’s long. I’ve only been able to skim it. But it’s chock full of [...]

  46. Suggested Reading | AllInGeek.com - November 8, 2011

    [...] “Don’t Call Yourself a Programmer” Patrick McKenzie writes to politely thrust unsuspecting college aged “Computer [...]

  47. Don’t call yourself redundant « Cartesian Faith - November 8, 2011

    [...] article telling programmers not to call themselves programmers has been making the rounds recently. The author explains: “Programmer” sounds like [...]

  48. 不要自称为程序员,你不是真正的程序员 | 恋香缘 - November 11, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  49. Today’s Shared Links for November 12, 2011 @ Chuqui 3.0 - November 12, 2011

    [...] → Don’t Call Yourself A Programmer, And Other Career Advice [...]

  50. 不要自称为程序员 | 岭南六少 - 一朵在LAMP架构下挣扎的云 - November 12, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  51. Don’t Call Yourself A Programmer, And Other Career Advice | phatbits - November 13, 2011

    [...] McKenzie writes: Don’t call yourself a programmer: “Programmer” sounds like “anomalously high-cost peon who [...]

  52. Career Advice | Pragmatic Life - November 13, 2011

    [...] I read the article “Don’t call yourself a Programmer” Although it is somehow harsh and I don’t agree with some parts of it, I still think it is a [...]

  53. jake.marttinen » Blog Archive » Don’t Call Yourself a Programmer, and Other Career Advice - November 14, 2011

    [...] http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ [...]

  54. There Ain’t No Stack of Resumes - November 14, 2011

    [...] finish with an extended quote from a great post that you should read the entirety of called “Don’t Call Yourself A Programmer.” The post aims to “be the README.txt for your young career as an engineer” but [...]

  55. Bookmarks for November 16th – LostFocus - November 16, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Software [...]

  56. Great information- dont-call-yourself-a-programmer by Kalzumeus.com « Wisdom of Sathish Jayapal - November 16, 2011

    [...] http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ Like this:LikeBe the first to like this post. [...]

  57. Dear Chronic Daters, « Beyond the Face of facebook . - November 17, 2011

    [...] Indeed, the sound of the shattering glass is a call to “quit with the self-indulgent ass-sitting, and let’s get to the purpose of life – the work of repair and building!”:) Actually, you already have this capacity: you repair and build everyday – at your job – but just for the fleeting, sole purpose of keeping someone else’s and your pockets lined with the green stuff (see http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/). [...]

  58. Are you an engineer or a programmer? « Cartesian Faith - November 17, 2011

    [...] post is a follow up on a previous post regarding “Don’t call yourself a programmer” as well as a response to “The hustler’s manifesto“. These articles attempt [...]

  59. Hey, Hipster – “Ninja” Isn’t Cool: What Developers Really Want to Be Called Is… | Gayle Laakmann McDowell | Technology Woman - November 17, 2011

    [...] like code monkey. Developers are advised not to call themselves programmers, and you shouldn’t call them that [...]

  60. 不要自称为程序员 | 够戏博客 - November 18, 2011

    [...] Patrick McKenzie是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。我看了以后很感慨,有些地方很受启发。我选择了一部分,翻译如下。 [...]

  61. Continuous Education « IgorShare Weblog - November 18, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Softw [...]

  62. The Random Thread - TAPATALK EDITION - Page 57 - November 20, 2011

    [...] The Random Thread – TAPATALK EDITION Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Software This is one of the most important things I have ever or could ever link someone to. Read it all, [...]

  63. SAP BusinessObjects Resume Tips - November 23, 2011

    [...]  But some of you can.  And should.  Check out this helpful blog post by Patrick McKenzie, Don’t Call Yourself A Programmer, for [...]

  64. Must read article for any Developer/Programmer or whatever you call yourself | NixData - November 24, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice [...]

  65. Talk 149: tote Schafe und verrückte Verhandlungsziegen | RadioTux GNU/Linux - November 25, 2011

    [...] Don’t call yourself a programmer (pfleidi) [...]

  66. Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Software « inphamous development - November 28, 2011

    [...] http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ [...]

  67. The Blogs and Podcasts that I Currently Subscribe To (and Why) - December 7, 2011

    [...] READ: “Don’t Call Yourself a Programmer, and Other Career Advice” [...]

  68. Chimpanzees « SL - December 7, 2011

    [...] East or West, now or then, middle school teenage kids or “mature” university students: decision-making positions are always occupied by the [...]

  69. Young Engineers: README.txt « Steven Trevino Blog - December 8, 2011

    [...] Recently ran across this article geared towards young engineers. The title, as well as the article, gives advice: “Don’t call yourself a programmer“. [...]

  70. Trevor Turk — Links for 12-9-2011 - December 9, 2011

    [...] Don’t Call Yourself A Programmer, And Other Career Advice | Kalzumeus Software [...]

  71. At the end of the day, your life happiness will not be dominated by your career. Either talk to older people or trust the social scientists who have: family, faith, hobbies, etc etc generally swamp career achievements and money in terms of things which ac - December 17, 2011

    [...] → Don’t Call Yourself A Programmer, And Other Career Advice Share this:ShareStumbleUponDiggPrintEmailFacebookReddit WebFontConfig = { typekit: { id: 'cpw0qzg' } }; (function() { var wf = document.createElement('script'); wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js'; wf.type = 'text/javascript'; wf.async = 'true'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s); })(); {lang: "en-US"} /* */ WebFontConfig = { typekit: { id: 'cpw0qzg' } }; (function() { var wf = document.createElement('script'); wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js'; wf.type = 'text/javascript'; wf.async = 'true'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s); })(); {lang: "en-US"} Send to Email Address [...]

  72. Anonymous - January 2, 2012

    [...] [...]

  73. Dont Call Yourself Programmer | Development Notes - January 15, 2012

    [...] Click to read. Share this:ShareEmailFacebookTwitterLinkedInStumbleUponLike this:LikeBe the first to like this post. [...]

Loading...
Grow your software business:
(1~2 emails a week.)