However I do think posts like this feed in ageism. I say this because it posits that the change is that the author is older and has more things to do, therefore they've fallen out with technology. The take-away invariably being that people who are older and have more things to do have fallen out with technology, whereas the young are still with it, whatever it is.
Let's back up for a moment.
I've worked with people throughout my career who never learned a thing that wasn't specifically taught to them on the job. They had very little curiosity, and an email saying something like "try to look into" would get met with derision. "Is this on the test?" they would effectively ask, when really I was just trying to get people interested in something that might have an impact on our work. So soon enough I have to be very specific and guide people along the technology path.
They left work and played volleyball and worked on their tuner car and went to family events and so on. They learned exactly what was specifically necessary for their job today and tomorrow. Never beyond.
Most of them were 20-ish year olds.
I was the prototypical "love technology around the clock" sort, and I was very, very much the exception. Literally, I know no one who I ever worked with who savored technology like I do.
But there were moments when I lost interest. One was on a return from my honeymoon. Being away from technology for a couple of weeks, suddenly it was all very "Meh". I could easily have taken that moment and said "Oh well, I guess this is what happens when you turn 27. Guess it's time to look into management."
But I didn't because that would be wrong. I lost my mojo and was burned out. Not long after I changed jobs, got recharged, and was at it again.
And I love it. I love the change. I love the technology.
I'm 27, used to be in tech like the biggest nerd of them all. But not anymore, frankly I'm tired of all of the changes that happened in the industry - it's not that I'm tired of learning but it's that the changes lack substance. Learning a new framework that does the same thing like layout or user design; it's not like learning music and digging into a deeper discipline like moving from acoustic strumming to jazz improvisation, it's just learning new keywords to do the same crap because the old keywords have been remapped.
I'm reminded by a writing blog, like writers of popular fiction, programmers aren't creating technology anymore but we are simply selling a idea (e.g., Martha Stewart for home furnishings flash sales sites, fear of missing out for Facebook/Instagram, diversion or outlet for teenage aggression/frustration for iPhone games) that validates a user's idea that is wrapped around technology. Hence, tech trends surrounds consumer tech instead of system programming now and new web frameworks sprouts by the day that emphasize shaving the man-hours of a routine set of mundane tasks down by a fraction of an hour for the benefit of the agile burn-down chart.
This is not meant to be depressing nor cynical comment but a liberating one for me. Too often, I or I have witnessed a lot of my mostly younger peers try to reconcile the art and commerce, or to put in blunt way, have our cake and eat it too. I see that as a cowardice or indecisive but perhaps necessary stage in one's journey of growth, not to commit yourself and not to express your personal values through the imperfect tradeoff's and limited circumstances of a finite professional life - but be swayed by the arbitrary trinkets that one's professional guild assigns and equating its idea of worth to your self worth.
VB/Pythonistas/Rails/Node.js I've seen them come and go like names on the Billboards charts moving to VH1's "Behind the Music/Where are They Now?". I'm convinced now that you have two routes in this business, 1) make your programming craft secondary to the development of your domain expertise, so learn finance, SEO or sales whatever is the main objective of your business, 2) make your programming craft your domain business and work at companies where their business is the software.
I reminded a co-worker last week as he was figuring out whether to use Grunt or Gulp - Computers aren't the thing. They're the thing that gets us to the thing. - Quoted from Halt and Catch Fire.
Photography has its own version of the same quote. Amateurs worry about equipment, Professionals worry about time, Masters worry about light.
User do not care about the technology used, they care about results.
Same thing bro with musicians, "Amateurs are gear-heads, pro's worry about techniques, and masters tries to listen to the sound"; traders/gamblers, "Amateurs focus on their winning, pro's worry about preserving their capital and masters worry about executing their performance where losing and winning money is only a side effect," and ad infinitum.
Reminds me of the Freaks and Geeks episode where he goes to a drumming audition and gets made fun of a bit for his enormous kit before completely bombing.
They may come and go in the small bubble of blogs you read, but the real world works very differently.
Heck, I work with Perl on a regular basis. Not for some amateur web pages but for real, important, back end stuff. What matters is that the code is solid, not how many new blogs are started on the subject.
Remember that the ones who get things done in the world does not blog about it. No blogs chronicled how they chose dynamic frameworks for the first version of Google. Because they didn't. They whipped out their editor and compiler and went to work.
> Remember that the ones who get things done in the world does not blog about it.
Perhaps not necessarily true. I don't blog as often as I used to but I still get things done. The act of writing helps to strengthen and reinforce good ideas and train one to recognize them in the future. Publicly or privately matters little... but some of us do "blog."
I think your parent's language was a bit inflammatory, but I like the reminder that not everybody doing interesting things is blogging and tweeting about it. Lots of people just work.
> Learning a new framework that does the same thing like layout or user design; it's not like learning music and digging into a deeper discipline like moving from acoustic strumming to jazz improvisation, it's just learning new keywords to do the same crap because the old keywords have been remapped.
Perhaps you should look into Haskell, Clojure or Erlang for a change?
They are all languages (not frameworks), which are valid analogies to the guitar metaphor. They are so different from your usual C-like languages that they will be challenging to learn (and likely fun also)
I think the difference is not just that these are languages rather than frameworks, but also that each of these teach you different skills and approaches by their nature (that aren't 'new', so clearly have a stood the test of time).
In the context of noname123's post they bring interesting learning to the table: they are not more of the same with renamed keywords. To quote,
> [...] it's not like learning music and digging into a deeper discipline like moving from acoustic strumming to jazz improvisation, it's just learning new keywords to do the same crap because the old keywords have been remapped.
Haskell _is_ digging deeper into the discipline.
I am sure one can make good arguments for some of the Haskell and Clojure frameworks for web applications. Alas, I am not qualified. I only used Haskell professionally for embedded development, and for rapid desktop application development, but I've never done web development seriously.
In any case, the Haskell answer for web development will probably include what all Haskell advocacy ever includes: purity and the strong static typing.
To take this thread yet further into self-parody, you might like Rust; it borrows some interesting stuff from Haskell (or really, the ML family), but is actively targeting embedded systems.
Edit: Also, I have heard that Ocaml can be made to work pretty nicely in an embedded environment.
You can make OCaml (and Haskell) run on Xen, no need for a full blown operating system. (Not sure if that counts for anything.) The OCaml project for that is called mirage.
No, not nearly that baremetal. I was talking about control processes running in dom0 of xen. They are embedded in the sense that there are `no user serviceable parts'.
(I just looked up embedded software on Wikipedia; it seems like the traditional use of the term is very different to how I used it here. Please pardon the confusion.)
Ignoring the joy of writing software with much more powerful abstractions for a moment (Python, Ruby, JS, PHP all look like jalopies now compared to Haskell) out has very real industrial benefits:
Write software faster with fewer bugs, easier to maintain down the road because the "mental model" is maintained in the types by the compiler, it's more succinct, it's fast, some of the world's brightest computer scientists work on it, and so on...
Thanks for your response. I'd like to dive a little deeper into the basis for these claims. My current stance is that there isn't sufficient reason to adopt Haskell for use in production.
> Write software faster with fewer bugs
Is there an evidentiary basis for the 'fewer bugs' claim? What type of software are people writing faster with Haskell?
>> easier to maintain down the road because the "mental model" is maintained in the types by the compiler
That seems fair.
>> it's more succinct, it's fast
In isolation, that's a bit hand wavy IMO.
>> some of the world's brightest computer scientists work on it
This is something I hear quite often from the Haskell community in particular. It may or may not be true, but it gets repeated far too often IMHO. It feels like a bit of an appeal to authority.
Interesting you should ask for more verification of my claim to fewer bugs because I'm about to embark on using Haskell in the new startup I'm working for and they may require stronger reasoning than I have been providing.
I've been thinking about how to qualify the claim logically or maybe quantify it. Anywho, aside from that I can tell you that the vast majority of bugs I introduce into my Python code (or other languages) are caught by GHC - these are bugs that purely have to do with my inability to remember what something is or is doing, or fear of refactoring something, or some tangled mess of types that are harder to reason about in Python because they're in my head instead of encoded in Haskell.
I've discovered that when I've been able to compile my Haskell programs the bugs I find in them are usually business logic bugs now. Occasionally I'll make use of QuickCheck / HUnit for automated property testing and unit testing, and that will help catch those business logic bugs.
Very subjective and anecdotal but I can promise you that the experience is very real.
> In isolation, that's a bit hand wavy IMO.
Sure, but if you take into account Haskell's denotational semantics vs. other language's operational semantics it should be pretty clear that Haskell inherits Mathematic's idiom for succinct expression. That idiom also informed the language designers when building Haskell's grammar and syntax, it's very flexible and abstract - both in the essence of the language (it's semantics) and its modality.
When reading idiomatic Haskell, there's a lot of information packed into a line, conceptually and syntactically.
> This is something I hear quite often from the Haskell community...
Sure, it probably borders on it, but in many ways other language communities commit the bandwagon fallacy (Go is one) - so I think you can poke holes all over the place. The fact though that proof proving systems and dependently typed languages like Agda and Idris (which are the future and I think will supplant Haskell unless Haskell can evolve) are being written in Haskell which speaks to the level of intellect and forward thinking in the community.
>> Write software faster with fewer bugs
> Is there an evidentiary basis for the 'fewer bugs' claim? What type of software are people writing faster with Haskell?
The latter focusses on zippers. Zippers solve the problem of having a connection and a `cursor' into that connection to mark one element--in the case of XMonad we mark the window that has focus.
In C you would probably solve this with an array and an int. Unfortunately, the compiler can't help ensure that your int always points into the array, and that deleting and inserting are doing the right thing. Zippers help here.
> Ignoring the joy of writing software with much more powerful abstractions for a moment (Python, Ruby, JS, PHP all look like jalopies now compared to Haskell)
Just out of curiosity: Which abstractions are we talking about here that Haskell doesn't have? OO?
I didn't write that sentence very well if that's how it was interpreted, sorry. I meant to say that the abstractions available to Haskell are more powerful.
I can't really think of any abstraction that's not available to it - even an Object System is possible in Haskell, it just wouldn't be as easy to use as Monads are.
I used to have that passion, when I was young (I'm 29 now, so not very young for the tech world, although not old either). And to be honest, it was the 40+ work week what killed it. I never liked specialization, so to me it makes a lot of sense that, if you're already investing that much time in technology, you may spend the rest of the week doing a different thing. I'm getting a new degree (in principle, I don't plan to make a career change, I just want to do something different with my evenings). And this summer I'm learning a bit of Finnish on my own, because why not. Obviously, it's not like I ran out of curiosity, but rather, that I prefer to direct it to several different things than focusing on a single one.
If I devoted my free time to technology, I would be doing so just not to become obsolete, not out of genuine interest, and that would be too frustrating. I actually have some tech interests (Scala, Hadoop, any kind of complex algorithm, etc), but when I get home, there is so much I'd rather do, that I don't program at home any more, except on rare occasions.
There is a lot of pressure to spend all your waking time on technology and things related to your work or your career (I'd say this is part of the so-called "Californian ideology", maybe I'm wrong). But, in actuality, not that much people is so obsessed with learning the same area, and the competition to not get behind is mostly illusory (ageism is another different problem; and no amount of knowledge will free you from it). So my advice here is that, if you don't feel like devoting your life to a single thing, forget about your job the very moment you close your office's door, and enjoy any other of the million things life has to offer. And of course, if you are really that passionate, keep learning new programming languages or techniques on your free time (just be careful about burnout).
Final note: the most tech-passionate guy on my job is one of the oldest (36). It's not a matter of losing it over time, it's a simple matter of people's preferences (and in some cases evolution over time).
I think the tech industry discounts the value of expanding your horizons. I have a background in design and writing, and when I choose to incorporate those disciplines into what I do with code, a lot of magic happens. Let's say I order a class like a do a news article (upside down pyramid, aka most important shit first). Or I apply my own design eye to the motion or interactivity of a static design. Or even to how I interpret the structure of the code?
Reach out. Learn as much as you can. You end up finding a lot of relationships between a lot of things in life that can apply equally to each other. Right now I'm digging deep into car repair. It's fun to find the correlations between the component systems of a car and software.
> I think the tech industry discounts the value of expanding your horizons. I have a background in design and writing,
I had a developer get up in my face once and chew me out for studying design in my spare time instead trying more new languages and frameworks because I'm a developer, dammit, and it should be all I live, eat, and breathe.
That's bull. Well-rounded people bring a lot to teams, the least of which being the ability to speak to other specialties in a common language.
Keep broadening your horizons & keep being awesome.
I think expanding horizons beyond technology is a really important key idea that you've stated.
Programmers that are learning more mathematics, music, painting, or a scientific discipline beyond computers really expand their available set of symbols and motifs - creative ideas then emerge from that soup.
If you've been in the industry for 10+ years, there's a certain cynicism that occurs, when you're learning a new framework/language every 2 years that's just an incremental improvement on another language.
Just because a boss tells you to. "Oh learn this, it's gonna be the next big thing. It's gonna propel your career. Oh, you're done with that? Now, learn this new thing for your next project. 3 months later.. OK, forget that, we're switching frameworks. Learn this now."
So your boss is basically telling you to learn all of these things so that you will remain a cog in the machine. Like running really fast trying to move ahead, but really you're just on the treadmill and staying in the same place.
> The take-away invariably being that people who are older and have more things to do have fallen out with technology, whereas the young are still with it, whatever it is.
But it's still true, in general.
Sure, I work with plenty of early 20s people who have (frustratingly) no interest in their domain outside of what is necessary to get them through the work day. These young people exist.
But there are also the young people who are actually interested, and, in general, they have a comparatively infinite amount of free time to dig into languages and libraries.
If you have a spouse/partner, some of the time you used to spend working on your interests is now spent nurturing your relationship (and if you don't do that, I guess you'll have more free time for yourself again later on). If you have a child, then you must take another chunk of time spent on personal interests, or work. For most people it ends up being their own interests, since they still have bills to pay.
At best what you could say is true is that people with no relationships and no "extra-curriculars/external interests" have more free time.
This crosses all ages. There are young people with filled social and activity calendars (I've worked with young people who seemingly had filled social calendars at work). There are older people who have all the time in the world.
I remember reading once that the best employees are the unhappiest (in life). These were the people with endless time because they had no activities, no family or social relationships, etc. They'd happily burn the candle 120 hours a week because they had nothing else to do. Not sure how beneficial that is to knowledge work.
I agree completely, you sound exactly like the kind of person I am!
I just finished my computer engineering bachelors degree a month ago, I am 26 years old.
From all the people I know at school, only a small handful of them has ever done any kind of coding or any thing outside of the school curriculum (more than just reading a tutorial one night).
That is, for me at least, a frightening thought. You want to work has a developer but you do not spend any time outside work to learn?
Some of us are curious and try things out. I believe those that do are (mostly) the people that can be good developers. A situation that was particularly curious to me was when we had our first Programming 101 (Java) class the semester before Christmas, and then when the second class from around mid-February. In between that time, a huge amount of the class did not look at any Java, or do anything, or even try it out. So unsurprisingly, barely anyone remembered anything. There was just a complete lack of interest, and I can't figure out why they would choose this career path if they did not enjoy it and I do not understand how those people managed to pass classes, or how they are supposed to do good work later.
I have had a growing interest in computers since I was a child, and I think I have been coding since I was around 12-13 years old. During my time at university I have attempted to get people more interested in coding by suggesting they figure out some problem they want to solve, and then spend some time making something. I think I managed to get only a few of them to try anything, while the rest were questioning why they would want to do anything like that... I know quite a few of them have gotten jobs directly out of school, but I have no idea how.
Edit:
I do understand that not everyone has time to nerd out all the time, especially when you get older and have a family.
I also like to relax and recharge, so I try to keep busy doing other things like exercising. Sometimes I just get so sick of work, school and everything that I can't seem to write any code at home for personal projects. It is nice to be able to burn of that unspent energy mountain biking for example. And sometimes that just seems to shake loose a solution to a problem I have been having or give me inspiration to create something new.
Yes. Somehow "I am less motivated to work hard and learn new things in my 40s" turns into "Everyone is less motivated to work hard and learn new things in their 40s."
The author sounds a bit bored. His mind is telling him, "After 15 years of LAMP development, I'm bored, let's do something different!"
What should he do? Maybe he should take some time off, learn something new and exciting, or maybe move to the countryside and become an organic farmer. Only he can know.
If you're sick of building CRUD web applications, it's probably a good idea to remind yourself that there are an infinite number of other things you can create with computers.
Yes. Somehow "I am less motivated to work hard and learn new things in my 40s" turns into "Everyone is less motivated to work hard and learn new things in their 40s."
Yes, it very much is worded exactly like that. If you describe a starting state, and then a change of environment or inputs (getting older, which happens to all of us), and then hold the resulting state as the consequences of that change, you are generalizing, intentional or not. It is simply unavoidable. Sarcasm to this obvious reality isn't helpful.
To put it another way -- if a technology ignorant HR recruiter read that piece, they would absolutely think "older, established people are less valuable hires" than "this individual is a less valuable hire".
This, of course, could be the cycle turning in on itself, in much the same way that some minorities equate their condition to being a consequence of being a minority, rather than individual, more unique traits.
> They left work and played volleyball and worked on their tuner car and went to family events and so on.
'They had interests besides developing work skills.' You say this like it's a bad thing. This is a very disturbing aspect of HN/startup culture: the disdain for reasonable life-work balance & non-obsessive programmers.
Life goes by fast, I hope you're stopping to smell more than just the new programming frameworks. :)
I share the same sentiment and thoughts. Have you ever read Zen and the Art of Motorcycle Maintenance? If not I recommend it, been a great book to read and think about over the summer.
"However I do think posts like this feed in ageism"
That was my exact thought after I read this as well. I'm 36 and starting to feel the creeping fear of being seen as "too old" to do what I do. People posting "I did PHP for 15 years and don't get Python and don't want to learn DevOps and AWS is so confusing" sounds like a senile old man complaining about the good old days. If you want to be marked as a crotchety old man then great, don't make the rest of us look that way too.
You're never too old to "do what you do", unless you have nothing to show for it. Have you written software that others find awesome and useful? Are you still capable of writing such software? If so, you have nothing to worry about.
"They left work and played volleyball and worked on their tuner car and went to family events and so on. They learned exactly what was specifically necessary for their job today and tomorrow. Never beyond.
Most of them are (if not all...I can't think of a single one who isn't) still developers. Few have made any great impact, and most have had the "people get hired in as my boss" experience a number of times.
But they're still in the industry, doing a job, getting paycheck, and supporting a living.
Our industry is rather unique in that way that it's a 24/7 job for some, even at the lowest tiers.
However I do think posts like this feed in ageism. I say this because it posits that the change is that the author is older and has more things to do, therefore they've fallen out with technology. The take-away invariably being that people who are older and have more things to do have fallen out with technology, whereas the young are still with it, whatever it is.
Let's back up for a moment.
I've worked with people throughout my career who never learned a thing that wasn't specifically taught to them on the job. They had very little curiosity, and an email saying something like "try to look into" would get met with derision. "Is this on the test?" they would effectively ask, when really I was just trying to get people interested in something that might have an impact on our work. So soon enough I have to be very specific and guide people along the technology path.
They left work and played volleyball and worked on their tuner car and went to family events and so on. They learned exactly what was specifically necessary for their job today and tomorrow. Never beyond.
Most of them were 20-ish year olds.
I was the prototypical "love technology around the clock" sort, and I was very, very much the exception. Literally, I know no one who I ever worked with who savored technology like I do.
But there were moments when I lost interest. One was on a return from my honeymoon. Being away from technology for a couple of weeks, suddenly it was all very "Meh". I could easily have taken that moment and said "Oh well, I guess this is what happens when you turn 27. Guess it's time to look into management."
But I didn't because that would be wrong. I lost my mojo and was burned out. Not long after I changed jobs, got recharged, and was at it again.
And I love it. I love the change. I love the technology.