Help I don't want to be a programmer anymore
itworld.com
itworld.com
A lot of the advice I received was similar as written in the article. But I honestly did not know what to run towards. I was utterly directionless. Ultimately,in a brief moment of madness induced bravery, I quit my job without any future prospects. While at home I re-discovered my love for programming as i was working on hobby projects. I responded to yummyfajitas' post on the Who's hiring thread, got the job and my life has been awesome since then. I absolutely heart programming , I keep on trying to learn new stuff and cant think of moving away.
All of this to say, if you feel like this, change your job, join a startup or learn a different language. Not everyone thinks in the same way. You may not be great in one paradigm of languages but that doesn't stop you from loving another programming paradigm.
I've been thinking about what jobs can potentially offer the same kind of intellectual stimulation as programming, and while I'm sure they're out there, programming offers this and is a skill that you can actually make quite a bit of money from while not being as ridiculously competitive as, say, being a movie director or a songwriter. If you know of other jobs that fit this bill, let me know.
http://www.bls.gov/oes/current/oes_nat.htm
At least you're getting paid okay. Finance, Doctors, lawyers, management make more. I'd argue they have to put up with a lot more bull. Development is a piece of cake comparatively But software has a an extremely low barrier to entry. All you have to be is good.
A friend I've known since high school gave up a very lucrative career as a managing consultant to become... a farmer. Yup, he plants stuff and sells them at a bi-weekly market and keeps going in the winter thanks to his greenhouse. Currently engaged to a lovely lady and, to my surprise and delight, he's completely happy.
It's a funny thing to feel like the industry you're good at (or been cornered into) is really not how you want to spend your life. And may in fact be zapping what life and vigor you have.
Which is why, I've been improving my carpentry while keeping up with automation tech (Arduino, Raspberry pi, Beaglebone etc...) so when I build my smart green house and cabin, I can get down to what I really want to do.
Making soap.
Side note: This isn't as crazy an idea as you might think. http://www.youtube.com/watch?v=3IryIOyPfTE
Then again, maybe not. I've gone through this with programming before and I usually swing back around to enjoying it.
It also helps that the pay is great for something that a lot of days I think I would do for free.
Programming is a service business. You're solving people's problems so they can spend more time doing work that is more productive/fun/challenging/etc (hey wait a minute, that's what _I_ wanted!) When you lose site of who's receiving the benefit of your work, you start focusing instead only on your own needs and down the rabbit-hole you go.
I freely admit that I make this mistake regularly due to distance from those who are using the results of my efforts, but I also tend to burn myself out because I don't segregate work and life well enough. In Dream Job(tm) where I am always being challenged with problems that involve deep thinking, I can guarantee that I would burn out much faster due to this. Hard problem? I'll just work it until I've solved it to the detriment of all other activities. But that's how I work, and I know it so it's up to me to try and short-circuit that when it ceases to be healthy.
I would say that finding a hobby where you're working with your hands or engaged in the physical realm tends to help balance things out. All software is temporary and contemplating the months and years spent building something that will most likely be tossed in a decade or less is demotivating. So build some furniture, restore a motorcycle, paint a picture, anything that has a chance for permanence. It helps me, a lot.
I'm starting to think programming is a lucrative career not because of the skills or intelligence it takes, but because of the frustrations you have to be prepared to handle over the long term. Do many people wash out of programming? It seems like we need to invest more time figuring out how to handle the pain of the career in order to reap the benefits of have a great salary over several decades.
The returns on driving new products has a very high upper bound, if any.
Now some companies hire programmers to be included in that profit driven area of the business, I prefer to work at those places. If you work somewhere where programming is deemed a cost center, well I wouldn't want to work there but I've heard of many companies that have made a sustain able biz out of it.
That's really what's happening here. There are all these programmers who desperately want to do something the business highly values. Maybe some of them haven't figured out the optimal intersection between their interests and their businesses.
Not everyone cares about this, but HN has a different class of programmer. ;)
Look at samba, rsync, wikileaks, tor. We can do that. We can do more of that. We don't need the businesses.
The software industry deserves to choke on a dick and die, however. Fuck bad code, micromanagers, dopey "startups" that expect 14-hour days on the assumption that 0.0x equity slices represent real "ownership", closed allocation, and regimes in which programmers don't choose their tools. All of that can go to hell.
As software engineers, we're a defeated tribe. We work for businessmen, get little respect in comparison to the value we add, and often are pigeonholed into roles that are 3 levels below our creative and intellectual ability. We do most of our work for managers and investors who think we're losers because we don't have their jobs.
To me, quitting programming is just running away. Programming was never the problem. We need to take control of this game. We need to take it back and make it good-- and fast.
<insert garage success theory - starting with only coffee and a computer>
I understand it's not just coffee and a computer. You have to take into account the time that you give up from a 9-to-5 that you would make money from, but all things being equal, compared to lawyers, doctors, 'management suits' type of people, you are not directly dependent on others to start out.
Build a useful product, and they will come.
I think that the 2010s will be dominated by self-started firms that evolve from consulting into product spaces, but most of that activity will not be in the startup hubs (e.g. Silicon Valley, New York, Boston) because the burn rates are too high. The geography of that growth spell will be very different from what we're used to.
I think the way out is to become an "X Who Programs". You become something else-- financial quant, startup founder, game designer-- who also happens to be a programmer. The reason this is so powerful is that no one (except a top programmer) can evaluate programmers, which creates nasty politics as people jockey for visibility, so you establish yourself in your more-visible X but use programming as a secret weapon. It keeps you from being treated like a commodity programmer and also gives you an edge on the best projects.
XWP is what the data science phenomenon, in truth, is. There, the X is statistical knowledge.
A computer science degree is the closest thing the tribe of programmers has to a professional certification. There are some organizations that have attempted to bring the tribe together but none have gained serious tracking. (asp-software.org, aitp.org, computer.org)
What's most interesting to me is that doctors and lawyers actually have legal protection. In most places it is illegal to perform medical services without a license or offer legal advice without a law degree. There is no equivalent protection for programmers. Imagine a world where an individual could be fined for writing a business app without being a certified developer. Suddenly the value of certified programmers would jump up quickly and those who couldn't meet the standards would be quickly drummed out of professional development.
Having such a system for programmers would make no since and would make the situation much worse. A college degree means a lot but you can be a very good/success programmer without one.
I would NEVER go to a doctor/lawyer who did not have the correct credentials to practice. As such you "practice" medicine and you "practice" law. Do you practice programming(in the same sense?), no you don't.
It goes both ways, like an if-by-whiskey.
If by licenses you mean those draconic practices by which some exclusive guild is allowed to tell me which professions I am allowed to practice in order to keep their supply low and their prices high, then I am against them.
However, if by licenses you mean the protective mechanism by which government prevents uneducated hacks from performing open heart surgery on citizens, then I am for them.
If a lawyer screws up badly enough then they can have their credentials taken away and they can't do their job anymore - that's arguably the main difference between a professional and an academic qualification.
This is a benefit, in the sense that the profession goes out of its way to prevent you from being beholden to a single boss, but a drawback in the sense that if you do screw up in a bad way (or get unlucky) you can find yourself in a really bad situation when you lose your license.
I don't know how well that can be applied to technology where there are so many moving parts that 100% bug-free software is impossible.
Do you think it is safe, for say, a non certified (read: a guy with no CS degree) programmer to design and code software that runs on an MRI machine ? Or the one which controls airplaines ? If airplaines start crashing because of a software fault, do you think we could and should blame the programmer for not having made the required tests ?
Software _development_ is a very young discipline, and as such has not yet been regulated. But I believe the day will come where it will.
There are currently guidelines for software that goes on medical equipment and airplanes. Airplane software's testing and design procedure gets checked by the FAA. I also know there are comprehensive code coverage requirements. Replacing this with certified programmers means that the programmer WILL be personally liable if there is a fault in the design. I don't think this is a good idea.
And anyways, it would still be a huge scandal if the FAA allowed someone, (or a team of someones) without a degree in CS, to check an airplaine's software. Does this need to be regulated as a law, and thus, recognition of the Software Development discipline as a profession ?
Edit: There are third party or FAA technical experts involved, so I guess your point still stands. But I don't think certification can replace this kind of following engineering procedure. And yes, I consider software engineering for safety-critical applications an engineering discipline.
http://michaelochurch.wordpress.com/2012/11/18/programmers-d...
What we need is a sort of postmodern professional structure. We can't keep people out of programming itself. Everyone should be exposed to the concepts. However, we need to inject the respect accorded a profession into software development.
One of the best things about programming is its low barrier to entry. Requirements for being a successful programmer: be good at programming. Having certifications isn't necessarily bad, but I feel that requiring certifications on a legal level the same way law and medicine are required is a horrible idea.
The real problem is if one quits programming a bunch of new fresh minds will 'toil' the way you and I did. And the world moves on. It's all about the mind-set.
Part of being a defeated tribe is that you have defectors: young programmers who are tapped for management and change colors. Those are the worst, because they tend to view their older colleagues who are "still programming" as losers and it shows. It may not be politically correct, but I've found the term "Uncle Tom Engineer" to be useful in some cases.
On the other hand, there are true-blue engineers who set up amazing companies, like HP before it was hijacked by MBA types (culminating in the Fiorina disaster) and Valve.
There are also non-engineers who Get It and start great companies. So there's probably a correlation between engineering experience and respect for the craft, but it's not a hard-line distinction.
The problem isn't "businessmen" so much as the attitude that comes with a lot of those folks. It's not what they do that pisses me off-- that's a necessary function-- but the paternalistic management nonsense.
Just a couple of days ago I barely managed not to answer to one of my superiors' emails with something along the lines of "hey, let's quit with this paternalistic BS, it doesn't really matter who's saying what around the office or at what hour people come in at the office, it only matters if we're doing our job properly which means bringing more money in compared to what goes out". I then remembered than I'm not a manager, but only a programmer, and that I shouldn't worry about this sort of stuff.
We work for dickheads and losers who can't ship. We need to build and ship for them. We are a defeated tribe.
The person who set up the restaurant? The person who created the menu? The person who sourced the raw ingredients? The person who prepared the raw ingredients into components of a dish? The person who plated up your food? The person who oversaw the preparation in the kitchen? The person who brought the food to your table? The person who took your order?
In the USA, and many other countries, you tip the table staff. Sometimes the kitchen staff get a cut, but generally, they just get paid to execute on the owner's & head chef's vision. If the restaurant won an award, would it go to the line chef who prepared the dish that the reviewer/judge ate? Hell no.
It's not a programmer issue. Credit is about who had the vision and took the risk. The people other than the founders that get the credit are usually the sales staff. Very occasionally the customer is impressed and wants to credit the head of the delivery team, but not often... leaving a tiny bit of credit to be dished out between everyone else.
As far as I've seen all industries suffer from this. You have a lot of people who if given control over their own work would make things a lot better. But good management is very hard and often the business need just isn't there. There's things to be done and experimentation is seen as a waste.
I also think we can be a bit dewey eyed about 'great' programming. But most of programming isn't great. It's nasty, it's boring, it's edge cases and testing over and over, dealing with formatting, slightly incompatible outputs, etc.
Much of programming boils down to simple looping and modifying data. Getting data out of some thing and putting it somewhere else slightly modified.
Programming's fun when we experiment, but a lot of the time experimentation's not the thing you need to be doing. It's boring repetitive but slightly different code, really ironing out the edge cases and a lot of attention to detail.
You see it in all startups, the product is built, something new, exciting then the product seems to crawl forward, tiny changes here and there even though they've got more programmers than they did before. I sometimes wonder what on earth all those programmers are actually doing at Microsoft or Google or Facebook as their products don't seem to change much. Because they're all just touching the details on the edges, the main picture's been painted.
I get what you are saying, but I don't agree. When I am working on code that I know a bunch of people will use and enjoy, I don't really find the edge cases or testing nasty or boring at all.
Or to put it another way: at first I loved programming because it was full of interesting problems for me to learn how to solve. Later I loved programming because other people were using my software and finding it valuable. This shift away from yourself as the end product of programming is essential in my opinion to enjoying programming in the long term, and also much more highly correlated with commercial success. You also have to find a company (or create one) where you can directly do that. A hint - if you often think the code you are writing is pointless or a waste of time you are not there yet.
People are slowly starting to realize that "oh crap, these guys can turn the switch off on my "thing" if they wanted to." So people are starting to wake up a little bit.
Okay, so maybe, despite a still ongoing shortage, it's not a good time to stand up and fight in the middle of a crisis, but before that, when people who could barely operate a keyboard got hired as programmers, very few did or said anything either. Except maybe quietly leave, only to find out things weren't much better elsewhere.
Also, I find that very few programmers (and HN is not particularly representative of this profession) are willing to take responsibility for the result. Because that's the price if you want to get rid of micromanagement, pick your own tools, work decent hours etc.: be 100% accountable for getting a result that ships and makes clients/users/investors happy.
If you want to take control of "this game", you have to take control of the entire product/service, not just the code.
You probably are one of those who are willing to do that, but the vast majority of those who also call themselves "programmers" aren't.
And all of that baggage too often outweighs the real joy I get from building things in the unlimited universe of the binary machine. I miss feeling like an inventor, like I've got infinite Lego blocks and a vast, empty dining room table (that Mom doesn't need for a couple days).
Instead, I get just the microjoys of building a new web page from scratch with nice messages and useful validation, or a really well-normalized set of tables, or gosh, if I'm lucky, a really reusable, self-documenting library which I've been allowed to write The Right Way.
I'd love to work at a Valve or a Github, where programmers work on whatever they want, but how many of those are there? And I'd love to work for myself, except for the overhead of busywork that goes along with it.
I have been thinking along these lines as well but I am unsure on what can be done.
The real problem here is that our profession contains many shy, socially-awkward types, and guys and girls that were bullied when they were school and haven't fully recovered. Many don't understand how status is conveyed or are in complete denial that it exists. If you are the only developer in the room that wishes to be treated with respect, to be autonomous and to (learn to) operate on many levels then it seems like you are really on your own in trying to get these things. Many will continue to eat from the hand that beats them, and won't take the necessary risk to get themselves a better position and to help each other even when one of their team mates decides to make a stand. (I read a lot of your articles and I have to say I have gone DFA before and I will do it again.)
What is really needed is some kind of professional association that fights for our rights. A forward-thinking organisation that has good principles and can't easily be co-opted. Perhaps also a way of accrediting organisations that have great working conditions and a culture of respect. Maybe the only two which hit the list are Valve and Github. But once every cool startup is run like this then larger corporations will have to compete on a cultural level for talent.
I would like for all of us to be able to apply ourselves on a strategic and creative level no matter what our role in a company is.
I wonder who decided that because we implement we should not be allowed to create, design, and think for ourselves? They don't have the right to take this from me, nor do they have the right to take it from you.
The other night I was speaking to a friend who has found herself in a sales position where she is allowed to pitch ideas to clients and see where she can take things. She was happy and felt like she had finally found real freedom. How many of us have been able to grow the network of contacts and future clients required to solve business problems?
We're being held back but we're also holding each other back.
And I now realise you can't solve tribe problems on an individual level.
There has to be a way that we can all work together on this.
Are others interested?
I'm pretty sure my largest contribution to software to date has nothing to do with code. I named something: open allocation. Now we've defined terms and we have a banner. My goal with that-- and it's too early to know if I've succeeded-- is to wake people up and realize that their current, micromanaged state of closed allocation is inferior to something that's possible.
We will see an increasing proliferation of open allocation, engineering-driven cultures. (We'll also see pretenders who claim to be OA but aren't. That's unfortunate, but it's just a sign that the good guys are starting to win.) It will take time, as good things always do, but time is on our side.
I love the idea of open-allocation but I worry that at companies in which people drag their heels, avoid learning and other bad things that it could be harmful. I also wonder whether there are people will not be business minded or innovative enough to do worthwhile work. Obviously scratching personal-itches sometimes leads to great products but we might all just play out our neurosis and then through commitment and cognitive dissonance chase ourselves down rabbit holes. Maybe my fear is completely unjustified...
Anyway, my idea for an action is the creation of some kind of check-list for a humanity-ready™ company sort of like the Joel Test. Perhaps I or another could create a GitHub repository and a website to get this rolling. What is important, I think, is to get people to talk about what they consider the qualities of a great company to be and what principles and practices would this company hold. Buy-in and conversation would help the memetic process.
The next-step after that, once people were on-board would be to create some kind of rating system and then perhaps to reach out to recruitment companies and see if they would add a feature for companies to mark themselves on their adherence to some of the best practices. Sort of like how the Joel Test is used on some recruitment sites...
Actually I'm still not really sure whether this would work because life is never that simple and I am sure things will more or less play out in this direction anyway. Certainly conversation on the ideas is worthwhile, however.
Valve is at 300 people and enormously successful. It has higher revenue per employee than Google, Apple, or Microsoft.
I love the idea of open-allocation but I worry that at companies in which people drag their heels, avoid learning and other bad things that it could be harmful.
My guess is that it's these corrupt, closed-allocation, intensely political companies that generate this kind of behavior.
I've never had to endure any of those things because when they arose, I quit the job. And when they arose again in the next job, I quit employment, and contracted. And when (different) problems appeared with clients, I quit consulting forever and built a hugely revenue-positive product business where I am the reigning monarch and believe me, life is now very, very good.
Nobody can tell me what to do now except the govt and, outside taxes, they really don't give a crap.
If you want power, you have to make it for yourself -- build a business that generates money independent of clients or bosses. One to five big customers (bosses, clients) hold huge power over you -- a thousand small customers hold little power over you. You need to keep em happy, sure, but that's not so hard, because you get to pick your own customers, and you get to choose to keep them happy exactly how you want to. But if one of them's a jerk? Or five of them? Or 100? Tell them to fuck off.
The bottom line is that a person who wants to remain ignorant of the money-making side of business will never hold power. Employment is the opposite of freedom.
(PS — taking investment is just another kind of employment. A kind of debt, really, repaid with control instead of interest.)
And here is the fun part: learning about marketing, business models, commercial relations is not that hard for programmers. It just requires a different mindset. For problem solvers like the average geek, that's just another system to hack.
I have only begun recently on this path, but I find it exhilarating! Making my own decisions, talking directly with the clients and -oh, surprise- getting paid for my work, not for sitting at a desk... This is what developers should do!
- Taking on a role with more responsibility, leadership requirements and business knowledge
- Starting my own business where I get to make decisions (with my co-founder)
I see how many times as as developer I've either not cared about decisions that directly affect me. Or maybe I've just rolled over and accepted the things I don't like. It's the nature of (most) developers. Don't stir the pot. Don't dissent. Just get in and get my work done.
Here's the reality. Knowing more about your business makes you a better developer. Knowing how to say no and stand up for yourself makes you a better developer. Knowing how to talk and communicate with your users, your bosses, your co-workers (or anyone really), makes you a better developer (and will improve your work life). Being a strong technical person with strong Business, Marketing or Personal Communication skills makes you unstoppable. This applies to more than technical folk. The more you do - The better you are. Take this advice you might find that the skill you thought you were bad at, or hated, or avoided is actually very rewarding - Difficult, but rewarding.
And finally, to Amy: Thank you for all the work you do on showing people the power that they have. I started a business 5 years ago and have had to sit through the whole "YOU NEED TO GET FUNDED" and "YOU NEED TO GET BOUGHT" that seems so prevalent in the startup ecosystem. Me and my partner did everything ourselves. And now we own a business that makes decent money that goes DIRECTLY TO US.
But when you're overexposed to the opposite line of thinking, it's really easy to get caught up in the "am I doing this wrong?" and questioning yourself. You are one of the few people who puts an emphasis on growing and trusting YOURSELF. I'm very on board with most the things I hear you say because they are the very values that I have held in high esteem, yet was still questioning. So thank you for that.
ps. I also think that 'ahoythere' would've been an awesome username.
Exactly. If you live with the attitude of a cog, you'll be treated (and paid!) like a cog. You get what you ask for.
And, thanks for the "thanks." You're welcome. It's always nice to hear that I'm not just pissing into the wind.
The truth will set you free indeed.
I think this is why MBAs are increasingly seen as worthless
a) It's increased my ability to communicate clearly in small and large groups. b) It's given me great context regarding where IT and programming stand in the overall business model c) I've met many professionals around the area in all industries
It's contributed very much to my personal and professional growth, and I haven't even finished yet.
But should you just go get it? Only if it's right for you. Know yourself first, and what you want to do with your life. If it fits in, then go for it and it'll be a great experience.
Programming experience is still valuable, even if you switch. In my experience, it will make you much better at many related roles in a SW companies, such as project manager, product manager or business analyst, since you'll know what it takes to produce the SW (what's hard, what's easy etc).
Personally, I've been programming for over 20 years (always at companies whose main product is SW), and I still love it: http://henrikwarne.com/2012/06/02/why-i-love-coding/
Should I leave it there, move down, or remove it completely? How else did you tailor your resume for your application?
I know it's arrogant of me to say so, but the more I observe them, the little they seem to work, or if they do work, it comes off as snake oil.
As a management consultant I was expected to grind out pointless "decks" (powerpoints) all day long. And all night long? Grind out RFP's for new business (which are usually more decks).
UX designers generally have a higher job satisfaction if they are with the right team. However, these jobs are difficult to get and easy to lose. Many of the UX designers I graduated with from HCI school are now looking into front-end dev, visual design and business strategy. Why? Because UX designers can easily become marginalized, and if all you can do is sketch and put together a few basic wireframes, you can quickly find yourself on the periphery of the team. You should see some of the bored/desperate emails I get from colleagues who either have 1) nothing to do or 2) don't get the respect they 'deserve'.
Don't need some photoshop slinger calling him/herself "Mobile iOS designer".
Code it or gtfo.