Commentary On How To Make Novice Programmers More Professional (slashdot.org)
Over the weekend, my colleague David ran a story that sought people's suggestion on how to make (force, encourage, advice) a novice programmer to be more professional. Several people have shared their insightful comment on the topic. One such comment, which has received an unusual support on not just Slashdot but elsewhere, is from William Woody, owner of Glenview Software (and who has previously worked as CTO at Cartifact, architect at AT&T Interactive). He writes: The problem is that our industry, unlike every other single industry except acting and modeling (and note neither are known for "intelligence") worship at the altar of youth. I don't know the number of people I've encountered who tell me that by being older, my experience is worthless since all the stuff I've learned has become obsolete. This, despite the fact that the dominant operating systems used in most systems is based on an operating system that is nearly 50 years old, the "new" features being added to many "modern" languages are really concepts from languages that are between 50 and 60 years old or older, and most of the concepts we bandy about as cutting edge were developed from 20 to 50 years ago. It also doesn't help that the youth whose accomplishments we worship usually get concepts wrong. I don't know the number of times I've seen someone claim code was refactored along some new-fangled "improvement" over an "outdated" design pattern who wrote objects that bear no resemblance to the pattern they claim to be following. And when I indicate that the "massive view controller" problem often represents a misunderstanding as to what constitutes a model and what constitutes a view, I'm told that I have no idea what I'm talking about -- despite having more experience than the critic has been alive, and despite graduating from Caltech -- meaning I'm probably not a complete idiot.) Our industry is rife with arrogance, and often the arrogance of the young and inexperienced. Our industry seems to value "cowboys" despite doing everything it can (with the management technique "flavor of the month") to stop "cowboys." Our industry is agist, sexist, one where the blind leads the blind, and seminal works attempting to understand the problem of development go ignored. You can read the full comment here or here.
20 goto 10
How come we don't ask this question? Can we get rid of the layers of useless HR bureaucracy?
It does not comment the obvious, that industry love the young because they are cheaper, and have yet not learned to say no to crap.
How do you become a more professional programmer when your full time job isn't programming?
I was a video game tester for six years, went back to school to get an A.S. degree in computer programming, and got into IT support because I enjoy the work. I program at home (Python and web development) and occasionally write PowerShell scripts at work, but the only time I deal with other programmers is when I'm cleaning up their messes over the network at work.
BTW, Microsoft SharePoint IS NOT a proper bug tracking tool.
I like how much of the comment was focused on arrogance, and then he broke out the Caltech means I'm smarter bullshit.
In short its because idiots are too stupid to realize their own stupidity that experience is derided as outdatedness.
Of course a certain addiction to the "new and shiny" is probably what got many interested into CS in the first place, so it will be hard to get rid of that completely
This is then bolstered by employers knowing exactly that some 23 year old will work insane hours and is much more easily exploitable than a veteran.
Here comes the Dunning-Kruger effect on the employers side: They too are unable to realize that the code produced by a newbie can be orders of magnitude worse than that produced by a veteran. Sure the LoC per day look impressive but it is not at all a measure for productivity.
They say the brain is the second thing to go.. I forget what the first thing was.....
"File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
I got the same impression. It was his proper use of capital letters, commas, paragraphs, grammar in an essay that was logically constructed that shows his loss of faculties. Any one can do that with some effort. A younger person would have been able to forcefully make the same point with a concise tweet:
HAXXORS Sux!!! sjw ftw!
all the stuff I've learned has become obsolete
And as a mechanical engineer in my 30s I wish that some older engineers would accept that some of it is.
We trail behind software by some years, despite building software constantly. Every engineer I work with insists on building their own Simulink models. "Continuous Integration" is just some "new fad". Yet every so often we'll have builds break because they didn't run the build scripts in the right order.
I could replace 4-5 full time engineers with Jenkins and some continuous integration scripts building software, doing the dSpace hardware in the loop testing and e-mailing us the results.
Our process was literally:
I had the whole process packed up into a Jenkinsfile and automated but most people thought it was some "new fad".
Accept that sometimes we come up with a way to do better.
As a 53 yo C++ programmer with 30 years of experience I have never gone hungry competing with stupid n00bs or brown people. I doubt I ever will.
Why do so many want to kick Trump's ass? What did he ever do to so many to make so many want to kick his ass?
Too often I've heard that the way I develop my web applications is outdated. My 'old' but proven stable an secure approach is labeled 'obsolete', while the modern and 'cool' new techniques often cause stability and security issues. There seems to be an unspoken contest for many young developers to be the first to adopt new fancy technology. It's more about being cool than about delivering quality.
Also, many young developers use third-party libraries too easily. They don't look at the quality of that library, they only look at 'does it do what I want'. Too often, that results in a big mess of spaghetti code. Young developers are lazy, too lazy to determine the 'general approach' (don't know the right English term for it) for their software and they're not mature enough to stick to that. I a big fan of the Keep It Short & Simple (KISS) approach. The third-party libraries I use must also follow that approach. If I can't find the right library, I write it myself. Yes, that takes more time. But it will safe time in the end, because it will give me good control over my application. I won't allow a crappy third-party library to mess up my application. Ever.
It doesn't have to be like this. All we need to do is make sure we keep talking.
If you want to be pro, you've got to stop using meme languages every few months and stick to the tried and true.
It's a great honor and opportunity to be surrounded by people who don't know what they don't know. Best not to confront them head on ... their strength is their persistence and self-confidence, and working against their strength is just asking for friction. Instead, come up with examples of where *other* projects have gone off the rails. Or how about a hypothetical design exercise, so everyone isn't so invested? These younger programmers are quite brilliant and will grow to be great. Right now they are in need of guidance from people wise enough to both know their stuff *and* how to deliver it. I struggle with this, too, but delivering wisdom is far more important than asserting it.
Yep, I've been coding for 40 years and have seen this argument come up over and over. Every set of 20 somethings pee on older coding methods and bang the drum for their 'new' way of software development and then when they get into their 30's they bitch about the the next 20 year old's peeing on their code. They should teach a class in college about it. There's only one thing worse than this. It's some 50 year old Architect who always trying to prove he's hip by jumping on every new thing that comes down the development pipeline. Everyone gets caught in a permanent rewrite mode until the product fails to meet the delivery date, the customers leave, and the company folds.
Fucktard.
I agreed with the poster up until the last part, where he suggested that the "massive view controller" problem was a misunderstanding of what constitutes a "view" and a "model". I'd ask poster if he understands what constitutes a "controller" in the MVC model. And from that I surmise that who ever told him he didn't know what he was talking about was probably correct, at least in that particular instance.
But that the poster didn't realize this, throws into doubt earlier things he said, which I agreed with up until I got to that sentence. It strikes me now that those perspectives might really have been the result of the posters "arrogance and ignorance" as the phrase goes. And furthermore that his claims of things being a solved problem for "20 to 50", while I agree this happens a lot, I think we might disagree on what the specific instances of this are.
I would say for instance that, while it didn't need to invent a new language to do it, "Rust" provides a good solution to dynamic memory allocation (namely, compile-time static analysis), that is different and in many ways better than garbage collection and automatic reference counting (ARC). While he might claim this problem was solved decades ago, it is just a fact that compile-time static analysis for dynamic memory allocation did not exist until recently, except in the form of "scope" as opposed to "lifetime", which, while similar, it is different from.
Now there will certainly be a great deal of rediscovery, of re-inventing wheels poorly (for instance i just found someone re-created the java "date object", but made the linux epoch (zero milliseconds) dependent on the time zone.), but it must be noted also that there still are a fair amount of new, interesting ideas.
Anyone who's been in the industry for more than a decide knows it.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Younger people are usually cheaper and easier to fool and push around. We've outsourced thinking, experience and knowledge to the machine. There's no going back. Welcome to the permanent "Leisure Class" except with no money. We're boned.
Well, there was the one lonely close paren in an unfortunate location...
You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
Maybe it is time to let go, retire and go repair motorcycles or support local communities by starting up a Hackerspace or something.
I've been watching the development of AI recently, reflecting on all of the work we did in the 70s on Machine Intelligence and Perception, or in the 80s on Expert Systems, and ruing the day that all of that expertise was kind of lost; we seem to now be benefiting from the march of technology to provide huge resources for computation that are built into Brute Force solutions for Deep Mind kind of AI, and we have lost the focus on what makes an intelligently coded algorithm.
A surprising amount of the resistance is plain fear: if you describe a solved problem in computer science, some number of the PHBs and some of the engineers will be frightened, and push back. Others will cover their ears and say "naa, naa, naa, can't hear that". After all, if they knew it was a solved problems and did the wrong thing, they could get in trouble!
The frightened folks need to keep an eye on the news: I reccomend the morning paper.
The person proposing a known fix should do so either very early in the project's life when it's easy to change, or very late, after a fiasco when it has to change. The middle is A Bad Time to change horses.
davecb@spamcop.net
This sort of thing affects lots of different organizations not just the programming world. The arrogant newbie enters into an organization and immediately wants to change everything because in his/her eyes, until they came along the place was being run by a bunch of hick hayseeds. That's not to say that things can't be improved but one needs to spend some time observing, building relationships, and then making suggestions for improving things. One of the most appropriate lines from Beverly Hills Cop is when Axel Foley's boss tells him, "You're a hell of a good cop but you don't know every f*cking thing."
Our industry seems to value "cowboys
Yes. I have lost count of the number of times people have been praised and rewarded for fixing some "disaster" or outage. But without anybody ever asking how the problem occurred - frequently at the hands of the very same hero who then "saved" the company.
There seems to be the view in upper management that problems just happen: like earthquakes and floods. There is usually so much relief when the lights come back on (metaphorically) that everything leading up to an outage gets forgotten or forgiven. I even know of some individuals who, if not exactly creating problems, are very happy when there is an issue. Not just because it gives them the opportunity to be a "star", but because all the process-driven and procedural restrictions get tossed, and they have free rein to fix things by any means necessary.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
If you are discriminated for your age, it is a revenge (or rationalisation for their own career choices) of someone your age, or even older, above you.
You do what they do, age discriminate against old bosses and find yourself a young start-up to work at. They will be more open and they'll find use for your experience.
The commentary has a major flaw. It does not comment the obvious, that industry love the young because they are cheaper, and have yet not learned to say no to crap.
Not only does it ignore the primary reason why companies often favor young workers, that omission causes the commentary to not touch on the the times when our industry values experience as much as any other.
While I have seen a great deal of ageism in this industry, I have never seen it on projects when a project is really important to the company. When I work on a project where the C-level really cares about its success, they don't want young people in important roles on the project. I grew out a beard in my early 30's just to look older, because of instances like the time I had a client I first met in person after working with her remotely for months say "wow I pictured you as a grizzled veteran, but are you even done with college yet?" I try to downplay my age as much as possible since in many important meetings I'm the only one under 40, and often one of the few under 50.
Ever since I graduated to projects where success will actually move the needle of the company's financial statements, I have heard far more derogatory comments about how young someone is than derogatory comments about how old someone is.
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
It's not because your obsolete, it's because you're too expensive. When I was young I was lucky to get $40k, now I can command six figures. It's because I have experience. If you want more professional programmers then pony up the cash for experienced professionals... you get what you pay for and there is no free lunch.
If you are a senior professional, the important thing to remember is don't price yourself out of the market. For me, salary is usually the last thing I think about during the job hunt, I'm more interested in finding a role doing something that I enjoy and something that can benefit from my experience. As long as pay is within two standard deviations from the national average I'll seriously consider the offer. Also pay isn't everything, I prefer companies with a good benefits package and ones that are stable with a proven track record.
I've been writing code for many years and from what I have seen is:
1. There were older programmers when I entered the field
2. There were a lot of newer programmers who joined the field with me
3. Some of the older programmers couldn't keep up with the technology and left the field
4. Many of the people who entered the field with me, have since left the field [as in they weren't able to cut it]
5. Wait 5 years
6. Goto 1
Programming is like all of the other fields out there. There are a lot of people entering the field for reason X and soon realize they aren't able to make it. So a few years down the road, they switch to a different field.
So yes, a lot of the newer programmers aren't going to make it because they don't have what it takes. For the most part, the older programmers have stood the test of time. However, I still run into older programmers who should have never joined the field in the first place.
Are there other factors for hiring a younger person? Yes. And depending upon your perspective, it's either good, bad, or both.
Every industry is like this. Nothing new to see.
As a member of the Obsolete generation, I have a "biased" view of what was stated. The industry is guilty of being Ageist, and Sexist. Also of being blind to history. Thus they repeat it. All the "new" innovations are based on reworked versions of past innovations. The Cowboys rule and they have always. Companies and schools have tried to impose standards, but fail because results count, not support ability. Batch job submission became RJE, RJE became RPC with a GUI, Time sharing became CIS, Citrix is timesharing in a new wrapper. Everything old is new again once its repackaged. But show me the Millennial that understands that and they are just as obsolete as I am. There is not a shortage of qualified programmers, there is a shortage of Mid and upper management, and young programmers that understand this. Its the nature or culture of IT in general. .Who can do it quick that counts. That is why we have always had want ads that ask for 5 years experience with a product that has been out for 6 months. In the end it does not matter if programmers are professional enough, they will be phased out by AI not too for in the future. Many who call themselves programmers today are little more then scrip writers. Its a dying industry.
The core problem is not w/ engineers nor CEO-level executives: the real root problem here, as usual, is a failure of low-level management & hiring policies.
Error: NSE - No Signature Error
This is *exactly* what happened to me. The website I designed from the ground up, which was entirely stable and secure, was second-guessed by our PR people who wanted WordPress because all their friends were using it. And the outside developer didn't even seem to know the importance of requiring valid HTML code, or accessibility for people who consume websites via screen-readers and such. Long story short, something would break or revert or never work correctly in the first place since the new site was implemented, and after repeated warnings about such, the PR people are only *now* *after 10 months of this) thinking that they may need to go back to the developer to fix some of the problems. Of course, our PR people also failed to realize they would need a permanent budget for fixing/developing the new site, as opposed to the previous site where they had an in-house employee who could do all the work themselves (I refuse to learn PHP, not that I was given access to the back-end anyway). So, just desserts and all that. Meanwhile my organization is re-purposing me to more interesting and potentially-rewarding work, so I consider myself lucky in that respect, as the "sudden obsolescence" (LOL) of my job at the hands of clueless PR types was something of a blessing in disguise.
"Programming is not a field, it's a pop culture." -- Alan Kay, paraphrased
Ezekiel 23:20
A former colleague once commented "Thank god for crappy software. It keeps a lot of us employed fixing it". Rewriting perfectly good software also
apparently keeps a lot of people employed reinventing the wheel.
I didn't read the original article. I did read the summary which says absolutely nothing about "How To Make Novice Programmers More Professional." It seemed to be a whinge about how one seasoned developer felt disrespected by management. I don't see how that helps make novice programmers better in any way.
Looking back on my development, a mentor was insistent that shortcuts often lead to delays and inefficiency later on. Do things right in the first place and move forward.
I'm not sure that's relevant to this discussion, but I'm one of the dinosaurs.
Funny, I remember winning my first autocross race against 25 young punks when I was 56 yrs. old. But go ahead and keep thumping your chest moron.
Just another day in Paradise
It's not asked much because the answer is no.
Control in employment (and government) extends top down, not bottom up. Most places, if you even attempt it as bottom up, you're likely to be out on the street, starving.
If you don't want to be a controlled resource, then you have three options.
1: Strike out on your own. This is very hard, but it can be done. I did it and was successful at it. I retired reasonably early (in my early 40's) and have been enjoying myself since. I did it without a college degree, and got a good deal of it done prior to the Internet. If I had had the Internet available in those early days, I would have saved a lot on textbooks. :) Basically, this is "if you want it done your way, you need to be the boss."
2: Find the means to search until you find the very rare exception to the rule where the idea of actually doing good work is integral to the operation, and get them to hire you. This type of job search is expensive, slow, unlikely to succeed (there are very few such operations, comparatively speaking), and it also means that you still probably have to navigate the idiotic irrelevancies HR throws up on a constant basis. They still may not do things your way, but they may be using methodology that works well and you can at least live with.
3: Move into a field where this stuff isn't a cause of going home at night so annoyed your dog avoids you.
I've fallen off your lawn, and I can't get up.
Sure. Anyone my age has seen the wheel reinvented several times because the minicomputer people were too arrogant to study what the mainframe people had done, and then the microcomputer people were too arrogant to study what the minicomputer people had done.
"How to Do Nothing," kids activities, back in print!
I'm in IT, and we have the same problems programmers have, to a slightly lesser degree. Experience is not valued the same way it is in other fields -- most people don't trust a doctor straight out of medical school more than they'd trust a mid-career specialist who's probably seen thousands of patients. The reverse seems true in development -- employers place enormous faith in fresh grads programming in Web Framework of the Month and discard people who've seen this stuff 20 times over because they're too expensive. In IT, experience usually matters a tiny bit more, but it's really hard to justify the higher salary levels and you have to work very hard to keep your skills current as you age.
I'm in the middle of a huge "migration to the cloud" for one of the core products the company I work for sells. When talking about Azure, Microsoft lumps us "old school" folks into a term they call "IT Pros" to separate them from "Developers." Because it's the cloud and they're targeting new developers writing from scratch, almost everything provided is aimed at developers and abstracted to a very high level. This is getting better, but Microsoft's a software company and they're used to interfacing with developers especially since they're not releasing packaged products anymore, instead they're rolling out and improving services as they go. The truth is that all this cloud stuff is just another layer removed from the actual hardware to make people's lives easier. It doesn't absolve you of the need to design in contingencies for failures or to know how things actually work at a low level. The best people I've worked with on cloud things so far have been the older crowd -- they understand that behind the magic is still servers, still TCP/IP, DNS, load balancers, VPNs, firewalls, etc. and that the concepts behind these haven't disappeared. Someone fresh out of school might not have the background and might even say "oh, that's low level crap, the cloud provides magic 100% uptime and infinite scale!" (And yes, I've had conversations that end like that...the concept of backup and DR is lost on some people regardless of cloud-vs.-on-premises.)
That said, I do know people my age who haven't really grown all that much in their careers and have done the same thing for ages. The problem is that everyone over 40 gets lumped in together. You basically have to know someone to get hired past 40 at some places. How do we as an industry recognize hard-won experience for what it is instead of worshiping the cult of the 25 yeard old startup employee working 100 hour weeks because they're basically learning on the job?
Like the difference between "bear" and "bare". Or maybe how to not keep the smart quotes from Word in the article so it doesn't barf on the screen under /.'s retarded lack of unicode.
I don't see a lack of professionalism - just standard lack of experience and youthful hubris. And only more projects and time fix those.
That is all.
working code. You have the choice of a non "cowboy" that produce pretty shit code and a "cowboy" who produce working code. Whom do you pick?
... Get off my lawn, damn it!!
For vaguely similarly slow scripting, there is:
Python. Tried and true. Worlds better than PHP.
Perl (it tends to be messy as hell, but it's certainly tried and true, and it doesn't have to be messy...)
There's no good reason to use PHP. There are bad reasons -- like "PHP is all I know", and "they made me use PHP" -- but there are no good reasons.
If you require real performance, you won't use any of the above. Performance is not their strength. They only way they can achieve performance is to either bring huge hardware to bear, or end up calling something written in a high-performance language. For tried and true, there is c and c++; for the risk-takers, looking into go might be called for.
And just so I don't have to bother to reply to the inevitable whining about c (which is always whining from those incompetent in c), yes, you'll need a good programmer, or several. There are plenty out there. Of course, you might have to stop looking in Islamabad, Mumbai and grade schools for your employees in order to find them.
I've fallen off your lawn, and I can't get up.
But, But, the abstract classes, strong typed iterators, functional programming and Html5.
Your over the hill with your paradigum of state machines, algorithms and time complexity.
I found this much more grating: ...objects that bare no resemblance...
There was the incorrect homophone - using "bare" where "bear" was the word intended - that failure obviously the first indication of a failing brain.
Repeated application of electroshocks and chocolate drops, as appropriate.
Saying older programmers can't perform as well as younger ones is just HR-speak for "older programmers don't put in free overtime." You can't change HR.
Don't stop where the ink does.
Hehe. Lost your job eh?
http://thecodelesscode.com/cas...
Ten Thousand Mistakes
âoeTen mistakes, a thousand times each.â
To be clear, I do not support the slander, or marginalization of anyone based on color, race, creed, or religion.. Moving on. So, I read through the comments, saw the ups and downs. But what's disturbing is the fact when those whom speak up regarding glaring issues, there is no support.. this is how most people see it, 1. employer wants to start an initiative to jump start productivity. 2. employer may not want to pay or does not have a budget for the expectations.. 3. leverage someone in the workforce to spear-head this project, regardless if they are qualified or not. Latteral move requiring no extra Budget outlay. 4. if it doesn't work, employer blames employee whom is laid off and then is also responsible for those whom acted on the advice and subsequently got laid off. Which opens other avenues.. 5. Now employer has several openings that can be filled by younger less experienced individuals (drones), that can try to do the work at a significantly reduced cost.. Long term looks shabby, short term looks great. yes I agree our profession is messed up to some degree, but does that mean that we should sweep incidences like this under the rug, and try to move forward with a short ter vision? Or, can we stop this vicious cycle and bolster a better future-vision for ourselves and those whom will undoubtedly come after our passing? What ever happened to the concept of "forward thinking?" Thank you all for your time and attention (or lack there of, thanks just the same)
I am strongly going on 50. The funny thing is, part of my work-time I code (mostly C these days) and for full consulting-rates at that, because what I code is apparently too difficult for the hot-shot cowboys. Of course, I also deliver useful documentation, analyze problems not caused by me, explain how web-technology works to "developers", explain different architectural, design and implementation options, do security analysis, etc. The very competent and helpful UNIX-guru on the customer-side is even 10 years older than me.
The part of the industry that is ageist and arrogant (i.e. the far larger part) is also very incompetent, and very, very stupid, because when it really hits the fan, they need some older guys (and the occasional gal) that actually have a clue how everything works and are not confined to their nice, sterile "Framework"-world, where problems do not exist and nobody needs to even understand how an URL is composed of components. This also nicely explain why so many IT projects fail or deliver vastly under-performing results: Lack of experience and the lack of understanding that comes with it. Amateurs.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Novice Programs that come out of College knowing everything and unwilling to learn from the experienced must come from Colleges.
That means the Issue is College professors. I assume the students were willing to learn from them.
And someone told them that experience has no value in this one profession.
'nuff said.
I'm 50 year old contractor. I have more work than I can take on, and experience that literally covers almost everything: from implementing 8-bit floating point on nanowatt embedded ARM MCUs, to electrical (board layout) debug, CPU architecture, CAD development, design (2 years of industrial design school), just about every interpreted language from the past 20 years, all the way to full stack webdev in the cloud with directed test, git revision, and deployment strategies. I enjoy watching Web2.0 evolve, yeah there are mistakes by the wayside, but it is an amazing time to be alive as a programmer. (I love that I don't even need to worry about provisioning hardware when I can deploy to elastic beanstalk and connect lambda functions for analysis.) Yeah, I can still dive into a lab and debug a noise issue on an 8-layer board, but I didn't stop learning new things 20 years ago.
This whining about youth ruining programming is just a bunch of pathetic old dudes who lost the fire to be a hacker, or probably weren't very good to begin with. While traveling through central america I met a 70 year old developer who has stayed current for four decades. I have zero sympathy: go get a different job if you can't keep up.
It is the evening of the day
I sit and watch the children play
Doing things we used to do
They think are new
I sit and watch as tears go by
-- Sir Mick penned this and it was made famous by Baroness Marianne a looong time ago
The moral of the story is that the youth are always inexperienced.
Anti-aging technology is not encouraged here. Slashdot posts must only promote eugenics and genocide.
While I think I’m on the right (old) side of this divide, I’d still take rather strong objection to the OP's statement that
“most of the concepts we bandy about as cutting edge were developed from 20 to 50 years ago.”
Fundamental changes during my career: .” The thinking and state management that goes into C/S programs and major database use is not just style—it’s fundamental to what the programmer has to think about in coming to a design.
- the change from DOS to windows programming: Under DOS you controlled the program’s structure and state—you knew, pretty much at all times, where the program was and what was happening. Windows, by moving to an event based approach rather than flow-of-control, really did change everything for most PC programmers. That’s also why in most early Windows programs so many dialogs were modal—the programmer’s inability to let go of the state of the program, and pay attention instead to the underlying state-of-the-object-model.
- Less fundamental than the previous, the change from desktop to C/S. Think of all those early apps that used flat files (the inheritance of mainframe programming) and the equivalent of “select * from
- The change from C/S to web- or cloud-based applications. Again, perhaps arguably less fundamental than the preceding, but still a fairly drastic change in the composition of the set of balls that the programmer must keep in the air—different things to pay attention to and different things to worry about. Perhaps not a change of fundamental principles--but very much a change to everything about the environment within which those principles need applied.
The obvious much touted transition I’m not listing here is single- to multi-threading. That’s a more limited technical issue that I don’t feel changed everything the way the above three did. Anything else I’m missing ?
Does that mean that the experience of the older programmers has little value? Absolutely not. But I do think that how much the industry has or has not changed is, fundamentally, irrelevant. The real issues are these:
- From the parent comment: “ industry love[s] the young because they are cheaper, and have yet not learned to say no to crap.”, and
- The full cost of crap is, more likely than not, beyond the controlling manager’s time horizon, and therefore of little interest.
AC
As a 50+ programmer, who has written lots of code in more languages than I can remember, I agree absolutely that experience counts for a lot.
Why am I not excited about that great new framework? Because it does the same thing that X did 2 years ago, Y did 5 years ago and Z did 10 years ago, and they were bloated crap too. Great steaming piles of half-tested code that introduce outside dependencies in our project that we cannot control.
Oh look, a new programming language. Everyone who ever enjoyed a compiler course has written their own programming language. Me too, whoopie. It's the libraries that come with the language that make it useful, not the syntactic sugar. It's the maturity of those libraries that make it stable and secure. I love playing with new languages, but I would never use a new language for anything important. WebAssembly? Ouch, please tell me they aren't serious, because I guarantee it will be used for productive websites far too soon. The articles about compatibility problems (websites depend now not only on your browser, but on your hardware), security breaches (sandboxed, riiiight), etc. almost write themselves, lacking only the specific details that we will hear all too soon.
On the process side: Agile programming? We called it iterative development 30 years ago. It has the same advantages and disadvantages that it always had. Scrum? Don't get me started. DevOps? Old hat with new buzzwords. If we keep changing our tools and processes every couple of years, it's no wonder we produce crappy products filled with bugs and security holes.
Chasing the new shiny is almost always a stupid idea if you are trying to produce a solid, reliable, secure system. Experienced programmers recognize crappy new ideas for the re-treads they usually are. Experienced programmers have probably built systems similar to what you need, and know how to do it. Experience counts for a lot.
BUT.
But, there is still competence. I have worked with "seasoned programmers" whose productivity was a net negative, because the rest of the team spent so much time cleaning up after them. Typically, these people have no idea how incapable they really are - they actually do view themselves as the seasoned, experienced programmer you just can't do without. Also typically, for whatever reason, you aren't allowed to remove them from your team.
And I have also seen young programmers produce some incredible stuff. Three of my bachelor students build a complete website, multilingual, including a custom CMS and custom rendering, along with most of an accompanying web-shop. For a customer with very specific requirements. In nine weeks. The code is still running today, 8 years later. The custom, multilingual CMS and the rendering system is rock-solid stable, running unchanged. Some of the code shows that they were only students - hard-coded constants and other sins - but overall it's better quality stuff than what 99% of the "seasoned" programmers could produce, much less in such a short time.
So, yes: experience counts, but so does skill. And the two are not always correlated...
Enjoy life! This is not a dress rehearsal.
Have you noticed there was Unix since the 70s, actually? What Windows? Many of us are using web and programming for the Web since the 90s.
Interestingly enough, you are still young and unexperienced to get the meaning of not taking crap. Interesting.
https://www.google.com/url?sa=...
I am in New Zealand and I have not seen age as an issue with the exception of pay expectations due to experience levels. I am 54 and no one asks if my knowledge is current, they just look at the work I have been doing recently. There is a shortage of skilled workers here so people are employed based on their skills/experience vs their pay expectations, age is not a consideration. My understanding is there is a skills shortage in the USA too so age bais seems counter productive. What about other countries? Maybe some Slashdot readers outside the USA and NZ would care to comment on what their country is like?
Its a clever pun you in sensitive clods!
Bare resemblance i.e. without resemblance...
Is it that the industry rejects older people with relevant experience? Or does it reject older people with the same lack of experience as the young, and the lack of growing up surrounded by technology in everything?
It seems that a 20 year old just out of tech school has a better probability of successful growth into a skilled programmer than a 40 year old just out of tech school would. The 40 year old has already demonstrated that for 20 years programming as a career wasn't critically important to them, and probably not even interesting. Now they probably just want a better job and programming is what they found.
I mean no criticism of older people getting into technology fields. I only mean to criticize those who fail to discern between a 40 year old with 20 years experience and one with zero.