then
>We occasionally get good people anyway
Uh... nine-to-five-with-kids type here. Thanks for the stereotyping... from your safe corporate nest.
Otherwise an insightful post.
then
>We occasionally get good people anyway
Uh... nine-to-five-with-kids type here. Thanks for the stereotyping... from your safe corporate nest.
Otherwise an insightful post.
I understand the reason this fiction is maintained: people with kids need the job even more than people without, and have an interest in denouncing people who claim kids make you less productive. There's also the second order effect in which "with kids" is correlated with "older".
The net of it though is that devs with kids tend to assign work a lower priority, to take fewer risks, to need more money, and to be older and hence less familiar with new technologies (and too busy to learn in their free time).
Society doesn't have a good answer for this situation yet. In times past, technology didn't move so fast that experience was mostly obsolete (and hence useless) in a decade's time. A 40 year old farmer with kids in 1713 would probably have much to teach a young whippersnapper. The same isn't true for a 40 year old programmer with kids in 2013.
For the idea that parents and older programmers have different priorities, that may be true, but you downplay experience way too much. That said, trying to find 150% dedicated younglings, that don't spend a lot of time on side projects and just enjoying life is not that easy either
"Maturity" is an ambiguous and contextual concept that doesn't usually mean anything - people should be rated by objective attributes like experience, productivity and so on. One could also say that a younger person with more and harsher life experience can be more "mature" than someone older and with kids (think someone who raised his/her little brothers by mistake after the parents got killed or something like that), but with less impacting experience but it would be just as meaningless because of the ambiguity of "maturity" (how much is life experience relevant to a programmer?). Raising children teaches one useful "life things", but so does starting a business, travelling around the world or working for the red cross in Africa. Adding insult to injury, managers tend to use "maturity" when referring to employees as "ability to take orders and act predictably even if not particularly creative" which basically makes it an "antiquality" for a small fast startup.
I'm 28, which means I'm young enough that even people like you believe I can learn new tricks. As far as I can tell, my brain is still fully functional. That said, most of what I use every day, I learned over ten years ago. Computer science never gets old. The notion of indirection is never obsolete. The mental machinery required to navigate up and down in an abstraction hierarchy is universal. Sure, I learn new APIs every day, read about new programming paradigms (hey, functional reactive programming is cool), and so on, but I learned all the basics way back when.
Would you say that all my older experience is worthless? If your hypothesis were correct, I should be able to say that what I'm learning now is more important than what I learned in 1998, and that's just not true.
Most of the assumptions you've made don't apply to me, a 40 year old father of two. It may very well apply to some people similar to me. This is the problem with stereotypes and the problem with people perpetuating them. Oversimplifications are a shoddy mental crutch to deal with the complexities of reality.
The older you get, the more experienced you become, the better decisions you make, the more valuable you become.
At 22, I was a great tactician. I could code faster than anyone else.
At 32, I'm a moderate strategist. I code slow than when I was at 22; but my productivity is far higher.
At 52, I hope to be a great strategist. The potential is frightening.
3 hours of sitting thinking about a problem, then 30 minutes of coding. I would never have done that at 20, I'd have opened an editor and started typing because I was still learning the intricacies of the platform.
In my late teens/early twenties, I just implemented the first thing that I could think of.
Back then it was much easier.
Actually, I have noticed that other developers around my age still think like I did when I was in my twenties. Maybe it's because I've been coding since I was 10 (22 years!) and full time since I was 17, and most came in after university?
Then there is the argument about blindly learning to code from BAD code on the internet, whereas we had to learn from books! :)
I hope the explanation for your post is that you're 17. This blatant generalization is idiotic and useless. Reading that reply is a denial of service attack on productive thought.
This is brilliant!!
What? New workers enter the workforce.
To a first approximation, all this new "web technology" is just a way of doing what you could've done on an internet-connected NeXT machine 20 years ago, only more brain-damaged and frustrating to work with.
The only place technology has advanced in that time period is in domain-specific areas (which of course requires experts, not young whippersnappers), and infrastructure (the world looks a lot different for computers with pervasive 4G--the software is just an adaptation of proven concepts to uses enabled by innovative hardware).
Programming is applied mathematics, and that hasn't changed substantially since people were developing software on punch cards.
That wouldn't have been possible without the web. The web technologies you decry are more irritating in many ways than any one specific proprietary system from 20 years ago, but that ignores some of the huge benefits of openness and standards and platform independence.
I can write a program and have it run without modification on my phone, on an embedded computer running sensors, on a tablet, on my laptop, my desktop computer, my hifi, my network hard drive, a huge server being rented to me on the other side of the world. I can even make it easily distributable so it can run safely on other peoples computers who don't fully trust me. It's unimaginable that any proprietary system from 20 years ago would have been able to produce that state of affairs.
Speed of interpreted Javascript has improved by two orders of magnitude on the same hardware in the last ten years, and you don't see technological advance? I can't think of another field that has advanced so quickly.
I don't want to diss other fields, but an awful lot of the most valuable improvements in infrastructure in the last ten years have been about standardization and bringing technology that existed years ago to the masses.
On top of that, the inconvenience of the Web platform is real but also overhyped. Imagine you're writing a network app in another platform. It's extremely unlikely you have access to an integrated network analyzer as good as chromes. How many other systems allow you to completely modify the look of your application while it's running just to see how it looks by playing with the developer tools? Having a repl that allows you to interact with the running system has been standard on the Web platform for ever.
I'm not even sure what you're looking for. What would constitute new technology if 100x speed ups don't? Almost all of software is implied in the concept of the Turing machine so complaining that you can't achieve anything you couldn't have in the past with large, expensive, proprietary systems and specialized knowledge seems unfair. It's been true since Babbage at least.
That's what Java was about. According to http://en.wikipedia.org/wiki/Java_(programming_language) it appeared 1995 - 18 years ago.
Java failed badly at its dream and ended up adopting an entirely different niche to what was expected.
But you're right, I shouldn't have said 'unimaginable'. I suppose it's just about possible that if java had 'won', we might have ended up with something not massively dissimilar to what I described.
Given that list, what would you consider obsolete now? It's been 2 decades, not 1, mind you. Asm? Well, the last time I touched this sword for a reason was 2005 and it was SSE assembler, something that compilers were not able to generate efficiently then (and to the large extent still not able).
char *strlwrmmx(char *buffer,int len=-1)
{
if (len==-1) len=strlen(buffer);
unsigned __int64 a=0x4040404040404040; // 0x40='A'-1
unsigned __int64 z=0x5B5B5B5B5B5B5B5B; // 0x5B='Z'+1
unsigned __int64 c=0x2020202020202020; // conversion offset for lowercase->uppercase
asm {
mov edi,buffer
mov ecx,len
convblock:
cmp ecx,8
jl rest
movq mm4,c // Eight copies of conversion value
movq mm2,a // Put eight "A" characters in mm2
movq mm3,z // Put eight "Z" characters in mm3
movq mm0,[edi] // Get next eight characters of our string
movq mm1,mm0 // We need two copies
pcmpgtb mm1,mm2 // Generate 1's in MM1 everywhere chars >= 'A'
pcmpgtb mm3,mm0 // Generate 1's in MM3 everywhere chars <= 'Z'
pand mm1,mm3 // Generate 1's in MM1 when 'A'<=chars<='Z'
pand mm1,mm4 // Generates $20 in each spot we have a l.c. char
paddb mm0,mm1 // Convert uppercase chars to lowercase by adding $20
movq [edi],mm0 // Store back in buffer
sub ecx,8
add edi,8
jmp convblock
rest: // convert any left characters one by one
cmp ecx,0
je done
convchar:
mov al,[edi]
cmp al,'A'
jb skip
cmp al,'Z'
ja skip
add al,0x20
mov [edi],al
skip:
inc edi
loop convchar
done:
}
return buffer;
}The indexer had to chew huge amounts of text, so the quicker the lowercasing, the better.
Where do you think bad, old developers come from? Well, they started off as untalented young developers. Right now now there are young developers who are awesome and others who suck and will one day become crappy, old developers.
I could go on about stories where youth and inexperience led to disasters. They would be just as one-sided as talking about old developers who are out of touch. Who do you think it is that's creating all if the tools that you use?
It's about the work.
Somehow, despite having kids, I manage to learn new technologies, even insofar as I was able to write a book about it (Dart in Action). The only reason I had time to do that is because I try to keep my day job between 9-5.
2. People with children have a better understanding of what responsibility is.
3. People with children usually spend less time on dating and going to bars :)
4. We tend to be more time efficient
Were you parents rubbish slackers because they made the mistake of having you? Or did they work so hard they forgot to bring you up well?
Having kids can put a lot more structure into a life that was missing it before. 20-somethings without kids are usually the ones late in in the morning, missing standups, or the ones working while hung over.
I'm sure that it is possible to get someone who is so dedicated to their work that they have no life at any age. Whether or not this is a good idea for your company is a different question.
I know of very few other jobs were you are supposed to spend so much of your spare time reading up on new stuff as the IT-business. A few of my friends are physicians and they to spend their spare time reading up on new stuff. Others, not so much.
I don't think this is a sustainable way of doing business in the long run.
Your whole post drips with resentment-fueled bigotry and ignorance, making me wonder if you're fighting for attention at your workplace or whatever, feeling unloved. Here's an internet hug. Hugz.
Many years back I -- a new graduate employee -- was chatting with my boss, who was a part owner of the company/president. He had five kids, or maybe even six. He asked me when I was thinking of having children (it was still too early for me, but just as a conversational thing), and my honest answer was that I didn't know how he could afford it.
He then told me about an Arabic parable or the like that each child comes with a bag of money.
That seemed counter intuitive to me, but my life has proven it out. I now have four children, and I would wager good money that I know more current technologies, in much more depth, than you do.
If you have the capacity, having children has a profound ability to make you focus: While I am the same intellectual being, like the vast majority of developers I was absolutely pissing time away before children, and I doubt I passed even 5% productivity. Slashdot was the Reddit of the time, and doing asinine, meaningless implementations for days on ends was just a normal day. And I know this is the case for most developers.
Now I don't have time for the bullshit. I focus specifically on the things that yield success, in the most efficient manner possible. I'm still only maybe 15% productive (still piss away a lot of time), but the result is my own company, a lot of success, etc.
Its hard to remember life before kids, but one thing I know for sure: I wasted a huge amount of time.
I work far more effectively at 39 than I did in my 20's. And my ability to focus took a massive boost after becoming a father.
I still waste time, but I've never been more productive. I work full-time, have my own company in my spare time, and my child at every moment he's awake.
I can see how an empathetic person having children would increase their focus to succeed, but what is the limit on the number of kids? How would one know when to stop having kids? Why did you stop at four kids? Are you going to have more?
We didn't expect our third child, or the fourth for that matter. That's life though, and I'm a very roll with it sort of person and am extremely pleased with how things have turned out.
Of course I am speaking from a very privileged position of happening to have the right sort of mind at the right moment in history in the right situation where I can talk about pissing most of my time away and still achieving what many would consider a lot of success. This obviously doesn't apply to all careers or all people.
I am not young. I've been attending funerals recently, and meeting family members I have not seen for 30+ years. None of us were comparing notes about our productivity.
The first was in search and distributed systems, at Google, and the blueprint for their systems was created by two mid-career engineers out of DEC.
The second was the evolution of the smartphone, at Apple, an old company that is known for keeping its engineers for a long ass time.
The most innovative computer language we have was designed in the 50s, and every time I meet an old-time hacker, there's something I can learn from them.
The real lie is that a kid out of college who starts a company is automatically considered an innovator. Rehashing an idea one more time in a slightly more marketable way or creating an app that goes viral has nothing to do with innovation.
In the pop culture age, we constantly confuse the Britney Spears' of the world with real talent, and the Summly's of the world with real innovation.
As people get older, they get more experience, which is good. They are also more likely to have a family. Is that supposed to be bad?