CIOs Say New Talent and Old Tech Don't Mix
StewBeans writes: Usually when an article references "what keeps IT leaders up at night," it's a chance to talk about "shadow IT," losing control of tech spending, hackers, or some other overly-hyped concept. Adam Dennison, publisher at IDG Enterprise, opposes this interview tactic and says that "reports of pain are greatly exaggerated." IT leaders don't mind shadow IT or sharing control of the IT budget (in fact, they want others in the business to have some skin in the game), and they understand that they are probably being hacked. What they DO care about is talent. Dennison points out gaps in data, security, and app development, based on IDG's recent survey, and he says CIOs tell him that finding the right IT talent that is also able to articulate what the business needs to succeed with technology is very difficult. He says, "They worry that they can't move fast enough to adopt the technology they need because the new IT talent doesn't want to work on the old stuff, and the old talent doesn't understand the new stuff."
After all the SjW and "women in tech" stories, finally a story at least a bit related to age discrimination in IT. Unlike most slashdotters I guess, I'm still young myself, but I do think that both young and old should have the same chances to get a job.
...old talent doesn't understand the new stuff."
I have never understood that. Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff and just expect to allowed to vegetate away in their jobs for the last 15-20 years until retirement. I've been coding since around the time than many of the younger developers I work with were still a twinkle in their father's eyes and I still manage to keep up with new developments.
A new car guy dont now what dwell points etc nor does the old guy now how to hook up a computer to the cars computer.
Both called cars but different fields.
You just dont get hundred year gaps in technology 10 if you are lucky.
Need Console Operator Frame Relay or NT 3.51 I am your guy.
Unwilling to invest in existing staff, they worry about whether or not they can chase the latest fad.
No wonder their pathetic attempts at security are a failure. And I'm looking at Target as a prime example of this.
Old talent is often but not always fiercely resistant to change. Young talent is well...young. It is often entertaining to put some of both on the sane team.
i'm old. really old. i understand your new methods of mvp, lack of testing, and bloated undersupported dependencies
perfectly well
i just don't think its a very good way to develop services or software
So the people in Marketing know more about IT than those CIOs do?
Or is it that those CIOs do not understand computer security any better than the Marketing people do?
So when was the last time a CIO was fired because credit card info was leaked?
Have you tried looking in the Marketing department?
What "fast-moving"?
It's funny because, you see, it rhymes.
That is the CIO's job.
Not sure if they can understand that human beings aren't terminators with their learning chips locked. Real programmers can learn anything, and their background can sometimes help make things work.
Just finished rewriting an interface to some devices and couldn't use the COM interface the vendor recommended to us, so I pulled out the vendor's documentation and used their 'old' C interface. When I said that was the way we went they said they didn't recommnend using that API, when I asked for clarification on why to not use their documented API they stated that they didn't have anyone who could help if we ran into issues as all their support staff only knew the COM interface.
.
"the new IT talent doesn't want to work on the old stuff, and the old talent doesn't understand the new stuff."
Translation:
The new talent hasn't been taught how to do the old stuff because it's old and that was soo 2010.
The old talent doesn't understand how to do the new stuff because they're too busy running the old stuff and the CIO can't understand why a 2 day course can't get the old talent up to speed on technology X, even though the new talent spent 3 years at college learning it (as did the old talent when it was their turn).
Okay, I didn't RTFA, but this sort of comment is typical of a type of management that outsources to whatever country offers the best tax deal and cheapest workers who then gets a company funded MBA,because we need people like that.
New IT talent doesnt want to work and hasnt ever been productive a day in their life. Nobody knows how to get past 90% complete anymore. They all think the last 10%, the hardest part, is an anathema.
...old talent doesn't understand the new stuff."
I have never understood that. Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff and just expect to allowed to vegetate away in their jobs for the last 15-20 years until retirement. I've been coding since around the time than many of the younger developers I work with were still a twinkle in their father's eyes and I still manage to keep up with new developments.
People get tired and life's responsibilities get in the way, especially when they have kids. I love learning so I also manage to find the time but I do understand why people get this way.
This is nonsensical. The reason new IT, and i don't mean desktop support, seems different is the plethora of same old things rebranded into new shiny material. The general concepts are still the same. The only problem now is the advent of large scale agglomerated computing resources networked in the open internet. That really makes a screw up worse than it can be.
Please fund my mba!!
They probably just get sick of seeing the same mistakes implemented over and over again. Or tired of the ever growing bloat required to implement the same old thing you already had 10 years ago under a different name.
Okay, I'll admit right off that I'm an old dude. I'm the oldest one in my group, but the rest of the group is roughly in the 35-45 range so they're not particularly young (from the perspective of this story).
Anecdotes are dangerous, but... with my coworkers, I rarely see any evidence that they don't "understand the new stuff". What is true, though, is they sometimes don't understand the appeal of the new stuff, nor why anyone would consider using it. After all, when it comes down to it most new approaches don't really accomplish anything that the "old way" cannot... at least from the perspective of an IT professional. But I think what they sometimes miss is that new ways of doing things sometimes actually might be more user-friendly for a particular set of end users - and there is value in that.
Why bother with ruby when perl has served us so well for so long? Or, further afield, why consider Wordpress when we already have wikis - or why not just keep maintaining a website with a text editor as your only tool? Sometimes I think it helps an IT person if they can learn to set aside their technical hat for a while, and try to see it from the other person's eyes.
#DeleteChrome
These CIOs complain that new workers don't want to learn old stuff and that old workers don't want to learn new stuff, but have any of them thought of why this might be? I blame the corporations and short term thinking on the part of those who run them. Investing in a technology or platform is a serious career choice, it's not something to be decided quickly or changed frequently. To really achieve mastery requires 5 to 10 years of solid work, study and experience. It depends upon the person, their existing background and also how many others are involved or how active the community is. Most workers are not going to make that kind of commitment if they believe that you will fire them at the first sign of trouble in the economy or when the CIO needs to sell his vested stock options at +0.5% after the layoffs are done to hit the target for year end bonuses. If you want people to invest in and learn the technologies that you need to run your business then you have to take care of them. If workers are left hopping from job to job, they're going to hedge their bets and dabble in lots of new technologies, becoming a jack of all trades and master of none, and ignoring every tech that's more than 5-10 years old. Moreover, those people will probably burn out sometime before age 35 and leave the profession entirely so that they can have a family, work less punishing hours or simply move into something with more long term stability, even if it pays somewhat less. If you really need to keep the Z-frame running for the next twenty years, how about taking on a few young apprentices, assigning them to your grey bearded mainframe Jedi, and keeping them around with long-term contracts? It's possible to get people if you offer the right incentives. If you can't then you're doing something wrong.
...old talent doesn't understand the new stuff."
I have never understood that. Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff and just expect to allowed to vegetate away in their jobs for the last 15-20 years until retirement. I've been coding since around the time than many of the younger developers I work with were still a twinkle in their father's eyes and I still manage to keep up with new developments.
Maybe because the "new stuff" is only superficially new and the old fogeys have seen it before with a different name. It gets really tiring to see the wheel reinvented for the nth time, sometimes discarding a lot of good ideas learned from previous wheels.
The other reason could simply be that your time is worthless. It has no value, not to you nor anyone else. When your time is worthless then you can spend as much time as you want learning "new" things that aren't, really. My time is valuable. My rates reflect that.
I'm a minority race. Save your vitriol for white people.
There are both pros' and con's for both sides.
You missed the part where the older guys are tired of the latest buzzword of the week, some "SilverBullet" Library, and ad-hoc design.
There is no need to fix what isn't broken.
Some of the new guys love change just for the sake of change.
The weakness of the older guys is inflexibility, where it is a strength of the younger guys.
The strength of the older guys is stability; the younger guys lack experience and wisdom -- there weakness is instability.
>> The old talent doesn't understand how to do the new stuff because they're too busy running the old stuff and the CIO can't understand why a 2 day course can't get the old talent up to speed on technology X, even though the new talent spent 3 years at college learning it (as did the old talent when it was their turn).
That's part of it.
The other is that organisations often don't want to invest in training people, either by sending them on courses or giving them a dedicated number of hours a week to learn the programming language du jour.
But part of it is mindset also.
You have to stop thinking "I know how to solve X using Y" and start thinking of "How do I solve X using Z."
This year I've dropped using shell/perl for python scripting solutions on Unix and Powershell on Windows. The end result is that I've become familiar with two new languages that I've not had to use before (and still don't have to but want to.) Maybe it takes me longer to solve X (as I need to learn Z also) but in the long run, the investment works for all concerned. (I get to add two new languages to my resume too!)
I'm not sure how to solve this generically - how do you get the "Old Talent" to stop building solutions with what they know and to build solutions with new technology? Yes, it will take longer but if you tell management "This will taken 6 months" up front (when you factor in new language/tools) then they'll more than likely accept it.
Learning new tools isn't what you spend 3 years at college and 10 years after college learning. It's all about problem solving.
Learning new tools and languages isn't really that massive of a task once you know how to think.
But putting aside the tools and languages you know for ones that you don't know (yet) ... that is harder.
"I have never understood that."
People get old and exhausted, news at 11. Not everyone ages /w lots of energy.
...old talent doesn't understand the new stuff."
I have never understood that. Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff and just expect to allowed to vegetate away in their jobs for the last 15-20 years until retirement. I've been coding since around the time than many of the younger developers I work with were still a twinkle in their father's eyes and I still manage to keep up with new developments.
People get tired and life's responsibilities get in the way, especially when they have kids. I love learning so I also manage to find the time but I do understand why people get this way.
Most people look for reasons why they can't do something and stop once they settle at a plausible explanation. Others, presented with the same options, find a way to make it work. That's the difference. You can witness this everywhere in life. IT isn't unique in this regard at all.
...latest buzzword for "problems". Get off my lawn or I'll give you pain points!
Are they like Power Points?
Table-ized A.I.
This is what tires me the most. I've been through revisions of systems, and usually despite the marketing hype that sells the new systems they end up being used much like the old systems that replaced them. I won't deny that sometimes IT people drag their feet about upgrading when it really truly is time to upgrade, but there are far more times when someone that doesn't directly understand the technology makes a decision to make the change when it is change simply for its own sake. I guess I'm a borderline-cynic, but I want to see a demonstration of improvement before it's widely implemented.
Do not look into laser with remaining eye.
The difference is experience and with experience comes the ability to recognize snake oil when you see it.
Not all change is bad, most of it is a waste of time and effort though. Poor project management in IT is one thing that hasn't changed over the years.
Why bother with ruby when perl has served us so well for so long? Or, further afield, why consider Wordpress when we already have wikis - or why not just keep maintaining a website with a text editor as your only tool? Sometimes I think it helps an IT person if they can learn to set aside their technical hat for a while, and try to see it from the other person's eyes.
As someone that first had a web page in 1994 through a BBS that decided to connect itself to the Internet and give us all SLIP accounts, I see the biggest advantage in advanced tools for website management is being able to commit changes on a large scale and to meet all dependencies without having to commit the same rote data entry dozens, hundreds, or thousands of times. I look at it as the same reason why I switched from Slackware to a package-based distribution and ultimately had settled on Debian, if I have to take care of one box it's one thing, but if I have to take care of dozens or hundreds of boxes it's a lot easier if they can analyze their installed packages for dependency and take care of updating everything without requiring a lot of input from root to do so.
On the other hand, the tool has to do a good job of what it's advertised to do. Before I ended up on Debian I had tried SuSE. SuSE was RPM-based but was not usually compatible with Redhat-sourced packages. It didn't fix dependencies properly on its own very well either. Now, for website development, for a long time the non-text-editor web page authoring tools churned out complete and utter garbage. They could rewrite whole sites to change styling or add things, but the code was GARBAGE and at the time when users still were heavily dependent on dialup it was not a good solution, and even into the broadband age a lot of web authoring tools were still turning out unacceptable crap. It may have gotten better lately, but the disconnect between website writers and systems administrators will be hard to overcome.
Then there's the issue of software that matured to the point that there's no reason to upgrade but we're expected to anyway. For products like Microsoft Office, most users could get away with Office 4.3 and not miss any features. A few others might want to go as far as Office 97 when grammar checking was added to Word, but other than a few users that actually need the increased table sizes in Excel there's no reason to keep upgrading Office. In fact, with the crap UI that's been added there's every reason to not upgrade. For Microsoft OSes, I was fine with XP. I didn't care for some of the UI changes that were done following Windows 2000, but it seemed quite stable. Windows 7 also has seemed quite stable. Eight made my work harder (no start menu?! WTF?!), and Ten seems to take Eight's problems and pile others on top.
Do not look into laser with remaining eye.
Well stop it, you're making everyone else look bad.
Old Talent: Any legal resident or citizen who makes more then $15/hour, has relevant work experience, a proven track record and knows what they are doing; i.e. someone management wants to lay off as soon as possible.
The old talent doesn't want to do the new stuff: Management would kill their families and pets with a straight razor while they sleep, butcher their bodies, cook the meat into tacos, then serve the tacos to the Sunday school kindergarten class before they would be willing to train anyone for anything ever.
Why is Snark Required?
I got into technology to learn new stuff as much as possible, why is someone telling me I don't like to learn new stuff when I am learning new stuff.
Does anyone else get the feeling that this whole thing is a way to create a young vs old mindset in technologists so that they can work the young guys like slaves and coerce the older guys into taking smaller salaries? This 'vs' mindset produces the double whammy of reducing the career earnings of every technology person no matter what they do, no matter what their age is.
Anyone, young or old, in IT who has a 'commercial' mind set when evaluating whether a technology is worth learning and how long it will take, will have a rough idea if they can yield a return on the effort spent learning it, or if they just like that technology and want to for fun. Brainfuck is an interesting piece of technology however I doubt there is much return in learning it. Young and old have one thing in common, we all want to make money doing something we like and are good at.
The great thing about IT is if I teach a younger guy how to negotiate a higher salary, it pushes my salary up too. I actually want you to be a better negotiator and I want to teach and learn from you because I know increasing the popularity of a certain tech pushes all our salaries up as more companies adopt it. Knowledge isn't scarce however the talent to utilize it is. Talent *is* the scarcity in the technology economy that makes your age irrelevant.
Knowing how callous the management in IT organizations can be, I've got a feeling there was a conversation somewhere that went along the lines of 'how do we drive down the costs of acquiring the talent we need',,,, 'I know let's pit old and young against each other'.
What better way to yield a return on a technology person's career after working them like a slave for the duration of it. The only winners in this younger vs older thing are the companies that either have to pay the same for more hours out of a young person or pay less for the experience of the older people. I've got a sense that this will backfire big time as young people deciding on an IT career go 'Fuck that, its not worth the effort' and older people decide it's not worth dealing with assholes anymore resulting in lethargy and a stagnation of ideas.
Every time I see these stories I get an increased sense that this entire younger vs older thing is about making technology peoples *talent*, no matter what their age, irrelevant so that the ensuing divide drives down salary expenses for all technology people.
We need to stay focused on driving IT in the direction where all our salaries go up.
My ism, it's full of beliefs.
I'm also like you. I keep up with developments and make sure I'm always on top of my game. But arguably that needs to be done outside of work. As you're getting older and have family and other responsibilities, you don't want to go back home and work more on learning the new stuff. You just want to chill out and do other things. That being said, if you don't, given the pace things are moving in technology, you're soon going to be obsolete. And this goes back to the age-old question of what to do with the segment of the population whose skills are out-of-date or who whose jobs can be replaced by technology. This is going to be one of humanity's biggest challenges.
Until a better idea comes a long, like it or not, the only solution I see right now is a form of socialism. i.e. those with skills and talent have to pay a part of their salary to keep the others afloat. Because I'm not sure I would like to live in a society that uses people for a few years in their prime and then discards them like rotten fruit.
Why bother with ruby when perl has served us so well for so long?
Ruby is already a dead language and perl has always been a terrible language and should be murdered. I say this as a person who actually liked perl back when it was the first and only scripting language I knew.
What is true, though, is they sometimes don't understand the appeal of the new stuff, nor why anyone would consider using it. After all, when it comes down to it most new approaches don't really accomplish anything that the "old way" cannot... at least from the perspective of an IT professional.
I am a software developer. I do a lot of cutting edge stuff in my spare time (cloud, nosql, etc), and a lot of low level c++ 2003 at work. There are a lot of people at my work who work in C and don't even see the point of migrating to C++ as they can do everything they need to do in C, without all this bullshit object oriented crap. They would claim to understand C++, but not the appeal, as it seems to them to be far easier to do everything in C. The fact that they don't see the appeal is evidenced that they don't understand that c++ actually makes doing things correctly (i.e. maintainable, scalable, modular, etc) easier, maybe because they don't even see the appeal of those features.
And this is the resistance to getting people to go from a 4 decade old technology to a 3 decade old technology
I'm *51*, and I've been around since before C++ existed.
I wouldn't trade angularjs for jquery ever.
Nor jquery via nuget vs. npm.
Nor Typescript for pure javascript.
Nor DbContext for SqlConnection.
I can go on for pages. As a consultant I drop into numerous client sites, some of which are very current, and some of which are staffed by dinosaurs headed to extinction. Source code as a living document must evolve or die the horrible death of design dead. Of course there are fads, but ripping out spaghetti and replacing it with expressive sources of 1/10 the complexity and 110% of the functionality is pure joy.
Actually, having been raised up with and used OO languages/concepts since childhood, I do take objection to that. OO is over-hyped, over-utilized and often the wrong structure to go about simple processes and problems. I've found that forgoing OO and focusing on the process (not necessarily procedural or purely functional with mutators), you can find better structures that more closely align with the output that truly adds value. In essence, OO is a fantasy, that falsely try to mimick the world or reality, but which is neither a good model nor the world itself. OO lacks power and forces free minds into structural prisons that limits and complicates everything. I believe we can do much better, especially when you see the mess that is Java and J2EE.
The industry pendulum is also swinging the other way here, with companies starting to seriously considering microservice architectures, functional paradigms, graph databases and other tools - that often do require deeper understanding, but also have more expressive power and flexibility out of the box. With continuous delivery, why not hardcode most values in the package? So many ways to reduce complexity, risks and costs, which often have more value than huge libraries where you end up only using 20% of them.
Many better ways to skin the cat.
It has the same old problems plus a few of the old problems that the old tech doesn't. And hey, that's cool. It's fun to solve old problems in new ways but is that really our mission? Is solving old problems new ways more important than getting the grant software updated to the new gov API?
For me it's not so much as not understanding as not caring. If you paid me a lot of money, I could write a pinterest clone (to first order approximation). I have no interest of taking artsy pictures of my dinner and sharing it with people who also don't care (I cook very well btw). I have friends IRL an no desire to gain a following of people I don't know. Seems vain to me.
I've been in tech for 40 years and have re-engineered the same crap for over half that period. Nothing fundamentally new. New exciting: design digital camera to replace film camera. Not so new and exciting: increase digital camera from 10MP to 10.1MP. Most engineering work is mundane especially when you've been through a dozen development and upgrade cycles.
What would you recommend instead? I've been using bash and I'm sort of hitting the limits. Integer only arithmetic, no way to get a function to return a value - those can be worked round, albeit painfully. Not having anything like structs is making me pull my hair out.
For Microsoft OSes, I was fine with XP. I didn't care for some of the UI changes that were done following Windows 2000, but it seemed quite stable.
You might be fine with win xp on at home (although you shouldn't) but it should have no place in proffessional environment. Windows 7 fixed some gaping security issues with XP. Here are some examples:
- in XP If something is started by a user with administrator rights, it automatically runs in administrator context, Win 7 has a much better structured User Access Control (though still not as good as even 80's era Unix)
- in XP the memory space for programs is alloted in sequential address spaces, which greatly helps when cracking a program, in Win 7 memory is alloted in random spaces
- win 7 fixes the Structured Exception Handler exploit of XP
- win 7 has integrated hdd encryption - win 7 includes moder crypto tools (though even those should be replaced with stronger ones soon)
Running your stuff on Win XP is just not feasible - not because of the superficial UI differences, but the deeply engrained unsecure mechanisms it employs.
I don't think of it as much a young vs old per say. But Baby Boomer logic vs. Gen XY logic.
The Baby Boomers have 80's culture stuck in their head. So their focus is on maintaining whatever power they have, so if that means they are the only one who know that old system and its years of undocumented workarounds, they will keep it, and make it theirs. It isn't that the new guys are unwilling to learn from them, many do, and find this older tech fassinating. But the old guys keep the secrets to themselves in fear if they let the whipper snappers know. Then their job will be useless. Until management realizes the risk of such an application controlled by one person is too high, that they will upgrade off of it, and if that Baby Boomer guys is too resistant and unable to learn the new one, his job is gone.
Gen XY culture knows some stuff too. They come in with knowledge of the new stuff and how to implement them. They can see why XML (Bah I am showing my age here) err. JSON is much better method of sharing data then flat text files, for a lot of cases, and how it can lead to less errors in the code, and allow for programs to expand. As well their sensibilities are different. Storage is cheap, CPUs are fast, they know the real bottleneck is the person. So they may implement "wasteful" code, as it can mean easier management. Vs the older method of highly optimized code where in the days Storage was expensive and CPU were slow, and the human cost was low.
Now they are a lot of older developers who keep on top of this stuff and are not afraid of change. They just need to learn to dump their old bagages and legacy systems and get onto the new ones, embrace the new kids on the job, learn from them, and you can also pass down experience too. They are a lot of unwritten rules, such as the appropriate amount of information to share with the client or other departments. How to anticipate specifications issues, and plan your code with hooks to make the code work as expected and not as stated. Avoiding the pitfalls of a program that will get you a good grade in computer science, that will get in the way of you making a good program. When to OO and when not too, heck there are times you realize those XML and JSON files are way too much overhead, and we should just give them a flat file. Knowledge on when to optimize, How to collaborate with other developers, were in college that would be called cheating. Explain the business decisions on why things are where they are at, even if you don't fully agree.
Older and younger developers are actually quite compatible. Just as long they are not in the mind set that they are competing for the same job.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
I'm one ofthe old dogs. I have to admit that App development and such is not my kind of things. But I do have experience. LOADS of it. When I see the fundamental mistakes by young "talented" programmers, it makes me cringe.
Just a few days ago, there was a kickoff meeting for a new project. This project needs multi-user support on the long run - everyone in the team admits that. And access control, with all its implications like "how to I check a password", "how do I store a password", "which kind of permission do I need to call this function". Which they never ever did before. None of them had ever heard of books like "Applied Cryprography". There is a copy here, on my shelf. Actually, it is my second book, the first was worn down due to heavy use. All they cared for was "Licence Management", but I'm not sure if they understand how this works properly. I offered them to ride piggyback on the existing licence management scheme I've implemented in my part of the system, but this was probably too unsexy, because it cannot add licences on the fly over the web, at least not "just so".
My experience tells me (and anyone who has been around for long enough) that any software that will need this kind of multiuser support needs to have this built-in from the very beginning. The very concepts of the software must be aware of the possibility that e.g. a call might fail for lack of permissions. Communication protocols must be designed in a way that they guarantee to a sufficient degree that one side has proper identification presented to the other side to be permitted to do this, and don't that. This is nothing that can be added lateron without SERIOUS headaches, problems, and, worst of all, risks. Windows9x was the living prrof of such a mistake.
Reply from the "young talent": Implementing multi-user is too time consuming at the moment, we will add it later. *FACEDESK*
When you say:
"new IT talent doesn't want to work on the old stuff, and the old talent doesn't understand the new stuff."
Then your 'talent' isn't truly 'talented'.
Religion is what happens when nature strikes and groupthink goes wrong.
I'm 38 and is looked at as an old fart from other developers my age.
The reason is that I started very early with computers, in a time when they still didn't have color monitors.
It is hard to say, but I feel like I'm 10 years ahead of other developers that learned the trade later, even if they are the same age.
I changed work a while ago, and now I'm working with people 10 years older then me.
At the begining they tried to teach me things, but nowerdays they understand that I'm not like the others.. I just know more.
The younger develoepers know newer shiner technologies, but I and those I work with know the computer from the bottom up.
We can all hunt down a bug, even if it turnsout to be a bug in the CPU itself.
All developers will learn, that things aren't that new, it has been seen before. And those older have learned what they thought was the best tool for the job. And now they know the interfaces and APIs in thier sleep. There is very few bugs written by these guys. What the younger tries to solve with new tools, theses guys has solved by years of experience.
"And finally the marketing team did a focus group which showed that customers would much prefer an engineer installed application rather than something that could be accessed through the terribly insecure browser."
Good lord, that's the first time marketing actually made a study thet made any sense and had the expected result. I swear to god browsers have ruined user experience for 15 years. First there were great programs for everything, then they started to get replaced by browser UIs that work horribly slowly, are buggy as hell, don't even work across multiple browsers. Because of the browsers limits everything got dumbed down to the level of amoebas. After this it now seems everyone needs to have their own app, which is just a damn browser implemented inside their super cool app. Go fuck yourself with a rake if you really think xml vs json or node.js vs jave makes any damn difference from the users viewpoint. I don't care about the underlaying technology, it's all a reimplementation of a reimplementation of a reimplementation anyways, so it doesn't matter if it's 55th generation or 56th generetion tech.
The "new talent" is just too stupid and simply puts together stuff based like a trsined monkey, and does it badly, nobody bothers to understand code anymore they just wanna quick buck and precompiled modules that fit together like Duplos. The new generation is useless and lazy with zero ambition to put in the effort. This is the same retarded generation that prefers a self driving cars and auromarion over learning a skill, the extent of theor skills is spees sexting
Bingo. Or the NIH (not invented here) syndrome, create a (library, framework, or editor) and then push it out under some god awful name.
Perfect example, how many fucking JSON Python libraries are needed ?
Another example, release same product under a different name because the SUPPORT is different. JBoss/Wildfly you fuckers
Translation: "old talent costs more and this is a believable reason to fire them in favor of people we can pay less". Being a programmer *is* always learning new stuff. Sure there are exceptions (the java/c#/c++/etc guy who refuses to learn another language), but they are exceptions. So a generalized quote like this sets off my bullshit detector.
No start menu because it's not needed. Search is faster than poking through the start menu in most cases. That's my understanding of why it was removed, MS engineers haven't used it themselves since Vista.
No gullible idiots. But +1 to above anyway.
KPMG and Gartner told them there will be no high cost IT permanents, and in ten years it will all be contractors and much much less money.
Based on this 'fact' older permies are placed into a holding pattern and encouraged to go so a contractor can come in.
I just overheard a senior architect say 'They have sacked or got rid of anyone who knows the existing system, the other department won't co-operate or even has the specs, and they want it on a firm delivery date' in a wannabe new age Agile shop.
So Yes, for not investing in existing staff
Yes, for hacking numbers - cause you don't need so may people nowadays
Yes for chasing fads
And Yes for believing cost quality time triangle no longer exists.
If the Tea lady was dropping happy pills into the exec's coffee this would be explainable - but they are all using Nescafe pods.
Challenge? I see no challenge: those people have outlived their usefulness and cannot be reintegrated in any capacity. They will fall on welfare, which will put a strain on society, and their families will add to the burden. We must simply dispose of them.
but search in win 7 is utter crap. where is my "advanced search" ?
I don't see how IT is any different from other proffessions - technology brings change everywhere. Doctors have to keep up with the latest medicine tech and procedures, lawyers have to keep up with changes both in case laws and black letter laws - same goes for people like accountants or anybody in a regulated industry. Even assembly line workers have to keep learning new stuff - the ones that wouldn't need to have already been replaced by robots.
"I have never understood . Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff"
(BTW, I tried to blockquote that, but ran afoul of some weird and inconsistent 50 character limit that seems to be applied only in even numbered minutes.)
Perhaps that's because after a decade or two, folks recognize that much, not all, new stuff is garbage that will die a horrible death in two to five years. I'd suggest that perhaps many of them actually will buy into things they think will last but aren't about to waste time on stuff they think is both stupid and probably transient.
You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
Old Tech likes New Talents if they are in modelling
My father started with COBOL on the mainframe. He taught himself Delphi (on Windows, not the newer cross-platform stuff) and then Java. It took him a while to convince anyone he actually knows it, but he's been doing it for several years now, and he enjoys it.
Because learning new tech is useless for the medium/long term, especially in the web world. How many web frameworks has there been that were huge, and then faded away? People invested a lot of time learning those, all for naught. When you get older you realize things like RoR are a waste of time. And you don't bother learning languages like Rust, or Go, because they won't be around in 5 years. But C++ will. So will Java.
You got by 30+ years doing the job you liked, but they also failed to think ahead and hoped to ride out the lifespan of the technology with the lifespan of their careers.
The "old" system offered people retirement and pension after 20 years, meaning many people could "retire" around age 40 with a modest pension. Not quite enough to live on, but definitely enough to support a dramatic change of career. And you could retire from your second career around age 60.
Turns out, a lot of people get bored, frustrated, or otherwise useless at their job in their 40s. Call it the mid-life crisis, if you like. Failure to adapt, if you like. It can be pretty useful to both the employee and the employer to have people change careers at that point, but it's pretty intimidating to do that if all you've got is a 401k that you're not allowed to touch until you're 59
True, and I would add in that the typical CIO doesn't know 1/3 of what he/she thinks they know.
What is true, though, is they sometimes don't understand the appeal of the new stuff, nor why anyone would consider using it.
This. Growth in the technology industry is heavily dependent on selling the same thing to the same people frequently. The "old dudes" start to see new versions quite often for what they are -- meaningless churn, designed to get support contracts renewed, all the required new licensing models enforced, and the vendors' quarterly results up.
Thus, the new versions are laden with all the new buzzwords, lots of bugs, some breakage from previous versions and all you end up with is the pain of implementing teh shiny to basically do what you did before.
That's utterly full of generalizations and bullshit, which is typical. This whole debate is framed as 'young people don't want to' and 'old people can't', as if the young people could do anything if they just wanted to. Newsflash: They can't. I have an older person right now cleaning up an unbelievable mess that two younger people made because they didn't know what they were doing, and the people managing them didn't catch it because they assumed young people are always talented and get everything.
Know what else young people are terrible at? Recognizing when anything that already exists has value. That's why they waste energy, money, resources, etc. constantly reinventing the wheel and shouting to the world how great they are at it, while expecting to be a founder of a wildly successful startup because they have a decades old process a crappy UI that runs on a smartphone. The narcissism is unbelievable. That mega mainframe you speak derisively of had transactional and security capabilities that these cloud idiots are still trying to re-invent, and using them didn't require stitching together code in 4 languages with 100 libraries that all suck and which some alleged genius will reinvent next week anyway. Hell, even stuff 'in the cloud' is, in the vast majority of actual use cases, just a re-invention of timesharing systems, and there's a reason we got away from those too. (No, I am not nor have I been a mainframe developer. Worked with enough of them though...I use the tech I was just insulting so it comes honestly)
Do people get to where they haven't kept up with some things? Yep. Mostly that happens because you have a portfolio of things to keep running because that's your job. The notion of doing things you're good at may seem alien to people who allow themselves to be abused by 80 hour work weeks, but (having missed it myself) I think things worked better for actual human beings when it was that way.
When you're 20 and have nothing it's easier to experiment. That's normal. The other thing people with experience are saddled with is that business people suck at planning, and pretty much everything else. They never say 'we want to go in this direction so you guys should learn this'. Instead, they let existing systems be and then scramble to replace them with no warning. In that case, it doesn't even matter if you keep up with (alleged) advances in tech, you'd have to have randomly guessed which piece of tech the business people are going to throw at you this time because it's not like they ever ask anybody what will fit in with what they already use.
Of course, business people also don't like older tech people because they have a nasty habit of pointing out stupid ideas. There's a fine line between digging in and making something work and knowing when you shouldn't do that.
Have I met young talent with a clue? Of course I have. Older people who you just can't get to try anything? Yep. This stereotyping has to stop. We in tech need to stop fighting with each other over it.
The real problem is business owners and managers who have no idea how to evaluate talent and fall back on generalizations to cover up their own inadequacy.
Any time someone says' "old talent doesn't understand the new stuff", they're gearing up to lay a bunch of the old talent off.
I don't think of it as much a young vs old per say. But Baby Boomer logic vs. Gen XY logic.
That's because you're too young. The older guys remember when they were the 'agile' crowd. When Woz and Packard, working literally in their garages, outmaneuvered IBM by working in small groups of passionate people with rapid communication. What kids today call "startup culture" or "waterfall" or whatever the current buzzword is.
The naivety is adorable. The impatience, that you'd rather have the language and the data structures magically do stuff for you than take the time to understand the data organization yourself or manage interactions with the database, is the same impatience that stimulated the earlier generation to build their own computers rather than wait for time on the mainframe. Or to re-implement *nix rather than wait for existing implementations. For the older guys, who've been micromanaging code for so long it's second nature, it'll take longer to learn the latest framework (that will probably only be 'fashionable' for 3-5 years) and to build enough trust in its unseen developers and development process than it will just to implement.
When you don't know anything, using a new tool with a comfort grip and laser range finder is easier than using the old tool. If you've already internalized some skills, then the laser range finder and neon colors are a distraction.
Yes, it will take longer but if you tell management "This will taken 6 months" up front (when you factor in new language/tools) then they'll more than likely accept it.
Nope. Not ever will management accept that answer. What they will do is say one of: "sales promised the customer you would deliver it in 2 months", "the customer won't buy from us if we can't deliver in less than 3 months" or just "that's unacceptable".
The old talent knows this and won't propose using new technology unless the new technology is so much better that the time to learn and use it is less than the time to use the already-known technology.
The new talent will favor using the new technology because every project is an opportunity to have someone else pay to boost their resume.
Part of it is us oldsters take the 'long view' - we've seen flash-in-the-pan technologies come and go, and see bleeding edge for the sake of coolness as a dalliance, not a proper business decision.
For example, most of us see javascript as a kludge to begin with, and javascript on the server as a massive failure, not a solution.
I've seen the client/server pendulum swing a few times - mainframe-centric TTYs, fat clients, thin clients/web-based apps, apps back out on devices, etc. Few of the 'new' paradigms are actually new - many are rehashed ideas from the heyday of computing when it was actually a science.
Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
Python
Search is great....if you remember what that piece of software you installed six months ago for a specific job, and haven't needed since, is called. Of course if all you remember is that it is called something like "blue meany" when it turns out to be named "green unhappy" than having a start menu you can scroll through really helps. And yes, the Apps list allows me to track it down, but it lists so many things I never access except from inside something else that finding anything on it is ridiculously time consuming
The truth is that all men having power ought to be mistrusted. James Madison
But the most important pair of skills that these encrusted barnacles have mastered are politics and playing the org-chart seniority game.
Did you just complain that old people plan ahead and think about what a change means?
And by old farts, I don't mean old in years. I have seen people in their 20s
In fact you didn't even complain about old people, you just complained about people.
Andy, is that you? How is your new job?
divorce is always an option....
putting the 'B' in LGBTQ+
or you find out a few years after retirement the CEOs loot your retirement money to give themselves bonuses.
putting the 'B' in LGBTQ+
old pros drag their feet sometimes because they have been burned by half-baked crap too many times. I like to follow the "every other trlradr" or every other incarnation" rule. That's when you beat out many of the bugs and get something of value.
putting the 'B' in LGBTQ+
Yeah we dumped JBOSS/Wildfly for that reason as well as license changes. We are using Jetty and exploring Docker.
putting the 'B' in LGBTQ+
... microservice architectures ...
So RPC's from the 1980's with an HTTP interface?
Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
New stuff isn't made by "new talent".
Who understands the new stuff best? The one who made it.
Who made it? The old guys.
I find, personally, the guys who learned Fortran in punch card can make screamingly, stunning, great and efficient software. They think in ways the new guys can't get.
New kids are the reason microsoft has to get bigger and bigger discs to get an OS that, for 99% of customers did the same thing as the OS of 20 years ago. If you look close, the 20 year old tech did everything latest and greatest on what is called a microcontroller today. Smartphone - really much more powerful than a 20 year old personal computer. Building apps for it is just learning the lingo of another language. Those steeped in good "C" tend to be quick and efficient at a multitude of languages.
I think the guy in charge of the article just wants to rape the salaries of the young, and this has nothing to do with talent or ability. Just "eating the young" - the modern pathology of Silicon Valley.
"I recently spoke with the CIO of an Ivy League institution who told me they have a firing problem, not a hiring problem. I've spoken with large organizations that have huge staffs, and they worry that they can’t move fast enough to adopt the technology they need because the new IT talent doesn’t want to work on the old stuff, and the old talent doesn’t understand the new stuff."
Well fuck that Ivy League CIO - train your 'old' people in the 'new' tech and you won't have to fire them.
Asshole.
blindly antisocialist = antisocial
Why bother with ruby when perl has served us so well for so long?
Perfect example. When I started my career, Perl was my go-to scripting language for lots of task automation. I don't care what anyone says, even well written Perl is quite difficult to maintain. As a C programmer, I use scripting languages so that I can create a dictionary with each value being an array of sets without thinking about memory consumption or run performance too much. Even when I am heavy into Perl, I still periodically get lost in a sea of nested $,@,%,{},[]. Now, I would never consider starting something with Perl instead of Python. Most people I know my age also use Python as their favorite interpreted language.
Sure, the old way might work just as well (kinda), but there is usually some reason for the change. The disconnect seems to be that the old timers say "why would I learn a new technology if the old one is just fine?" while the baby faces say "why would I learn the old technology when this new thing is fast becoming more used?" Both of these default positions are reasonable and valid, but they are at odds. One side needs to accept some reason to overcome that default position. There isn't a clear universal answer here, so we continue this dance.
When I first started in IT 20+ years ago, there was enough down-time that you could get your workload done, and have enough time to learn whatever the new greatest thing was. Hell, they'd even pay you to go to training to get up to speed on whatever they wanted you to implement next.
These days, it seems that the norm is to try to squeeze the maximum that you can out of each person until they burn out. If they're willing to fork out any money for training, they make you sign something so that if you leave in the next couple of years, you have to pay them back for it.
As for the new tech -- I think it's both related to the hype curve (implementing something in Perl isn't as sexy as something in Ruby or whatever the current flavor of the month is), and because CIOs are the same as any manager -- they have to try to make a name for themselves, and just having the existing systems work, even if tweaked to make them seem a little bit better isn't nearly as impressive on a resume as 'provided vision for (boondoggle new project)'.
Build it, and they will come^Hplain.
"old talent doesn't understand the new stuff."
Stereotyping old people as worthless. This is why we have such huge amount of ageism in tech.
Well I think I qualify as old talent as I can work with Windows, *NIX, mainframes (IBM & Fujitsu) a spot of VAX and can program in COBOL, FORTRAN, PASCAL, VB (6 and .Net), C, C++, C#, ASP (Classic and .Net), HTML, PHP, CSS, Python, Java, shell scripting... etc. etc. etc.
It's not that I don't want to learn the new stuff. It's just that a lot of it is total crap. Overblown, overcomplex, insecure, badly designed rubbish featuring twenty layers of different frameworks just to do something simple like move a few bytes from a database on machine a over to machine b and display some text onto a screen.
And don't even get me started on the crapitude of 90% of the modern web. Imbeciles who use client side javascript for basic href functionality, and who include multitudes of scripts from 50 different machines using one bloody function from each library etc. etc.
So it's not that the likes of myself can't learn the new stuff. It's just that we don't want anything to do with it because it's utter crap.
My lawn has landmines on it. Suit yourself.
They probably just get sick of seeing the same mistakes implemented over and over again.
Or they're just sick of being asked to jump from one fad to another. A lot of times, the "new stuff" is the same old stuff with a new coat of paint and a bunch of flashy buzzwords. There was a recent story on Slashdot about the amazing new concept of "DevOps", and the only explanation I could get for what it was is, "Have developers work with operations." Wow. Big move there. You mean you don't want different departments within your business at each other's throats? You want them to work together seamlessly?
And I'm sick of programmers going on endlessly about how their brilliant new organizational and project management style will fix everything. "Agile" this and "waterfall" that. Oh, instead of having your project be one single big project, you're going to break your project into smaller projects? You've designed a new theme for your gantt chart? Slap a buzzword on it, and you have the hot new development method that's going to solve world hunger!
"Oh, you're on Friendster? That's lame, I'm on MySpace. Oh, you're on MySpace? That's lame, I'm on Facebook. Oh, you're on Facebook? That's lame, I only use Snapchat now." What are you doing with your lives. Whatever network you're on, you're just sending out pictures that nobody wants to look at.
This is why old people don't care. Young people see the hot new thing and think, "This is going to be the thing that changes the world and makes everything great!" Old people have been through that several times, and think, "This is another one of those things that's supposed to change the world and make everything great. Same as the last 50 things that were supposed to do that. And this one looks even stupider."
I'm about twice their age.
A couple of them will be great programmers, many of them won't.
The following would happen at least once per day :
Me : How are you going to solve problem X?
Them : We're going to do [foo bar baz]
Me : If you do that, and Y happens, bad thing Z will happen
Them : [pause] Oh....I didn't think of that
It is no wonder that young talent doesn't want to get involved. Nobody is making new things with the old and when they finally phase it out they will have worthless experience and no job.
Why would they want to jump onto a sinking ship?
In my experience this is a totally incorrect statement.
It isn't that "Old Talent doesn't understand the new stuff" it's that the "Old Talent" is NOT ALLOWED to learn the "new stuff" and are relegated to endlessly applying the duct-tape and bailing wire to the old shit to keep it running (and making money for the business) while the "new kids" are given all the juicy new-tech projects which they inevitably fuck up because they have NO IDEA how to apply it to the business model and make it profitable/productive.
Then, once they have been sent out to extensive training on the company dime, and gain valuable experience with the "hot new tech" that every clueless CIO in the world wants to have on HIS resume, they leave the company for "greener pastures" and the "Old Talent" has to somehow find time to learn/fix/maintain the shoddy implementation of the "new tech" (while keeping the cash-cow dinosaur-stuff running 24x7x364. Hey, we got to have SOME maintenance windows.)
"Old Talent' has shown the ability to learn new stuff (who the hell do you think INVENTED a lot of this stuff?) and apply it to the business, but they are more valuable as mid-level management or trouble-shooters while the "new kids" get to play with all the shiny new toys/technologies.
It's quite frustrating when us "old farts" can see right away what will and WILL NOT improve the bottom line for the business, but are ignored because of our (well earned) grey hair.
Anecdotal evidence suggests old executive talent fails to understand new business.
Perhaps boards and stockholders should be creating an ageism story at the executive level if they want to influence the open market of compensation. More gains to be had at that level.
I want both.
Search for the one I kinda remember the name but put in some menu.
The menu so I can re-find that thing when I can not quite remember the name of the program. As every program out there seems to want some 'cute name that is easy to remember'. Take for example something like handbreak. Unless you *knew* what it was. You would have no idea what that thing did (video editing software). You could be forgiven for thinking it was something else. Hell some programs change their names randomly. (I am looking at you XBMC => KODI).
Now with windows 10. Hooooow boy. They managed to make the default search WORSE. It always aims you at the store. I do not CARE about the store right now. I want to run this one program that I know the name of BUT YOU CANT FIND IT. WTF... Just give me my menu back I will find it myself. gah. My wife now has dozens of icons on her desktop so she can just run the programs she wants. 10s search was *not* an improvement. 7 had a pretty good blend.
I think you and I need to go have some beers and discuss the scars we have on our backs from being forced to go down the same roads.
If I hear one more person tell me about this great new frameworks that will solve all of the problems, I believe I might beat that someone to death with my stapler.If I hear one more project manager tell me about this great new development approach which will solve the delays, I will take my keyboard and beat them upside the head. What the heck ever happened to good engineering practices..*sigh*.
And now, everyone, please get off my darn lawn.
It's bullshit that has been pushed as justification for keeping a predominantly young, unattached, gullible workforce that's eagerly complicit in the destruction of its own autumn work era.
A more accurate statement would be "old talent is too busy working to learn new stuff" or "management thinks it's cheaper to hire new grads than invest in existing talent" or "management doesn't recognize self-taught skills that don't have a certification" or "old talent has been around long enough to know that currently trendy buzzword is not an appropriate solution".
Support Right To Repair Legislation.
and in ten years it will all be contractors and much much less money.
Hey now, you shouldn't make me snort my coffee from laughing too hard while at work!
As someone who contracts on the side of my 9-to-5 and some years makes more from that extra 10 hours a week than from the entire 9-to-5, I look forward to helping more clients "save" money.
What the heck ever happened to good engineering practices.
Also, to be honest... I've never seen a project management approach or a development method that could outperform a good, smart, organized group of people working hard, talking to each other, and thinking about what they're doing. And I've never seen a piece of technology that couldn't make things more difficult.
I just don't know how else to put that. It might not be clear. But every time I'm asked to develop a new methodology, I'm like, "Great. Let's do that, for as much and as long as it makes sense, and then when it stops making sense, let's not do that." Every time someone gives me a hot new technical solution, I think, "Great. Let's use this in all the situations where this gives us a more efficient, reliable solution than what we're currently doing. Otherwise let's not. Because it'll take a lot of work to implement and train people and to troubleshoot whatever goes wrong. Then, it'll take a certain amount of ongoing time to just make sure that we're all using this new technology the same way, bla bla bla... On top of that, before we implement, let's take a step back and see whether this technology is going to break things in some disastrous way."
I'm certainly not opposed to new things. I work in technology largely because I've always been the sort of person who wants shiny new tech, and wants a great new way of doing things. Still, there's a cost to jumping on bandwagons that inexperienced people often don't see.
Also in some instances, why bother. I've been in the industry for only 15 years, but even I've seen entire technologies go from buzzworthy to obsolete in a few years.
Also it is likely that the "old guys" are kept busy trying to maintain existing systems, and CIO's don't want to invent money or resources necessary to keep training up on emerging technology, and would rather just get new hires as they are already trained... Yet they don't know how to maintain those old systems... Oh noes! the quandary!
To me the solution seems pretty evident and not really all that complicated. The hint is it really has nothing to do with the physical age of your workforce.
sometimes "doesn't understand the new stuff" means they don't want to implement the latest buzz words the CIO read about in the latest gardner report. Because it doesn't make sense, is more costly, and has no clear benefit for the organization.
The real issue here is that business has shifted its focus to low cost above anything else. Where it was once possible to have a lifelong career based on depth of knowledge on a particular system or vertical business - where technology was used to implement that knowledge, but the value was the knowledge itself, it is now virtually impossible to have such a career. Since there is going to be constant turnover, developers value experience in 'the latest thing' over experience at a particular company. And that's just self-preservation.
Of course, none of this works particularly well. Yes, companies get disposable, replaceable talent - but that talent is never particularly good at what they're asked to do - which is contribute significantly to a particular business. The end results are mediocre, and often barely supportable. You end up with layers of project management attempting to dot I's and cross T's in design specifications and testing plans - just so that the actual developers can be 'agile' in performing what is essentially gruntwork. In the 'old' model, the developers provided input into the designs - or at least were able to understand where a bad design ran into a wall. And those developers provided a pool of knowledgeable recruits for tech management. Nowadays, many software products are essentially as disposable as those interchangeable developers. They need to be rewritten every 5-10 years from scratch, because nobody can support them - and, I suppose, because it's 'necessary' to do that in order to chase the latest development fads.
Posted from my Android phone. Oh, I can change this? There, that's better...
THIS! Oh, so much this.....
Please do not read this sig. Thank you.
For Microsoft OSes, I was fine with XP. I didn't care for some of the UI changes that were done following Windows 2000, but it seemed quite stable.
You might be fine with win xp on at home (although you shouldn't) but it should have no place in proffessional environment. Windows 7 fixed some gaping security issues with XP. Here are some examples:
Note he wrote UI. The user interface. Not the underlying structure. We can make the OS as stable and secure as we like without messing with the look and feel. If Windows 8 taught us nothing else - and it has taught some nothing at all - huge changes in the user interface and system maintenance are not always appreciated nor wanted.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
No start menu because it's not needed. Search is faster than poking through the start menu in most cases. That's my understanding of why it was removed, MS engineers haven't used it themselves since Vista.
Well, Mrs Smith down the street have to model their preferences on what Microsoft engineers think, eh?
removal of features that customers use with the smug remarks that the experts don't use them so screw you outlook is a smart move?
Search? Good. Start Menu? Hey, I've used it myself, especially on someone else's computer. Why? Because it isn't my computer, and there, at my dirty liddle fingertips is a menu based report of what is on their computer.
After all, if it's there, and you don't want to use it, no one is gonna stop you.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
Wish you'd written this as a non AC. That covers a whole lot of valid territory.
A couple of points I'd like to add - young people refuse to work with "legacy" apps, rather wanting to rewrite that finely honed cluster as a bunch of web services using some scripting language. (I've actually seen this done, horribly, more than once).
I've see old people that just cannot seem to get their heads around anything that deviates from the narrow slice they've specialized in. That's sad, because they're definitely the first to go when that slice is retired.
But my biggest peeve is with the young, and those who taught them, because they do not learn the basics of programming anymore. Data Structures? Memory management? Algorithm optimizations for CPUs? Nope, none of those, because that's boring and the [language of the day] will take care of it or just buy more memory/servers. That is false for anything interesting you might want to do if you want it to be successful. That lack of knowledge will doom them to poor careers overall.
The cesspool just got a check and balance.
You weren't sure where to put the apostrophe, so you hedged your bets and lost both times. Moron.
1) Implemented a new automated web testing framework. Next year, I'll do the same thing for Android and Apple phones.
2) Migrated some of my control system apps to C#. Three months ago, I didn't know C#.
3) Migrated more system control software than I care to think about from VBScript (awful) to Powershell (slightly less awful).
Four years ago, I didn't know what virtualization was. Today, I'm in charge of the VMWare servers and couldn't do without it.
I have no idea why I can still do this. Like the other commenters here, however, I do regularly cringe at the latest business/software/process fad. They're inevitably retreads of something older and few add any actual improvement. Powershell, for example, although it packs more functionality into fewer characters than VBScript, made the skill set of thousands of system administrators obsolete. No thought was given to the human side of the system. A more useful solution would have been a rewrite of VBScript and the addition of useful function libraries and easier access to the net framework. It was yet another typically wrong Microsoft decision, but it says something about an industry that doesn't have enough of a balanced view to consider the cold, hard neurological facts of their user base.
Please do not read this sig. Thank you.
I have an older person right now cleaning up an unbelievable mess that two younger people made because they didn't know what they were doing, and the people managing them didn't catch it because they assumed young people are always talented and get everything.
Somewhat related CSB. 15 years ago I was working at a startup writing Linux device drivers for our product. Things were going well, I was on schedule, no issues whatsoever. One day my boss' boss shows up with a consultant who was supposed to help me with my work, he was very experienced, I could learn from him, yadda yadda yadda. Ok. At the time I was writing a PCI driver and was hip deep in the read part, so I gave him the write part. A week or so later I got his first cut, he was using an ioctl() to write data to the board. Hmmm, thinks I. This is different. But he's an expert, maybe he knows something I don't. Another week later I get more code from him that just doesn't make sense. I take him to lunch to talk to him a bit. Turns out:
1) He's never used Linux before
2) He's never written a device driver before
3) He's never talked to hardware before
4) He's only been programming for a year
5) In his interview he never claimed to know Linux, hardware, nor device drivers.
6) I never saw him because not only was he on a different floor, but he spent his lunch breaks in his car studying up on Linux
I went to my boss with a WTF, the guy was gone the next day. I felt bad about that, the guy was actually nice and once the blinders were removed from my eyes I realized he was very trainable. I never did hear why he was brought in, who interviewed him, nor how he became a Linux device driver expert.
That company was full of management problems, one of the biggies was at the CXX level they were all snakes in the grass who stabbed people in the back on a regular basis.
Running your stuff on Win XP is just not feasible - not because of the superficial UI differences, but the deeply engrained unsecure mechanisms it employs.
If you think that Win7 on up doesn't suffer from the same issues, I'd like some of what you're smoking. Windows was designed with a fatal core security flaw, and it has been made worse over time. Check out security tokens and "elevating" privileges, and you'll find that all processes that need an elevated security levels must be started with all elevated security features, and then reduce them on a sub-process/thread basis. There is no means to elevate a security token temporarily. That is the core of 99% of windows flaws, because as soon as you've escaped your process' bounds via an overflow, you are almost always system high. MS has been feverishly bandaiding this via ever more restrictions, but, as long as you can do DLL injection, windows security remains swiss cheese.
The cesspool just got a check and balance.
I'm in my mid 40's myself (and I think one of the oldest ones in I.T. where I work currently), but the others are in the 35+ age range.
All of us are quite good at keeping up with the new stuff. Working for a marketing company, that's pretty much required, as the folks working in the core part of the business tend to be the Millennials who always want to find the latest, hardly yet known, new thing to use, so they can be seen as "trendy" and ahead of the curve.
As you said though, we have the collective wisdom from doing this stuff for 20+ years for a paycheck to realize when "new and shiny" is really just a rehash of something that was done long ago (and often done in a more stable fashion).
One good example that comes to mind are all of the file sharing services out there. We often have the need to share very large files with outside clients/customers and there's always someone trying to find a better way to do that. We adopted Dropbox for Business across the company, which does a good job of 99% of what's needed. But DropBox does throttle transfer speeds. Other sharing services have slick "extras" with their paid accounts, like presenting a branded page with the download link so our company logo is right there behind it, and the recipient doesn't see a generic-looking link like DropBox would generate for them to click.
At the end of the day, simply giving someone access to the web GUI for the FTP server capabilities in one of our NAS boxes is still the most efficient way to get files moved between points A to B. But marketing people don't always find that kind of UI acceptable to present to a client. It's times like that when I realize I.T. jobs have become about much more than "finding the most efficient tool to get the job done". Today, there's the expectation that you know how to provide an elegant solution on demand. Command lines and requirements of using utilities that have learning curves are fine for I.T. staff themselves, but the users we support expect more than that.
One of the reasons we slow down as we age is that most advances are cyclical. X-er here. Grew up with microcomputers. I'm less interested in the web because it really is just a way of reinventing the 3270 forms I beat on when I was getting out of college. Ditto the cloud: it's a glorified mainframe.
Both pre-PC (mainframe/support contract) and post-PC (SaaS/subscription) architectures appear to me as means of encouraging vendor lock-in and recurring monthly revenue streams, while ignoring the fact that we all have what used to be datacenter-sized supercomputers in our pockets.
I'm not going to wait around 20 years for ad-hoc mesh networks of Arduino and Pi-priced hardware to become a the next iteration of the PC/micro revolution. Instead I'll just slog away at the webshit that makes me money at my day job, and tinker with my own little general-purpose computing devices at home.
I don't think most I.T. people fear change so much as they fear the lack of support from higher-ups if things break and require time to sort out again.
I knew I.T. people reluctant to move to Windows 7 and it wasn't because they feared learning the new OS version. Many of them already used 7 on their personal machines! They simply knew their company ran applications that weren't updated to work with 7, or the new "7 compatible" editions were expensive upgrades that the company wasn't going to be happy about purchasing.
I was working for a small steel fabricating company when we started upgrading to 7, and it caused me a LOT of headaches. One example was a little (but expensive) DOS based utility for estimating costs of steel bar and plate. I forget who even made the thing, but it was basically sold by a 1 or 2 person team operating out of someone's house in Tennessee or Kentucky. They sold an upgraded version with a Windows GUI and 7 compatibility, but it was something like $2,500. We had a lot of sales guys who had been using the old command line version of YEARS and it was second-nature for them to fire it up and fly through the numeric menu screens to figure up quick estimates while on the phone with potential customers. They just wanted the old version to keep working like it always did, but it just crashed in 7.
In the end, I think I got it going only by having it launch inside a VirtualPC session on the new computers -- which required a lot of additional configuration to the new PCs just to make it go. And that was only ONE of a number of problems Win 7 gave us.
If you think that Win7 on up doesn't suffer from the same issues
I am very positive that Win7 does not have the same issues as WinXP. It's got different ones. Even the one that you describe does not technically exist in WinXP because it does not even have an elevation of privileges mechanism - the privileges are simply all granted at the start.
I'd like some of what you're smoking
I do not smoke, but I do enjoy a glass of wine from time to time - I'd recommend an aromatic white from New Zealand - and stay away from the Malborough ones, they are hopelessly overpriced. Try something from Gisbourne or Napier...
It's a canard. Not true but makes great copy. The truth - companies to want to train people. So they don't want to train existing employees to learn the new technologies - just hire new people, and they don't want to train new employees on the old technology, so just upgrade to the new stuff.
Any employee can use any technology AS LONG AS YOU TRAIN THEM.
Personally, I haven't worked with any senior engineers that weren't opposed to new technologies. They were just very skeptical because they have been burned so many times by the empty promises and worse, dealing with unintended issues that result because very rarely is the happy path ever taken. As we all know, it it the edge conditions that cause the issues because a generic frameworks many times cannot anticipate all edge conditions so they just don't handle it.
The young engineers are always ready to change for the sake of change many times, and they have never seen results when things go bad. They also don't seem to understand the full cost ($$$) of the situation of the upgrade. This includes the internal costs of testing as well as the potential cost to the customer for their internal testing. Rarely do I see a true risk analysis done which can be translated into a "risk versus reward" understanding of is the change worth it. All of this comes from experience: it just can't be taught, it must be experienced.
Mindset of a moron if you think that's actually true. Glad you bought that red herring hook, line, and sinker. Here's a hint: people actually like to learn things if you bother to help them learn it.
that people are accepting the premise and not questioning it. Is it really true old employee can't learn new technology. Is it really true new employees can't learn the old technology. I guess it's easier to assume that it's true. Perhaps they should focus on critical thinking skills in high school instead of pushing coding. Might graduate a smarter group of students.
It makes me wonder if the documentation produced by "agile" development may not be up to par-- and the real problem is thus not "old talent" but newly-added-on talent that hasn't grown up with the product and therefore didn't aquire the understanding of it as it was being developed.
And for that matter, the documentation on the old stuff may not be up to par either, which could explain the other side of that coin, why the "new talent doesn't want to work on the old (badly documented) stuff."
If you think that Win7 on up doesn't suffer from the same issues
I am very positive that Win7 does not have the same issues as WinXP. It's got different ones. Even the one that you describe does not technically exist in WinXP because it does not even have an elevation of privileges mechanism - the privileges are simply all granted at the start.
XP did have elevation of privileges mechanism, the Win32 token manipulation APIs date back to at least NT 4, but IIRC were based on modified NT 3.1 code. That no one used them because everyone and everything ran system high, because generally the software forced you to, is an entirely different issue.
I do not smoke, but I do enjoy a glass of wine from time to time - I'd recommend an aromatic white from New Zealand - and stay away from the Malborough ones, they are hopelessly overpriced. Try something from Gisbourne or Napier...
I'm always game for a new vintage.
The cesspool just got a check and balance.
I'll fully admit that c++ has it's disadvantages but when you're writing object code in c, why not use it and limit what aspects are legal?
Software Engineer & Writer of Military Science Fiction and Fantasy Blog: petermwright.com Twitter: WrightPeterM
Isn't the CIO the generalist who is able to articulate how the business can succeed with technology?
Ok then, get after it. Your new people and old people all have perspective. Get off your arse, talk to them, make some choices and go and sell that to management or prioritize the budget.
Delegating the budget is just fine, but even that needs a basic review. I understand how it is in very large enterprises, but I also understand companies of that size can afford to hire several CIO types too. Not all techs can be business minded, young or old. That's a specific skill set, and as a tech generalist, they would and should be expected to get what they need from the hard core techs, who will gladly give it to them too.
For smaller companies, if they even have a CIO type position, the generalist there needs to do the work to understand what the strategy actually is and what it means.
Blogging because I can...
I'm with some several other posters. This article is pure BS.
Experienced engineers (old people) can adjust just as quickly to new technology as the young people. As they should adjust, it's the nature of the business. This is just more young vs. old click bait.
Yea my pops was a journeyman wireman who hung billboards, the last 10 years of his career he dreaded. New management came in(younger) and started messing with everything he knew and loved about his job. He would always complain about the younger guys. He just didn't want to adapt. So he spent the last 10 years as a foreman just coasting. He'd fall asleep in the truck and make all the young workers do the work. Wake me up when you are done. He had job security because he was the only one in the company who could drive a boon. So he just did the bare minimum. Drove the boon, told people what to do, and sleep.
I think when you get to a certain age some people feel like "fuck it I paid my dues" and life just stops. Now he's retired and doesn't do shit but play online poker. He has no motivation to learn anything. I can't tell you how many times I've had calls saying "the wifi isn't working". My answer is always restart the computer. Works 90% of the time lol. I got tired of showing him how to turn wifi off and on again.
No start menu because it's not needed. Search is faster than poking through the start menu in most cases.
Sure, and that's great if you know what you're looking for. Other times you know there is something but you're not sure exactly what it is, and in that case a browse method is better than a search method.
I'd like to subscribe to your newsletter
perl has always been a terrible language and should be murdered.
Perl is an awesome language for it's intended audience, which is not developers, rather it's for systems administrators. It's great at writing quick, dirty, powerful scripts that get stuff done and glue things together. If you're using it for something other than that you're doing it wrong.
There is no need to fix what isn't broken.
And the unfortunate part is that rarely does an app, API, or upgrade fix that which was broken. So why would we trust your new features?
I think we're on the same page. High five.
Two words.
Recent Documents
One of the most helpful things that the Start Menu has that is gone is the quick ability to reopen a frequently used document or application without having to hunt through a screenful of things to find it. The Start Menu was good because it was small, hierarchical, and concise. Now that it's a full screen with scrolling, or several pages of scrolling, it is not concise or hierarchical.
Do not look into laser with remaining eye.
What is true, though, is they sometimes don't understand the appeal of the new stuff, nor why anyone would consider using it.
This. Growth in the technology industry is heavily dependent on selling the same thing to the same people frequently. The "old dudes" start to see new versions quite often for what they are -- meaningless churn, designed to get support contracts renewed, all the required new licensing models enforced, and the vendors' quarterly results up.
Thus, the new versions are laden with all the new buzzwords, lots of bugs, some breakage from previous versions and all you end up with is the pain of implementing teh shiny to basically do what you did before.
Oh, you mean like most Microsoft products. There are other prominent companies that do same, but Microsoft does this with their apps all the damn time.
Take for example something like handbreak. Unless you *knew* what it was. You would have no idea what that thing did (video editing software).
And even if you know the name of the program, you still may not be able to find it. If you search for 'handbreak' you won't find what you are looking for because it is spelled 'handbrake'. That's something that's easy to see in a menu but hard to recognize when your search fails.
Enigma
Oooo I bet you feel superior now. Go ride away on your white horse and never show your face again. It's a fucking forum. Not a thesis. So you sir are the moron.
There is a difference of known what is happening underneath the hood vs. having to recreate it every time.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Yep. And the real issue is heavily HR departments, where there's a *lot* of age bias, along with a near-total lack of any clues as to what real qualifications the position they're looking to fill, as opposed to this set of acronyms, and must have already done a mind-meld with the two people who already left, and with the person now leaving before applying for the job.
Out of work? Oh, you're not "fresh", you're a rotting fruit.
mark "been there, got that, jumped down their throat"
You see that on slashdot all the time. Every story about a cloud outage has a lot of "LOL!! kids and their cloud" comments moderated insightful.
He only hires the incompetent.
If the New IT wont work on the old stuff, fire their lazy butts.
If your OLD IT wont work on the new stuff, Fire their lazy butts.
I'm a 47 year old IT professional and I work on the old stuff and the new stuff. Any of the new guys that refuse to touch the old gear are let go before their 30 days are up.
Do not look at laser with remaining good eye.
Humans can learn + adapt
While some few people might be stubborn and not want to work on un-cool technology X, or others might not yet understand new technology Y,
(a) people can adapt. if you cant get a job in cool tech, and you CAN get a job using X, most people will adapt, rather than be unemployed. its no fun to be unemployed, at least not for very long
(b) people can learn. if you hire me to work in mandarin, I might be useless at first, but if you take some time to show me how, I'll figure it out.
That's why you search for "hand". Most likely "ha" will have your desired response at the top.
It's less "Hah, you fuckers don't deserve a start menu because we elite assholes don't think you should have one" and more "Wait, what? People are still using that? WTF? Well...I guess they can learn to use search right? What do you mean they're refusing to use search?"
It's not bad for writing quick and dirty scripts. It's just that there are better alternatives. A car with no doors is not bad at doing it's job of getting you from point A to point B, but there are options that are better.
The things that make perl good are not unique, and the things that make perl unique are not good.
And you can still browse, albeit in a less appealing format.
>Small
>Concise
IF you maintained it. If you didn't it was neither. It would rapidly become a sprawling, unruly pile of crap that could take several minutes to find what you were looking for. Hopefully you remember the publisher of the software you're looking for, because there's a good chance that's the sub-folder it's under.
Old talent and new tech dont mix. If you are hiring people into the c suite with no tech background, you are going to fail.
Nobody (at least not anyone I know) is arguing that C++ is a perfect language. But it's pretty good at getting things done in a way that is fairly pleasing to a lot of people which is why it's so popular. There's lots of nasty language features, but you don't have to use them. It's mostly backwards compatible with C. It's fast. It's versatile. And it has a lot of community support and 3rd party libraries and frameworks that remove a lot of the nastiness.
Nearly everyone who writes good C++ is using a subset of the full C++ language. And some of those subsets are pretty good languages.
you seem to have problems with bro-managers, not programmers.
As an employee you probably get health care, pension, social security, a place to sit (cube/office), computer/desk/furniture/telephone, etc. As a contractor, they don't have to provide any of that to you - so even though you see more cash, it cost them less. Would you be able to live on your contracting money if you had to pay all those other costs yourself?
Our company started up some Big Data projects. Well, no one at work knows Big Data, so they went out and hired a bunch of new people. There are no 'old people' on the team. So naturally, none of the 'old people' are going to know it, except possible by some book learning. It's the company's own fault that none of the 'old people' know Big Data, because they won't put them on the teams.
In our company, we do sprints, and only put people in projects that already have the skills necessary to do the work. There is one special team that does research into new tech, but nine times out of ten, we hire people to implement it rather than train internally. Why?? Because we are already all busy and we don't have time to wait for me to train my replacement and then for me to learn the new stuff.
And this crap about new people not knowing the old tech is the same thing. Back in the 'old days', we had a concept where we would rotate people through maintenance and new development. That way they learn multiple systems and skills. But we don't do that anymore because Johnny is a web developer and we need his skills on the web development team. We don't have time for him to learn back end development.
The largest blame for corporations not having 'talented' people is the corporate environment and it's stupid rules. However, there are also a lot of people that won't learn new things, or old things. Mostly because they just aren't as bright as they think they are, and it takes too much effort.
Now, I'm a 56 year old 38 year IT veteran, who started out hacking the college HP so I could get accounts with better priority. I'm the kind of person that says "I don't know it, but I can learn it" and over the years have seen my salary grow because I can just as easily write in COBOL as I can Java, and a host of other languages. I can hand wire serial and network cables, build windows and unix servers, run cables through ceilings, and even administer phone systems. Because I've been lucky enough to work for smaller companies that didn't have the luxury of hiring specialized talents. Or stupid rules about what a developer is allowed to have access to.
My advice to developers is stop working for the big guys, take a small cut in pay and go work for someone that doesn't have a big shop so you can learn lots of stuff. Because, when you can work in any aspect of the IT world, you become far more valuable to your company when they realize they can put you in any project and you can perform.
I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
Amen!
Successful projects come primarily from 3 things:
1. Discipline
2. Experience (both domain & IT)
3. Communication
No buzzword can change these requirements or replace them, other than occasional dumb luck.
I've been around the block many times and these 3 things are still the key.
And another fogie observation: use common tools in your tool stack because you are more likely to find support for them down the road. The uncommon version of the same thing should only be considered if it's significantly better. Support resources should trump "slightly better". Safety in numbers.
Table-ized A.I.
Sometimes there occurs a metaphor that cannot be allowed to pass without at least remarking on it's deftness:
Indeed the author lives in a terrible world - one with snakes that stab, enwrap, asphyxiate and envenomate you simultaneously. What a horror! It gives a whole new meaning to the little sign on the lawn "Stay Off the Grass!"
Would you be able to live on your contracting money if you had to pay all those other costs yourself?
If I upped my contracting time to regularly doing two or three days of work per week? Oh hell yeah I could live comfortably! A guy I worked with at a former client had a motto: 20-20-20, meaning he could work 20 hours a week, take 20 weeks of vacation a year, and still stay on track to retire in 20 years (or something like that, I don't remember the exact wording he used, but that conveys the intent pretty well).
So the obvious followup, why do I bother working a 9-to-5 now? Contracting work (at least for me, though admittedly I don't promote myself, I just get clients by word of mouth) tends to come in irregular waves. I'll have more than I can possibly take on for a month, then nothing for a few months, then a few Saturdays in a row, then nothing for a month, yadda yadda yadda.
The nicest thing about the 9-to-5, I have predictable income. I've chosen to trade raw income for a degree of day-to-day stability. I don't have to worry that a six-month dry spell will mean I can't cover my mortgage.
What project managers and "development methodology" types want is predictability and repeatability. And to achieve it they're willing to sacrifice productivity.
To be honest, I can see where they're coming from. I've done my share of diving into legacy systems that have been hacked together on-the-fly by other people and trying to sort things out so I can duplicate it (For instance, migrating a ten year old app from datacenter to AWS.). And when the documentation is lacking, it is rather painful.
Then again, I've also worked for a government contractor that was SEI level 3 certified and trying for 4. And I think I generated about a page and a half of paperwork per line of code.
There must be a happy medium between the two. Where exactly that is, I'm not sure.
Imagine all the people...
And another fogie observation: use common tools in your tool stack because you are more likely to find support for them down the road.
I agree, and use the same basic principle in terms of configuration. As a rule of thumb, whenever you have the option, leave all the default settings/methods. You might be able to squeeze out slightly better performance by tweaking things a bunch, but it's generally not really worth it-- at least not for most environments.
For example: If you install the server with the most generic, out of the box settings there are, and things work? Leave them. Everything you change is another thing that could potentially break.
The biggest reason for that is developers. Obscure settings are not always well tested. If you have any third party programs or add-ins, they'll often assume a default setup and not test against other settings. But developers aside, there's also the problem of support. Every setting you change is another thing that you have to remember the next time you do something with that server. If you hand it off to another tech to support, it's another thing that they have to learn and figure out.
Some people think that the best IT workers are the ones who know lots of tricks and hacks to really optimize the hell out of everything-- secret settings that nobody else knows. I disagree. The best ones are those who leave everything in the most predictable, standardized state that's unremarkable except for how boring and clean it is.
I recently met with an evangelist from Microsoft advising our team to consider anything before Windows 10 non-existent and that they will no longer support any development for those operating systems. We asked the evangelist if she was using Windows 10 yet, and she said not yet.
- Invest in the youngsters and bring them up to speed on the older tech and why it still exists in a business environment
- Invest in the oldsters and bring them up to speed on the new languages and systems. Show a value proposition. Business people love the "value added" story, so demonstrate the tech value added. Or any value added.
However the HR paradigm that the CIO crowd follow these days is that tech talent must arrive fully formed and trained. Companies hardly ever do any training anymore. All staff that don't know a particular skill are "unqualified and unsuitable", and must be replaced with new hires or outsourced talent.
The first kind are often the best trouble-shooters because they are used to tweaking and breaking and debugging stuff.
However, you don't want those kind to set up or design stuff.
It's ying-yang relationship between tweakers and preventers.
Table-ized A.I.
It's intended as a cross-platform replacement for shell scripts. Personally I think it's still the best tool for that particular job. It's been shoehorned into plenty of other roles, but that's a different issue.
Right, so reduced functionality, which is the complaint.
They would claim to understand C++, but not the appeal, as it seems to them to be far easier to do everything in C. The fact that they don't see the appeal is evidenced that they don't understand that c++ actually makes doing things correctly (i.e. maintainable, scalable, modular, etc) easier, maybe because they don't even see the appeal of those features.
I probably tend more toward C than C++, namely because there's a lot of cap in C++ (like streams) that actually make code harder to follow. I like using Objects - and use Classes and Namespaces a lot - but I have rarely found uses for Templates, Streams, and other big C++ functionality. Polymorphism can be your friend when used right. Exceptions should be avoided at all costs.
That said, everything I do in C++ - even object oriented stuff - i also know how to do in a pure C manner, even private/protected/public APIs of an Object.
So it's not necessarily that they don't understand the language. They may very well understand the actual language. But they may not see any real benefit - and therefore appeal - to what is provided that they are not already doing.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
Reduced functionality for a deprecated, less necessary component. Not nearly as big of a deal as was made of it.
...old talent doesn't understand the new stuff."
I have never understood that. Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff and just expect to allowed to vegetate away in their jobs for the last 15-20 years until retirement. I've been coding since around the time than many of the younger developers I work with were still a twinkle in their father's eyes and I still manage to keep up with new developments.
Or on the flip side, as TFA states, the new guys don't want to learn the old stuff - same issue. You have to understand the old stuff to keep from making the same mistakes when writing the new stuff. But re-writing for re-writing sake doesn't provide any purpose; the new guy will say "it's to use XYZ" but if there is no real benefit to the business/customer...
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
In many cases, people may have had the training, but get too caught up working on old systems and they never get the chance to work on the new stuff.
the good ground has been paved over by suicidal maniacs
In the glorious world of bank IT, anyhing we need can be implemented using DFSORT, ICETOOL and a little COBOL.
We're currently investing millions in a new system, and guess what? It's JCL and COBOL all the way (with a little ASSEMBLY thrown in for fun).
Why? Because it fucking works. We still have programs from the 70's that process millions upon millions of transactions worth billions of $ every day, and those programs have been modified less than ten times over their working lives.
It Fucking Works. That's it.
Try it! Library of Babel
I agree that's what it should be used for. But when you compare it to other tools that fit in the same niche, it's just not as good. I'd probably still be using perl if python didn't exist. It's not like python is a perfect language either, but for like 9 times out of 10 python's way of doing something is better than all 20 ways of doing it in perl.
And I'm not even one of these language evangelists. I normally can't stand when people pretend their personal preferences for languages are objective facts (e.g. java vs. c++ vs. c#), but I've found that most people who use perl have never used python.
I find templates to be one of the most useful features of c++. Although it may not be it's most obvious usage, through templates, you can get zero overhead versions of object oriented programming minus the ability to dynamic cast (static polymorphism).
I like the exception pattern when used locally (i.e. within a function), but I think the overhead of actually excepting makes usage of this mechanism undesirable. Although I think compilers may one day (or may already) be able to optimize out the overhead of exceptions when used in a limited scope.
How do you even do something like this:
template <typename T> T min(T x, T y) { return x < y ? x : y; }
without templates? macros?
Less necessary to who? Windows gets used by lots of people. If you don't use the Start Menu anymore because you've got a way that suits you better, cool. That doesn't mean it doesn't matter much to other people.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Templates are very useful, and most C++ standard data structures and algorithms are based on them. Exceptions have their uses.
I know how you do public/private in C (declare your functions in an .h file, or in the .c file as static). How do you do protected?
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Speaking as a Baby Boomer, you've almost completely failed to describe me.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Also, us oldsters often find just-in-time learning practical, because we've seen all the concepts before.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Less necessary to anyone who uses search. Which is objectively faster in most cases. Tap the Windows key, type the first two letters of what you want and it'll probably be at the top of the list. You can have the program open before you'd even get the "All Programs" list open most of the time.
Old talent will want more money, so the managers look for an excuse to avoid that.
Some will try to move into management, to get the money.
Some will go off as consultants and bill at high rates to get the money.
I have 30+ yrs of experience and I am making less now than at the height of y2k boom.
WoeBama!
Gotta keep learning, stay on the edge, beat the kids at hoops.
You do not want to be out played by some flaccid hipster.
"Know what else young people are terrible at?"
I'm assuming, going by the tenor of your post, staying off your damn lawn?
It's less "Hah, you fuckers don't deserve a start menu because we elite assholes don't think you should have one" and more "Wait, what? People are still using that? WTF? Well...I guess they can learn to use search right? What do you mean they're refusing to use search?"
People can learn much. This subthread is largely related to the mess that Windows 8XX was, and there was so much messed up there, it was a lot more than just the search vs start menu. But yeah, if some folks don't want to use search, you just won't stop 'em.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
We're already using classes, and pure virtual functions. It just looks ugly because we're doing it in pure C.
The arguments I usually get into are with people who think that any sort of c++ code automatically bloats the code by hundreds of percent and slows it down by 50%. The big argument I'm having right now is when we change the file extension from .c to .cpp and use the c++ compiler that the object file is suddenly larger, so it must be larger on the target and must be slower. I usually fix that by extern "c" in the header files, but I still have the same argument over and over again.
Software Engineer & Writer of Military Science Fiction and Fantasy Blog: petermwright.com Twitter: WrightPeterM
Depending on how you use the templates, they can actually lead to less bloat on embedded systems. You can use templates to do zero overhead static polymorphism. This is actually quite useful in safety critical code where the non-deterministic behavior of standard vtable lookups is a problem.
In fact, writing deterministic safety critical code (usually on embedded systems), often forces you into using templates for polymorphism rather than traditional inheritance.
It's hard to get speed, correctness, and proper abstraction all in one language. C++ does probably the best job at coming up with a good compromise of all 3, and I don't think that would be true without templates.
Vtables really do slow things down quite a bit. Luckily C++ gives you the option of templates as a fast (but somewhat limited) alternative to vtables.
That hurts to read. It sounds like that's the second best kind of guy you could get... one that would spend his lunches reading manuals to get up to speed as fast as he can so he wouldn't disappoint.
And I'm sick of programmers going on endlessly about how their brilliant new organizational and project management style will fix everything. "Agile" this and "waterfall" that. Oh, instead of having your project be one single big project, you're going to break your project into smaller projects? You've designed a new theme for your gantt chart? Slap a buzzword on it, and you have the hot new development method that's going to solve world hunger!
That's usually PM masturbation. Not the programmers.
Ha. On Windows 7 searching for paint or services has no results IIRC. At least in a timely fashion. Yes this may be from having messed with the Windows Search service while looking for cheap speedup tricks but I don't know for sure.
So back to my point, typing the names above does nothing at all unless I quickly try the canonical mspaint.exe and services.msc or devmgmt.msc. It is all kinds of annoying setting auto complete do nothing as you are providing the full name and then fully recognize the target only when you reach the very last character... pressing enter on even the penultomate char only triggers another pointless and time consuming search... off you had the entire string memorized then the final e in exe gets Windows to inexplicably wake up and display a thumbnail while realizing what to load if you press enter.... so you must do still the homework yourself.
And Windows won't recall this the next time you search for those strings. This is why a start menu and tray need to be customizable with quick-access icons. I don't know if Windows 8 or ten are better with those searches, but Windows 8.0 lacked the ability to anchor a metro app anywhere but on the Start button tiles. 8.1 and ten still won't let you drag the weather widget or launcher to your friend's desktop which is a pain for family I have migrated from dying machines where Gadgets where always on.
That mega mainframe you speak derisively of had transactional and security capabilities that these cloud idiots are still trying to re-invent, and using them didn't require stitching together code in 4 languages with 100 libraries that all suck and which some alleged genius will reinvent next week anyway.
One might argue that neither of the outcomes was all that great, with the former relying on a reliable-by-throwing-money-at-it serial machine and the latter being a hack. There's a lot of good CS that hasn't made it into practice yet since most software would have to get recoded to take advantage of it and that would make these things cleaner in cheaper distributed systems. But now you have two legacy systems instead of one...
Ezekiel 23:20
...old talent doesn't understand the new stuff."
I have never understood that. Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff and just expect to allowed to vegetate away in their jobs for the last 15-20 years until retirement. I've been coding since around the time than many of the younger developers I work with were still a twinkle in their father's eyes and I still manage to keep up with new developments.
I know it's an old cliche, but you'll understand why as you get older.
As you age, learning new things becomes harder and harder, even if you're highly motivated you still find you're not learning as fast in your 30's as you did in your 20's. A lot of your pathways and habits are set.
Also as others have pointed out, you have more responsibilities. Not just work, but mortgages, kids and other family commitments. You'll find your parents are getting on a bit and you actualy have to spend time helping them.
Software development is particularly bad as they seem to change the development flavour of the week more often than their underpants.
Calling someone a "hater" only means you can not rationally rebut their argument.
That is why I always say "prove it". ;)
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
@Rob Y, you speak out of sentiment for old good times. In IT, the "business" is primarily the development (e.g. e-store) and only in some 20-30% it's the actual application area like banking, clothes store or manufacturing. Also, the pre-agile development style (12 mos. - requirement collection, another 12 mos. - development and finally realization that business had changed a lot over these two years) has its problems. The current model of shorter cycles (like 2-3 mos.) I'd much more effective. Even if it's not called agile. Still, I do agree with you @Rob Y that the drive to develop for cheap and for yesterday is not leading to quality and maintainability. However, the 5 years of life for a system is a lot. You need to rewrite it anyway, hopefully by the team that is familiar with the previous generation of the system, at least party of that old team. Your new system gains from the lessons learned and is more nature. You should do this even, if the business doesn't force you to.
That company was full of management problems, one of the biggies was at the CXX level they were all snakes in the grass who stabbed people in the back on a regular basis.
I am only 30, but I hear back in the day that was called "business." Glad the culture is shifting (albeit slowly).
I find templates to be one of the most useful features of c++. Although it may not be it's most obvious usage, through templates, you can get zero overhead versions of object oriented programming minus the ability to dynamic cast (static polymorphism).
Most uses of templates are provided by the STL and there is not much need for them in normal programming. That is not to say there are not instances for their use, but there are often better design patterns to be following.
I like the exception pattern when used locally (i.e. within a function), but I think the overhead of actually excepting makes usage of this mechanism undesirable. Although I think compilers may one day (or may already) be able to optimize out the overhead of exceptions when used in a limited scope.
That Exception pattern may be useful - and in all honest it's the only useful pattern for exceptions; anything else makes developers too lazy in handling errors and therefore leads to program terminations that shouldn't happen.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
I know how you do public/private in C (declare your functions in an .h file, or in the .c file as static). How do you do protected?
The difference between public and protected is in which headers you provide. It's the same as the difference between having a library with a public interface, an internal library interface, and a file internal interface.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
Most uses of templates are provided by the STL and there is not much need for them in normal programming. That is not to say there are not instances for their use, but there are often better design patterns to be following.
Maybe I'm not exactly sure what "normal programming" is, but I have become a lot better at templates in the last year or so, and I find more and more uses for them, where I probably would have used other language features.
I get the impression that because templates are somewhat hard to use, people avoid them for all but the most obvious cases.
I really can't think of any cases where I saw a template and thought "They really should have done X instead".
If you can think of any, I'd love to see an example.
...old talent doesn't understand the new stuff."
I have never understood that. Some people seem to reach a point in their professional lives where they stop bothering to learn new stuff and just expect to allowed to vegetate away ...
That's not just programmers and tech people...
But it is also true that the younger people don't understand the old stuff. Which is the stuff that works. The new stuff doesn't work yet! 8-)
There is an instinctive tendency to try to destroy anything that was there before you came in. To make yourself be on an even level with the "old" people, that know how it is working now. We all see this in new managers, that want to change everything when they arrive.
But it happens in other people, too.
It is the reason that people say that it is better to trash the old stuff and write new. It is not necessarily true, it just seems easier when you don't know the old stuff. In fact, I have seen more disasters due to trashing the "old" stuff, than any other cause. Because functionality is -always- lost, the specs are out of date and the only real record of what is needed is the old tech (source / hardware / knowledge).
Tech is not changing as fast as the salesmen say, it is just the new people that want that to be true, so they can be first!
It may seem easier to make something from scratch, but then you never learn how much you -don't- know! Of course it is frustrating to study someone elses stuff, but learning -anything- starts out as frustrating. Lookup "learning frustration". 8-)
Sadly, it often depends on the vendor salesmen, and how big of a kickback they offered the pointy-haired manager... 8-}
(Oh, it wasn't a kickback. It was a free vacation, or a leather bound binder...)
To management people hiring tech, who want to get rid of the old expensive talent and hire new cheaper:
Be aware that "YoungAndStupid" is all one word... 8-)
That is what happens when training budgets are cut and work loads are so high that there is no time for training. Old talent cannot know the new stuff when they get no opportunity to stay on top of technical developments. And the young uns are told that mainframe, tape, and SQL are dead, so they don't bother learning any of that.
At some point getting stuff to work is more important to the fad-du-jour. We had Perl. Then a few years ago everyone had a hard-on for Ruby ZOMG everyone start over. Now Python of all things is all the rage. By 2017 something else will be. Not retooling every few years for no better reason than being hip isn't the same as refusing to learn. Each batch of kids out of school bring a new fad, because the concept of mature, well-understood tech is beyond them. They don't have to maintain commercial-quality systems or do anything with a lifetime longer than a semester. Here's a wacky idea: Working together instead of cultivating us-vs-them.