A few years ago I swore I was done with being a PHP developer (for money). It no longer made me happy and I wasn’t being challenged enough. I was doing HTML, CSS, JavaScript, implementing site designs in PHP, tweaking existing PHP code, fixing bugs … very few interesting/worthwhile problems to solve that hadn’t been solved a million times before (another CMS implementation?!). It was custom development, not product development. With product development there’s more room for long-term quality, so one gets to feel more attached to the work; it can be more fulfilling.
I felt I was at a dead end with that career path. I decided to quit working part-time in order to focus on school. Then I decided to move to a better city and finish college at Florida State. The decision to move came only a few months after I had quit my job. While telling my old boss of my plans he said he’d pay me $30 an hour to work for him again, this time remotely, since the guy that had replaced me didn’t quite work out. I needed the money and wanted to have something solid lined up, so I took it. So much for focusing on school or switching career paths.
So as I see it I actually was at a dead-end with that career path, and still mostly am. Since then, I’ve started a few more of my own PHP projects (to explore more technical topics than what I was paid for), but I’m not satisfied. It’s been two years, I’ve graduated from college, and I still haven’t written any multi-threaded code, nor any drivers, nor code that interacts with hardware in some non-trivial way, nor have I poked at alternative OSes. Those were all things I was contemplating a few years ago when I was “done with PHP”. I really wanted to work on something low-level, with less UI work and more difficult algorithms to design.
I can’t stand having 60% of the work day tied up with: copy-and-paste chunk of code, then tweak for new field names, then make sure to update the correct database fields, add validation, ad nauseum. I now understand 100% why people might say that web development isn’t programming, or how PHP has facilitated their decline as a programmer.
But it’s not PHP’s fault. It’s just that line of work. Web programming is mostly the blue collar work of software development. If you’re drunk or high, or whatever, it doesn’t matter, you can still do your job because you won’t be operating any heavy machinery.
So now I’m shakingly anxious to move to another town with like-minded people, sane recycling practices, respect and love for greenspace, and more opportunities. But I’m getting worried. I’m seeing several job listings that want Windows multi-threaded programming experience in C++ and am more-or-less kicking myself for not picking up similar experience along the way.
And now I’m presented with another choice:
Do I jump over to something more technical that I see showing up on job listings, just so I can get a job in Seattle and move?
Maybe. Maybe not. I don’t particularly want to code in C++. It’s not a language I can be happy with; I’ve done enough in C++ to know this. Do I write something kickass in Ruby on Rails? Probably not, RoR work isn’t much different than PHP work. Plus, I’m trying to ditch the “web programmer only” label, right?
What about saying “fuck you” to the half-step and going straight for something I can really buy into for years to come? Yikes. That’s risky. I’m not seeing any job listings for “niche operating system, compiler, driver and language tinkerer with a keen desire and not much real experience”. Aye.
I need to clarify some things. I’m not saying I don’t ever want to write PHP code again. Nor am I saying I don’t want to do web programming at all. However, PHP and web programming should never again be the only thing that I’m qualified to do for money, so I need to broaden my experience. I’ll never be a “one language, one technology” programmer. I’m incapable of being that loyal to one thing because I always find room for improvement and always hope for something better.
I just want to:
- Make things better
- Make better things
- Have a personal interest in what I’m working on
- Use tools with an aesthetic quality I can get behind
- Use tools that help more than hurt (otherwise I’ll spend three years writing better tools)
- Be around developers that fancy working on OSes or developing their own language one day, rather than the simpletons that want to create a website and make some money off advertisements
- Do something I enjoy at a company I care about
It’s time to try something new (that I love, and be really damn good at it).


Sounds like you need a career change. Maybe switch over to computer engineering and start working with some embedded systems. Then you can fight both the hardware and the software side of things to make your life more interesting. Not enough, maybe get into some heavy FPGA development where you code is synthesized into hardware and you’ll actually have to write good code if you have a chance of it working at say 1GHZ….
Comment by neo — October 24, 2008 @ 5:04 pm
Being a hack to make a living sucks, but hey – everybody has to pay the bills. So there’s no need to apologize or feel ashamed.
If you find yourself bored silly with your programming gig, do yourself and other people a favor. Get involved in an open source project you like and feel you can make a contribution to. You’ll probably start to enjoy programming again, and other people will benefit too.
Comment by Norman Clarke — October 24, 2008 @ 5:47 pm
Check out Python.
I know many folks who have long ago left PHP for Python, who are just now experiencing the joys of Python, and who are considering leaving the world of PHP for Python.
It certainly will help you with the wants you’ve listed in this post, and is an exciting change of pace from PHP in general. You can write web applications with Python to learn it in an environment you’re accustomed to, and then branch out into anything from games and 3D, to extremely complex and robust system/software management solutions (all of which I’ve personally encountered in a Python form).
While I am not a programmer in the strict sense of the term, I still enjoy all of the Python I work with, and I’ve have found it to be the most enjoyable form of programming I’ve ever attempted as well.
Comment by Brian Shumate — October 24, 2008 @ 6:05 pm
I feel exactly the same. PHP development has become the drywall of the programming world. I’ve been doing it full time since late 2000, just a couple months after graduation high school. I got tired of it long ago.
I finally started college for the first time this past fall in hopes of changing career paths. I’m majoring in something completely non technical (religion). I’d love to return programming to a hobby and not a career.
Comment by Rob Sayers — October 24, 2008 @ 6:18 pm
Last year I switched from PHP (after 10 years of it and related technologies) to C# and .NET 3.x. I spent about 6 months ramping up with webcasts, books, download trials, and even a one-week course. I particularly liked the promise of WCF and Silverlight/XAML. I then got a new job doing C#, .NET 3.5, WCF, LINQ, and multi-threaded applications (winforms and WindowsServices).
It sounds like something you might like, as well.
Comment by Guy Hurst — October 24, 2008 @ 6:30 pm
Try DBA work. Or learn Cobol.
Comment by Wilcox — October 24, 2008 @ 7:21 pm
I am exactly in the same spot. During college I was seeing myself as a future programmer, now I am more a non-enthusiastic somewhat self-taught computer dude that knows his way around php/html/css/javascript (well, javascript only when I’m lucky and work on a cool project). I spent 80% of my time rewriting horrible (and I mean it) php/html spaghetti code and trying to re-arrange it in a logical way. I look up to people that have now the C++ skills I had when I was in school..
I guess it shouldn’t matter, the business should come first and dictate the technology choices, and now most of the business is made online, and php is as good (or bad) as any other technology. But that doesn’t fill the hole in my soul…
Comment by pm — October 24, 2008 @ 7:51 pm
Look into C# development and WinForms or better yet WPF which is going to be the wave of the future of generating rich desktop applications. I’m pretty happy with C# development as the jobs that usually entail using C# are pretty complicated and definitely not the usual create another form or content that websites are.
Comment by reno — October 24, 2008 @ 8:28 pm
the answer is pretty simple..
quite programming
get out into the world man! get the fuck off the internet for a second..
go smoke some weed
go get fucked up and crazy
blow up a building or something
just get the fuck off your computer
there is more to life than proving to yourself that you know more about computers than the others that are around you.. who gives a shit?
go find a fucking hot ass chick and get love-drunk
buy a boat, fuck off the payments and sail around the world
how old are you? less than 40 and prob. no older 30 — that’s like 30% of your life dood — there is plenty of other shit to do
computers are going to be completely different in 5-10 years — who cares about this shit? you could hack it now — you’ll be able to hack it later — go kick some ass somewhere else for a bit
Comment by feyd ratha — October 24, 2008 @ 9:36 pm
I’ve been through a similar crisis of what to do with my life. I was sick and tired of building boring websites. What I chose to do was to go off in the direction of building cell phone apps that integrate with websites. I’m mostly focusing on Android right now but will later integrate iphones also. I’m really not focusing on J2ME because that market is such an absolute mess.
It’s sparked a new level of interest for me in that I’m working in new and different languages and I’m also able to use the vast amount of knowledge I’ve gained building websites.
So that is my recommendation, move in the direction of the new smart phones. The market is going to be huge and it’s fun and you can leverage your current knowledge.
good luck
Nick
Comment by nick — October 24, 2008 @ 10:16 pm
Why don’t you learn .Net / C# / WCF / Windows Forms / WPF?
It’s a fun environment that you can do anything with and there are a ton of jobs out there for it. Robots, device drivers, factory automation software as well as the basic data entry, web and desktop software have all been written using this technology.
Same thing goes for Java too I suppose (maybe not the device driver thing, C# has the advantage there of being able to use unsafe pointers). I don’t really know about Java, haven’t had the time to spend learning all of the useful libraries that are available for it.
Anyway, good luck reaching your goal.
Comment by Wayne Bloss — October 24, 2008 @ 10:53 pm
If I may suggest, stop thinking about how to make yourself more marketable, and start a project you’ll enjoy. You’ll be learning the new skills you want to learn, building things that are cool to you, and by definition enjoying yourself a lot more. Somebody will want those skills afterward. A lot of places don’t even care where your experience is, a good programmer is good no matter what you put them on.
“What about saying “fuck you” to the half-step and going straight for something I can really buy into for years to come?”
Yes, do that.
Comment by Brennan Falkner — October 24, 2008 @ 11:04 pm
I think i know what you mean. Why not take an internship at a company to be a “niche operating system, compiler, driver and language tinkerer with a keen desire and not much real experience”.
Your new employer avoids a lot of the risk, and you get to try it and see if you really like it. After two or three months, you would’ve gained enough experience to take the job full time or just walk away.
Comment by Alaa Salman — October 24, 2008 @ 11:23 pm
Hi,
congratz on your decision to move beyond.
From personal experience, may I recommend any of the following:
– you’ve mentioned C++; i don’t know if that counts as doing lowlevel stuff (ie. C),
or you’ve just had enough of classes, inheritance and templates in C++; I recommend
spending some time in C [ because it's a portable assembler and gets you right to the
machine level ]; compile small chunks of C code (without optimizations) and look at
the assembler you get; try to write a dummy filesystem for Linux kernel (easy intro to
the kernel programming) – in kernelspace, don’t cheat with FUSE
– play with LLVM http://llvm.org/
– learn Python
– if you haven’t, learn more about data structures & algorithms (don’t skip on fancier subject
such as balanced trees and graph algorithms)
– learn about data mining (I recommend http://oreilly.com/catalog/9780596529321/)
– play with Python Twisted deferreds to get a feeling about (really) async programming
– read SICP, understand it, do the excercises, it’ll blow your mind
( http://mitpress.mit.edu/sicp/full-text/book/book.html )
– play with Erlang, write a bunch of small processes that talk to each other to do some task
– learn Haskell (*AFTER* reading SICP), it’ll blow your mind again
( most good haskell resources I found were math-phd level, i recommend http://book.realworldhaskell.org/read/)
– still have some time left and feeling hardcore? write your own microkernel-based os
( http://wiki.ok-labs.com/ )
(disclosure: I’m a Python fan, and work in PHP and C on my day job)
Comment by Senko — October 25, 2008 @ 1:20 am
Sounds like you’re stuck in a ditch and aren’t sure of how to get out of it. Just get out of your little job security phase as quick as possible.
With your “I just want to:” list, try finding jobs that meet that criteria (or as most of the criteria as possible). Submit a resume’. Bingo! Well if C++ isn’t your alley, why not java, python, or C. I’m not sure if you are clumping C with the C++, so i just threw that one in there as another choice.
Don’t come replying back with ‘that’s easier said than done.’ That’s all in your head.
Comment by clinton — October 25, 2008 @ 3:11 am
You might want to consider .NET work.
I did a round of web work (which I hate) because it was the only thing available and I happened to know ASP.NET. That job paid the bills until I got my current job.
For this job I was hired to do a mixture of web, Windows, and back-office work, all with .NET. After a year of that I was able to shift my focus almost entirely to back-office stuff.
Now I’m working on an automated bond trading engine (multi-threaded because it talks to half a dozen other real time systems) and a real time offering calculator (multi-threaded due to the sheer volume of data).
Both systems are a lot of fun and because they are so radically different in nature from each other I’m also learning a lot. I now know more about TCP, FIX, WCF, and multi-threading than I thought I would ever need, and yet I can still see where there is room for growth.
Comment by Jonathan Allen — October 25, 2008 @ 3:12 am
you don’t wanna go C++. I did that in the mid-late 90s. It’s gone. Let me tell you something…the dirty little secret you already now. PHP is dirty and fast…we’re lazy…it works.
When I have to do my thick-client stuff (video stuff), I do C#. But PHP is a mistress that is hard to shake
Comment by mark — October 25, 2008 @ 3:22 am
Instead of just copy/paste code, you should perhaps write a framework. Then you will have something interesting to do, and will save time in the long run.
Or you could learn Java and do some “serious” work
Comment by Anonymous Coward — October 25, 2008 @ 4:52 am
Many great comments at http://news.ycombinator.com/item?id=343000
Comment by Anonymous Coward — October 25, 2008 @ 4:55 am
One word: Lisp. It’ll crack open you deepest interests for programming.
Comment by Pete — October 25, 2008 @ 6:11 am
Ok, php STOP!!!!
Why don’t you try to work in j2ee????
In j2ee you can create distributed application and in the same time you can use your experince in web programming. In this way when you’ll be good skill in j2ee you could realize something that you love better than web.
Comment by Alessio — October 25, 2008 @ 6:26 am
> While telling my old boss of my plans he said he’d pay me $30 an hour to work for him again, this time remotely, since the guy that had replaced me didn’t quite work out. I needed the money and wanted to have something solid lined up, so I took it. So much for focusing on school or switching career paths.
I hope that’s as a regular employee, and not as a contractor!
Comment by josh — October 25, 2008 @ 8:38 am
Learn Python. This is what I did after years of getting bored over the same crappy PHP/MySQL sites. Now I’m having fun again, Python is a beautiful language which is much better at stimulating higher abstractions than PHP.
Comment by djc — October 25, 2008 @ 9:24 am
Doing embedded development and doing software AND hardware … oh yeah, that interests me.
In regard to Microsoft stack stuff … I’m not convinced. I browsed through a LINQ book two nights ago and all I could think was “Ha, you can use SQL-like syntax to iterate over arrays and collections … but why the hell would you want to? It’s less elegant than using something like map() in another language.” I always have this reaction when I look at Microsoft’s stuff. I don’t care that they provide you a million ways to do something. I see this as a bad thing.
C, yes, perhaps, because it’s great for low-level stuff. C++ no (I have Rob Landley to thank for steering me in the right direction away from that one).
In response to Feyd Ratha (aka, “I will kill him!”), about getting out into the world and enjoying oneself … definitely high on my list. If I had the funds I’d do more of it, including moving to a place with cooler shit, cooler people, cooler bars/nightlife/events/music, and nature/parks that don’t involve the scrubs … Florida has nothing for me.
Comment by alanszlosek — October 25, 2008 @ 10:34 am
I feel you.
Comment by Nick Mudge — October 25, 2008 @ 11:30 am
And I thought I was the only one.
I don’t have any advice, since I’m in the same boat: after living off money I made as a PHP programmer, I went back to school to become a graphic artist, then a sweet (i.e. $$$) PHP job came along and suddenly I’m a developer again. I wish I knew how to quit you, PHP.
Comment by Weakly — October 25, 2008 @ 2:13 pm
Right now I’m making a boring web application to test the user’s level in English. This could have been an insanely boring PHP job.
But I work in a small company where I’m the only programmer. That means I’m the only one who can choose the technologies used to make any given piece of software. So I try to find interesting ways to get the job done.
The designer designs the interface in Photoshop -> Good opportunity, let’s make a program that transforms a PSD into PNGs and pieces of HTML + Javascript.
The boss wants to make an easy-installable CD-ROM version of the software -> Good opportunity, let’s create a small HTTP server (which is easy to do when you don’t care about performance), and let’s learn sqlite. And since I don’t fancy integrating a PHP interpreter into the application, let’s also take this as an opportunity *not* to use that language. (I used C++ for the main engine, because it makes nice native executables, but mainly because I like C++.)
It’s an English test, which means there are authors who creates the questions -> Good opportunity, let’s check their work, and give directions and advice. It’s nice to do some non-programming stuff from time to time too.
Comment by Fabien — October 25, 2008 @ 4:13 pm
Haskell, Lisp, Erlang, Smalltalk, Ruby, ObjC/C/C++/C#, Java, F#, PHP… it doesn’t matter so much what you use. Even PHP has some good, DRY-oriented frameworks that keep you from the copy and paste nightmare you reference. Bottom line… you should enjoy using it. It should fit your style and hopefully it allows you to improve as a programmer. As it has been said, you also need a project you personally believe in – and believe in it enough to see it through. Good luck.
Comment by Michael — October 25, 2008 @ 6:45 pm
It sounds like the PHP language isn’t the problem – it’s the typical boring PHP project. So why not change that? Find a new problem to solve (something you can sell) by capitalizing on your existing skills.
Comment by rdingwall — October 25, 2008 @ 10:16 pm
It sounds like part of your problem is the jobs you’re seeing advertised. Perhaps you think you have to work with a platform that is popular, doing work that is the most frequently advertised. This is the low hanging fruit. I’ve found this is not the road to happiness. Going that route leads to what you’re talking about. All I can suggest is that you do something scary and look at companies that are actually doing things that are interesting. I say “scary” because IMO there aren’t that many of them, and you might think “there’s no chance they’ll take me”. Indeed, that’s a possibility, but you won’t know unless you try. If you’re interested in doing your own startup or running your own business, that’s another matter. And if you feel so motivated, go for it.
There are companies doing innovative work out there. Take a look at Second Life, ITA Software, Orbitz, and Qwaq as examples. I found a blog written by Martin C. Martin (at http://www.martincmartin.com/blog/) who had only used Lisp for a little bit (in a college course), but got a job at ITA Software where they use it a lot.
I got to the point you have a couple years ago, but for different reasons. I wasn’t even thinking “I’m bored”. I was frustrated and despondent with a job I was doing (and which was ending), doing ASP.Net work. This was nothing new to me. It had happened before (with other technologies). I came upon some interesting material on the web just by following my normal reading habits. It started with an “itch” I was scratching, and grew into what I’ve been studying on my own time since then (you can read about it on my blog at http://tekkie.wordpress.com if you like). It was only once I got into this stuff for a few months that I realized what I had been doing before was really dull and uninspiring. My motivation to do this got a big boost by watching this ETech 2003 demo/presentation (at http://video.google.com/videoplay?docid=-9055536763288165825). After watching it I couldn’t look at what I had been doing the same way again.
I will warn you, if you are easily inspired by what computing’s potential is, getting into this stuff is like taking the Red Pill. If you’d rather stay with your current perceptions of what a career in IT is, and make a comfortable paycheck, it might be better to not “go there”, and take the Blue Pill. Going forward can seem fraught with conflict (conflict within yourself) and danger (ie. scary), because you’ll be venturing where few have gone, and few will understand. At the same time though it’s very interesting and exciting stuff. At least that’s been my experience.
Good luck to you.
Comment by Mark Miller — October 26, 2008 @ 12:44 am
Have you thought about designing Web pages for publishing companies? The company I work for has aneed to integrate more online design and monitoring. It would give you a lot of freedom to do things the way you want since a lot of publishing companies are smaller, you would get the option to make it your own and have control over something like that.
Comment by bbund — October 26, 2008 @ 3:31 pm
Hi, I stumbled upon this post strictly by accident, but I’m interested in it and some of the insightful comments. I’m not a technical person, but my two cents: maybe you are thinking about this the wrong way around? Why don’t you consider doing technical work (work you say is boring to you) but for a cause or purpose or place you believe in? In other words, apply your valuable technical skills (and you and many of the people commenting don’t seem to value the skills you/they have — you should, and the rest of the “normal” world would ( –
to a situation that means something to you, and seek the fulfillment that way? You could certainly do meaningful work in a meaningful non-profit, such as a Library (my area of expertise; most libraries today don’t have two nickels to rub together yet must seek to compete for interest, funding, and community connection) or an animal shelter, museum, etc. There IS meaningful work out there, and believe me, your knowledge and skills could make a whole lot of difference to those organizations. . .
Comment by Robin Gardella — October 26, 2008 @ 4:40 pm
I feel exactly the same way as you about my career right now. In the last couple of weeks I have been going back and forth with two things that I think will satisfy me for a long time. First I will not be just doing web programming with PHP. Instead I will do the high percentage of the work using c language to developer PHP extensions and study the internals. This is also my back up to finding myself creeping back into PHP web development. Second, I am going to through myself into ASP.NET MVC.
Comment by Carl McDade — October 27, 2008 @ 9:26 am
At some point in everyone’s life, the work gets monotonous. Whether you are a nurse, truck driver, computer programmer or a porn star.
I’ve been at this for 20 years, at least with programming we have options, we can learn a new language, some new skills, technology is constantly changing, and the constant change can become monotonous.
So whenever I think, I just can do this anymore. I stop and consider the options and remember what I did before programming.
McDonald’s is always hiring, construction is mighty cold or hot depending on your location, and you will be physically wore out at the end of the day. There are a ton of options, employers would love to have an intelligent, logical employee working for $15 a hour.
Try volunteering at the local soup kitchen, and get a first hand look at some folks that would literally, give their right arm to have your skills.
Then go back to your PHP job, and thank God that He blessed you with the ability you have.
It’s all a matter of perspective..
Don
Comment by Don Strawsburg — October 27, 2008 @ 10:32 am
All I can suggest is to get a hobby, work on your own side projects, learn flash, do something different or new.
Comment by Bob — October 27, 2008 @ 1:45 pm
Hey man,
I can agree in only one part, well some times, and that is changing the field names.
But seriously if you are thinking of changing “career”, I reckon you are not a true coder.
Code is a life style, you think – you create. You talk it.
I suggest you take another look at it, don’t copy/paste, see how you can make it even perfect. Think on the code.
It’s all about creating.
S.
Comment by Steve A. — October 27, 2008 @ 4:33 pm
leave programming. PHP destroys the brains ability to think in any rational way. you need to go through rehab and de-tard yourself.
I really hate php.
Comment by Tristan — October 27, 2008 @ 7:28 pm
I understand your frustration (we’ve all been there), but there are thousands of people that would kill for you skill.
Why not try and put your focus on building a business or company off one of your sideline projects? It’s more than possible, it would allow you to experiment with different technologies as you build and improve the business and you could make a decent living. This will also give you a sense of pride in what you are doing.
Goodluck with it!
I agree with some of the guys above who mention taking up Python in your spare time.
Sean
Comment by Sean Nieuwoudt — October 28, 2008 @ 3:27 am
I am in the same position as you. My advice: build cell phone apps or some kind of embedded software (microcontroller programming?) if you want to continue programming.
Perhaps you can have a hobby, play an instrument, make exercises, martial arts, something to give a broader scope of some other things.
Good luck.
Comment by Vitor Almeida da Silva — October 28, 2008 @ 7:22 am
I hear you… but I’m going to try and and survive it for now. I’ve only just hit the 1 year of being a paid PHP Developer.
Comment by alex — October 29, 2008 @ 12:13 am
Keep working and studying and things will come around. I was much in the same boat as you were a year or so ago, but I used my spare time to continue working on programming projects in technologies that I enjoyed and working towards different certifications. It eventually helped me land a job in a field I enjoy. If I had just been complacent at where I was, chances are I would still be there and miserable.
Comment by Kris — October 29, 2008 @ 4:13 pm
[...] competitive. If you find yourself becoming disillusioned with what you’re doing currently, consider learning one of the newer skills, particularly [...]
Pingback by 6 Career Tips From An Old School Programmer | WebDevLounge | design, development, SEO and wordpress | articles, discussion and community — October 29, 2008 @ 9:02 pm