Or you could simply live your life doing whatever you love. I love learning new things, I love programming and I consider myself a "programmer" (as a painter considered himself a painter). I don't care if I make more money being "a business person who have a lot of contacts and create business value". If you like that, ok go for it. I prefer stay here, in the other side, reading a book.
"Add revenue. Reduce costs. Those are your only goals." Well, if those were my only goals, what a sad life don't you think?
Yes, luckily what you quoted has context and he's talking about how you market yourself within an org or to future employers. I didn't take away that those should be your only goals in life and that you should abstain from relationships & leisure. How did you come to that interpretation?
"Add revenue. Reduce costs." needs to be balanced not only with relationship and leisure but also other goals in the workplace such as solve interesting problems and learn new things. I understand that as a business my employer may not care how interesting my work is, but I do care.
Still great advice. Still misunderstood whenever it gets posted here.
Market yourself in the way that maximizes your value (and thus your compensation) and good things will happen. Market yourself as a cog that fits into a "Programmer/Analyst II" sized hole, and you'll find yourself stuck in that hole.
Well, what if being a "Programmer/Analyst II" is precisely what you want? In my case it is absolutely true, both of it.
For once, I would love to see those despisers of hands-on-technology honestly describe what they want for themselves. Just admit it, you 'people-persons' (or hedonists maybe) just want a lazy convenient live with consumption to the hilt.
I think you misread it. "Programmer/Analyst II" is the exact same job in term what you need to do as "Jesus Saviour Software God", it is just less paid.
You should read parent as are you looking to be a loved programmer or a despised programmer.
For example, in my city, if you work in a Bank, you earn 40% more. Period. Yes, I didn't work in a bank when I arrived, and now I do - the job is exactly the same - the name of the stuff you need to get out of the database is different but otherwise that is the same shit: upstream system is sending some stuff that you need to filter for downstream system. Most of the knowledge is not even domain based, they are based on design quirks of both systems.
Alternatively, go work somewhere where software is a "front office" job, not a "back office" one. (But, as the article correctly notes, "90% of programming jobs are in creating Line of Business software.")
The irony, of course, is that the organizations in which you can freely call yourself a programmer instead of pitching yourself as having business skills also tend to be organizations where you need actual business skills. I know people working at software consulting shops and the like, and they don't have to pretend to have business skills for the benefit of any PHB. On the other hand, they have to have actual business skills, so they can keep bringing work in the door.
In a software company, or a product company where the product has software in (like a car), where to developers sit?
I know at many engineering majors, engineers are seen as a cost - if you can do the same work with less engineers, then you make more money.
Does that mean that only pre-sales engineers and consultants billed to a customer are 'front office'?
It seems to me that the way to earn an unusually large amount of money is to get/stay hired for your name, and not as a commodity.
Name brand ex professor researchers at Google and Microsoft, consultants that the company knows customers know from speaking engagements, and engineers famous throughout a large company as being highly capable, earn a lot of money. You can see how much an engineer costs on salary.com. How much would you pay to hire Paul Graham?
Depends on the software company. And also the problem domain. In a software company that does a lot of customized work, engineers are closer to the front. If the company only incidentally produces software, you're closer to the back. Obviously these are gross generalizations.
I worked with some guys who did highly specialized embedded software development through a small consultancy. These weren't famous or highly pedigreed guys, just good at their niche. Given their billing rates, they probably made double what they would have doing similar work at a device company.
Fairly sensible advice. One quibble I have is the idea that computer science departments are somehow shortchanging students by not teaching them business skills. If you want to learn business, take some classes from the business or economics department. Or ask for advice from a businessman. Computer science professors should be teaching computer science, not business. It's kind of silly to expect otherwise.
Academic 'business' courses can seem as far distanced from real business as computer science is from day-to-day engineering. Perhaps neither computer science or business professors are the best equipped to teach these things. Finding a mentor (or mentors) and having solid internship experience is probably as lot more effective -- that's why co-op programs with lots of real work experience are popular for hiring.
Also, often degree programs (especially those outside the US) don't have the same flexibility to pick and choose classes from other areas of study as the US major/minor/credits system. I know mine didn't, though I did a summer entrepreneurship course at the Business School which was enlightening (and almost entirely focused on writing a business plan, something I have never done since.)
This might be an interesting anecdote to think about the value of business education. I have a number of friends at top tier business schools (HBS, Stanford's GSB, etc.). Of these people none studied business in college (though they did go to work in management, finance, or consulting post college. One worked in tech).
I asked one recently whether he thought there was any value in what he was learning in business school or whether it only served as a signal to other business school graduates that you're at least somewhat competent and have jumped through the requisite hoops. His answer was basically that the only value of business school was the relationships you made and the network you became a part of it. The actual content of what you're taught is pretty easy to learn on your own.
That is the difference between a software engineering major and a computer science major. With a CS degree the expectation is that you will stay in academia, while engineering curriculums have business courses baked in. Most CS professors are out of touch with the industry, and really, why wouldn't they be? Out of sight out of mind
In my experience college curricula have plenty of non-major courses for every degree. Surely there's room for negotiation, sales, and why-being-labeled-a-cost-center-is-generally-bad-for-your-career in a four year degree?
I went to school for computer science and work for a non-profit. Some programmers (or whatever we're supposed to call ourselves) work for government, or any number of other things. The fact that we share technology in common doesn't necessarily mean we need to share any other particular skillsets, and I don't see how it's incumbent upon CS departments to make assumptions about how we'll go on to use our CS educations.
Why stop at a CS degree? Perhaps every undergraduate degree should include a (possibly optional) series of courses covering, well, how to make money. Have a course on employment, including the pros and cons of a regular job, advice on preparing for a job and presenting yourself as an applicant. And a course (or two) on starting businesses, from small service-oriented shops like restaurants and individual construction work, to selling digital products, to investor-funded startups. And then include a course on what to do with your money, covering concepts of savings, personal investing, pros and cons of buying a house vs. renting.
Something like this might be a three- or four-course sequence that I suspect would make college graduates much better off out of school. And maybe some students would decide to switch majors, out of selecting a more financially viable path to follow.
For that matter, make this a sequence of courses in high school. Or both high school and college. Some high school students may decide they don't need to go to college. Other high school students may decide that they do need to go to college. I had a class in high school that covered elementary personal finance, like how to manage a checking account and how to do taxes (by hand, on paper!). While I'm happy to have studied some geometry and read To Kill a Mockingbird, personal finance was probably the most useful high school class I had.
I get paid fine, thanks. So do lots of people that don't ever do anything that has anything to do with sales. And which competitive market are you talking about, exactly? My experience has lately has been that there's such a dearth of decent programmers that nobody can manage to stay fully staffed, at least in my metro area (DC), on either the non-profit or commercial side. It's totally a job-seeker's market, and people with decent skills can basically work anywhere they want.
We agree that finding jobs hasn't been hard for US devs in quite a while. It's the longterm career-building aspects of figuring out which jobs are going to be more rewarding and enjoyable over a decades-long timeline that I have had to figure out almost entirely on my own.
I respect patio11 for sharing what he's learned. Remember, he used to work 80 hours a week for a junior dev's wage, and now he has crafted a more comfortable, self-determined lifestyle for himself.
<quote>To me, however, a programmer is who I'm looking for, while a resume full of revenue increases and cost reductions sounds like an "anomalously high-cost parasite who types some mumbo-jumbo into Excel and PowerPoint, claiming credit for others' work".</quote>
Mind you, I am not saying that value-adding is a bad-thing. But given all the opportunities these days, Flash storage for example makes a world of difference, it is amazing how stubbornly all those PowerPoint mumbo-jumbu types resist. Usage of these technologies (in jargon, embracing technology) can add big bucks.
Oh boy, they love powerpoints and meetings as much as they lack technical skills, in my experience.
Thanks for that; maybe it's the confirmation bias speaking, but I couldn't agree more with that, especially parts like this:
"More importantly", because all means to reach our ends often fail, and then all we're left with is our means. You can't count on any career strategy to give you either a dream job or a load of money; it'll work to some extent or other but who knows. What you can count on is your lifestyle being affected rather predictably by your career choices. The impact of these choices on relationships could thus be weighted as more important than the impact on career advancement because it's more predictable.
I'm not about to change my hobbies because of who I work with, but I also have turned down obvious career-improving offers because it would have required I move. While the day job sucks (a lot sometimes), it's really stable and I really like the area. Call me stuck in a rut, say I'm afraid of change, even call me a programmer, but at least I'm happy.
Meh. For most of us the people hiring and judging our work are programmers themselves, and they're gonna think you're lame if you try to inflate your status via your job title ... and tbh in my experience business people aren't dumb enough to think that a "software solutions engineer" is anything different to a plain old programmer
"Meh. For most of us the people hiring and judging our work are programmers themselves, and they're gonna think you're lame if you try to inflate your status via your job title"
Talking about a previous role from different perspectives (end-user, technological, business, etc) shows a balance that is rare and valuable in our field.
There are many expert technical developers that are no more valuable to a company than an average developer. They are too busy focusing on the craft and the process more than the overall product, the end-user experience, and the business value added.
> my experience business people aren't dumb enough to think that a "software solutions engineer" is anything different to a plain old programmer
This is true, but I think misses the broader point of the article. It's not really about the title you have (though that's unfortunately what the name of the article suggests), it's about explaining your personal value to an employer in terms of business value created.
> For most of us the people hiring and judging
> our work are programmers themselves ...
Is that really true? Do you think that most programmers are hired by other programmers, rather than by non-programmers?
I wonder if that is true. Certainly most programmers I know personally were interviewed by programmers, but the final decision was taken (admittedly with advice) by non-programming business people.
Where I work the decision to hire is made by the business, the actual candidate selection is done by programming team leads, with some input from the dev manager (whose role is mostly to look for red flags). I think the last time I was hired by someone who hadn't written code within the last 6 months was in the 90s.
I'm sure this is how things go for a lot of people, but I found it pretty defeatist. The current programmer/developer/whatever job market strongly favors employees -- if you have solid technical chops, you probably have your pick of jobs all across the industry, and I don't think there's any reason why you should have to accept a "soul-crushingly boring" job where your value is so poorly appreciated that you have to resort to scheming to justify your continued employment, or where anybody gives a shit about job titles. Yuck. Work someplace else.
Focus on the company's bottom line and customer satisfaction. That is your job, not making pretty code.
To get a [good] job, you have to literally put your foot in a door; you must be connected to some person who works at that company.
The amount of money you get is based on the size of the company and your perceived worth. Ask for more than you think you're worth.
Make yourself look good. Talk up your cool projects, wax philosophical about your ideal development methodology, then hammer home how you're focused on the customer, efficiency, and the business's bottom line.
Focus on the key elements in any situation, don't get distracted by minutia, be assertive. Your motto is "restrained, confident professionalism."
"people are hilariously easy to hack" in the way you present yourself, so use all the hacks available. Be the James Bond of CRUD apps.
things not mentioned in the post:
Startups will hire you for positions you might not be qualified for and pay you peanuts for it, but it'll create experience/value/resume filler.
Academic achievement is only significant to people who prize intelligence over productivity. Just know how to get the work they need done and show them that.
Networking in person isn't necessary. Just build relationships.
If you're new, add [real] stuff to your resume to make it seem like you have relevant business experience, and be able to back up whatever you put down.
Don't "work your way up" through some corporate ladder. Just apply for the job you want. At some point you'll get it.
These are great nuggets of advice -- the observations on job searching as well as big companies/startups are still true 3 years later.
Especially if you're moving to a new area, being in a startup requires you to put in a lot of effort to broaden your professional network beyond that company. If you work with great people and do fairly well, it can work out fine, but in a lot of cases it doesn't.
An alternative is consulting for a few different startups -- I did this and it was great for meeting a bunch of new people in different verticals, learning new platforms quickly, and so on. It also helps you build up a larger set of people who you know and who know your skills, rather than people who know you for other facets of your life ('a really great Halo player but no idea if she can code'). As patio11 points out, the best stuff isn't posted online - you'll get the job you want through the people you know, not through scouring job postings.
I've got an interesting problem with regards to this. For all I know, I work in the Profit Center, I'm just not informed of this. I'm never given an indication of how much money my code has earned the company.
Figure it out yourself. You should know your own value in a profit center; it gives you a lot of ability to either negotiate raises or describe your value to others if seeking employment elsewhere. Or alternatively, it gives you data to describe your successes when trying to get someone to fund your next venture.
Do you have any advice on how I can go about figuring this out? I have a feeling it's not a black and white thing. EG: That module I wrote may have made sales easier, but not impossible.
- My company sells products that I design, market, sell, or build
- My company bills third parties for my services
Anything else and you're probably working a support function for a business that is selling something that is not your work. The people who make the products or services that are being sold are profit centers, the rest of the company are cost centers.
It's funny that just today I was visiting Cloudflare Our Team page[1] and I noticed that "our" dear jgrahamc is the only one listed as "Programmer" compared to dozens of XYZ Engineer :)
From 2011, this article is just the usual business trash talk.
Contrary to the article, one does not succeed in business by adding value whichever way. Clearly, it is optimal adaptation to the organisational environment which counts, i.e. kissing ass, brown nosing.
This is no caricature but the sad truth. Humans are social beings and it shows everywhere.
Organisations are very focused on keeping the status quo. Value adding just serves this purpose. Added value beyond this is just collateral damage, lack of oversight etc..
Conclusion, do what you love and if it is programming. Go for it. Everything else is just cash flow paying the bills.
My experience more closely aligns with that of the article, and less so with yours. Having been in industry for over 20 years, and having watched the way it's been changing, I've come to the conclusion that the article has more truth than most people seem to realize.
Your experience is different from mine, and you are free to dismiss this as out-of-touch, mis-guided, or even simply wrong. However, my experience suggests that, broadly speaking, it's none of those.
The article all but explicitly states exactly what the parent comment wrote. Everything in the article is an elaboration on "humans are social creatures" and they act accordingly, in the article author's view (apparently) to maximize value for themselves (which is often the same as doing so for the company).
"Add revenue. Reduce costs. Those are your only goals." Well, if those were my only goals, what a sad life don't you think?