Do call yourself a programmer, and other career advice
This is a (very late) reply to Patrick McKenzie's "Don't Call Yourself A Programmer, And Other Career
Advice". I find much of his advice very sensible, and it might be very helpful to someone in the beginning of their career β
assuming they can act upon it (and I really don't know whether my 20-year-old self could actually use the advice to improve his
negotiation skills, for example).
A few things in the article I disagree with, however. Here I'll mostly focus on those few things, recommending you to read
the original article so that you don't miss the rest of it.
"Disagree" is not necessarily the right word β a more precise way to put it would be "it's different in my experience". Which
is to be expected because both of us are speaking based on our own careers, which have been rather different. Patrick McKenzie
is a small business owner running Bingo Card Creator and a successful consultant.
I'm a lead chip architect at a billion-dollar company. Both of us have thus traveled some distance away from "purely
programming" (whatever that means), but in rather different directions.
What company are you going to work for?
Patrick McKenzie says 90% of the jobs involve things like implementing an internal travel expense reporting form, rather than
a product shipped to external customers. He advises you to get used to the idea, even though such software is "soul-crushingly
boring" as he puts it.
How bad is it, and is it really 90% of the jobs? Spolsky thinks it's maybe 80% β and that it's bad enough to "drain the
life out of you". He goes on to elaborate why it "sucks to be an in-house programmer":
- There's rarely a business reason to improve in-house software past the point of "barely good enough". "Forget any pride of
craftsmanship β you're going to churn out embarrassing junk".
- At software companies, what you do is more directly related to the way the company makes money, so you're more likely to be
respected. "A programmer is never going to rise to become CEO of Viacom, but you might well rise to become CEO of a tech
company." "...no matter how critical it was for Viacom to get this internet thing right, when it came time to assign people to
desks, the in-house programmers were stuck with 3 people per cubicle in a dark part of the office".
Note that McKenzie and Spolsky are in almost complete agreement over these points. But then Spolsky says you should be
gunning for a position in a software company β the environment where creatures of your kind naturally thrive. Conversely,
McKenzie explains how to prosper as a programmer outside software companies β moving in the opposite direction of where
things go by default (being stuck in a dark part of the office while they're trying to outsource your job.)
So the question is which path you prefer. "Not so fast", you say: one of these jobs is way easier to land β 80-90% of the
chances are you're not getting inside a software company β so it's not just a question of preference.
Here I disagree: even if only 10-20% of programmers work in software companies (where are the stats?..), and even if they're
"the best" (according to what metric?), McKenzie himself says in that same article:
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.
But if competition is relatively unskilled on average, you probably can land a job in the 10-20% of the sector that you want
β as did most people who graduated around the time I did. So I rather firmly believe that it's a matter of choice: do you
want to work on in-house software or one-off businessy projects of that kind, or do you prefer a software company?
Let's proceed to McKenzie's advice to in-house programmers β which should in itself help one make that choice.
How to call yourself
One such advice is:
Don't call yourself a programmer. βProgrammerβ sounds like βanomalously high-cost peon who types some mumbo-jumbo into some
other mumbo-jumbo.β Instead, describe yourself by what you have accomplished for previous employers vis-a-vis increasing
revenues or reducing costs.
Sure β an in-house programmer is likely doing some type of expensive mumbo-jumbo in the eyes of his non-technical
MBA-wielding manager.
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".
McKenzie says a software company looks at this just like a company hiring internal programmers, essentially. His example is
"the guy who wrote the backend billing code that 97% of Googleβs revenue passes through β heβs now an angel investor". The guy
apparently got rich by being near a "profit center" rather than through his unusual skills.
The thing is, in this case I believe he's talking about Ron Garret, the PhD from
NASA's Jet Propulsion Laboratory. Do you think they hired him because he described his work at the JPL in terms of revenues and
costs? (BTW he didn't like working on the billing code, bought his stock options and quit, instead of choosing a career at the
company's biggest "profit center".)
Did any unusual skills go into the billing code? Ron Garret says:
I did end up writing the credit card billing and accounting system, which is a nontrivial thing to get right. Fortunately for
me, just before coming to Google I had taken some time to study computer security and cryptography, so I was actually well
prepared for that particular task. ...I designed the billing system to be secure against even a dishonest employee with root
access (which is not such an easy thing to do). I have no idea if they are still using my system, but if they are then I'd feel
pretty confident that my credit card number was not going to get stolen.
Sounds to me that his technical knowledge and programming ability was the bulk of his contribution, whereas deep thoughts
such as realizing that there will be some "cost reduction" due to not having credit card numbers stolen is not something an
employer needs to hire anyone for.
So if I ever send out a resume as a chip architect, I will focus on my technical role in transitioning from fixed-function
hardware accelerators to programmable processors, more than the manpower this saved and the business we won as a result (which I
think were real outcomes of our work, but which is rather hard to quantify β as these things often are unless you're a
business-friendly-sounding liar.)
Incidentally, I'm not sure when I'll send out that resume, which brings us to the next point.
On job hopping, backstabbing, and the lack thereof
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...
<your boss will> 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...
There is a certain internal consistency to a view that your coworkers are not your friends, because you will move on in 3
years. In fact, it's a bit circular. They aren't your friends β because you'll move on. And why will you move on? Well, I dunno,
maybe for a 10% salary increase. What's there to lose? Relationships with coworkers? But coworkers aren't your friends!
Again, I don't disagree, but rather offer an alternative view, equally internally consistent. I have stayed at one job for
more than a decade, in large part because I'm rather attached to the people I work with. To be sure, I got raises, and I was
ready to quit over employment terms β but it'd take much more than 10%.
Isn't it just a quantitative difference in preferences β a 10% raise not being fundamentally different than, say, 100%? Well,
sufficiently large quantitative changes add up to qualitative changes, as Marxian dialectics or some other Soviet philosophy
thingie that my parents sometimes quote taught us. What's going on is that both approaches can lead to career advancement, but
they do so very differently.
If you're willing to change jobs over a small raise, you'll be changing them frequently. You won't get attached to people, or
to the work you're doing together. You will be very good at finding jobs and you will know what's generally going on in the
industry and what's in demand. You will not know that many things specific to any of your employers. You and your
employer will become very useful to each other fairly quickly, but you'll also be somewhat expendable for each other.
Alternatively, you can keep a job as long as it's a fun environment, requiring a significant raise once in a while. Your
relationships with people combined with your long-term outlook can let you do things together that you otherwise couldn't plan
or execute, and learn things you wouldn't have learned.
Much of my knowledge about chip design comes from ASIC hackers I worked with, and their willingness to develop their biggest
ideas together with me came from trust that necessarily took time to build. It takes time to learn that none of you is in the
habit of "suggesting things going against the other's interest", or pulling other unfriendly shenanigans.
Incidentally, if you stay at one place for a long while, then your worth to the employer grows to the point where you can get
the significant raise that you'd quit over without actually quitting. Your worth can also grow well above what employers are
willing to pay to experienced new hires, so there's no longer a point in switching jobs. This is somewhat analogous to becoming
a consultant after having switched a whole lot of jobs and now making more than the next job hop could give you.
Both approaches work, though I don't have stats showing which tends to be more effective. I do believe that the long-term
approach is more fun. I could never land the kind of gig that I have now through job hopping. More importantly, I wouldn't have
the relationships that I have at work.
"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.
The part about bosses is the only one I very much agree with. (I had enough bosses to be able to plausibly deny that I'm
thinking about any particular one here.) Yes, some of them will want you to work more time for less money (by itself a natural
desire for an employer) while attempting to look like your friends (which is where it becomes a tad irksome). This just means
that you should guard your own interests (as always) β and perhaps not judge people too harshly before spending time in their
shoes.
How to value an equity grant
McKenzie says you shouldn't value equity very much, and he doesn't spend many of words to say it. I'll talk about stock
options, which are worse than an actual equity grant and which is the only thing I've ever been offered.
My basic outlook is again long-term. I work at a private company whose value rose almost tenfold over the decade I've been
there. And it's still a private company, so there's never been an easy venue to make money off most of the stock
options.
From a long-term view, stock options look worse β and better.
Worse, because having stock options ties your hands behind your back. You usually can't afford to buy them when you quit, or
at least buying them is a significant risk that you might be reluctant to take. If the company survives for a long while, then
you may start to dislike the place but the hope of making money off your stock options now makes it harder to quit. If you
generally like the place, options make it harder to negotiate a raise, since they know you can't quit.
So in the long term, options can effectively be a liability.
On the other hand, as the company matures, its stock options tend to get
undervalued by employees, and for no good reason. People intuitively think along the lines of, "it's already expensive β how
much can the price rise from now on?" It's a natural thought if the price has went up threefold or tenfold already.
But what this misses is that you don't get paid in percentage points β you get dollars. A $100 share going up 20% to $120
means you make $20 per share. A $5 share going up 100% to $15 means you only make $10 per share. Stock options of a mature
company whose price is still rising can thus be even nicer than stock options of a young company which rises more quickly but
which is still cheap β and is more likely to go bust overnight.
The upshot is that people overvalue stock options early on β but they also often undervalue them later on.
Note that if you don't intend to stay for more than 3 years, than stock options are most certainly a liability because they
make it harder to quit β while the chances that the company makes it big in that span of time are very low.
Working at a startup
McKenzie lists valid reasons not to. In terms of job satisfaction, he says you can work on many exciting things in large
corporations, not just startups.
Here's one thing in favor of startups. A large corporation usually doesn't have huge gaping holes that it doesn't know how to
deal with or doesn't even notice. A startup often does have many such gaping holes, because, well, nothing is established yet,
they don't even understand what they're doing, and most importantly, they are severely understaffed.
This means that you can grab pretty much any responsibility that you want to. There will be areas that people are competing
to work on everywhere, but in a startup doing something hard enough, there will be a ton of hard problems nobody is competing to
solve because there's not enough time or people for everything. You can be the person pointing out that problem and grabbing
that responsibility.
As companies mature, being able to just work on whatever you want gets harder. My metaphor for it is nomadic programmers moving from problem to problem vs settlers
with states and national borders where even visiting your neighbor's code may involve a visa.
This isn't a recommendation to work for startups, just one thing worth pointing out. The counterpoint is that if you're an
orderly person who wants an orderly process, then a larger company known for its development culture is probably a better
idea.
Impact of career on life happiness
At the end of the day, your life happiness will not be dominated by your career.
In one way, I agree wholeheartedly; whatever the merits of a job, it's a job, and I actually noticed my productivity fall at
times of treating it as more important than that. The healthy way of looking at it is "just a job, at the end of the day".
On the other hand, we do spend quite some time at work. The question is, to what extent does it make sense to separate "work"
from "life" β and to what extent it's one part of life among many, to be treated similarly to those other parts of life?
I argue that the "work/life" separation shouldn't be strong enough to separate "coworkers" into a distinct category of human
beings with whom relationships are formed fundamentally differently β nor is it necessarily great to be emotionally detached
from the workplace to be always ready to abandon it and "move on".
(I'm not arguing that McKenzie's intent was to say the exact opposite of what I'm saying, BTW. I'm just commenting on some
quotes and the general atmosphere of the text as I perceived it. A lot of things simply have different meaning when heard by
different people; a simple advice like "be wary of others' intentions" is great for someone overly trusting, but not for someone
already verging on paranoia. Some people need to hear that coworkers aren't friends; today I'm writing for the other
people.)
Summary
When I introduce myself, I usually call myself a programmer, regardless of my current work on chip architecture and
management and stuff. I got into programming for the money, so it's not like I'm overflowing with pride when uttering
"programmer". I just think programming is a great career and the right thing to call myself for me.
There's an alternative approach where you program, but you don't call it that, and you use programming as a starting point
from which you transition to some form of being involved in business as directly as possible.
It sounds a bit roundabout to me β why not just get an MBA instead? β but maybe it's the right path for some (especially
considering that some prestigious MBA programs want you to have industry experience before you can even enroll.)
The important thing is to choose the path that suits your preferences, follow it consistently, and realize where your
approach is most likely to succeed. Because where I work, someone applying for a programming position and not calling himself a
programmer will not make a good impression.
I agree emphatically with many of the points in McKenzie's article β my favorite point is the importance of communication
skills β and I very much recommend it.
There's a lot of good stuff here, but I disagree about the claim that
in a startup, "you can grab pretty much any responsibility that you want
to". I've worked at big companies (n>100,000) and early startups
(n=2), and lots of places in between.
My experience is that you have more flexibility in a larger company.
Whatever you want to do, you can get transferred to that department.
At a startup, the founder is more likely to tell you, "You can work
on whatever you like in your free time, but you have to do this (giant)
task this week or we'll seriously start losing the few customers we
have".
Great article. Thank you for sharing your perspective!
Ron Garrett was a PI at JPL, not the head of the whole outfit. (At
least when I worked there a year or two before he left for Google.)
I call myself a programmer and share most of your sentiments
expressed in your article. A side note, the dialectic idea you mention
is not a marxist invention but originates from Hegel.
Nice article (again I might add, I've enjoyed many of your
posts).
I definitely agree regarding working for a software company. If you
like to program, you should aim to work where you are appreciated for
being a programmer, and that is usually the company where the main
product is software (and then you can call yourself a programmer without
a problem).
I wrote a list of things I look for in a programming job (http://henrikwarne.com/2013/03/26/what-do-programmers-want/),
and the number one item on it is "the product is software".
Great post! Especially loved the Nomadic Programmer article.
I enjoyed reading this article. You've written it well and provided
some interesting insight to big company versus little company conundrum.
I think at the heart of this is that people are different and diversity
is good. Finding a right fit when looking to hire or be hired is
difficult because of such diversity but overall β worthwhile.
@K.M. I was thinking of medium-sized startups (n=10-20) more than
tiny ones, where you'd be very right. As to getting transferred to other
departments β it's a painful thing to have to do at times, and it's not
always that smooth; but if it worked well enough for you then, well, it
did.
@petrus: I knew it wasn't Marxist, Soviet Marxian philosophy just
repackaged that and I thought it'd flow more funnily and bizarrely in
the text if the source was cited in this garbled form.
Also, thanks to everyone saying nice things in their comments :)
@Darius: thanks, I fixed the article.
Great article, I agree with almost every point. One thing I disagree
with though, is the bit about equity being overvalued early and
undervalued later. The problem with the logic that "you don't get paid
in percentage points β you get dollars." only follows if you get equal
equity grants, but of course you don't. Employee #2 generally gets an
order of magnitude more than employee #20, and so on.
The first thing you do when considering equity is multiply out the
quantity by the strike price to see what the value of your grant is, and
secondarily you might also look at your total percentage ownership.
After that what are the differences between a new startup and an
established company? Well in a small startup there is by definition more
room to grow, but that's probably more than offset by the difficulty of
getting any traction at all. You also can have an outsize influence in a
more fluid environment, so if you are really good you can actually earn
those multiples, but on the flip side, maybe you aren't that good and
will benefit more from a successful company where your contribution to
growth is diluted by stronger players. Beyond that you get into the
strength of the idea, market dynamics, volatility, luck, etc.
In the end there are too many factors to really distill it down. You
should first make sure you are paid enough cash, then make sure you
enjoy the job, and only after that consider how much you think the
equity to be worth.
Employee #20 can get more options on top of his initial grant if he
stays at the company, becoming more valuable than he was when he was
hired. The question is if he chooses to bargain for more options or more
salary; I'm pointing out one reason not to undervalue options based on a
vague feeling that "it's too late", which is something I often heard. I
simply suggest to do the math instead.
Great post. Learned a lot.
Re: a programmer will never be the CEO of Viacom (|| bigCorp), I'd
argue that a programmer who didn't call herself a programmer and
"transition[ed] to some form of being involved in business as directly
as possible" could escape that β and that would be a pretty solid
strategy for escaping it.
Clearly if you want to be a software engineer at Google, calling
yourself some kind of business consultant would be a silly approach.
However what if you wanted to work at Best Buy (just an example) and
didn't want to be stuck in a dark, shared cubicle doing mindless work,
but wanted to help pull the company into the 21st century. Marketing
yourself to the company as some form of technology+internet+business
consultant is probably going to get you more interesting work with the
chance to have a greater impact β and yes even the opportunity to be CEO
one day (if, for example, you were responsible for pivoting the company
into making most of their revenues online, while their retail business
continues to decay).
Thank you for writing this. I think your emphasis on personal
relationships is correct because the rewards of daily happiness,
professional success and financial security are more interdependent than
most often assume.
What kind of blog engine is this? What is the name? I really like it
much better than something like WordPress or VBulletin. All the posts
are on one page, nice!
@William: my bet would be that a programmer calling himself something
else would go some distance at BigCorp but not as far as to be gunning
for a top management position; that's because most companies have a
single area from which most top managers originate β that's the area
which is perceived as the key part of the business. If programming is
not the key part of that business, you could of course change that to
some extent (make it more central) but the chances that BigCorp will
come to consider itself, first and foremost, a software company are very
small, and only a software company will place a programmer at its top β
never mind how he calls himself.
@Jeff: it's WordPress alright, with the CopyBlogger theme that I
hacked a bit so that an unlimited amount of links to previous posts
appear on the right.
I am a programmer. I work for a company that does not do software for
a living. I work on projects that are tedious and boring and business
related. I'm not undervalued by my employer, if anything I receive
nothing but praise for making their lives easier. I love what I do, and
there is no job that I would consider boring as long as i get to sit and
figure out how to do it in code. It really is all a matter of
perspective. I love what I do, boring documentation and all.
I read McKenzie's write up and it hit home. You don't want to know
about my boss or co-workers. Sometimes I feel like I am working for them
not the organization. Most times I am right. You might think it is my
perspective but I can programme in a new language that just came out two
hours ago. Battle to solve all sorts of identified issues and not much
to show for it because most people around are dishonest. If you think
otherwise, then you are a very lucky guy.
@Alicia: if you enjoy it, then it's a fine job. My point was that
if someone wants a job at a software company, then the right
thing is just to go and get it. I didn't call those other jobs
"soul-crushingly boring" β McKenzie did.
Also β so do you call yourself a programmer or don't you? :) McKenzie
says if you're valued there, you probably call yourself something
else... So you could give a data point supporting or refuting this
theory.
@Ezekiel: I don't think I'm extraordinarily lucky that way β if
things are as bad as you describe I'd try to find out about other places
and move to one such place where life is better. I don't think this type
of thing is standard. My experience is at most 5% of people are terrible
to work with, maybe, so it's not every place that will be full of this
type of people; perhaps some places grow to have a terrible culture
though, I don't know. I'd definitely try to look for a nicer place to
work unless there are totally obscene amounts of money that you're
getting there; it's the kind of thing which just isn't worth tolerating
IMO.
This post was awesome!
Developers are a unique breed. We just need to keep programming and
shut the world out and we'll find our way :)
@Yossi: Yes it is not tolerable and yes we are paid some relatively
good money. Relatively because the places where I can do this kind of
work are few and far between.
I understood part of what McKenzie was saying as "play some politics
and look good because it is healthy for your job". Even though I think
politics (especially the mean types designed to get what you do not
deserve at another person's expense) takes the fun out of this type of
job. It is multi talented guy that can combine all that and be contented
he is a programmer because I believe there is always some trade off in
the end.
In a situation where you do not have better options because the
finance is important at the moment, but the office is like a
battleground where the superior officers are incapable of better
appraising programmers jobs because they are not programmers in the
first place, you will most likely start to suffer a decline with time as
you try to adapt.
"Politics" is also one way of calling it but not the only one; it can
alternatively be described along the lines of, understanding what other
people want and need, what they think they want and need (not
necessarily the same thing), and how they think about things, and
communicating with them effectively. I had battlegrounds emerge in front
of me because I felt I had to be a warrior or something, in the office
and elsewhere; the same situation that results in battles and struggles
can be a peaceful walk in the park when I take it easy to begin with.
(And I really had things escalate to full-scale wars so I know
some ways in which this can happen; not that it means I know how it
works out for every other person out there, just my $.02).
Yossi: Yes most times you can avoid turning a walk in the park into a
full scale war by taking it easy at the beginning. Thats politics, thats
good politics.
To me, considering what people want and need or think they want and
need is good politics by the way. I am not talking about what people
want and need outside reasonable expectations/limits.
I take pride in being a programmer not because it portrays that I can
do a thing or two but because being one means I can do a thing or two.
Saying it can be the problem sometimes. Some minds just wonβt attach
value to it.
Have you ever met someone who you suspect inferred that because they
are adept at Facebook, online form fillings, email sending and such
activities then they can develope a website like Amazon.com or
Facebook.com if they make out time to just learn how to do so? Until
they try, which they will never. And then you have to work with or under
them?
Why do you think the FizzBuzz test fails 99.5% of people who are
confident they can get the job of a programmer.
Should we not now introduce ourselves as programmers? I doubt it. But
sometimes it just achieves something unintended, something ugly.
I am an engineer and when I introduce myself as one I am sure people
see big bridges, cathedrals, road networks, towers etc. Big things in
fact. But when I say I am a programmer. Ha! They just linked up Twitter
and Facebook, paid for some items off Amazon, installed five new apps on
their iphone, managed to run a virus scan and saw some viruses on their
laptop etc etc. I have read an article where some product marketer
boastfully said they can part take in discussions on JSON, XML, RESful
communication and such and an actual programmer found it insulting that
he would equate that to actually meddling with code that can do what he
was talking about because the context of discussion has to do with value
and appreciation for programmers.
Code is not seen, what is seen is Beautiful in the eyes of the users
because it makes life easier. Should we not find a way to make people
see that we actually are responsible for making the beautiful thing they
use?
For
"I am not talking about what people want and need outside reasonable
expectations/limits."
please scratch within outside to within.
I was a computer hardware engineer before.I am bored with that
job.Then I became a programmer.I am very happy now.Because of my
programmer colleague,developers in the open source community and the fun
of programming.
Programmer? Yes, been in programming since 1980.
Seen a lot of change.
I've been at the same company 27 years and I still call myself a
programmer. It seems that I get pulled into a lot of other things as
well. So, I'm an Airflow Specialist, Electronic Designer, Pneumatic
Layout designer, Circuit Board designer, sales, customer service,
computer repair, System designer, calibration technician, procedure
writer, User Manual writer, nearly every aspect of our designing,
manufacture and support of our equipment. All that with an Associate
degree in programming and knowing electronic since 5th grade.
It gets a bit frustrating sometimes, a lot of people today do not take
initiative β instead they leave it for people who do. Sometimes I don't
get enough programming time and I leisurely write programs on my own
time just to avoid burnout. Programming in a way is almost like a form
of meditation.
If you're a programmer that works with hardware (not talking about you
business programmers), get over it β hardware programmers have to know
what the whole system is doing and how it works.
II've been called a programmer, a database programmer, a developer, a
database developer, and a software Engineer. To me they are fairly
interchangable. I have never understood these people who want to move
from company to company just for a 10 per cent raise. I want to work for
a company where I can be happy, have fun, and eventually retire from. I
want to be with a company where I can get a variety of work, while still
gaining seniority in the same job. I worked as a freight conductor on
the Railroad for the 11 best years of my life. I would switch from one
yard to the other yard to Through Freight and occasionally worked
passenger. Our company got mergered out of existence, thanks to Ronald
Reagan. Since getting into the software industry, I've worked for one
company for 3 years, the next for 2.5 years and this last for 7 years.
Each time I moved I was looking for a permanent job but on each occasion
something happened to make the work environment no longer desirable so I
had to leave. While I did get a raise each time I moved, that was not my
main consideration. With my current company I've have been able to work
on many dfferent projects using many different tools. (Although the
project in which I am currently working it looks like I will be stuck
here forever because I am considered so valuable to the customer.) I
will be eligible for medicare in 5 years so I can retire (provided I
have enough to survive on). Then I can do something I like doing.
I also worked for another company for 4.5 years where I was happy
until we lost our boss, and I left to work for my current company.
I am in the same camp as Alicia. I have always viewed myself as a
developer, who makes the lives of the people that use my creations
better and easier. This often times means actually doing their jobs
(entering data, stocking items in the warehouse, fulfilling orders, etc)
using my software to find out how things can be made better.
I am usually not the architect of the programs, but rather the
person, who implements, fixes and deploys the solutions and finds ways
to make it better.
Nothing is more fulfilling and satisfying than to have an end user
come to you asking for your help in solving their issues because they
believe/know I will be able to get the job done.
I consider myself as a successful programmer and/or developer when
most people at various levels in the company know me by my first
name.
Anton
I've been programming since 1971 (MS Comp Sci), I'm 64. At one time
there were great opportunities to design/code interesting systems. IMO
the software market is now dominated by large vendors with very mediocre
solutions. Chances are you will be vastly underemployed maintaining some
POS written by SAP, etc.
My advice to young people is to wake up and understand that we are in
an era of neo-fudalism and debt slavery ( college debt, auto debt,
mortgage debt, insurnace debt ). Try to live more simply, and be free of
the cradle to grave debt. From my experience, there is nothing to be
gained by working your a** off for some employer or project.
In our current enviornment, I would not get a STEM degree. There's
more money / fun to be had in sales and marketing / self employment /
trades, rather than a cube farm.
As with most of the jobs β corporate Amerika has managed to wring the
life out of a profession that once was enjoyable and challenging.
I'm a rocket scientist by training and occupation, but I carved out
my own niche by becoming the in-house software developer. First in
Fortran (for NASA and the Navy), and then in C++ (for the Navy), and now
in C# and mobile development (again for the Navy).
On the one hand, I get to work on very interesting problems that
really matter for something more important than the next quarter's
profits. I have a stable and reliable (although capped and currently
being furloughed thanks to Congress) salary, and freedom to explore new
technologies at need.
On the other hand, my work isn't appreciated outside my immeadiate
"customers", there is never any funding available to improve a product
past the bare minimum of functionality, and because I'm easy at hand
every flaw in my software is attributed to me personally rather than
Micorosft or another outside vendor, and such familiarity breeds
contempt that can cut both ways.
On the whole I like being the "in-house" guy. It makes me almost
indespensible. But it can be a thankless job. When my software works, I
hear crickets chirping. When it doesn't, all I get is grief. Do I ever
get a formal description of requirements? Is there any time for
documentation or testing? Funding for continued support as OS and third
party libraries change? No.
And because no one here really appreciates software development (why
should they, they're all rocket scientists), recognition at higher
levels of leadership, and the paltry bonus money that federal employees
can receive, seldom come my way.
But job satisfaction goes a long way for making up for those
shortcomings, and I do love the work. Knowing that Marines and sailors
depend on me, however indirectly, to do their jobs helps to. These
reasons are why I've never seriously considered leaving for the private
sector, and even thought the potential financial reward might be greater
out there, so is the potential for financial ruin.
good article! read the other guys one and its total tripe. a good
programmer goes into a job interview(unless its a series os meetings)
prepared for technical questions about ther experience with coding
patterns and integration and such things, certainly not quantifying the
millions he saved the company or any other such B.S. at lease, that's
the kind we would hire β anything else would come across as
suspicious!
Reminds me of the time, three years into my career and still at the
same company, that a friend chastised me for not jumping ship more
often, explaining that I could have increased my salary by 50%. I
replied that I'd tripled my salary in that time. Sort of shut him up
;)
My basic attitude is I no longer care what I'm called as long as the
work is interesting, involves programming, maintenance and design, I'm
paid a decent wage and I'm not stagnating. It doesn't have to be a top
wage: I'm there for the fun of programming: not the money. I didn't even
have a job title in my last job: I was called the person who maintains
the library.
Maintenance is actually more interesting than design. How do you undo
something that has been cast in concrete or how do you rewrite bad code
so that it does what it was meant to do and a bit more.
When people ask me why I'm still programming after 38 years, I tell
them, if the fix doesn't work, it wasn't any better that what the
previous guy did so you can blame them. If it works you get the credit.
What other job can you get a win-win situation.
There are many good points in both articles. I consider myself a team
member who just happens to specialize in developing software, and title
is not that important to me. Here is the word 'programmer' is not in *my* job title
Perhaps the article will have more impact if the author did not
demonstrate cognitive bias. The dialectics and Marx philosophy are
stigmas, but a reasonable person would not trash them unless he has a
solid knowledge of the subject.
I like pies
Yossi,
Some where on the blog you mentioned a very low cost asic producer
(~1800 Euro). Could you leave their name here? I have a project....
@MSimon: I don't think I mentioned such a thing; maybe a commenter?..
I'm pretty sure I've never heard of anything like that. Adapteva make
chips having spent maybe $1-2M and that's considered dirt-cheap.
I have been a programmer for nearly 30 years. I love logic, I love
programming, I love using logic to build systems to solve business
problems. I was chugging only happily until the suck*#%$ company decided
they could save money by hiring 2 monkeys + 3 monkey managers to replace
me. This, despite the fact of my excellent track record and good
relationship with my users and managers. Some higher up decided on my
worth and out I went.
Programmers, even those who can actually solve problems, are seen as a
commodity and in this economy, cheapest always wins.
Now I'm trying to figure out where I fit in, if I want to fit in and how
to fit in. How to go about recapturing my 'usefulness'? I don't want to
work for a company that doesn't value my contribution, or be a commodity
used by a staffing company (they take nearly 50% off the top!), I don't
see how to freelance because freelancing is either really cheap or to
land the good gigs you need an 'in' with the company...but I keep
returning to the fact that I still love programming. I looked at running
a business but I don't want to run a business, too much work, I am back
to figuring out how to program independently and make money.
Sorry for this long post, this blog and it's posts and comments really
speaks to me.
@Lee: βI love programming,β β My advice is donβt love anything that
canβt love you back.
Part of that programming job was your working environment. Everything
in the US has now become financialized. Screw everything and everybody,
just so you can get a little more profit, increase dividends, and the
C-levelβs get their bonuses.
Sadly, this model works especially well for the employers since it
gives them tremendous power over the employees. Itβs happening to
everyone, not just programmers.
"A $100 share going up 20% to $120 means you make $20 per share. A $5
share going up 100% to $15 means you only make $10 per share"
Math is clearly wrong.
$5 = 100%
$10 = 200%
200%-100% = 100%
$10 β $5 = $5
I clearly meant 200%; you clearly got the idea.
I am a programmer, serving in the same company and same team(second
company in the carrier) for 5 years. My manager was nice...
There was family medical tragedy of 7 months and my dad passed
away.
When i come back to office after dad's funeral my manager dose not
condolence.
Finally realized, most of the co-workers look for right time for revenge
and no way to identify them who they are as every one good at you.
Post a comment