everything else - understanding inherited crappy code; fixing bugs no-one else can / wants to; listening to clients change their mind again - is just the price you pay for being able to do that craft...
I work from home, and can work anywhere in Europe, as much or as little as I want (within reason). I don't have to put up with meetings and bullshit bosses. Above all, I still love programming for its puzzle-solving side, and for its non-stop accumulation of learning and experience.
I'm currently having an awesome time in Barcelona, but I've lived in a beautiful city in France, by a beach in the Canary Islands, and in an 18th Century Norman Château (well, in its converted stable anyway).
I'm sooooo glad I stuck to the coalface and didn't move into management, or I'd probably still be swearing at tourists on the tube every day.
This is probably one of the best things about being a programmer. You can work from home (or a coworking space) and live anywhere in the world.
The article and others like it usually allude to soul-sucking management-heavy corporate environments. It's no surprise to me that people don't want to work there late into middle age (as programmers).
I also work from home, have never worked in a corporate environment and probably never will.
I get my work almost solely through contacts I made when I lived in London, though I left the UK in 2007.
Sorry: probably not what you wanted to hear!
I think there are people who were made to be makers/tinkerers and other that aren't, but fake it for a period of time. If this was the 1800's, I'd be laughed at as a "fool inventor".
It makes me confused about the "young founder" trope. Maybe some wunderkind can pick up a lifetime of learning before they are 22, but if so, I'd love to know how, and how this could be a common scenario. It just seems far-fetched to me. So much of what I know came from experience, but without that experience, I'm not sure how one would learn these things...
Now, you know that there have been hundreds of flashes in the pan (or things that should have been flashes in the pan), and it's usually much easier to keep a high-level overview of a field and only dive into it when you need it, which usually takes a matter of days because you have worked with similar things anyway.
But they don't know that you know that.
Then the young founder is wrong. I'm also 38, and not only am I familiar with (intimately in many cases) with 2 year old technology, in many cases I'm in the process of _creating_ the future of technology (in my particular slice of computer science).
You may be on to something with fads, though. My experience (purely anecdotal) is that more experienced developers are better able to pick out the fads vs. new tech that's likely to stick. That makes a difference. I'm not going to spend much of my valuable time on something that I don't believe is going to last, and after 20 years, I'm pretty good at picking those things out.
I have a very long list of things I want to have a deeper look at, but I'm not going to waste my time on technology that won't last. Oh, I'll have a look at those things (the high level that you mention), but that's as far as it'll go. There's far to much on my plate.
On occasion, I do get it wrong. That thing I thought would be a fad, ends up becoming important technology, and I have to play catch-up, but that doesn't actually happen much these days.
I guess my point is, it may appear that we, older developers, lag behind, but really, our experience allows us to make better decisions about what technology to spend our time on.
This would be a really silly assumption. There seems to be little correlation between age and acclimation to new technologies.
Now, I don't mean to belittle the inexperienced young founders; we were all inexperienced once. Also, a few of them probably truly are visionary geniuses (but I suspect most are not). All that said, many of the start-ups I hear about sound ridiculous to me, and most will fail. The few that are destined to truly succeed, however, probably will also sound ridiculous to me. And perhaps, that is why "young founders" are occasionally going to change the world.
I remember reading a discussion of how some technology (lets go with smart phones for lack of my memory) was going to make newer generations lives so much different. They'll be focused around them because they're so amazing and useful. What <the folks that said that> didn't really understand was that, to the younger generation, the smart phone wasn't some wonder, amazing device that can do lots of things. Rather, it just WAS.
It's like a door. If you lived before doors, they would be amazing... you'd think everyone younger than you would be amazed they have it and love it. But they don't. To them, it has always been that way, the door just IS.
Starting my own company, releasing my own software, interacting with my own users and reveling in their praises or reeling back from their complaints: that's software brought to life and that's what keeps me going.
Programming is just the canvas for getting my ideas out in the real world in the hands of real people.
Admittedly I've been very lucky, I've never had to do "maintenance", write CRUD apps, had horrible bosses or worked with bad developers or unpleasant people.
> I've never had to do "maintenance", write CRUD apps,
> had horrible bosses or worked with bad developers or
> unpleasant people.
> I spend my week days working on
> Windows/WPF/C#/C++/machine vision applications for
> aiming lasers
Has CRUD become a derogatory term, or do you just personally feel that they're boring to work on?
Tons of useful applications involve Creating, Reading, Updating, and Deleting database records at their core. Facebook and Twitter are essentially giant CRUD apps, so is every CRM system ever. Rails and similar frameworks provide scaffolding for automagically building functioning bare-bones CRUD apps with just a few keystrokes, relieving developers of the boring, repetitive part and freeing them to work on the unique business logic.
I dunno, maybe I'm a dork, but I guess I kind of think CRUD apps are cool.
Edit: OK, I admit that they're not nearly as cool as machine vision for aiming lasers, though. :)
They are full of boilerplate, unimaginative uses of computing, the re-invent the same bloody wheels again and again, and that should have been automated much more already.
>Has CRUD become a derogatory term
Yes, for at least a decade.
Perhaps it could be a framework or application that would allow a non-programmer user to create basic CRUD apps with some sort of "app builder wizard" GUI by simply defining the record fields and their data types. Then it would automatically generate the tables and the corresponding models, and the create/edit views just like Rails does. It could also expose basic access/permissions configurations and have a bundle of CSS files to select from for the GUI styling, and a drag-and-drop interface for selecting GUI elements.
Basically, I'm picturing something like a cross between Rails and a version of MS Access with a more user-friendly front end a "real" database behind it. Or just a GUI version of Rails, bundled with some HTML/CSS view/style templates, really. Or "the Wordpress of CRUD apps." (Maybe this exists already and I don't know about it?)
Of course, if someone made something like this and got business users to actually use it to build their CRUD apps themselves, it could put a lot of CRUD app developers out of business!
Well, it's a little negative, but I've made my fair share of CRUD apps at one time.
>Of course, if someone made something like this and got business users to actually use it to build their CRUD apps themselves, it could put a lot of CRUD app developers out of business!
Hmm, I have a friend that attempted something like that -- his startup was featured on TechCrunch IIRC: http://app2you.com/site/index.html
What I'm thinking of is like an open source project for a "one-click" installer that deploys a default/pre-configured Rails application, with a GUI wrapper (similar to Wordpress) that allows you to visually design the database schema, generate the scaffolding with the click of a button, and swap out themes for style and plugins for added functionality.
I don't think this idea (RailsPress?) is so original that no one's thought of it before, but it doesn't seem like anyone's really executed it yet. I'm thinking about starting a Github repo for this if there isn't already an existing one I can contribute to.
Edit: It looks like there is a repo called "RailsPress" but it's just a port of WordPress to Ruby on Rails, not a framework for allowing non-programmers to generate generic RoR applications.
Not sure, I'll have to ask him. There are some 2012 updates on the site, but I thing he moved on to something else now.
>I don't think this idea (RailsPress?) is so original that no one's thought of it before, but it doesn't seem like anyone's really executed it yet. I'm thinking about starting a Github repo for this if there isn't already an existing one I can contribute to.
Sounds like something that, if executed well, can have a real market.
I'm surprised there isn't any SaaS offering something similar for SMEs. Like the way WooForms let's you make, well, query forms.
Google Search is one obvious example of a web app that has absolutely nothing to do with CRUD. It uses a search algorithm to search a massive priority-ranked data structure that represents an index of many millions of popular web pages.
E.g, is Twitter a CRUD app? At the programming level maybe, but the core idea behind the service is quite different.
And there are the more interesting non CRUD apps. Google Docs. Google Maps. Photoshop.com. Multiplayer online Games. Online Editors. Online Validators. Real-time collaboration apps. Etc etc.
I love your attitude! I am still half your age, but I expect to be rolling and rocking like you do when I am your age, and beyond ! :)
Cultivate your interests. Learn something new. Coursera is pretty awesome - I wish I had more time for all the courses I'd like to take. The courses at MIT's OCW (and edX) are great. Download lectures to your mobile device. Search iTunes U for classes.
Write short programs for fun. Check out Project Euler, fer instance. Don't forget why you started programming in the first place.
Gear up and get a new job. Don't accumulate too much dust. Crack open a book about interviewing, get off your high horse about what people consider fair game in an interview.
Web app development is the type where you do things differently for every project. Going from writing ajax handlers on the client and server, to using KnockoutJS (or Backbone or Angular), is extremely fun because it lets me focus more on the UI.
I'm 48, programming since 10, and it hasn't bored me one moment. I can't really relate to the problems the author poses in his article. The IT field is continuously shifting and very broad, look a bit left and right and you'll discover new things. And if you've reached your Blub Ceiling , try out some language which is more powerful than Blub.
My point is, expect to work a LONG TIME. It's not about pulling a few all-nighters for finals, collecting a piece of paper, and waving goodbye. It's a marathon, not a sprint. Do what you gotta do to keep it interesting, because no one else is going to do that for you and the "end" is so far in the future it's not even worth thinking about. Take vacation time, take on new challenges, go back to school and start a new career, stop and smell the roses once in a while. It's your life, choose it.
Of course if you're rich enough, you can just pay the taxes and still be rich enough. But that's a circular argument. The point is, the bar for "rich enough to retire" is much higher the younger you are--and not just because you have more years of life ahead of you, but also because of the taxes.
I've been actively programming for 30+ years. Whenever I get a "Hello World" running on a new system or language I get the same excitement as I did the first time on my Apple ][. It helps that I work for a company that values experience and has a technical track so I don't ever have to become a people manager if I don't want to.
It affects accountants and carpenters and all sorts of people.
That said, I definitely recognize some of the feelings he's having.
It's a midlife crises. Go buy a Corvette or something!
Source: None, because I'm 26. But I'm looking forward to that Corvette in a few decades.
It's just part of growing up actually. I think programmers in particular tend to frame that into something a bit different, but the reality is that it's the same thing for all mere mortals. It's just perceived differently.
Now that's just crazy talk!
I see programmers get trapped into thinking they are too old and have to manage. After a couple years of no programming they've often lost the knack and all they can do is tell other people what to do. It is incredibly hard to recover from this.
In fact, there are lots of ways to get trapped. I won't enumerate them, but "getting into management" and "not learning new stuff on a continual basis" are classic ones.
If you become the expert on something; if you're the "go-to" person in a large group for a particular piece of technology, my advice is to find something else to do, within a year or two, or you're gonna be stuck. Nothing lasts forever in this industry.
Watching him, I think the key is being bright and choosing where you make your career carefully.
People whose brains are good at generalizing from data eventually realize that the vast majority of "new technology" in computers is really 40 (or more) year old technology with a new paint job. Once you realize that it's very hard to get excited about these things.
There are still things to get excited about : machine learning, AI, etc but they tend to be orders of magnitude more difficult to understand than the technology stuff you've spent a couple of decades working with.
I know I need to get over this skepticism, but I'm having a hard time figuring out which horses to bet on anymore. I feel like I'm close to just saying "screw it" and becoming that crazy graybeard who uses a completely off-the-wall technology stack because that's what he enjoys and to hell with everyone else.
Now, that doesn't mean the new version is tennable, but it means that it's probably time to re-evaluate the old idea.
I think another part of it is cultural. Since I brought up CSS preprocessors as my other example, a lot of the animosity toward them "back in the day" was driven by the web standards movement. We finally had sane standards that worked across the big browsers, and then some upstart was trying to introduce something proprietary and the community reacted. Now, we have little hiccups once in a while but things are pretty much standard across the board and that makes a stable platform for innovation.
By the way, this is why many self-preserving large companies use humility as a filter for new hires. They want knowledge to pass down effortlessly from the veterans to the noobs (and others) without creating unnecessary internal battlegrounds.
In early stage of your career, your competitive advantage is cheap and fresh. But at some point, that advantage goes away, and you need to find other advantages -- domain knowledge, industry reputation, connections, management skills, anything that can distinguish you from other developers.
Once you get that competitive advantage, you will get the desired respect and people will start to value your opinions. And hopefully, you will not find it boring anymore.
> I personally don’t know a programmer who successfully survived the boredom, disrespect and disregard that comes with age and experience.
I think to some extent, you get what you give.
Would you also say that writing is a repetitive activity? I do think I saw you repeating a few letters in your post, after all.
Should we view living as a repetitive activity? All that breathing of air and pumping of blood can be so monotonous.
Rather than fretting that programming has become tedious, look up the stack to the limitless opportunities that applying your hard-earned skills now affords you. Build on what you know; don't wallow in it.
Unfortunately, for software developers (and mathematicians) leveling up starts to become difficult as the mind ages--and there's only so much computer science stuff out there before it all becomes repetitive. Fortunately this occurs at just about the time one begins to realize that they're in the middle of the pyramid, working primarily to enrich someone else, and thus follows consulting, entrepreneurship, or, if you don't care about enriching someone else, management.
My face will not be old and haggard, but digital, expressive, cleanly coded, and handsomely tested.
Now, eventually, I figure I'll hit barriers. I expect these to be mostly physical. How long can one take sitting and typing? I've had bouts of back pain and rsi, and these have been more demotivating than anything else. But even here, I think life is getting easier. More companies are coming around to the importance of decent ergonomics, sit/stand desk options, etc... Voice recognition is coming along nicely. So I'm mostly optimistic.
I actually enjoy early-morning coding (before the rest of the world wakes up) more than late-night coding now!
The author seems to jump to generalizations. For example, from "I can’t find the enthusiasm to program anymore" he goes on to "we try to discover new sources of inspiration". Who's this "we" he's talking about?
When my work life gets boring, I do something about it, so I'm starting a saas. If you sit around and moan and groan, life's gonna groan right on back ;-).
Having fun to see youngster always jumping on the technology of the day every few years.
What I don't love is being forced to work on project after project by employers that don't have the slightest idea what they are doing.
At my current job, I've been stuck in the cycle of:
-boss will give me the specs
-right before I finish, boss decides to change his mind (redesigns, functionality, etc)
-There will then be pressure on me to get all of the new changes done in a specific time frame (often not even close to reality).
This cycle has repeated 5 or 6 times. I still haven't had one release of the project I was hired to complete. It has pushed me to leave and start my own company.