Slashdot Mirror


Ask Slashdot: How Do You Deal With Programmers Who Have Not Stayed Current?

skaffen42 writes "The recent Ask Slashdot about becoming a programmer later in life got me thinking about a related question. How do you deal with programmers who have not stayed current with new technologies? In the hiring process, this is easy; you simply don't hire them. However, at most companies where I've worked, there are usually a few programmers who have been employed long enough that the skill-set they were originally hired for has become irrelevant. At the same time, they have not bothered to stay current with newer technologies. They usually have enough business knowledge that they provide some value to the company, but from a technical perspective they are a slowly-increasing liability. As an example: I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews; I suspect he dislikes people he considers junior to him making suggestions about how to improve his code. So, how do my fellow Slashdotters handle situations like this? How do you help somebody like this to improve their skill-sets? And, most importantly, how do you do so without stepping on anybody's feelings?"

509 comments

  1. Can't offer much by Anonymous Coward · · Score: 4, Insightful

    They usually have enough business knowledge that they provide some value to the company

    Normally at this point where technical skills have faded and the desire to "keep up" is gone, people move more into a non-technical role where their experience and lessons learnt can be put to better use than their fading coding skills. Obviously though if he has allowed himself to become a poor programmer with no interest in improving, he might be just as shitty in a new role. Obviously a paragraph is very little to judge a guy on, but he sounds like the kinda person that barring a major attitude change, is probably going to be looking (unsuccessfully) for a job in 5 years or so when his lack of current skills can no longer be covered up.

    1. Re:Can't offer much by Jimbookis · · Score: 5, Insightful

      Oh I dunno, maybe outside of work he has plenty of other crap to think about like raise a family. Once the kids come you can forget the countless hours hacking away learning new things yourself for the sake of it like you used to.

    2. Re:Can't offer much by Anonymous Coward · · Score: 1

      Depends on the size of the company. I know that where I work, some of these people are considered the best in the company due to long-ago successes. Similarly, there are numerous terrible developers that get credit for some simple, immediate issue being fixed even though their fix breaks a lot of other things in hidden ways, which they see none of the fallout for because it usually appears later.

      If the company is big enough, then they will eventually promote him to the other role that you described. That's what large, bureaucratic organizations do: they promote stupidity because it's easier/safer than firing (or laying off) people.

      Now, I do know plenty of developers that cannot write concurrent code, but _some_ of them have other decent qualities. As long as people understand other people's boundaries, then they should be able to give appropriate tasks. Seeing as the other person is the senior developer, it may be the case that he is also assigning the tasks, which really could mean doom until he is somehow removed.

    3. Re:Can't offer much by penix1 · · Score: 5, Insightful

      The alternative is to offer him the training he is supposedly lacking. If he refuses then that is grounds for dismissal. This is my biggest beef with the corporate world. They want you current but do nothing to provide you the necessary tools or the time to stay current.

      --
      This is a sig. This is only a sig. Had this been an actual sig you would have been informed where to tune for more sigs.
    4. Re:Can't offer much by Jimbookis · · Score: 2

      > They want you current but do nothing to provide you the necessary tools or the time to stay current. Every single damned company I have worked for (all engineering and IT) have all insisted any new learning is to be done on your own time and expense, even if it benefits the organisation in the long run. Oh, but they still expect you to keep on top of the latest and greatest and contribute to the bottom line at all times.

    5. Re:Can't offer much by Musc · · Score: 2

      Seriously? How is this even legal? If you are working for your employer, whether in an actively productive role or in training, it is part of the job and should be considered as such. Now if you are on a salary they might have the legal right to ask to work more than 40 hours a week to make this happen, but then it isn't really on your own time, they just want your workday to be longer. And what do you mean by "at your own expense"? Can't these kinds of skills be learned for free from any computer with an Internet connection?

      --
      Hamsters are at least as feathery as penguins. HamLix
    6. Re:Can't offer much by wmelnick · · Score: 2

      There is a not a single language used in the last 30 years that is not still being used somewhere. There are many businesses out there still running on RPG, COBOL and FORTRAN. If that person is good at what he knows, he will always be able to find a job. It may not be a "sexy" job to the 20-something crowd, but if he had a family, a job where his coding skills are appreciated, that only demands 9-5, is probably far more attractive to him anyway. I have seen many people throughout my career move into companies like that and be perfectly happy when I switched over to management instead.

    7. Re:Can't offer much by Anrego · · Score: 5, Insightful

      In my (admittedly limited) experience, that's exactly why people get out of the trenches and go for jobs that rely more on them knowing what the customer wants than knowing how the latest toolstack/middlewhere/design style.

    8. Re:Can't offer much by DuckDodgers · · Score: 5, Insightful

      I have several young kids, so I do most of my extra learning on the job and by listening to tech podcasts during my commute. There's http://twit.tv/show/floss-weekly and http://se-radio.net/ and dozens of others. Instead of switching browser windows to Facebook while I'm waiting for a large file to move between servers, I switch to my RSS feed reader that subscribes to tech sites. And yes, maybe once or twice a year I'll buy a book on a new language and technology and force myself to read through it and toy with the examples. Figure I'm sacrificing maybe 10-20 hours of my free time for that every six months.

      But more importantly, someone that's not keeping up with the latest trends in software development is screwing themselves. I can build the Javascript for a web page without using jQuery - but it would take me three times as long, so why would I want to? I can write the server-side of a REST application in Java and Struts 1 instead of dozens of newer options, but why would I do that? I can set up a test environment or two on individual physical servers instead of having six different test environments running in virtual machines, but that just means testing runs three times slower, so what have I gained?

      In this industry, deciding you don't need to learn new things just means you're content to waste your time and the time of your colleagues.

    9. Re:Can't offer much by Xest · · Score: 3, Informative

      That's fine and I fully agree that's a legitimate reason as to why many older developers do struggle to stay current.

      But said older developers must also recognise that that's also why they're having problems staying employed and finding jobs, they then blame ageism when in reality the problem is a life choice they have made which they do not wish to suffer the consequences of.

      The fact is you cannot give up staying current and remain a developer, the field moves too fast so you either need to jump into something like management, or accept that the inevitable result of unemployment has nothing to do with ageism and everything to do with the fact that refusing to stay current in the software development field, whilst also refusing to change career.

      It's like the underskilled Westerner who threw away all the benefits and advantages the Western education system offered him only to then blame harder working immigrants that are superior employees to him because they actually want to succeed when he can't get a job. It's a blame game, but you make your choices and have to live with them, you can't blame ageism, immigrants, or whatever for the inevitable consequences of your own choices.

      There's nothing wrong with raising a family instead of staying current as a developer, it's a perfectly fair choice, just don't then be surprised when the real world will let you no longer be a developer as a result of you opting to do other things than stay current. The world doesn't owe you the job you want to do in the way you want to do it, it's up to you to figure out what the world wants and what you feel you can and are willing to offer it that it needs.

    10. Re:Can't offer much by Intrepid+imaginaut · · Score: 1, Insightful

      If you don't know what the customer wants you have no business taking their money.

    11. Re:Can't offer much by Dunbal · · Score: 2, Insightful

      Money is given, not taken. Unless of course you're a bank or the government.

      --
      Seven puppies were harmed during the making of this post.
    12. Re:Can't offer much by KingMotley · · Score: 2

      The answer is simple. Hire older programmers who are still at the top of the game. You will pay a bit more, and it's not fool proof, but at least you are hiring programmers who have demonstrated that they continue to remain at the top over time. Hiring younger programmers who are recently out of college and know the latest technology buzz is fairly easy. Most of them stop their learning there once they get out into the real world and have to decide their priorities.

    13. Re:Can't offer much by Intrepid+imaginaut · · Score: 5, Insightful

      There's nothing wrong with raising a family instead of staying current as a developer, it's a perfectly fair choice, just don't then be surprised when the real world will let you no longer be a developer as a result of you opting to do other things than stay current. The world doesn't owe you the job you want to do in the way you want to do it, it's up to you to figure out what the world wants and what you feel you can and are willing to offer it that it needs.

      It's perfectly doable to raise a family while staying current on programming languages. It's not as though the underlying principles ever really change, which is why experienced programmers can pick up new languages with consummate ease once they grok the underlying concepts. What you're talking about are idiots who think 'the world' is middle managers who will strip mine your life to get the project done a week earlier. Newsflash, older programmers aren't less capable, just less willing to be fed a shit sandwich than younger programmers.

    14. Re:Can't offer much by Anrego · · Score: 1

      Obviously everyone on a team should have a decent understanding of what the guy paying the bills wants, but keeping track of the exact details, maintaining the relationship, and pushing new business is a whole different job description.

      Maybe in a small shop the programmers can just do everything, in any reasonably sized venture things like accounting, marketting, and dealing directly with the customer are probably filled best by people who are specifically dedicated to those roles.

      At minimum, having someone who has a lot of experience dealing within a particular industry, and while not knowing the absolute latest tech, has enough tech background to know whats possible is usually a good fit for that kind of role.

    15. Re:Can't offer much by Intrepid+imaginaut · · Score: 0

      The entire sales and marketing industry is built around taking money. Maybe people don't think it's being taken but that's what's happening.

    16. Re:Can't offer much by Anonymous Coward · · Score: 1

      His attitude does sound like it's shit but "not staying current with newer technologies" is also crap.

      1) Programming is programming. Unless you're working in AI or other heavy math there's not all that much that changes between new and old technologies.

      I can't speak to his abilities but for me I can pickup a new technology on the fly and be productive in it in 1-2 weeks.

      2) If he isn't capable of doing the job as required then either re-position him or lead him to the door. The job requirements are the job requirements - no one is exempt.

    17. Re:Can't offer much by Anonymous Coward · · Score: 0

      Was he the original programmer of Atlas or ENIAC?

      Concurrent code, revision control systems, and Fagan reviews are not new.

    18. Re:Can't offer much by gmuslera · · Score: 1

      I learnt newer technologies more leaving companies than staying in them. Usually inertia make it hard to try new things, they takes time and risks, so the dynamic forces focusing in internal business knowledge and deeping down in the technology in use there (that may be new for you at the start, but with time it becomes old). Is not so much workers fault but company culture dynamics, is hard to learn something new while keep doing all day things as usual to keep all running, specially if that new thing implies changes on how you see things or approach problems.

      To defeat inertia, usually company promoted inertia, is needed effort, maybe for those change resistant people to free them for a time of keeping all running and focusing just on learning something new, at their own rate. That time investment could be rewarded with people that both is good at the new technology and with internal business knowledge.

    19. Re:Can't offer much by Endovior · · Score: 4, Insightful

      No, the sales and marketing industry is built around making people want to give you money. Fraud at worst, not theft. This is different from those industries based around taking money, which includes banks, governments, burglars, and extortionists.

    20. Re: Can't offer much by Anonymous Coward · · Score: 2, Insightful

      He probably writes concurrent code as well as the new kid, but recognizes he can't debug it well enough to stand behind it.

      Young kids get stuff done.

    21. Re:Can't offer much by Intrepid+imaginaut · · Score: 0

      Whether you take it at the point of a gun or with a slick pitch, it still gets taken, not given. Charities get given to, businesses take money. What makes you think taking money in this way is illegal?

    22. Re:Can't offer much by Jimbookis · · Score: 1

      There's nothing wrong with raising a family instead of staying current as a developer, it's a perfectly fair choice, just don't then be surprised when the real world will let you no longer be a developer as a result of you opting to do other things than stay current.

      I agree. At my age I am at the point where I want development to be more of a hobby and do work activities that don't involve sitting in front of a CAD tool, CRO or debugger any more anyway. Time for a career change? Probably.

      The snotty little wet-behind-the-ears original poster needs to show some obviously lacking maturity and get some perspective instead of just whining like a little spoilt bitch.

    23. Re:Can't offer much by ATMAvatar · · Score: 1

      And what do you mean by "at your own expense"? Can't these kinds of skills be learned for free from any computer with an Internet connection?

      That depends largely on what it is you need to learn. Most (all?) programming languages are free to learn, but many technical standards (e.g., ANSI, IEEE) are not.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    24. Re:Can't offer much by cytg.net · · Score: 2

      I keep up with current stuff, latest and greatest for my job area, Spring, Hibernate, different web stacks, .net4/.5 etc (consultant, cant sell myself if i dont).. But it is not like I see the all good and true in these techniques .. What I see is the industry "trying" to convert programmers into frameworkers, and i suppose thats in the interrest of some big corps, but I dont see them improve on productivity at all. It is just shifting the complexity to another area. Most often an area of more "locked in". In regards to webapps, in context of java, what has truely been a game changer since servlets and stored procs? A lot of buzz and hype and no real benefit to the contractor. (yea, I know, I am old like that).

    25. Re:Can't offer much by Anonymous Coward · · Score: 0

      Middlewhere?
      Is that someware between softwhere and hardwhere?

    26. Re:Can't offer much by sdsucks · · Score: 3, Informative

      Spoken like someone who doesn't have much of a fucking clue... Seriously, son, you don't think ageism is a big problem? Let me assure you that it is - and it applies to far more occupations than programmers.

      Also, your thoughts on immigration and "underskilled Westerner" are not very developed... I have North Americans and foreigners working for me, both in North America and outside of it. Sometimes, it's about western workers being incompetent - but just as often, it's about companies simply cheaping out.

    27. Re:Can't offer much by Antique+Geekmeister · · Score: 4, Insightful

      Some of we older workers try to stay current. It can be awkward and expensive in productive time and energy. In fact, as an older programmer, I've often used age and treachery to defeat youth and skill in the kind of "my new tool is better than your old tool" challenge so common in the workplace. Thee are few moments as pleasant for an older engineer as when a younger engineer says they've found an exciting way to do something, and you can not only prove the old way is better, but, but you can point out your own signature on the documentation where it says why you rejected that approach.

      Fortunately, it's often easy for us to stay abreast of new software fads by tying the new technology to its ancestor and bringing that experience to bear. But if this programmer is not interested in evolving their skills to meet the project or the company's needs, then let that employee know personally. Please don't just insult them behind their backs, or ask Slashdot advice about them. Let them know, to their face, that their difficulties with code review or source control make it harder for their work to be accepted or their work to be useful. If you have to, bring it to their manager.

      And if you can, help them find a new role or a new job that is better suited to their skillsets. I've certainly worked with, and even once managed, someone whose core computer language skills were about to be phased out at our company. I let him know we'd have a problem, offered some access to retraining, and was generous with time of for him to do interviews elsewhere and with recommendations. He was quite good with the older skillsets, just not that excited about abandoning almost 20 years of experience and knowledge to start over. The last thing I heard was that he'd retired from the new role he found, and he still does related open source projects for the challenge.

    28. Re:Can't offer much by fnj · · Score: 4, Interesting

      I really don't get this POV. Businesses don't have the POWER to take your money, save for total monopolies with some product or service you can't do without - and these can't exist except at the pleasure of the government. They have to convince you to give it to them. If you let yourself be brainwashed, there is nobody else to blame.

      Now, governments CAN actually take your money. That is a completely different situation.

      None of this is to say that businesses do not engage in corrupt and evil practices just like governments - but they can't "take" your money.

    29. Re:Can't offer much by Anonymous Coward · · Score: 0

      I agree the best reason to stay up to date is to make your life easier.

    30. Re:Can't offer much by Cammi · · Score: 1

      Good thing this is not true of all Employers in this industry ...

    31. Re:Can't offer much by canadian_right · · Score: 4, Insightful

      Normal banks do not take money from anyone who doesn't want their money taken. They lend out money and you pay it back with interest. No one forces you to take out a loan.

      Some commercial banks will charge huge fees for services that you don't need and don't make you any money.

      Governments do not take your money. You vote them in and they collect taxes to do the stuff you elected them to do. If your guy didn't win, well that can suck, but its part of the whole "democracy is the worse form of government except for all the rest".

      --
      Anarchists never rule
    32. Re:Can't offer much by FuzzNugget · · Score: 1

      I can build the Javascript for a web page without using jQuery - but it would take me three times as long, so why would I want to?

      So that users don't have to wait three times as to load every page?

    33. Re: Can't offer much by emilper · · Score: 2

      he probably knows it's not a good idea to write concurent code when it's not absulutely necessary, but the snotty kid thinks the older guy avoids using threads because he does not know how to do it

      young kids have not seen race condition between upgrades to the fancy "new" libraries the want to use, and have not yet realized that understanding the business you write code for is a lot more important that knowing the API to the last internet fad

    34. Re:Can't offer much by Lumpy · · Score: 1

      "The alternative is to offer him the training he is supposedly lacking. If he refuses then that is grounds for dismissal."

      In what jobs does the new kid fire senior employees? "Freddie here is fresh from college and is the new trainee, everyone watch out because I gave him the power to fire any one of you."

      I am so glad I dont work in the bizzaro-world that you do.

      --
      Do not look at laser with remaining good eye.
    35. Re:Can't offer much by Dunbal · · Score: 0

      Oh you've never run into banks that come up with brand new fees. Or banks that go under, Cyprus style, and take your money with them. Banks can take your money involuntarily sometimes.

      --
      Seven puppies were harmed during the making of this post.
    36. Re:Can't offer much by Anonymous Coward · · Score: 1

      That's why you hire a fucking engineer.

      Engineer's train themselves, MIS guys whine about what they don't know.

    37. Re:Can't offer much by Wallslide · · Score: 1

      It's perfectly doable to raise a family while staying current on programming languages. It's not as though the underlying principles ever really change, which is why experienced programmers can pick up new languages with consummate ease once they grok the underlying concepts. What you're talking about are idiots who think 'the world' is middle managers who will strip mine your life to get the project done a week earlier. Newsflash, older programmers aren't less capable, just less willing to be fed a shit sandwich than younger programmers.

      The underlying concepts do change. People make the mistake of equating programming syntax with software development, which just isn't the case. Sure, syntaxes might be similar, but the concepts you have to deal with are rapidly changing. Going from imperative to declarative programming models. Worrying complex caching issues. Understanding GPU programming models, shaders, and using matricies to transform vector spaces. Asynchronous programming models. Concurrency models. Strategies for distributed state propagation. Various database technologies and their pros and cons. Mobile application development involving complex state management, and having to worry about power efficiency.

      You can't just think about development as working with code, because you're inevitably using that code to interface with something, to do some work. Working with new interfaces often require you to understand new underlying concepts. Even if the syntax for manipulating those interfaces works the same as it always has, the logic requires you to stay on your toes, and to learn.

    38. Re:Can't offer much by sycodon · · Score: 2

      So...you want me to work a ten hour day AND learn the latest bullshit fade language after hours.

      Fuck You sonny boy.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    39. Re:Can't offer much by fyngyrz · · Score: 2, Insightful

      No one made you hand over your money to any bank. You made a free choice, there was no taking; you're just screaming about the consequences of that choice because it turned out to be a poor one, for whatever reason.

      You are responsible for making the best choices possible. If you don't, your results will not be optimal. That's life. At the next level, you're responsible for learning from poor choices you made. If you don't, likely your results will continue to be less than optimal.

      That's what freedom brings to the table: Opportunity and risk. Don't want a particular risk? Fine, in the specific instance you mention, simply don't put your money in a bank. Of course, now there are other risks. Or, perhaps, research the venue before you put your money anywhere. Imagine that!

      --
      I've fallen off your lawn, and I can't get up.
    40. Re:Can't offer much by sycodon · · Score: 1

      It's more of knowing how the business works.

      It's know what the hell the Purchasing Manager is saying when they say they need a Purchase Price Variance Report.

      It's knowing what to do when the Accountant says that something happened to the GL Transactions and he can't close the month out,which has to happen in 2 days in order for production to continue.

      It's knowing the different between a Dock Date, Promise Date and a Required Date.

      It's knowing how to take all these fancy new techniques and languages and make them worth bothering to have someone learn in the first place.

      It's these people who get paid more and have more of impact on the business. Dweeb version 101 and his toolbox of shit mean nothing unless they can be used effectively to run the business.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    41. Re:Can't offer much by AaronLS · · Score: 0

      It's the difference between persuasion and coercion. If you are gullible enough to believe everything a sales person tells you, and CHOOSE to give your money despite that, then that's your choice. You weren't powerless.

    42. Re:Can't offer much by Anonymous+Brave+Guy · · Score: 2

      If you ever reach the top of your game as a programmer before the day you retire, you're either very unlucky in some part of your life that is probably unrelated to work or you're just doing it wrong...

      Also, those younger programmers who are recently out of college probably think they know a lot of clever technologies, but mostly only because they're so inexperienced that they don't even realise how much they still have to learn yet. The kind of place where ageism is a serious problem for professional developers doesn't hire the young kids because they're ninjas with mad skillz, they hire them because they're still naive enough to think that working silly hours for abusive management is going to result in a lucrative career and/or personal happiness. The reality is the opposite, and those youngsters will themselves just be discarded in favour of a new generation when they burn out.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    43. Re:Can't offer much by sycodon · · Score: 1

      A huge number of business are still running RPG, COBOL and FORTRAN. Why? Because the stuff they wrote with it does what it is supposed to do and has been debugged for years and years and so is almost bullet proof now.

      And the biggest role of software in most companies if running the business. Imagine all the code behind Netflicks. Probably done in the latest and greatest frameworks and languages, etc. But you can bet that their business systems are probably in a large Cobol package like SAP.

      Technology comes and goes, but an Invoice will always be an Invoice.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    44. Re:Can't offer much by nedlohs · · Score: 0

      So no charity has ever used a slick sales pitch?

      You can assign random nuances to words that no one else uses, just don't be surprised when no one understands what you are saying.

    45. Re:Can't offer much by nedlohs · · Score: 0

      In order for either of those things to "take" you money, you would have had to given it to them in the first place. You made the decision, if it was bad that's your problem.

      The US government seems to take money out of my pay, if my reading of my pay slip and of the various forms I file at tax time is any indication. I would be deported if I tried to vote (well if I got caught anyway), or maybe thrown in prison for a while and then deported I guess. I'm not saying I don't have a choice - I can leave anytime I choose, but I certainly don't vote them in nor did I elect them to do anything.

    46. Re:Can't offer much by dalias · · Score: 0

      They don't have the power to take YOUR money. They have the power to take SOMEBODY's money. Whether or not their slick pitch works on you or not has no bearing on whether it works. You are tiny and insignificant.

    47. Re:Can't offer much by jythie · · Score: 0

      That is no different then a telecom or utility or anyone else someone has an existing contract with. Or in the case of banks going under that is the risk of investment... they are not 'taking your money', the person gave the bank their money and accepted some risk with doing that.

    48. Re:Can't offer much by jythie · · Score: 4, Insightful

      I would say it is less that concepts change, and more that concepts come in and out of fashion. Part of the trick is figuring out what the new words for the rediscovery of some old concepts are.

    49. Re: Can't offer much by jythie · · Score: 2

      Yeah, that is something I have found rather frustrating.... new programmers rediscovering why older programmers do not do things that they think are obvious because nothing has gone wrong yet. Things seem 'safe enough' until your first big 'this might get you fired' or 'might get the whole team fired' screw up, then you get a lot more conservative about things like concurrent code.

    50. Re:Can't offer much by jythie · · Score: 1

      I think the idea is that if the person is struggling with current technologies then management needs to step in and handle it, not the new kid.

    51. Re:Can't offer much by russotto · · Score: 2

      Going from imperative to declarative programming models.

      Oh, are Fortran and Lisp still fighting it out?

      Worrying complex caching issues.

      1960s

      Understanding GPU programming models, shaders, and using matricies to transform vector spaces.

      Pioneered by SGI in the 1980s and 1990s. Except using matrices to transform vector spaces, which has been around longer than the computer.

      Asynchronous programming models.

      Ancient.

      Concurrency models. Strategies for distributed state propagation.

      1980s at the latest.

      Various database technologies and their pros and cons.

      As old as databases.

      Mobile application development involving complex state management, and having to worry about power efficiency.

      A novel combination I'll admit... app programmers having to worry about what embedded programmers were worrying about all along.

      Anyway, the details have changed on all of these things, but most of these don't involve new concepts.

    52. Re:Can't offer much by SydShamino · · Score: 2, Funny

      If you let yourself be brainwashed, there is nobody else to blame.

      That's what I tell all eight year olds who spends their allowances at McDonald's. It's clearly their own faults they let themselves be brainwashed by advertising, and the only thing they can blame is their undeveloped brains.

      --
      It doesn't hurt to be nice.
    53. Re:Can't offer much by Anonymous Coward · · Score: 0

      a large Cobol package like SAP.

      You clearly know what you're talking about.

    54. Re:Can't offer much by Anonymous Coward · · Score: 1

      What do you mean by free?

      Am I going to have to purchase a copy of windows and a microsoft developer toolkit?

      My own mac to write IOS apps?

      An extra phone to safely test android apps without screwing up my regular phone?

      Let's not even go into the standards that are actually all licensed to hell...

      And let's talk a bit about efficiency. I don't think I have a right to optimal or best effiencies...

      But let's suppose... I can pick up a new language in a week.

      That's not the same as picking up O'Reilly on it, one of the 'X hacks" books, and seeing some idiomatic examples by an author.

      It's not the same as going to a 3 or 5 day conference and sitting down and having someone discuss the evolution and history of the language, why a function is in there, when it will be deprecated, what the workarounds are, and what currently accepted best practices are. And by the way, here's a link to all of the relevant mailing lists if you think this concerns you.

      In short -- just because you can immerse yourself in something fully on the Internet -- does not make it available in anything more than a primitive literal sense. Which is still better than nothing, but far short from investing in honest training.

      Look...if I want to /really/ learn a language -- I look up the author and read about their life. I check the grammar... BNF... I read the bison if they have it. This helps me grok the syntax and accepted vocabulary. But even then it doesn't show me practically how places do it. You then need to read the big projects and look at some of the idiomatic code -- but without actually having peers and colleagues to talk to that know the dialect -- this becomes a profoundly difficult task.

      And if you have no clu what I'm talking about... I won't dare call you a bad programmer, but I would suggest you are a less than sociable one, whose colleagues may not much enjoy your code.

      To begin to pick up a new language...in a timely manner... starts at $150 in books purchased. Assuming you don't need hardware. It doesn't end for months -- but at the very least, you need to develop a network of peers and have spent some time reviewing idiomatic and anti-idiomatic examples.

      The antithesis of a language is the skilled computer scientist capable of honestly looking at a language, stating "it's turing complete, of course I can do X" and then...does it. That shows technical proficiency, but no craftsmanship.

      The ability to get a job done may be the minimal (because most management and HR is so horrifically incompetent they can't even reliably hire people capable of doing a programming job) -- but it's not sufficient. Nobody wants to live in a house made of cinder blocks or rolled steel. That it meets needs for habitation is irrelevant. So to with software -- the ability to build such things is not only uninteresting, but they are unpleasant to maintain, or to utilize.

      People who wrote languages to solve a problem often intimately understood their problem. People who use them to solve other, dissimilar problems are by definition often capable of solving them by...mathematical proof. But they still do so at their own peril.

    55. Re:Can't offer much by Samantha+Wright · · Score: 1

      Accepting money. A business "taking" money is a phrase in American English. Other receptive uses of "take" include "any takers?" (anyone interested) and patient intake in hospitals. If someone says "you should not take their money," that is to imply you should not, in good conscience, accept them as a customer because it would be immoral.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    56. Re:Can't offer much by Samantha+Wright · · Score: 1

      Not every member of a team should have the responsibility to be aware of everything going on with a project. That's too much to communicate continually. The first thing taught in software engineering courses is about translating the customers' needs into manageable requirements specifications, precisely to alleviate that exact situation.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    57. Re: Can't offer much by Anonymous Coward · · Score: 0

      "He hasn't bothered" means you are looking at it wrong. How about the idea that, as an employer, you should be giving him training?

    58. Re:Can't offer much by Intrepid+imaginaut · · Score: 1

      No, you appear to have confused customer requirements with project management, breaking a project down into workable parts is just part of the process of developing programs, the requirements should be long settled by the time you reach that point.

    59. Re:Can't offer much by Xest · · Score: 1

      To be fair, there's often a multi-decade gulf between when concepts were first conceived and when they became part of mainstream development, so I don't think the GPU is necessarily wrong in the face of the examples you've given.

      The concept of the GUI for example was originally built late 50s, early 60s, but they weren't popular and weren't commonplace as a skillset required for programmers until the mid 80s.

      Neither Lisp or Fortran are declarative for what it's worth also, though SQL is really a declarative language and so it is again an old and well used concept it has seen very different use in modern development such as through use of attributes in C# and annotations in Java. These are things that are trivial to learn to use but sometimes not so trivial to learn their inner workings and extent and implement your own, which I suspect is the sort of thing the GP is referring to.

      When he talks about database technologies I suspect he's referring to NoSQL solutions also, many of which are actually based on genuinely relatively new concepts and algorithms, and when he talks about pros and cons I suspect he's referring to when to use an SQL RDBMS and when to use a particular NoSQL solution.

      I agree that some foundational knowledge never changes and does help you learn new things faster without a doubt (which means older developers have an inherent advantage if they are dedicating the same amount of time to learning new stuff as famililess programmers do), but the GP isn't wrong and I disagree with the GGP - if someone thinks that it's just about learning new syntax and stuff then they're illustrative of the sort of programmer that doesn't actually realise how out of date their skillset really is.

    60. Re:Can't offer much by miketheanimal · · Score: 1

      In an ideal world the company would allow people to spend time looking at new technologies and stuff, otherwise you rely on employees doing it in their own time - in which case the company can't impose any direction - or on hiring new people - in which case the new people don't know about the company's business and systems. Of course, that generally doesn't happen because the bean counters are too stupid. Me, I'm self-employed, and some of the time I bill to clients is to cover looking at new stuff. I figure they are interested in what they get for my billing, and not precisely how I get there. No-one has compained yet.

    61. Re:Can't offer much by philip.paradis · · Score: 1

      That's a rather poor example. In the case you've cited, parents are responsible for what their children are exposed to, and should be the most significant force in their lives of those children when it comes to offering alternatives to things like fast food. We don't generally watch television in our household. Also, I don't know many eight year olds who are permitted to run around town by themselves. Perhaps it's different where you live. Then there's also the angle of allowing children to make their own decisions at various stages, but with open discussion of what's happening in lives of those children. I'm a parent, and I practice what I'm preaching here. Are you a parent?

      --
      Write failed: Broken pipe
    62. Re:Can't offer much by Xest · · Score: 1

      I think your post highlights the sort of person I'm referring to, if you think new technology is simply just new languages then you're completely missing the point.

      It's not simply about new languages, it's in part about new languages, but also new languages that use old paradigms you may never have used, that use them in new ways, it's about new frameworks and new architectural concepts. Make no mistake, these frameworks are really quite big and complex and they do take a lot of time.

      The fact is there are a lot of jobs out there where you can't really be great at them and still have time to be a decent parent, these things range from being special forces to being an olympic athlete, and yes, being great at programming is one of these things. There's simply too much to learn and it's changing too fast to keep up if you cannot be entirely dedicated to it.

      I absolutely agree that an older programmer isn't less capable and I never suggested any such thing, in fact, an older programmer has a far greater advantage if they put in the same amount of time to learn new things as a younger programmer, but that "if" is where the problem lies - a lot don't, their priorities have changed towards family, and that's okay, that's not a bad thing at all, but again it's one of those situations where you must realise you can't have it all, and if the amount of time you put in is simply to learn the syntax of new languages then you shouldn't be surprised when someone without a family (they don't necessarily even have to be younger, they may be older) puts in even more time, and learns not just the new syntax, but the new techniques, the new algorithms, the new frameworks, and the new architectural options they all bring and then is in a more solid place than you career wise.

      FWIW, I've never met such strip mining middle managers, but then, I've also never worked at EA. The fact you had to say "older programmers aren't less capable" though when that's not even the crux of my argument (opting to raise a family over staying current is, and that's really not an age specific issue, though it does correlate with age) does suggest you have some kind of persecution complex on the issue.

      It's really just a question of priorities, some people prefer to raise a family, some people love programming more than even that basic human instinct, I take no issue with either of those groups of people as I've always been in the latter, but suspect before long I will be in the former. The only issue I take is with people who believe they have some inherent right to have both, it would be nice, but it's not that easy and not that simple, and it's the unfortunate reality of the situation. It makes far more sense to accept that reality and plan for the inevitable impact changing focus to have a family will have on your career than it does to pretend it doesn't work like that then cry ageism when it does have an impact on your career. One final note is that there are still plenty of jobs out there where you don't even need to update your skillset (or at least wont before you hit retirement), so even if planning for a family means getting out of one where you do into one where you can cruise by on your existing knowledge until retirement then that's fine, that's a great plan too. Just sitting in a job where you'll often even have, as part of your job description/contract a requirement to stay current and then not doing so then crying discrimination when you're not fulfilling the requirements of the job is an absolutely retarded option though - that's all I'm saying. Having a family absolutely is a life changing event in many ways, to pretend it isn't and that it's all business as usual is stupid.

    63. Re:Can't offer much by myurr · · Score: 1

      Someone needs to teach them that lesson at some point in their lives. It'd be nice if it were their parents. By definition advertising only works if you allow it. They are giving you information that you process, you evaluate, and you either accept or reject. The best advertising should be able to achieve if people are critical of all they see is brand awareness, and it's your choice to then blindly trust that brand or do things like check out other peoples experiences online.

      The fundamental concept of the parent post, that advertising only works if you personally let it, is true. Your mind is your own and you can choose what to believe and what to distrust.

    64. Re:Can't offer much by Samantha+Wright · · Score: 1

      I'm not talking about project management, no, although I understand how "everything going on with a project" could be misconstrued. I specifically meant customer expectations. The "continually" part was about new requests from the customer, not implementation progress or even the formal requirements specification.

      Your first post strongly implied that you believe every developer on a team should be directly aware of all of the clients' expectations. That's just as unreasonable as expecting everyone to know the whole design, and I get the feeling you know that. Perhaps you intended something else?

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    65. Re:Can't offer much by Intrepid+imaginaut · · Score: 1

      Your first post strongly implied that you believe every developer on a team should be directly aware of all of the clients' expectations. That's just as unreasonable as expecting everyone to know the whole design, and I get the feeling you know that. Perhaps you intended something else?

      I wouldn't view it as being unreasonable at all - not that every dev needs to be clued in to every detail of what everyone else is doing, but that they should have a good idea of what the project is all about and where they fit in that picture. That way developers can build towards the project goal rather than chipping away in a blind cubicle (they might see something the spec writer didn't think of and catch it on the fly), can offer suggestions to help and improve the project, and generally have a heightened sense of purpose, which leads to among other things greater job satisfaction.

    66. Re:Can't offer much by Wallslide · · Score: 1

      Parent here. I wanted to emphasize that from the point-of-view of a particular role, such as Web developer, the necessary-to-understand concepts and skills can change drastically. Think about when that role started, how all one needed was knowledge of simple HTML, and some file-serving mechanics. Now to write an application, one must understand so many new-with-respect-to-web-developers-of-old concepts and skills that someone who had pigeonholed themselves into a specific role could quickly become obsolete. One cannot say that a web developer from 10 years ago can just apply their knowledge to writing webgl fragment shaders for implementing a webgl GUI interface because the 'underlying principles never change'. Sure there were people doing those sorts of things at SGI in the 1980s and 90s, but they sure as hell weren't web developers.

    67. Re: Can't offer much by LostMyBeaver · · Score: 2

      I don't know, I found that having kids gave me far more time to keep my skills up to date. Though, after having user CVS, Subversion, Mercury, GIT and more, sometimes the issue is that having gone through so many stages of evolution, it's hard to unscramble the different tools. In my case, it often is a lack of patience with the new tools with watching the same damn mistakes being made over and over. I really like GIT, but when I was forced to work with bazaar, the tool of choice from the 22 year old tool hotshot, I constantly found myself baffled senseless when I'd try to check in code and I'd find myself having to check out and repatch manually to check in. Personally, I felt it was less an issue of me specifically and more an issue of a tool which takes the enacts route of making 10,000 things easier, but removed the simplicity of the basic function of the tool which was the ability to check out and check in.

      I think often younger programmers come in with new tools such as python and a dozen other new scripting languages, but some of us have been scripting or coding in thirty different languages over a period of decades. It's not that we lose the interest in learning new tricks. It's that we want to see that there is actually value in the new trick before wasting time learning a tool which might simply not offer any benefits. Personally, I finally bent and learned python (which is still consider sloppy as hell) and the some numb nuts insisted we needed Ruby too. After a few iterations of that, you end up with a code vase employing 10 languages and when the kids who added that code move onto their next job, we need to replace them with a new guy who now has to learn 9 new languages just to get started. Sometimes limiting yourself to a two or three lesser tools which take more work is more efficient in the long term.

      I agree with the original post that people need to adapt to new methods and technologies. Someone who isn't interested in test driven development or peer programming or code review in a modern market is pretty much useless.

    68. Re:Can't offer much by Anonymous Coward · · Score: 0

      That might have to do with the term "web developer" back then (and probably mostly still today) making about much sense as calling an editor at a publisher a "print developer".

    69. Re:Can't offer much by Anonymous Coward · · Score: 0

      Admittedly a lot of frameworks are big and complex because they are shit and written by people not even having the same understanding of the concepts they are trying to implement as some people had 15 years ago.
      That is part of the reason why some people don't learn to bother with learning new things. Yes, if you actually want to use it you have to get properly familiar with it. But if you don't actually need it right now, why would you want to learn the "now even crappier" reimplementation of what you worked with 10 years ago?

    70. Re:Can't offer much by Cederic · · Score: 0

      Governments do not take your money. You vote them in and they collect taxes to do the stuff you elected them to do. If your guy didn't win, well that can suck

      Yeah, it sucks because the fuckwit that did get voted in TOOK my money and fucking wasted it trying to buy votes to get re-elected.

      See also: The UK's record (and expanding) Government debt levels.

      Don't even fucking pretend this is in any way my fault. Except that I didn't just kill the twats to save the rest of the country. Sorry about that.

    71. Re:Can't offer much by Cederic · · Score: 1

      Unfortunately the guy with the business domain knowledge and no interest in modern software engineering condemns the organisation to never evolve.

      Flexibility drops, cost of change goes up, customer service gets impacted and the company is seriously damaged as a result.

      I've seen it happen, and I'm fairly sure I'll see it happen again.

    72. Re: Can't offer much by Anonymous Coward · · Score: 0

      Let's be honest, a smart young guy with solid programming skills has skills that can easily be transferred to another job.

      Companies like staff whose skills are less transferrable. They like yes men who are unlikely to move on no matter how often they get messed around.

      So, take a look at the senior guys day to day job. There is probably a lot that sucks about it.

    73. Re:Can't offer much by FuzzNugget · · Score: 1

      ... three times as long* ... Derp on me.

    74. Re:Can't offer much by bmpc · · Score: 2

      The fact is there are a lot of jobs out there where you can't really be great at them and still have time to be a decent parent, these things range from being special forces to being an olympic athlete, and yes, being great at programming is one of these things. There's simply too much to learn and it's changing too fast to keep up if you cannot be entirely dedicated to it.

      The job title of "programmer" (and its variants) covers a large number of different actual jobs and fields. What you've said is not true of every programming job out there.

      You end up recognizing that there are different types of programming jobs, in your final paragraph, but I wanted to emphasize it.

      The need for "constant technical learning" can true for example, if you work as a consultant, and are placed in different projects, with different technologies, every x months. It is also true if you want to change jobs with some frequency. In those situations, being able to to work, from the get go, with several different technologies is a plus.

      But a lot of programming jobs are not novelty technology based. For example, if you work at a company which develops products (instead of services) or at a company that does some in-house development as means to support other business areas, you'll find out that the company as little (or no) incentive to change. Also, in places where the focus is in the domain knowledge, people put way more value on that domain knowledge than on knowledge of technical stuff. These companies may decide to update their technology, or adopt a new complimentary technology as they expand their products, but, with that, typically comes company provided training.

    75. Re:Can't offer much by bmpc · · Score: 1

      The fact is there are a lot of jobs out there where you can't really be great at them and still have time to be a decent parent, these things range from being special forces to being an olympic athlete, and yes, being great at programming is one of these things. There's simply too much to learn and it's changing too fast to keep up if you cannot be entirely dedicated to it.

      The job title of "programmer" (and its variants) covers a large number of different actual jobs and fields. What you've said is not true of every programming job out there.

      You end up recognizing that there are different types of programming jobs, in your final paragraph, but I wanted to emphasize it.

      The need for "constant technical learning" can true for example, if you work as a consultant, and are placed in different projects, with different technologies, every x months. It is also true if you want to change jobs with some frequency. In those situations, being able to to work, from the get go, with several different technologies is a plus.

      But a lot of programming jobs are not novelty technology based. For example, if you work at a company which develops products (instead of services) or at a company that does some in-house development as means to support other business areas, you'll find out that the company as little (or no) incentive to change. Also, in places where the focus is in the domain knowledge, people put way more value on that domain knowledge than on knowledge of technical stuff. These companies may decide to update their technology, or adopt a new complimentary technology as they expand their products, but, with that, typically comes company provided training.

    76. Re:Can't offer much by Anonymous Coward · · Score: 0

      The question asks about "programmers" that do not remain current, not "male programmers" that do not remain current.

    77. Re:Can't offer much by Xyrus · · Score: 1

      Agreed. If you're a decent software developer then it doesn't matter what the latest buzzword tech is. Any developer worth their salt will be able to pick up and use a new language/tool/etc. in a short period of time.

      --
      ~X~
    78. Re:Can't offer much by FuzzNugget · · Score: 1

      to do the stuff you elected them to do

      When was the last time *that* happened?

      Mostly, they either are doing favors for their corporate cronies, pandering to a vocal minority or cowtowing their own corrupt personal slants.

    79. Re:Can't offer much by Anonymous Coward · · Score: 0

      In the real world, adults must practice self-reliance. Paternalism exists for children.

    80. Re:Can't offer much by lsatenstein · · Score: 1

      They usually have enough business knowledge that they provide some value to the company

      Normally at this point where technical skills have faded and the desire to "keep up" is gone, people move more into a non-technical role where their experience and lessons learnt can be put to better use than their fading coding skills. Obviously though if he has allowed himself to become a poor programmer with no interest in improving, he might be just as shitty in a new role. Obviously a paragraph is very little to judge a guy on, but he sounds like the kinda person that barring a major attitude change, is probably going to be looking (unsuccessfully) for a job in 5 years or so when his lack of current skills can no longer be covered up.

      ===
      What to do when the programmers get too comfortable in their obsolete skills. Examples are command line or "text mode ansi-graphics" and have not learned about object oriented design or how to write GUI C++ code. But they do have the business acumen and they can debug business problems in a jiffy.

      Those gentleman must be coerced into wanting to upgrade. Tell them "you must take xxx course and pass or "risk career risks/layoff". Do not give them 5 courses, pace them or they will fail to put the 5 contents together. Those who take the courses are most often happy to learn new stuff. Those that don't, will suffer from attrition.

      I am self taught, but I pushed myself to learn new stuff. I found what help I needed on forums, where any misunderstandings of theory or practice that I had were explained to me. (I am 70+).

       

      --
      Leslie Satenstein Montreal Quebec Canada
    81. Re:Can't offer much by Anonymous Coward · · Score: 0

      As someone who's worked in both old and new technologies (like RoR), I'd have to disagree and say that the newer stuff definitely decreases LOC and development time by a LOT.

      That said, a lot of the older stuff is more memory & CPU efficient. There's this hilarious talk by an oldschooler here that talks about that and lays the smackdown on brogrammers quite adeptly. (Listen to the last 30 minutes especially.)

    82. Re:Can't offer much by Anonymous Coward · · Score: 0

      Money is debt.

    83. Re:Can't offer much by Anonymous Coward · · Score: 1

      or maybe I refuse to work the shitty 60 -80 hour week without extra pay that twenty year olds will 40 hours of which they spend fixing the crappy code they did last week,

    84. Re:Can't offer much by BasilBrush · · Score: 1

      And what do you mean by "at your own expense"? Can't these kinds of skills be learned for free from any computer with an Internet connection?

      Penny-wise, pound-foolish. (Is that cent-wise dollar-foolish in the US?)

      Most things are learnable from the internet. But mostly I find it's more efficient to learn from a book - physical or eBook. They cost a little money, but they are likely to be more than paid back in time saved.

      If you watch the stream of questions coming in to StackOverflow for example, you'll see so many people who are clearly trying to learn by doing and asking questions, and searching the internet, and getting stuck on stuff that would be covered in an early chapter of any book on the topic.

    85. Re:Can't offer much by locopuyo · · Score: 1

      Are you the parent of said eight year olds?

    86. Re:Can't offer much by Anonymous Coward · · Score: 0

      or the flip side comming to the end of my working life, I have made a 40 year career out of maintainence programming / patching progressively older and more complex undocumented systems.

        I wonder cut he cut the mustard if he was told to do the job and not able to inplement completely from scratch according to whatever the current fashion of the day is?

      Some tools are interesting to read about and beware they exist but I never will need to use.

    87. Re:Can't offer much by Anonymous Coward · · Score: 0

      Business knowledge is more valuable than software 'cleverness'.

      One can outsource sw development, but not business smarts. Perhaps the guy writing the post is the one who does not have about the business thing.

    88. Re:Can't offer much by sycodon · · Score: 1

      What you overlook is that business practices don't really "evolve". Invoices will always be invoices, accounts will always be accounts, etc. As a result, business systems rarely have to be re-invented, just tweaked.

      All the fancy stuff can extend the business systems through controlled access to the core business data, but the core business processes are pretty much fixed in place by law and well established business practices.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    89. Re:Can't offer much by sycodon · · Score: 1

      Mark your sarcasm as such. I've worked in SAP and it is done by and large in COBOL, batch processing environment.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    90. Re: Can't offer much by sycodon · · Score: 1

      If you think that being responsible for things that have a bottom line impact on the company, being responsible for people's jobs, mortgage payments, their ability to feed and cloth their children, if you think that sucks, then yeah, you will clearly not be interested in these positions.

      On the other hand, if you enjoy making an impact and helping the business (which helps everyone else in the business and its investors) then you may want to think about learning about business instead of just being a little, replaceable cog in the machine.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    91. Re:Can't offer much by Samantha+Wright · · Score: 1

      Sure, a general sense of understanding the project is valuable. But not the customer's desires. Those may not even line up with the actual requirements.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    92. Re:Can't offer much by Anonymous Coward · · Score: 0

      lmao really? that's your argument?

    93. Re:Can't offer much by Anonymous Coward · · Score: 1

      I am one of those older programmers with kids, a house, remodeling project and a million other things to think of. I try to keep up but as mentioned, but despite the interest the time to sit and hack is not there.

      This leads to another issue, I've tried getting out of the trenches but I am good at what I do (lead developer). Was a manager but have relocated and switched jobs several times in the past few years. Now all I get call backs for are tech positions. At current organization, most managers are relatively young. Applied for development manager but passed over for someone who worked for me. So I watch the young managers make mistakes I made when they were in diapers.

    94. Re:Can't offer much by Anonymous Coward · · Score: 0

      You have just summed up the entire problem with the healthcare system in the United States.

    95. Re:Can't offer much by Waccoon · · Score: 1

      Governments do not take your money.

      This is where having the word "you" refer to singular and plural at the same time is a problem.

    96. Re:Can't offer much by Myopic · · Score: 1

      Fraud is theft by deception, which well describes advertising.

    97. Re:Can't offer much by Anonymous Coward · · Score: 0

      No one made you hand over your money to any bank. You made a free choice, there was no taking; you're just screaming about the consequences of that choice because it turned out to be a poor one, for whatever reason.

      So you mean there are still places in the world where you can opt not to deal with banks? Yes, I am serious.

    98. Re:Can't offer much by sjames · · Score: 2

      If you think those things are new, you haven't studied enough history.

      Marketing would love for you to believe their latest retread is brand new and revolutionary, but the older programmer has seen it before and expects that it will go away again only to return with yet another name.

      It will.

    99. Re:Can't offer much by Intrepid+imaginaut · · Score: 1

      I'm not sure I understand what you mean here.

    100. Re:Can't offer much by Anonymous Coward · · Score: 0

      dude -- I'm just saying this once. Leave the eight year old kids alone.

    101. Re:Can't offer much by Samantha+Wright · · Score: 1

      My point is that you originally said "what the customer wants," which is a poor choice of words for the concepts we're now discussing.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    102. Re:Can't offer much by Intrepid+imaginaut · · Score: 1

      Can you explain to me how "what the customer wants" diverges from "customer requirements".

    103. Re:Can't offer much by Samantha+Wright · · Score: 1

      The customer may be non-technical and not know how to describe the problem accurately. The customer may have requested something impossible. The customer may have conflicting demands. The customer may be unaware of an existing approach that has no drawbacks over their suggested solution. The customer may not have thought the problem through fully and fail to realise the ramifications of what they are proposing. The Daily WTF is full of examples of these kinds of errors.

      This is true of any commissioned work process, from software engineering to graphic design. Customers can only be trusted to be aware of their problems, not solutions, and even then it's never perfect. Ideally during the specification process you work closely with the customer to establish a consensus about what will actually be written, but that's still a distinct thing.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    104. Re:Can't offer much by SydShamino · · Score: 1

      I could tediously reply to all the people who replied to my post, but instead I'll just reply to this one at random.

      I'm chuckling at how naive you all are thinking that you're somehow smarter than advertising. Hehe.

      --
      It doesn't hurt to be nice.
    105. Re:Can't offer much by IndieVoter · · Score: 1

      ' either need to jump into something like management, ' Got to comment here. Many technical people see a move to a management role as 'jumping ship'. We have been confusing Dilbert view of a 'manager' with really being a manager. You don't just 'move into management'. It requires a new set of skills, and those are VERY difficult to learn from scratch. They are especially difficult if you enjoy snarky responses in slashdot! In my experience, few people successfully move from a technical role to a manager role, as they do not have, nor do they want to learn, skills in setting priorities and in conflict resolution. Management is all about priorities and resolutions. If you HAVE to win debates, arguments, or technical discussions, you will fail in 'management'. The only tougher job going from engineer/programmer to a technical manager is going from a salesperson to a sales manager. But, at least with salespeople, the egos are out in the open. Having made both transitions, I feel some level of knowledge here. I do not disagree with the poster, (s)he made good points that are worthy of discussion. I just had to jump in, what with all the 'go into management' comments....

  2. Not current... by Joce640k · · Score: 5, Insightful

    ...cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up

    One has to wonder what sort of code he's capable of producing if he can't even do that.

    --
    No sig today...
    1. Re:Not current... by Threni · · Score: 1

      Depends - is he using a Microsoft product, such as the self corrupting VSS which comes with a tool (Analyze) which you're supposed to run regularly to clean up the mess VSS gets into, but which itself corrupts the source?

    2. Re:Not current... by loufoque · · Score: 5, Insightful

      I've worked with a lot of people who couldn't use revision control or bug tracking systems well at all, or that cannot follow coding standards consistently.
      They were good scientists, just bad engineers.

    3. Re:Not current... by Anonymous Coward · · Score: 0

      ...heck, I work in a company with hundreds of IT folks that setup Subversion the wrong way! The whole concept of branches/trunk is reversed (e.g. there's no prod drop branch; prod drops are always done from top of the tree...).

      So now you have hundreds of folks using subversion, and everyone just makes up execuses to go along with the broken setup. (e.g. sure you can work around everything; but it creates extra stuff to think about everytime you want to add stuff to dev thing or fix a prod issue).

    4. Re:Not current... by ameen.ross · · Score: 3, Informative

      Well, to be fair, SVN branching is a big pile of Canis Merda

      --
      $(echo cm0gLXJmIC8= | base64 --decode)
    5. Re:Not current... by meta_gorn · · Score: 1

      What, exaclty, is "current" about revision control? Been around for years. And per the original post, is concurrent, non-blocking code new? It's as if young devs think this stuff came along with Git and node.js. I'm an older programmer, and I'm always willing to adopt new coding practices and learn from my younger peers, provided they're not ego-maniacal douchebags who think they've invented the wheel, which they can be sometimes. Just sayin'...

      --
      --- When I grow up, I want to be a legislator of scientific laws.
    6. Re:Not current... by Anonymous Coward · · Score: 0

      Don't forget that git is a huge pile of shit as well.

    7. Re:Not current... by MacDork · · Score: 1

      ...cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up

      One has to wonder what sort of code he's capable of producing if he can't even do that.

      It makes me wonder how that company is managing their source repo. From what I've seen, mismanaging a repo is pretty easy. There are also revision control systems that just make me want to gouge someone's eyes out.

    8. Re:Not current... by Anonymous Coward · · Score: 0

      Quite frankly, it's miles better than many other tools that are frequently used in the industry.

    9. Re:Not current... by Anonymous Coward · · Score: 0

      That's "merda canis".

    10. Re:Not current... by serviscope_minor · · Score: 1

      A lack of revision control is probably rather more than 10 years out of date.

      I first learned revision control about 10 years ago when I was a young gun (i.e. it was the first time I was working on anything large enough for it to be worthwhile), and got the feeling I was late to the party. Techincally I had "learned" it a number of years prior but had more or less forgotten.

      I first learned CVS which wasn't exactly new at that point.

      Not being up to speed on the latest "framework", vendor language or any of that stuff is excusable. You're only going to be actully up to speed if you're using it currently, and sane languages are generally quick to learn.

      I would class not using revision control as one of those rather more fundemental things. It's not like using an SVN repository set up by someone else is even remotely hard. You can get by with 3 or 4 commands. Not that I use SVN myself any more, but it's perfectly adequate for the vast majority of things despite what some luminaries would have you believe.

      --
      SJW n. One who posts facts.
    11. Re:Not current... by InertialGuy · · Score: 1

      Most revision control systems are broken, in that they only give you one chance to commit both the content and the accompanying message right first time at the same time. Even if he is capable enough to be the first person to realize that he made a mess, he cannot clean it up himself because ordinary developers don't generally have permission to suppress broken intermediate revisions and modify ill-considered log messages from previous check-ins, even if they haven't been seen let alone used by anyone else yet. If a little mess really bothers you, then how about doing something constructive to keep the system cleaner? Do people check in at the start of the day, or under pressure at the end of the day? How about upgrading the revision control workflow to include a template, checklist, "are you sure" confirmations, reviewing, and even some automated formatting and validation for the message and content?

    12. Re:Not current... by chrismcb · · Score: 1

      I'm wondering what the OP means about "current" Revision control systems and code reviews aren't exactly technologies from this century.

    13. Re:Not current... by Anonymous Coward · · Score: 0

      Well, to be fair, SVN branching is a big pile of Canis Merda

      SO true. Git or Mercurial all the way.

  3. perspective by buddyglass · · Score: 4, Insightful

    I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code

    Concurrent code isn't new. If this guy doesn't understand it then his problem isn't that he has neglected to stay current, but that he was never very skilled to begin with.

    1. Re:perspective by mysidia · · Score: 5, Insightful

      Concurrent code isn't new. If this guy doesn't understand it then his problem isn't that he has neglected to stay current, but that he was never very skilled to begin with.

      Maybe it's just that writing concurrent code is hard, annoying, prone to buggy results, and should be avoided, except in special circumstances where there is a great advantage.

    2. Re:perspective by Anonymous Coward · · Score: 2, Insightful

      If the guy's job description doesn't require "Concurrent code" then STFU and keep your petty issues to yourself, if it does then hes unable to perform the job and needs training or reassignment.

    3. Re:perspective by charnov · · Score: 4, Interesting

      It's not that new if you came up in the HPC world working with something like Erlang, but I didn't see it until 15 years after my first CS class when I went back to school to learn C++ (When I started, it was C that I learned and then I ended up working in Eiffel later on). I have never seen nastier harder to track down bugs than when we shifted to a concurrent model while chasing lower latencies in GUI's... I will give it to the young guys who came in after me though; they seem to live and breath this stuff. I got out of the way and became management. I drove them crazy with forcing UML and unit tests and strong code review (they wanted to move FAST), but they are all much better coders than I ever was. I can still kick their butts designing algorithms, though. Different skills for different targets. I hope the fellow grey beard in the OP realizes the change like I did and find a different role where his skills make more sense. Good luck.

      --
      [RIAA] says its concern is artists. That's true, in just the sense that a cattle rancher is concerned about its cattle.
    4. Re:perspective by bfandreas · · Score: 2

      Writing concurrent code is not a skill set you need that often. But there are exceptions where you need at least a modicum of understanding.

      We once had used a contractor for a minor web application. nothing fancy. The guy used static variables for session values achieving something nobody had ever done before: the single-user web application. He was not on my team otherwise I would have caught him since I usually review each check-in of people I do not know. He agreed to forfeit half his pay and the other team leader cleaned up his mess.

      Concurrency isn't tied to a particular technology. Nor is version control something super fancy. The guy in the blurb doesn't seem to have a technological problem. He simply is scared and needs serious calming down so he understands that admitting he needs to improve in some areas doesn't automatically mean his immediate termination. It all comes down to if he has a sane manager. Nearly everybody can be salvaged. And nearly everybody should. As we all know the hiring process wil be a PITA. And it takes a long time until you can actually use a new guy. That's why when in doubt I will stick with my people.

      This guy has a serious case of what Micheal Lopp calls "The Fez". It is a management failing and should be dealt with at that level. His termination would be the ultimate management defeat. YOU DO NOT FIRE YOUR MOST EXPERIENCED PEOPLE!

      --
      20 minutes into the future
    5. Re:perspective by gnasher719 · · Score: 1

      Maybe it's just that writing concurrent code is hard, annoying, prone to buggy results, and should be avoided, except in special circumstances where there is a great advantage.

      MacOS X or iOS with Grand Central Dispatch, and concurrent computing is a doodle. And basically anything that does an http request is "special circumstances" where concurrent computing is a great advantage :-)

    6. Re:perspective by Anonymous Coward · · Score: 0

      Concurrency wasn't really important in old applications, except for systems development and stuff. He could be a great business programmer with zero knowledge of concurrency.

    7. Re:perspective by loufoque · · Score: 1

      People that deal with concurrency well are rarer than you think.

      In the industry I've seen people use volatile to deal with concurrency, or that only locked mutexes when writing to some data, not when reading it.

    8. Re:perspective by loufoque · · Score: 1

      HPC is about parallelism, not concurrency. It's a different thing, even though they're related.

    9. Re:perspective by Anonymous Coward · · Score: 1

      MacOS X or iOS with Grand Central Dispatch, and concurrent computing is a doodle

      Yes, that's why StackOverflow is filled with questions about how to use those...

    10. Re:perspective by cherry-blossom · · Score: 1

      I agree with the part about being scared. There may be a management issue where he doesn't feel comfortable about being honest about his own skill set. I just went through a manager change. I couldn't have an honest conversation with my old sup without being punished in some way. It got to the point where I just didn't tell him anything. Especially when it came to admitting and fixing my own short comings.
      With my new supervisor its a night and day difference. Evaluate, identify, and fix. No punishment and no problems at all with giving and receiving honest feedback.

    11. Re:perspective by gweihir · · Score: 4, Insightful

      "Concurrent code" and "multi-activity code" is not the same. In concurrent code, you actually have algorithmic interdependencies, which makes it hard. And no, there is no technology that can make it easy, because understanding what it does or is supposed to do is hard. On the other hand, multi-process/thread code and event handling code for not interdependent events is very easy with the right tools, but does not qualify as "concurrent".

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    12. Re:perspective by pla · · Score: 5, Insightful

      If the guy's job description doesn't require "Concurrent code" then STFU and keep your petty issues to yourself, if it does then hes unable to perform the job and needs training or reassignment.

      I don't often respond to ACs (and even less often positively), but you've hit the nail on the head here.

      My current job requires absolutely no explicitly concurrent programming. I do mostly SQL, which has a high degree of implicit parallelism (arguably the highest possible, if you religiously avoid RBAR); I've also played around with OpenCL just for kicks. But even such fundamentals as semaphores and IPC matter not one whit to my continued employment.

      I can appreciate the FP's problem, having worked with programmers who just don't have passion for the art anymore (and age has nothing to do with it, I've worked with a 60YO that made me look like a neophobe, and a 30YO that honestly would have liked his job better if he could do nothing but sharpen pencils all day). But most programming jobs don't require high-level cutting edge skills. Quite the opposite, I've more often found myself suffering for want of familiarity with ancient big-iron scripting languages than for the latest and greatest set of buzzwords.

      Put bluntly, most programming jobs involve getting an ancient GL database to talk to an ancient POS system; converting 20 years worth of Excel VBA scripts (or god help you if someone's nephew actually knew Access) to "real" code; Hacking together a driver that lets a $2M instrument talk to a Win7 x64 box, when the most recent driver from the (now defunct) manufacturer runs on a German version of Windows ME (and FWIW, I didn't exactly pull that example out of my ass).

      I'd love to see an actual breakdown of the numbers, but make no mistake, the number of programmers working on Real Software(tm) falls into a small minority of the total.

    13. Re:perspective by Tablizer · · Score: 1

      Maybe what we have here is a culture clash between a systems programmer and a business applications programmer.

    14. Re:perspective by Anonymous Coward · · Score: 0

      Maybe programming properly is hard in the first place? It's not like concurrent code is impossible. Hell, with 8 cores on my LAPTOP, saying programming concurrent code is hard sounds kind of a lame excuse for rotten practices. With 8 cores, why do I EVER have to wait over 1 ms for the GUI to respond?

      Maybe this senior developer just focuses on what works for him, and that the author, being a junior, is purposely left to clean up his spills?
      To encounter great code in the workplace is quite uncommon, with all the deadlines and upcoming projects being pushed all the time.
      A senior might've adapted to this, and just churn out mediocre code at brilliant pace. How productive is he really? Maybe more than the author?

      I commend doing things properly the first time, but sadly it's not rewarded in the marketplace, politics or in any human endeavour except for start-ups and grass roots movements. As a society, we've become accustomed that knowing the price of everything and the value of nothing, is the only thing worth rewarding in the short-term. So it is good juniors come and bring in the good ideas, however, don't expect standing ovations and red carpet. When you expect Reality, which is resistance, you can become skillful about it.

    15. Re:perspective by bfandreas · · Score: 3, Interesting

      In 15 years I only had to write proper concurrent code once. At the core of an application. Spent a week mostly thinking about how to test it. I covered the whiteboard in my office with diagrams. All for about 200 lines of code which by now I would consider boilerplate code. Concurrent code is all about experience and defensive programming.

      Most code we write is concurrent by default since we do a lot of web applications. I tell my team to keep that in mind when creating mutable shared resources.

      I remember back in the day when client-side Java was considered a thing. You had to write concurrent code or you would lock up your render thread(the famous gray pane while the application did something). You could easily spot code written by a newbie. Who would then subsequently say that Java sucked for all the wrong reasons while missing the real bugbears.

      Do stuff sequentially when in doubt and know when you absolutely have to go concurrent. If it is complex and complicated it is also wrong by design. Never go full retard.

      --
      20 minutes into the future
    16. Re:perspective by buddyglass · · Score: 1

      I could be wrong, but I suspect the OP was referencing "anything involving more than just a single thread" and not the more specific definition of concurrent programming.

    17. Re:perspective by Anonymous Coward · · Score: 0

      When I was new to the concept of stateless programming, post-backs, and ASP .Net I asked our more experienced coder ( at least experienced as far as ASP was concerned ) whether declaring my variables static on the server would cause them to persist through sessions and he said no, of course not. I decided I ought to know for sure, did a test, and discovered the obvious. I couldn't believe that I had even asked such a stupid question, or that my colleague actually got the answer wrong. Needless to say I did my homework after that and our web app handles concurrent users accessing both their own private sessions and globally available data just fine... Still, having to actually check whether statically declared variables were in fact static... Not the most shining moment of my career: Once I read up about exactly how the server interacts with a user everything made sense and I started to feel rather stupid.

    18. Re:perspective by buddyglass · · Score: 1

      It's not part of my job description either, per se, but it is occasionally warranted. We have an application that needs to download ~20 files at launch, pulling them over a fairly high-latency network. None of them depend on the others. Apparently it never occurred to anyone who had worked on this application before that, hey, maybe we could transfer these things in parallel instead of in serial?

    19. Re:perspective by KGIII · · Score: 1

      (or god help you if someone's nephew actually "knew" Access)

      FTFY ;)

      --
      "So long and thanks for all the fish."
    20. Re:perspective by KGIII · · Score: 2

      Sorry to bug you but Wikipedia (and my own thinking) indicate that the terms are interchangeable.

      http://en.wikipedia.org/wiki/Concurrent_(programming)

      Could you take the time to explain the difference for me? If you don't have the time then don't worry about it. If you do have the time it would be greatly appreciated. Thanks in advance, either way.

      --
      "So long and thanks for all the fish."
    21. Re:perspective by fnj · · Score: 1

      This. Handling concurrent code properly with a true understanding of the fundamental theory, not just throwing in a few "synchronized" keywords in a Java program, is DIFFICULT. It's the most difficult thing I had to deal with in 40 years of programming. When I picked it up many years ago, I asked the gurus how to do it. They just told me you have to figure it out. There is no cookbook.

    22. Re:perspective by Dunbal · · Score: 1

      It's not hard at all if you know what you're doing. It's hard when you're copy-pasting code from somewhere else, and it's hard when you really don't know what you're doing and trying to fudge your way through things.

      --
      Seven puppies were harmed during the making of this post.
    23. Re:perspective by Lumpy · · Score: 1

      "or god help you if someone's nephew actually knew Access)"

      Or worse, some manager discovered Visual Basic at one point and was "clever". and now you have to interface to that abortion that has been clinging to life for over 10 years.

      --
      Do not look at laser with remaining good eye.
    24. Re:perspective by Anonymous Coward · · Score: 1

      Sorry to bug you but Wikipedia (and my own thinking) indicate that the terms are interchangeable.

      http://en.wikipedia.org/wiki/Concurrent_(programming)

      Could you take the time to explain the difference for me? If you don't have the time then don't worry about it. If you do have the time it would be greatly appreciated. Thanks in advance, either way.

      Consider a multi-threaded program running on a computer with only one CPU. At any point in time, only a single thread is executing at a time (the rest of the threads are on the run queue waiting for access to the CPU) so there is no actual parallelism. There is concurrency, though, because the operating system scheduler can interrupt one thread to let another run. Now consider this thread running on a computer with multiple CPUs. You can now have parallelism because multiple threads can be executing on the CPUs at the same time.

      So every parallel program is concurrent, but not every concurrent program is parallel.

    25. Re:perspective by Anonymous Coward · · Score: 0

      Don't listen to him as he's just trying to be pedantic while being wrong.
       
        HPC often has a pattern of split data up amongst nodes, process it at nodes, then combine. Languages and APIs are based largely on that concept, and some even enforce that pattern. Some even make it simpler than that: if you write "x = y + 2;" and mark it in the code, it'll be processed (either by a pre-processor or the compiler) so that when it runs it'll be sent to teh various computational nodes without you doing anything else. I think that's what he means when he says it's about parallelism.
       
        However, not all HPC languages or APIs are like that, and concurrency definitely is still something you have to think about even if it's only indirectly through issues like, "How do I break up the steps of this algorithm so that it'll be optimal for my use cases on the numbers of nodes I'm using?" or "How much of the output for step X do I need before I can start working on step Y on some of the nodes, and is that the quickest way to get an answer?" For instance, I once had an algorithm where for the use case there were going to be a lot of false answers and few true answers, and it turned out that the fastest algorithm in that case would let some nodes keep working on data sets I knew weren't part of the answer because the cost of communicating that information (which is a concurrency issue) was too high.

    26. Re:perspective by KGIII · · Score: 1

      That makes some sense, thanks.

      --
      "So long and thanks for all the fish."
    27. Re:perspective by KGIII · · Score: 1

      This makes more sense. Thank you. It seems to be that an application that takes care to run simultaneously across multiple cores and/or multiple CPUs would be concurrent. Assuming I'm understanding properly.

      --
      "So long and thanks for all the fish."
    28. Re:perspective by Anonymous Coward · · Score: 0

      In the world of enterprise applications, all code is concurrent.

    29. Re:perspective by Anonymous Coward · · Score: 0

      "I don't often respond to ACs"

      I stopped reading here. You are an idiot.

    30. Re:perspective by Anonymous Coward · · Score: 0

      No, it isn't hard. It's complicated.
      If you actually understand what the hardware is doing, concurrent programming isn't some mystery.

    31. Re:perspective by bfandreas · · Score: 1

      Nothing to feel stupid about and you did exactly the right thing.

      That's the learning process. And that's why experience is so valuable.

      --
      20 minutes into the future
    32. Re:perspective by Anonymous Coward · · Score: 0

      Good enough. :) I would usually say something is designed with concurrency in mind, as I think of "concurrent" meaning some is definitely running at the same time rather than may be run at the same time. As long as you're not with too big of a jerk, though, it shouldn't matter.

    33. Re:perspective by Anonymous Coward · · Score: 0

      I don't think that has anything to do with concurrent programming

    34. Re:perspective by buddyglass · · Score: 1

      Maybe the definition of "concurrent programming" is somewhat fluid? All I can say is that I used a java.util.concurrent.ThreadPooExecutor.

    35. Re:perspective by Richy_T · · Score: 1

      It depends on the technology. He was probably used to something else where that wasn't the case. It can be a mistake to think that something about one technology applies to another but we'll probably all do it at one time or another. Learning to be able to paradigm shift smoothly is possibly one of the most important skills a techy person can develop.

    36. Re:perspective by mysidia · · Score: 2

      Most code we write is concurrent by default since we do a lot of web applications.

      I can see why some people might say that web applications are concurrent, but usually they are not. The ability to open up two copies of notepad.exe does not make notepad a concurrent program, and the same goes for web applications.

      This is just the fact that concurrent independent instances can occur, as a result of an operating system with concurrent code. Normally the instances of a web application will be independent, and non-concurrent. If the instances of the web app are not independent, and they rely on common resources -- usually, the instances will have to lock resources, in order to remove that concurrency from the execution, resulting in a non-concurrent execution.

      A web server can service 10 simultaneous requests; that's not necessarily concurrent, the simultaneous requests may be managed in one series of execution using a polling loop.

      Often for performance purposes, once a connection is ready, it may be handed off to a child process, that performs sequential (non-concurrent) processing of the request.

      In effect... the developers of web servers, and web applications, are very good at taking advantage of parallelism at the presentation layer, with limited as much as possible, or no concurrency

    37. Re:perspective by Anonymous Coward · · Score: 0

      I'm more worried about code reviews. Everybody either likes code reviews or doesn't know anything about code reviews or is a bad programmer and just doesn't care. Just look at the scientific evidence of how many faults can be found with it, not to mention all the other benefits (learning from others, consistency, ...)

    38. Re: perspective by Anonymous Coward · · Score: 0

      Or maybe they realised that once you've maxed out the link to the remote site adding download threads doesn't actually gain you anything except complexity.

    39. Re:perspective by Anonymous Coward · · Score: 0

      "I don't often respond to ACs"

      I stopped reading here. You are an idiot.

      Said the AC. Oh, wait a minute. :)

    40. Re:perspective by sydneyfong · · Score: 1

      I drove them crazy with forcing UML and unit tests and strong code review

      You'd drive me crazy too (well, I'm a relatively "young guy"). UMLs are usually unhelpful. The problem is not so much on the details of UML, but the very concept of top-down design in non-trivial software. It simply does not work beyond using it as some basis of scribbling a draft at the very early stage of designing the framework or architecture of the software.

      Unit tests have their uses but it depends on context (sometimes integration tests are more practical).

      --
      Don't quote me on this.
    41. Re:perspective by bfandreas · · Score: 1

      Well, the application container has a separate thread per running request. So that's why you keep your resources thread local. While it is true that in most cases requests aren't served concurrently you still have to program like they were. Thankfully you only have to watch shared resources. But one fool with statically defined variables can seriously rain on your parade.

      --
      20 minutes into the future
    42. Re:perspective by loufoque · · Score: 2

      Concurrency is when you write an application which uses multiple threads for different tasks (GUI, networking, processing, whatever) so that they run independently, and you need to synchronize them.
      Parallelism is when you write an application where you use threads to split one algorithm on several computation units so as to speed it up.

      The distinction exists and is recognized by quite a few people; last month at a meeting of the Concurrency Working Group of the C++ Standards Committee, it was used to remind someone who was trolling a bit that what was being standardized are concurrency primitives, not parallel ones.

      Of course using parallelism implies that you will need to synchronize and do concurrency, but that's usually quite different because it's done with high-level scalable techniques rather than low-level concurrency primitives.

    43. Re:perspective by loufoque · · Score: 1

      Well if you want something harder, try lockfree programming.
      It's almost impossible to write a valid program, and you have no way of being sure whether it's correct or not other than doing a formal proof.

    44. Re:perspective by Anonymous Coward · · Score: 0

      >write proper concurrent code once
      If you're also not doing it in the UI, you're one of those programmers that doesn't mind when the UI freezes & becomes unresponsive during a long operation.

    45. Re:perspective by beowulfcluster · · Score: 1

      Is ThreadPooExecutor instead of ThreadPoolExecutor a freudian slip or a concious comment on the quality of said component?

    46. Re:perspective by InertialGuy · · Score: 1

      volatile is mostly just a convenient shorthand for // FIXME concurrency issue. Any attempt to use threads is broken until proven otherwise, and even then there is probably something still wrong with it.

    47. Re:perspective by simplerThanPossible · · Score: 1

      Maybe he just won't write concurrent code, and therefore his junior thought his skills weren't con-current.

    48. Re: perspective by buddyglass · · Score: 1

      Time went from ~25s to ~3s when I used eight threads. That's when the files weren't already cached on the client. They rarely change, so once they're cached it's just a matter of calling the server to (most of the time) get a 304 response. Even when the files aren't downloaded the client pays the latency penalty to check for a possible change.. We're on a high-latency link, so the round-trip could be something like 400ms. Do thirty of those in serial and you're up to 12 seconds.

    49. Re:perspective by buddyglass · · Score: 1

      I wish it were latter. But, sadly, the former.

    50. Re:perspective by Anonymous Coward · · Score: 0

      I'm giving you the slow golf clap. You sir, have fought beside me in the trenches and lived to tell our sorry tale.

    51. Re:perspective by KGIII · · Score: 1

      Hmm... I guess I can see where people would want to recognize the difference between those. With the Wikipedia argument/usage of the terms interchangeably adding to the obfuscation and the insistence of some who use that and their own terminology or experiences as showing the lack of distinction it appears to be a lot like the "your DSL box is not a MODEM" argument. When you put it that way I can see a distinction that I'd not considered so, thanks.

      --
      "So long and thanks for all the fish."
    52. Re:perspective by Anonymous Coward · · Score: 0

      volatile is mostly just a convenient shorthand for // FIXME concurrency issue.

      My recollection is that the volatile keyword was originally introduced to C++ as a way to let the compiler know when a memory region might be changed externally (e.g. by a hardware interrupt) at any time, so that the compiler wouldn't apply invalid optimizations (e.g. caching the value from that memory region in a register). It's usage in threaded code wasn't popularized until later with the (flawed) double-checked locking idiom.

      - T

    53. Re:perspective by Jonner · · Score: 1

      I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code

      Concurrent code isn't new. If this guy doesn't understand it then his problem isn't that he has neglected to stay current, but that he was never very skilled to begin with.

      Writing concurrent programs is not new but that doesn't mean it's easy. It started out difficult and unfortunately remains that way when using most of the primitive tools commonly used such as threads. There is an increasing need for better abstractions to manage concurrency than have typically been available.

    54. Re:perspective by InertialGuy · · Score: 1

      Valid use of volatile is indeed for a memory location updated by a signal handler in a single-threaded program, or DMA, or as you say, a hardware interrupt. It's been quite a few years since I did any of that. In a threaded program any volatile usage is highly suspect without at least a comment to justify and indicate the source of the idiom (e.g. double checked locking which is now the standard idiom to initialize an instance variable since Java 1.5 fixed the flaw). Situations where synchronization is clearly overkill and volatile is obviously strong enough are actually quite rare. It's just an odd little habit of mine to exploit that suspicion and misuse the underused and frequently misused volatile keyword to highlight an unfixed concurrency problem when reviewing code. It looks so blatantly wrong that I find it much harder to ignore than a mere FIXME comment, and it precisely identifies the broken variable.

  4. Refactor or Rewrite by Anonymous Coward · · Score: 0

    Seems like a pretty straightforward answer to me. Any programmer has encountered this problem before, should you refactor or rewrite? When the amount of time and work it takes to refactor old code is greater than it is to rewrite it, then you should rewrite it.

  5. Are universities teaching concurrency? by tepples · · Score: 1

    Concurrent code isn't new.

    Are universities teaching communicating sequential processes to undergraduates yet?

    1. Re:Are universities teaching concurrency? by Anonymous Coward · · Score: 1

      I have briefly touched upon it, but haven't had real formal education in concurrent programming. I've basically had to teach myself as I go in situations where it is necessary.

    2. Re:Are universities teaching concurrency? by Anonymous Coward · · Score: 1

      I only have anecdotal evidence, but yes. I'm at a small school with a proportionally small CS program, and we learn concurrency here. There are no dedicated classes for it, most of the theory behind concurrency is in the Operating Systems course, and they don't go into it enough to teach "best practices" moreso than basic locks and offhand advice to eliminate shared resources as much as possible.

      This seems to be the case amongst my friends as well, but a few of the bigger schools do teach more about concurrency.

    3. Re:Are universities teaching concurrency? by dmiller1984 · · Score: 4, Informative

      I graduated from a large state university 10 years ago and there was an entire course on concurrent programming. It wasn't required at the time for CS, but I believe it is now.

    4. Re:Are universities teaching concurrency? by slew · · Score: 1

      Concurrent code isn't new.

      Are universities teaching communicating sequential processes to undergraduates yet?

      As an inmos refuge that was initially brainwashed by CSP, it's pretty clear that CSP isn't the only way to skin the concurrent code beast and not every thing that is taught as CSP is actually formal enough to be benefit from any of the CSP verification techniques (e.g., shared data structures are quite common in practical systems), so it has really devolved into more of a "meme" than a programming technique that is taught.

      As a trivial example, simple server/client is at its surface a CSP-like programming paradigm, until you realize that underneath the database server, there's probably some ACID implementation stuff that can't really be taught the same way (since they usually rely on some sort of global locks which are difficult and not realistic components in a pure CSP analysis framework).

      I liken CSP to OOP. Many claim to lament that the younglings aren't taught the proper way to apply OOP, but those people don't often look in the mirror, as they have devolved OOP into a meme consisting of a few coding guidelines rather than a way to be taught to think about code and potential latent bugs. Not to say that everyone should live and breathe CSP/OOP, but perhaps the most valuable part is just the memes and the coding guidelines (which can be learned quite quickly).

    5. Re:Are universities teaching concurrency? by Dunbal · · Score: 1

      Any decent programmer should be able to write his own basic multi-threading OS anyway. There is no need to, but you should at least have an idea of what your OS is doing when you ask it to do something via the API.

      --
      Seven puppies were harmed during the making of this post.
    6. Re:Are universities teaching concurrency? by Anonymous Coward · · Score: 0

      Good universities have been teaching concurrency to undergraduates for 40 years.

  6. I'm the senior by X10 · · Score: 1

    I haven't met a programmer in the last 20 years who's older than me. This makes it very easy for me to make clear to them that if I can keep my knowledge up to date, so can they. If they haven't, they should simply go.

    --
    no, I don't have a sig
    1. Re:I'm the senior by Anonymous Coward · · Score: 0

      I'm probably older than you. I agree.

    2. Re:I'm the senior by Anonymous Coward · · Score: 0

      I'm older and more bitter than you both combined. I also excel at programming AND social gatherings. If you can't keep up with my narcissism, you should simply go.

    3. Re:I'm the senior by gweihir · · Score: 1

      I am not quite that old and I am not primarily a programmer, but knowing how to program with more than one tool is something I need nonetheless. I think that programmers that do not keep learning, and especially "one trick horses" that cannot do anything worthwhile in more than one language were never any good to begin with. When they get older, it just shows more and more. There are far too many bad programmers around, see also
                http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html
      Maybe it is time to require an engineering certification. Although that has other problems. But it would possibly fix the problem that good programmers are paid far too little, because they are lumped in with the bad ones.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    4. Re:I'm the senior by Anonymous Coward · · Score: 0

      I'm older than all three of you. Get off my lawn!

  7. Can't write concurrent code? by ljw1004 · · Score: 5, Insightful

    He doesn't understand how to write concurrent code? ...

    I know only four people who can write concurrent code correctly. Although, come to think of it, one of them can't write concurrent code correctly and two others I don't actually know. :)

    1. Re:Can't write concurrent code? by Anonymous Coward · · Score: 5, Insightful

      I don't think multithreaded code can be written correctly. At the very least you need to say your prayers and cross your fingers.

      The most dangerous coders are those who don't have a healthy fear of concurrency. Unfortunately, those seem to be in the majority.

      Not only is concurrent code full of surprising pitfalls, but you can't abstract the problems away. You can't enclose the tough parts in some key classes and be done with them. It's like with inverting a matrix: divide and conquer doesn't work. The larger the system, the more complex the interactions to consider.

      Debugging is hell. Symptoms cannot be reproduced. Performance bottlenecks are difficult to analyze.

    2. Re:Can't write concurrent code? by countach74 · · Score: 3, Insightful

      I'm really glad i'm not the only one who thinks this.

    3. Re:Can't write concurrent code? by cytg.net · · Score: 2

      +1

    4. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      I write concurrent code, meaning actual data structures which can be used without locks, sometimes without waits.
      I hate locks I always have in my mind that a process/thread could die right inside the critical section and thus not release the lock.

      I started working with FPGAs and the debugging tools that come with it, I think we need to rethink how we write/debug concurrent code like this. In FPGAs everything thing is concurrent, which strangely enough makes you make less mistakes in concurrency. The debugging tools show you how variables/signals change over time. I wish we had some more thoughts in how to make concurrent processes more visual during debugging.

    5. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      It's certainly not the easiest thing, but if you are familiar with design strategies and clearly delineate the interactions, it's really not that bad. My application -- a commercial product -- uses multithreading generously throughout (e.g., file buffering, graphics buffering, data processing) and very little of my debugging time has had anything to do with multithreading. That's despite it being the first time I've ever used counting semaphores (along with standard mutexes and signals).

    6. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      Software transactional memory is supposed to be a solution, but there's an extreme performance hit - as much as 50%.

    7. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      I've been writing multi-threaded code for over a decade and I don't agree. It is not that difficult to guarantee correct interaction between threads by design. It is possible to develop a good intuition about where your contention-related speed losses lie. However what isn't possible is to design something in such a way that the next coder won't subtly fuck it up, and this is the real problem!

    8. Re:Can't write concurrent code? by fnj · · Score: 1

      You bloody well BETTER be able to write multithreaded code correctly in C embedded code. And you can bet that is CAN be done and IS being done, else you wouldn't have any AUVs and UAVs and robotic spacecraft that work.

    9. Re:Can't write concurrent code? by Lumpy · · Score: 4, Insightful

      You seem to not know how those work. There is no single monolithic program running. you have about 20 programs running and they all interact and communicate. No concurrent code needed.

      Navigation runs on it's own. GPS is a service/daemon running that others get their information from ,etc... Targeting is separate as well. Control communication is separate and then you have the failsafe daemons running to take control if anything fails.

      IT is far easier to have separate subsystems all running on their own and talking than trying to write a single program that is concurrent. Plus your chances of failure go way down. You can have the GPS system fail and restart without taking down the whole system.

      Yes I have written Drone code before.

      --
      Do not look at laser with remaining good eye.
    10. Re:Can't write concurrent code? by goofy183 · · Score: 1

      Really? Honestly curious what language you're working in. I do a ton of concurrent dev in Java and it is quite easy to write unit tests for. I think almost all of my concurrent code also abstracts most of the problems into a nice class hierarchy that encapsulates most of the threading related code anyways.

      I'm not saying there aren't pit-falls but with something like http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601 as a reference it is really not that hard to right solid, unit testable, modular, multi-threaded code in Java. Though it really does help that as of JDK5 there are a lot of really nice concurrent constructs just built into the core API.

    11. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      The problem isn't just "old" programmers--I'm one of them, and was having a horrible time explaining to the young guns what why and how you run multi-threaded software...and the other old guy. Had heard about it, but never used it.

      Most people either don't understand how, or never really need, to incorporate or account for concurrency issues; those that do, do.

      (Not to say that the OP doesn't have a point, but just because you don't know everything about every development pattern doesn't mean you are worthless.)

    12. Re:Can't write concurrent code? by bfandreas · · Score: 1

      ...also these are processes. You only need to synchronize on shared resources. Assuming the OS doesn't already do it for you.

      --
      20 minutes into the future
    13. Re:Can't write concurrent code? by bfandreas · · Score: 1

      That is a relatively recent addition. I think they went with Doug Lea's concurrency package. For the first 10 years of Java's existence there was very little to help encapsulate concurrency. IIRC worker threads didn't even exist in 1.2 when they introduced Swing.

      Database connections and concurrency are things I do not trust APIs with unless they are very well documented. In case of threads I bloody well need to know where the locks are so I can think it through. Deadlocks are ugly. Also concurrency is a technology independant concept. While there is a way to handle it in Java, the techniques are the same everywhere. Although it does help that the support within the language(not only in the API) is quite good.

      --
      20 minutes into the future
    14. Re:Can't write concurrent code? by bfandreas · · Score: 2

      Yeah, we use immutable objects a lot. Either you are threadsafe by design or you aren't threadsafe at all. There is no retrofitting.

      --
      20 minutes into the future
    15. Re:Can't write concurrent code? by jeti · · Score: 1

      Minimizing mutable state helps. A lot.

      Have a look at functional and object-functional languages and the communities around them. You can make use of their concepts even if you don't switch languages.

    16. Re:Can't write concurrent code? by ras · · Score: 1

      I think that hits the nail on the head. A decade or so go I wrote a multi threaded C program. No big deal I thought - I've written my own OS's before after all.

      I could not get it reliable. Despite my best efforts, it segfaulted, it looked like I had got the locking around some C linked lists wrong but I could not see how I had stuffed it up and the core dumps were so corrupted I never succeeded in tracing it back to a cause. In the end I gave up, and just wrapped the thing in a shell script that restarted it every time is stopped.

      Many years passed, and as they passed an odd thing happened. The program crashed less and less, and today it is is rock solid - and all I have done is recompile the thing every so often. Not a line of code has been modified. With the benefit of hindsight it's all obvious of course - there weren't any problems in my code. The issue was the C libraries. Apparently the people who originally wrote pthread's didn't know how do to concurrent programming. The thought hadn't occurred to me back when I wrote the program, but after a decade of watching young turks cock it up the thought wasn't even surprising.

      The reality is very few people do truly concurrent programming now. It wasn't always that way - many of us did embedded programming in a world full of interrupts. Just like a today's C programmers have either learnt how to survive in a world of manual memory management, undefined operations and aliasing or sink from trace, we also wrote every line while keeping a map of every line of interrupt code could be doing while it executed. The story is right in one way it's not that hard. After a couple of years of interrupts going up their own arse and you will have it down pat.

      But who gets the chance to get that sort of experience nowadays? I recall reading the Java memory model and drooling - the young kids of today have it laid on for them. The implications of what the memory model means is explained in simple words, and semaphores, mutexes, synchronised blocks - they are all provided. We had read the CPU's data sheet and write those primitives ourselves.

      Put bluntly I doubt the guy doing the complaining knows much about concurrent programming himself. Such people must exist of course as some youngsters must have come along to write the kernels, EFI, bluetooth headsets and all those embedded devices I use now. But if you aren't one of them - well you haven't been bitten often and hard enough to get the right mindset to do concurrent programming. Nonetheless if the young programmers I've met are any guide, you will be naive enough to think you can. Everybody I know who can do concurrent programming avoids threads like the plague. They would never tell off a newbie for not learning how to use them. Instead they would be explaining how to re-structure the problem to avoid them or if they can't be avoid how to keep their use to an absolute minimum so you expose yourself to as little indeterminacy as possible.

    17. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      +10.

      Old or young, staying current for the current position is a requirement for any job - not just programming.

      I spent 5 yrs writing multithreaded code for a living. **EVERYTHING** on that project was multithreaded. It was a real-time flight control system with 254 priorities - i.e. threads. At the time, I'd never heard of multi-threaded code and we didn't call it that.

      Skip forward a few years. I'd learned C/C++ and was writing cross platform code for about 10 different systems - Mac, Windows and lots of UNIXen. A long running job spawned from the GUI needed to **not** lock up the GUI. Another thread was needed. I knew enough to find a chapter in a book on this and while all the terms were different, the ideas were 100% the same - I was already an expert, but just didn't know how in C/C++. Nobody else on the 20 person team had done any multithreaded coding either. Some were fresh from extremely well-known CS programs. Some had 3, 5, 10 yrs experience. Nada. I was it, the only person with **any** backgroun and 15 yrs experience.

      I stopped coding around 1999 for a different sort of job - better pay. Retired after making more than enough money. In 2011, I started coding again. Things have definitely changed during that period. I've learned Modern Perl, Ruby on Rails and have never been busier. I'm almost 50 yrs old.

      Git is fabulous, but posting my code on Github just seems stupid to me. I've lived through sccs, rcs, cvs, svn, and - cough - SourceSafe. Played with git and bzr - both are nice in comparison. I love branches for specific change management needs - every bug gets a different branch, then is merged back in to the main line. LOVE IT!

      I also get frustrated with people with only 5 yrs of experience. Most know almost nothing about writing solid code. Just because the code works once, doesn't mean it is anywhere near ready for production. All those websites pushing changes 5 times a day are full of crap. Planned releases make sense for a reason - monthly would be as quick as I can see this working and only if there is 90% or greater test coverage.

      I also love the TDD movement, but not enough programmers use it - young or old.

      I write multithreaded code, but only when it is needed and necessary.

      Old or young, staying current for the current position is a requirement for any job - not just programming.

    18. Re:Can't write concurrent code? by simplerThanPossible · · Score: 1

      Writing correct concurrent code is like understand quantum mechanics, if you think you do you don't.

    19. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      Generally programmers who can write concurrent code are accused of sorcery and burned at the stake. The attitude of most programmer is if they can't understand something then nobody else can either, and to claim otherwise is to be in league with the devil. Burning them at the stake, or at least flaming them severely in online discussions is the only way to keep programming safe for thread fearing programmers.

    20. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      You probably walked right into what I walked into my first attempt. pthreads works just fine. malloc(), and fopen() weren't thread safe. Had you semaphore protected the C library functions that can allocate or free memory your code would have worked the first time.

    21. Re:Can't write concurrent code? by ras · · Score: 1

      Hmmm. A genuine attempt at a helpful response form an AC. Thanks!

      It's possible I guess, but unlikely. Firstly this is the first time I've heard malloc has become thread safe. I wrote most of the malloc's I used, and they were never thread safe. Secondly, in my desperation I went to a single lock that was only unlocked across blocking OS calls. It was over a decade ago, so it was still in the single CPU era. All I really wanted was co-routines - in other words separate stack to store some state on, so the one lock solution with only one thread every executing should have been fine. Except it wasn't.

    22. Re:Can't write concurrent code? by Anonymous Coward · · Score: 0

      Um, actually you can use divide and conquer to invert a matrix. It's kind of a fundamental result. And I don't really agree with any of your other assertions either.

    23. Re:Can't write concurrent code? by fnj · · Score: 1

      For your information I have worked on AUV code (autonomous underwater vehicle), and sorry to say it is your understanding that is limited. There are many ways to code such things. There are more things in heaven and earth, Horatio, than you seem to make allowance for.

    24. Re:Can't write concurrent code? by fnj · · Score: 1

      Sometimes they are processes and sometimes they are threads. Either way, you better damn well understand synchronization.

    25. Re:Can't write concurrent code? by svick · · Score: 1

      I do a ton of concurrent dev in Java and it is quite easy to write unit tests for.

      How do you unit test race conditions?

  8. Evaluations, training programs, and if needed... by tnk1 · · Score: 1

    If the business knowledge is useful, or they bring something to the table that you find desirable, create a position for them.

    If they don't, and they refuse to upgrade their skills, you review them that way. If they consistently fail to meet expectations, you let them go.

    Someone who isn't contributing to the project makes all of the rest of the people who are on the team have to work that much harder and makes their lives more difficult. And at the same time, you're having to pay that guy to have that effect. That makes no sense.

    Don't get me wrong, you need to set up training programs *as part of their job* to keep their skills up to date. If you are expecting them to juggle family life outside work with them having to spend time updating their own skills, then you as the employer are firmly in the wrong, and more to the point, you are hurting yourself. All of your employees have some sort of business knowledge that makes them better than hiring someone off the street, unless that current employee refuses to maintain the skills that they need to do their job.

    The worst thing you have to do as an employer is lay off people who are able to do their job and are doing a good job, simply because you ran out of money to pay them. Don't put yourself in the position of having to fire someone who does good work later, by maintaining someone on your payroll who refuses to learn new skills, or take on a new role, now.

  9. make him keep up by Musc · · Score: 1

    Why can't his manager simply order him to learn the necessary skills? Learning those skills would become part of his job. If he doesn't learn, he isn't doing his job, and could get fired. Why put up with someone who refuses to do his job?

    --
    Hamsters are at least as feathery as penguins. HamLix
    1. Re:make him keep up by Anonymous Coward · · Score: 0

      "Keeping up" seems to be one of those things that expected of people to do outside of working hours. For a constructive dismissal, evidence would probably need to be given that the employee was given opportunity to improve his skills, which means his company actually has to pay for training/give him the time off to do it, which seems to be a dying trend.

  10. Whereas I'm at the other end by Anonymous Coward · · Score: 1

    I'm a driver writer for a top 10 semiconductor company. I find new guys are more and more clueless about how computers actually work. They're so far removed from the hardware that it might as well be magic. It's not helping that universities are moving instruction in programming away from the fundamentals.

    Those old guys whos skill sets you think aren't relavent any more might end up being the only people who actually know how things really work.

    1. Re:Whereas I'm at the other end by Anonymous Coward · · Score: 0

      There are some old guys that don't know how things actually work. For example: APK and the /etc/hosts file. No idea how it actually works but he'll go to his grave (probably from a rage-induced stroke) convinced he was right. And you can't correct him because he was once moderated informative 5 years ago so anybody who disagrees is a corrupt admin luser. Or something.

      P.S. => APK, this isn't Jeremiah Cornellius and your incoherent ranting won't help.

    2. Re:Whereas I'm at the other end by gweihir · · Score: 3, Insightful

      There are two types of people that create software: Those who care about being good at it and those who do not. Age does not really play a role. Although I admit that what universities do these days is insane. I recently taught a last-year OS class to BA EE students, only to find out that they never had any C, all Java only. Java is unsuitable to tech programming in so many respects, it is staggering. One is that you do not get to understand the machine anymore. Another is that many students have this notion that gluing together library calls is "programming" and they never do anything else. As soon as they have to make something themselves that actually does something, they are lost. Fortunately, there are still people that want to know more and teach it to themselves. But that they are not treated any better when it comes to finding a job does not help, and quite a few of the smart ones do not bother anymore because they see becoming a really good engineer as a loosing game.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Whereas I'm at the other end by cytg.net · · Score: 1

      +1, candidates are graduating and have ever only touched a highlelvel language like Java. Code? Data? Whats the difference, right? If you dont know how these constructs are being handled at the machine level you're bound to put out ignorant stuff .. But who can blaim them, they're thinking in classes, interfaces and best-practice paradigms like visitor patterns, delegates or other high level abstraction techniques.. But who cares, moores law is here to save us all right? Just buy more iron.

    4. Re:Whereas I'm at the other end by Anonymous Coward · · Score: 0

      Oddly people seem to miss him. His lunatic posts were an good target to channel everyone's bashings. People also missed MyCleanPC spams for a while after they had disappeared.

    5. Re:Whereas I'm at the other end by Lumpy · · Score: 1

      Most CS grads cant program. They can write application software but they are epic failures at drivers, OS, and anything at the iron level. Some do, but those are EE degree holders with CS as a secondary.

      --
      Do not look at laser with remaining good eye.
  11. Midlife by Anonymous Coward · · Score: 0

    From my perspective, programmers today know nearly as much as their predecessors. They are drones contributing poor rewrites(at best) done by the 'old timers', resulting in very bloated and slow software that is only acceptable by the extreme speed of todays computers.

    Gotta give people a reason to upgrade I suppose...

  12. fix it. by Anonymous Coward · · Score: 0

    You train in version control, require it be used and used correctly. You make code reviews standard practice for all code that is checked in. If he cannot check code in and out and submit to the same reviews as everyone else, he can go elsewhere.

  13. Current? by charlieo88 · · Score: 2

    ... and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews;

    Where are you from that these are that these are "current" concepts that you wouldn't know about unless you've been keeping up? How old is this guy? When he programs, is he plugging/unplugging vacuum tubes?

    1. Re:Current? by petes_PoV · · Score: 5, Insightful
      I'm guessing what we have here is a junior programmer who's acting up because he is in the presence of senior staff, who are better paid than him, but don't have his spread of buzzwords. It's a sign of inexperience to assume that you're better, simply because you have been taught all the trendy buzzwords. I doubt that the older guys transgressions are anything really significant - maybe he cocked up a RCS entry once and maybe he doesn't know some of the stuff that the new kid does.

      However I would not be at all surprised to learn that Old Guy is more than pulling his weight where it counts: producing reliable stuff that is efficient, well documented, properly tested and on time. What New Kid fails to recognise is that in a short time, some other New Kid will be sniping at HIM for the same reason he's whining on now.

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    2. Re:Current? by gweihir · · Score: 2

      I doubt that. Not being able to use version control effectively is a dead giveaway of incompetence. Sure, the scenario you describe does happen, but seems to not be applicable here.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Current? by benjfowler · · Score: 4, Insightful

      You haven't ever been forced to use ClearCase, have you?

    4. Re:Current? by segfault_0 · · Score: 1

      Sorry, but anyone who refers to contemporary technology as "buzzwords" should most likely retire or find a different line of work.

      A great engineer pushes technology forward and leads, a good engineer stays current and keeps his company in good technical standing, and bad engineers make excuses and rest on their laurels.

      If you find that the language is changing around you and you can't keep up - you are most likely doing your company more harm than good.

      --

      I was crazy back when being crazy really meant something. (Charles Manson)
    5. Re:Current? by Anonymous Coward · · Score: 0

      And anyone who thinks of the newest bug ridden, poor supported, poorly documented API as "technology" should get into another line of work as well.

    6. Re:Current? by mjwalshe · · Score: 1

      Yes last year I had to work on an api that used the current hotness json plus callbacks but didn't imperilment a proper message Q so I had to build that from scratch to a slightly flaky api - whey they didn't use a proven Asynchronous MQ system I don't know.

    7. Re:Current? by Anonymous Coward · · Score: 0

      I'm not the GP, but I've used ClearCase, SourceSafe, SVN, and Mercurial. CC has easily been my favorite. However, we did have a full time administrator for it while everything else has been "Let's use this" with no design by which to use them properly. The current SVN repository I deal with has trunks within trunks, makes no consistent use of branches or tags, and doesn't use externals -- there's no need because you're forced to check out the entire repository (nested branches and tags included) to build anything.

      Incidentally, the guy who set it up is a professor and a damn fine programmer. It was also set up for a smaller team than is involved with the code now.

    8. Re:Current? by Anonymous Coward · · Score: 0

      Sometimes experience taught you that "old and boring" is best, and that "pushing technology forward and leading" is not always a good best business decision.

      Read here about how Cloud9 discovered this the hard way:

      http://zef.me/4235/pick-your-battles

      This might not be immediately obvious to the new guy who points at the stats of how node.js is soooo much better than that stupid PHP app. REAL programmers don't use PHP - we all know that!

    9. Re:Current? by JDG1980 · · Score: 1

      A great engineer pushes technology forward and leads, a good engineer stays current and keeps his company in good technical standing, and bad engineers make excuses and rest on their laurels.

      Good engineers get stuff done. If that can be done using older languages and older technology, nothing wrong with that. Not everything has to be written in the shiny new flavor of the day. The truth is that unless you work for Google, "pushing technology forward" probably isn't a goal in and of itself. It's only valuable if it actually assists the business in achieving its other goals.

    10. Re:Current? by bfandreas · · Score: 1

      Technology is transient. Methodology isn't.

      The most useful skill is an understanding how to achieve what. If you can do it in one language you can do it in all. Language is syntax and that's it. APIs have documentation(or you shouldn't use them). I've not seen anything truly new in the past 20 years. Only old concepts with a new name. Or combinations of old concepts.

      I once got asked what this "cloud" thing actually was. I told them that it's some server somewhere that you bet the farm on that it is maintained and available without being able to check. Cloud = server + blind faith. If you explain it like that then nobody is really that interested. Bring on the next buzzword. And it better not be "Message-Oriented Middleware" or "Software As A Service" or anything like that.

      --
      20 minutes into the future
    11. Re:Current? by Anonymous Coward · · Score: 0

      Damn, that's it - I'm leaving programming entirely.

    12. Re:Current? by bongey · · Score: 1

      No single person understands The Church of Clearcase. Clearcase reminds me of Scientology, a complete fraud.

    13. Re:Current? by bongey · · Score: 1

      You are either an IBM consultant or a moron. Let me see I have used pvcs,clearcase,sourcesafe,cvs,tfs,svn,mercurial,bazaar and git. Clearcase is by far the WORSE version control system in EXISTANCE,second only to pvcs. The version control model is completly broken, note UCM is just a hack on top base clearcase to compete with subversion. Clearcase also has the most subcommands and verbs out of any VCS out there, it makes command line for git look simple. You do know IBM has pretty much put it clearcase in legacy support mode, replaced by IBM RTC(subversion clone). Finally n your own words, it REQUIRES a PHD to set up a CLEARCASE, hilarious. Please do everyone a favor and shut up , you know nothing about version control and really just use clearcase as a crappy backup solution, not version control.

    14. Re:Current? by Anonymous Coward · · Score: 0

      I have. in fact I was the accountable manager for config management at a large financial institution. and let me say that large parts of our codebase never ever went missing and no-one ever screwed up a branch merge. That'd never happen with such wonderful software in place, ever.

      BAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAH

    15. Re:Current? by segfault_0 · · Score: 1

      If you are selling technology and you dont keep your product relevant, you company will soon be irrelevant -- if it isnt already.

      --

      I was crazy back when being crazy really meant something. (Charles Manson)
    16. Re:Current? by segfault_0 · · Score: 1

      Exactly the reason you should be immersed in your field.

      If we don't know the buzzwords and their real meaning/applicability -- we then leave it to our management to deal with them.

      Thats why you see the word cloud on anything involving more than one computer these days.

      --

      I was crazy back when being crazy really meant something. (Charles Manson)
    17. Re:Current? by bfandreas · · Score: 1

      Well. I don't. I'm running a Chrome plugin that replaces the word "cloud" with "butt". Makes a lot more sense that way.

      --
      20 minutes into the future
    18. Re:Current? by gweihir · · Score: 1

      Interesting. I have uses RCS, CVS and SVN extensively and git to some degree, but none of them strikes me as fundamentally broken or hard to use. Sure, they all have their peculiarities, and sometimes you may even have to do thing like branching manually (not an issue of you make sure it is cleanly documented and does not happen too often).

      Seems that is another advantage of FOSS: If it is broken, nobody will use it, while on commerceWare, some stupid manager made the decision to pay for it and then it has to be used, whether broken or not.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    19. Re:Current? by bmpc · · Score: 1

      A great engineer pushes technology forward and leads, a good engineer stays current and keeps his company in good technical standing, and bad engineers make excuses and rest on their laurels.

      In a field which is not regulated and where tools are not standardized, how do you know if the greatest and latest tech is actually any good?

    20. Re:Current? by Xyrus · · Score: 1

      ClearCase...only within the bowels of hell could such a hideous evil have been conceived. It drinks the blood of tormented programmers, and feasts upon their carcasses. Many programmers have gone mad just looking up it's hideous countenance. The mere utterance of it's name causes minds to crack and ears to bleed. Even Satan himself is leery of looking ClearCase in the eye. Religious programmers do not use the fear of god to keep their teams in line. They use the abomination known as ClearCase.

      You can tell when a programmer has used ClearCase. All you need to do is walk up to them and whisper it. The eyes go wide. Sweat starts forming. They shake uncontrollably. They'll start backing away, or start muttering, "My happy place...I must go to my...happy place!". The physical wounds heal with time, but the psychological scars last a lifetime.

      I've had the most unfortunate experience of using ClearCase before. I can honestly say I would rather have NO VERSION CONTROL than use ClearCase again. I'm not kidding. It is THAT bad. The team I was on stuck it out for about 2 months (I'll give them credit for lasting that long) and then we fled screaming to SVN. When we wiped the ClearCase machine, all the developers gathered around to watch like how villagers gathered around to watch a hanging. There was much rejoicing.

      I've known people who quit the project and/or company they worked for because they were forced to use ClearCase. ClearCase transcends bad software. It is ABOMINATIONWARE.

      --
      ~X~
  14. Possible reasons by Cesare+Ferrari · · Score: 1
    Maybe he doesn't like concurrent code because he's been bitten by nasty bugs enough times to shy away from it. Maybe he doesn't like your source control system as he has lost heaps of work in the past trusting it to a dodgy system. Maybe he has found code reviews a waste of time, or had bad experiences with pitched battles in a meeting room. Why don't you try asking him rather than speculating? 'Hey bob, it looks to me like you aren't keen on code reviews - why is that?' would be a good start.

    Alternatively, he's a bit of a jerk, or bad at his job, and i'll leave that to you to figure out for yourself.

    1. Re:Possible reasons by benjfowler · · Score: 1

      Fuckwit OP is big-noting himself.

      Only a minority of practicing developers truly get good enough at concurrent programming to brag about it.

  15. what's by Anonymous Coward · · Score: 0

    concurrent code?

  16. you nuke them by Anonymous Coward · · Score: 0

    if you're responsible for group productivity and you tolerate people with degrading skills
    1) you'll be perceived as unfair by people who maintain their skills(and you are unfair) creating pointless tension in the team
    2) you're putting your own job at risk

    if you want love buy a puppy. this is bidness

  17. Its easy! by MacOSXHead · · Score: 1

    Make him or her a Scrum Master! He will never touch code again!

  18. This is what performance reviews are for by istartedi · · Score: 5, Insightful

    You know, the manager takes everybody aside quaterly, or perhaps semi-annually and privately discusses strengths and weaknesses. If it's urgent there's a "see-me" meeting; but this is a slow leak, so it should be coming up in the guy's PRs. If it isn't, or there is no PR at all, management shares the blame. After having this mentioned in 2 or 3 PRs, and getting no bonuses or raises, it's shape up or ship out. Duh! That seems like management 101 to me.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    1. Re:This is what performance reviews are for by sylvandb · · Score: 2

      Duh! That seems like management 101 to me.

      How come I never have mod points when I need them? Absolutely, positively, yes. If you are the guy's manager, he needs to hear feedback from you on his skills, job performance, and future relevance. If you are not his manager, in your next 1-on-1 with your manager, you need to express your concerns with concrete examples (specific defects, specific commits causing the mess in revision control, etc).

      And now, perhaps it is your time to shine -- figure out how to become a trusted resource so the problem employee will value your assistance and feedback. Then help, not by doing his work, but by being willing and able to teach when the opportunity presents. Not just the "how to do" but the "why it is better for you if you do" until the "how do I" question comes.

    2. Re:This is what performance reviews are for by Sipper · · Score: 1

      I think you've got the right idea.

      Performance reviews are a good feedback mechanism for both the worker and the manager. It sounds to me like this particular programmer is feeling disconnected and as such doesn't seem to be taking account of the reporcussions for the way in which he's doing his work. Likewise this is bad for morale for everybody else, because they're having to clean up the mess. Nobody wins in this scenario -- the lone programmer is unhappy and the people he works with that want to work collaboratively are unhappy.

      So the recommendation I have is to at least try to have a conversation with the programmer about these things and try to help him reconnect with his fellow employees. This is not a "blame session", it's an attempt to get the team reconnected so that they can work as a team. It sounds like the programmer isn't able to say "I don't understand this" and as such can't learn from his fellow employees because of perceived judgment or a sense of insecurity. This is common, and can lead to all kinds of bullying behavior -- but it's the underlying disconnection that's the biggest part of the problem, IMHO.

      Hopefully this works. If not, hopefully the effort wil bring to light what needs to be done.

    3. Re:This is what performance reviews are for by bfandreas · · Score: 1

      Yup. It is. There have been books written about this but they only seem to be read by techs. Too little MBA mumbo-jumbo and too much common sense.

      Michael Lopp has described this as The Fez. Rands in Repose is an awesome blog and his book is also quite nice.
      http://www.randsinrepose.com/archives/2005/01/24/avoiding_the_fez.html

      Joel Spolsky also had a few run-ins with having to manage while being tech.

      --
      20 minutes into the future
    4. Re:This is what performance reviews are for by Anonymous Coward · · Score: 0

      A manager, that has worked with these types of people for a long time will not give an unbiased review. Thus, a review cycle will not weed out sedentary developers that are no longer passionate about code.

  19. Promote to management by Anonymous Coward · · Score: 4, Funny

    I'm 35 and in the management chain now.. No more needing to know how to do anything. It's pretty awesome.

    1. Re:Promote to management by ATMAvatar · · Score: 1

      No more needing to know how to do anything.

      That is probably the most apt observation I have seen to explain why management is usually terrible.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    2. Re:Promote to management by Anonymous Coward · · Score: 0

      Absolutely, but he's totally correct. At least the parent used to know...most managers I deal with never knew.

    3. Re:Promote to management by Anonymous Coward · · Score: 0

      sigh.... wonder why your previous managers seemed like such tools?

  20. leave by Anonymous Coward · · Score: 0

    if your company is keeping old farts with no motivation to excel, you obviously have no business there (assuming you are pursuing success)

  21. Investment in Employees by loxfinger · · Score: 1

    When I was a programmer in the 1990's, software companies had this idea that if you hired smart problem-solvers, you could teach them the details, like a particular programming language. These people, ideally, were adaptable and interested in expanding their knowledge. If you accidentally hired someone who couldn't cut it, you let them be on their way. For the employees that you valued, training and tuition reimbursement were the norm. For better or worse, that way of thinking has died. Unless you're a true superstar, you can be replaced by someone who has more current skills, is willing to work for less, and is young enough to not to be encumbered by a family. A programmer is no longer a long term investment, someone whom the company hones over the years, but a disposable razor who seemed sharp at the time of hire. You have someone who won't keep up technically and and has less than ideal social skills? They're outta here, baby, even in the old way of thinking.

  22. Create a new process for programming by Murdoch5 · · Score: 1

    I can understand not wanting to use revision control, personal I had a really bad perforce experience. However code reviews and all the other common practices are usually really useful. I would send a message up to manage asking for employees / teams to be given books on development practices and made to read them, then if he still doesn't want to listen you can take further action.

  23. Fire them, it's quite simple. by Anonymous Coward · · Score: 0

    As someone regularly called a dinosaur (I'm not that old, really) I say fire the lazy pricks. There's no excuse for people to not keep up with the things their job requires. I'm regularly involved in open source via github, use "cloud" nonsense, write in everything from assembler to C to C# to Java and above, use everything from rcs to cvs to git to hg to bzr, and am signing up for spideroak as I type this.

    People who use this as an excuse to be lazy pricks deserve to be treated just like any other lazy prick. Fire them, get someone who can bring knowledge and flexibility to the table. They are out there, it is not a black and white situation.

    This guy in particular not only sounds like a lazy prick, but an arrogant prick. I'm a mentor of many programmers currently and they teach me things too. So he can just go straight to hell.

  24. its not a matter of feelings by ILongForDarkness · · Score: 1

    Can you use the tools and techniques needed for the product? Yes/No? Whether you are hiring or determining to retain staff they have to be able to do the work. Only janitors have the luxury of being able to use the same techniques they did 20 years ago when they got their jobs.

  25. Meh by Anonymous Coward · · Score: 1

    "there are usually a few programmers who have been employed long enough that the skill-set they were originally hired for has become irrelevant. At the same time, they have not bothered to stay current with newer technologies. They usually have enough business knowledge that they provide some value to the company, but from a technical perspective they are a slowly-increasing liability."

    With respect, I'd suggest you start by questioning the assumption that 'the skill-set they were originally hired for has become irrelevant'. Whilst I've occasionally seen this happen it's far more common for pipsqueak young coders/management to show up waving what they consider to be the greatest new technologies since the invention of the battery-powered cordless breadknife, only to turn up to be missing a whole lot of fundamental knowledge that eventually proves to have been actually pretty important. So, review your assumptions first. Have respect and you will get further.

    If they're intolerant of your attempts at managing them, then you probably are pissing them off. The second suggestion is, therefore, in trying to improve relations between you, try not to piss them off. A good place to start with that would be to dump the ageism already. Your Ask Slashdot reads like, 'ooh, they're TEN YEARS older than me and they CAN'T EVEN do blah blah'. Don't do this. Have respect. You will get further.

    Third, try figuring out what each programmer's strong points actually are. Don't tell me they haven't got any. Coming back to 'they CAN'T EVEN do blah blah', I'm assuming that there are things that they can do, because you seem to imply that they once had useful skillsets. How about starting by listing the things they do know and working from there? Failing to recognise other peoples' skills is just poor technical management. Keep in mind that they may be bored as hell of programming after a decade in the job, so also consider other skills that may be of relevance to the company; technical writing, teaching/training, people skills in general.

    You've just written an entire Ask Slashdot that is unrelentingly negative about people who apparently work for you. If you do that in the office it isn't surprising that they don't feel like following your leadership. Find something to be positive about, or save everybody the hassle and just make them redundant straight off. Negativity and leadership don't go together. And yeah, I have been pretty negative about this Ask Slashdot, but I'll tell you why: I was in technical management for many years. I have written a whole lot of emails with 'they CAN'T EVEN blah blah' in them. I have thought the way the submitter thinks about a whole lot of staff members. And eventually I worked out that the fundamental problem was that I was a naive, slightly self-obsessed young technical manager with insufficient leadership skills to figure out that either you let people go or you demonstrate some respect for what they are now, as well as what you want them to be.

    1. Re: Meh by Anonymous Coward · · Score: 0

      What he/she said!

  26. Knowledge and competency by Teun · · Score: 1
    Knowledge and competency are the values an employee brings to the company and in return gets paid for.

    Because these values need constant attention a company is well advised to have a system to both develop and check progress of them.
    This will obviously involve participation of the employees and I can tell you from first hand experience it pays for both parties to foster such a system of training and competency development.
    Where I work it is mandatory to take part, although it's the only way to ever get a pay rise all the engineers I know are especially motivated because it's nice to be part of a system that constantly develops.

    When the system was originally rolled out we've seen some old timers leave for companies that did not bother them about development, good for them and us :)

    --
    "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    1. Re:Knowledge and competency by serviscope_minor · · Score: 1

      Knowledge and competency are the values an employee brings to the company and in return gets paid for.

      No, absoloutely not. The thing that an employee gets paid for is _time_. Knowledge and competence affect how much the time is worth, but they are still paid for the time.

      --
      SJW n. One who posts facts.
  27. easy by Anonymous Coward · · Score: 0

    YOUR FIRED....and replaced by a canadian foreign temporary worker at min wage - 15%.
    YES i will be doing quite well ( makes darth vader sounds )

  28. Wait a minute... by Anonymous Coward · · Score: 0

    1.) Absolutely no definitive definition on what defines "current skill set."
    2.) Reasons to suspect that the source / version system sucks.
    3.) Likely an article submitted by another one of those management types who, instead of improving their scoping skills and or leadership boundaries, would rather nag and nag everyone below his or her station to learn everything the popular companies use--not because some project necessarily requires it, but because, "they're doing it, so we should be, too."

    I honestly hate people like you.

    1. Re:Wait a minute... by tp_xyzzy · · Score: 1

      Current skill set obviously means that all my CATEGORY THEORY skills are useless, but JAVA is hot...

  29. I'm also somewhat resistant to code reviews by jc42 · · Score: 4, Insightful

    I've often found that this describes me, because in the many code reviews I've sat through, I've yet to hear any point that I hadn't already thought of myself, and could provide the appropriate test code (if they'd accept it). So, in my experience, all code reviews have been a total waste of my time, and there was never any way to get past the trivial "newbie" stuff to the things that I thought were outstanding questions that needed answering.

    And, unlike many developers, I've often found myself on very good terms with the QA people, because when I give them my stuff, I include a pile of test routines that they are welcome to use as they wish (thus saving them a lot of time).

    So I consider at least one of the points here somewhat dubious. Yea, code reviews sound like a good idea. But if they don't produce any new questions that the developers haven't already dealt with, they're a big waste of everyone's time.

    I wonder how many readers have similar reactions to the other points in the summary? For instance, concurrent code can be fun to develop, but in practice, all the interlocks required to make it work can reduce many tasks to near-serial performance. Sometimes, though, a better approach is to look for ways to split the task into subtasks that can run in separate processes that rarely interact. I've done this on occasion to produce huge increases in speed. Of course, this isn't really a question of programming, but rather a question of reanalyzing the task and finding a way to handle it with minimal coupling of a set of independent subtasks. But doing this could easily be interpreted as not understanding how to write concurrent code, rather than understanding when concurrency is an advantage and when it's not. ;-)

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    1. Re:I'm also somewhat resistant to code reviews by Anonymous Coward · · Score: 1

      Code reviews aren't just about finding bugs in your code. They're also about teaching other people.

    2. Re:I'm also somewhat resistant to code reviews by sylvandb · · Score: 1

      For instance, concurrent code can be fun to develop, but in practice, all the interlocks required to make it work can reduce many tasks to near-serial performance. Sometimes, though, a better approach is to look for ways to split the task into subtasks that can run in separate processes that rarely interact. I've done this on occasion to produce huge increases in speed. Of course, this isn't really a question of programming, but rather a question of reanalyzing the task and finding a way to handle it with minimal coupling of a set of independent subtasks.

      True. However multiple processes is simply one form of concurrency where the OS handles your isolation. If you can divide into separate processes then you can also do it multi-threaded with minimal if any "interlocks needed to make it work."

      Further, multiple threads has less overhead than multiple processes (especially on one particular prominent platform) and may be preferable. Or if the problem does easily lend itself to multiple processes, that may be good enough or sometimes even better (e.g. python with the GIL).

      So the problem really could be the guy has a problem with concurrent code of any variety.

    3. Re:I'm also somewhat resistant to code reviews by Musc · · Score: 1

      When the code is good and the reviews just say "looks good", doesn't that take very little time? Even when no issues are found, the code review lets the team see the changes before they are checked in, so everybody is kept up to date about all changes. This is not a waste of time.

      --
      Hamsters are at least as feathery as penguins. HamLix
    4. Re:I'm also somewhat resistant to code reviews by dfghjk · · Score: 1

      That's an even worse justification since it delays progress for an unrelated (potential) benefit.

    5. Re:I'm also somewhat resistant to code reviews by dfghjk · · Score: 2

      Yes it is. There's no value in seeing the code *before* it's checked in and waiting for the review does take significant time. People who should know about the changes should review the work when it's checked and take action when necessary.

      I have NEVER seen a traditional, mandatory code review process result in significant benefit. On the occasion that something is caught, it could also be caught at lower cost with other methods. Inspection is not as effective as testing so delaying testing for inspection is ignorant. People who support code review worship process over effectiveness. They need to take a frank look at the result.

      The worst code I have ever worked with has come at the job I've had for the last 8 months. It is all formally code reviewed and it clear that code review is the lowest value work that the programmers produce. Frankly, I think programmers are often best served by being less current, code reviews are a great example. More testing, less intellectualizing. The BS that passes for programming these days...

    6. Re:I'm also somewhat resistant to code reviews by Anonymous Coward · · Score: 0

      What an absurd post. Someone go tell Google that they're putting process over effectiveness, and that they should take a frank look at the result.

    7. Re:I'm also somewhat resistant to code reviews by Anonymous Coward · · Score: 0

      I've found a few zingers doing code reviews, but mostly I find it useful just in terms of knowing the scope of testing that will be required.

      I frequently see developers take a simple defect fix as an opportunity to re-write ugly code they don't like. Code review makes this visible, and when we are getting close to ship, I can reject this kind of risk when it's not necessary.

      I've also seen code review be counterproductive - lots of time wasted nitpicking on style choices, instead looking at changes that would improve reliability or functionality.

    8. Re:I'm also somewhat resistant to code reviews by Anonymous Coward · · Score: 0

      You seem to have a very fixed and one-sided idea of what a code review is, and only include mandatory pre-commit reviews.
      There's many more variants, for example
      1) The "hey, can you have a look at this change, I'm not sure I'm doing the right thing" review, started by the one writing the code
      2) The pre-release code review, where you go over the code to ensure that e.g. no TODOs were forgotten in it etc.
      3) The post-commit informal code review, aka "commit mails". Has basically no cost, but if it has value depends on your team. Personally I believe you need at least one person who knows how to make good use of it (finding bugs, suggesting better solutions, pointing out existing code to reuse, ...) to motivate the rest of the team. But if working it has a lot of benefits, beyond code quality it spreads knowledge and motivates people to write useful commit messages since there's no "nobody will read it anyway" excuse.

    9. Re:I'm also somewhat resistant to code reviews by bmpc · · Score: 1

      I like code reviews and think they can work. Here's some anecdotal evidence:

      I work at a company where the "code review" is part of the process, but not all teams end up doing it (i.e. for time constraints). Specifically, there's a smallish team who mostly does not do them.

      This has given me the opportunity to see the result of work done with "code review" and and work done without code reviews, by people in the working same environment, hired under the same (or similar) criteria.

      In summary, there is a significant difference in code quality in the code written by these folks who usually skip the code reviews. Sometimes these guys work on code that's under my team's irresponsibility and we end up having to cleaning it up (to the point of rewrite).

      If these people would do regular reviews, and talk about the code, and what makes it good or bad (this usually happens in a code review), their code would eventually improve. I know my code improved a lot by being reviewed by my colleagues.

      The code review allows for some knowledge passing, and is also a quick "code readability" sanity test.

      On the occasion that something is caught, it could also be caught at lower cost with other methods. Inspection is not as effective as testing so delaying testing for inspection is ignorant.

      Its been publicized that the cost of correcting a bug goes up with time (i.e. its cheaper to fix a bug that is found in the development phase, than if it is found in the QA / testing phase; its cheaper to fix a bug found in QA, than a bug found by the client). I think I first read in the book "Code Complete".

      Code quality issues are not caught up by the QA / testing people.

      The worst code I have ever worked with has come at the job I've had for the last 8 months. It is all formally code reviewed and it clear that code review is the lowest value work that the programmers produce.

      If your code reviews are not improving the code, maybe the process is not a good one. Maybe you want to share how you guys do it?

    10. Re:I'm also somewhat resistant to code reviews by Anonymous Coward · · Score: 0

      I'm pretty sure I couldn't work with you. If you are so over confident that you think nothing good can come from a code review, then you are too arrogant to be around day after day. "Rock star" programming or whatever you call this attitude rarely leaves room on the stage for more than one person.

      I much prefer to surround myself with good people, and listen to their feedback on how to do things better.

      I hope what you are really saying is that your experience with code reviews has been with people that haven't done many code reviews. Code reviews should be as much about the big ideas, algorithms, and abstractions as they are about ensuring that the coding standard is being followed.

    11. Re:I'm also somewhat resistant to code reviews by gnasher719 · · Score: 1

      If your code reviews are not improving the code, maybe the process is not a good one. Maybe you want to share how you guys do it?

      Here's a benefit that we get at my place: Quite often you are under pressure as a developer to get stuff done, even if the code isn't as good as you want. Then comes code review: If you are not happy with your code, created under time pressure, you pick the right reviewer, it gets rejected, and you have all the time to do it right :-)

    12. Re:I'm also somewhat resistant to code reviews by x24 · · Score: 1

      In my office, the "significant time" for a code review is the 5-10 minutes between "Hey, have time for a code review?" and "Thanks". All code reviews are in person and pre-commit. Bugs are occasionally found, and the savings in not having to fix those bugs later are significantly higher than the time it takes to do code reviews.

  30. uh by bahaelaila7 · · Score: 1

    kill and re-spawn.. no hard feelings

  31. How about train him? by Joreallean · · Score: 2

    Since when is it not the companies responsibility to train their employees to do their job? If the job changes while you are there why should you be expected to keep current with the technologies on your own time? If you want him to do things differently then train him on it, if he's not willing to adapt to the new methods then fire him. I do resent the idea that younger, faster, more curious people automatically assume that the level of effort THEY put in is the standard. Some people jobs are simply a means to a paycheck and nothing more. Others its more important than their hobbies so they care more. Each company has a culture that exists and if a person doesn't fit that culture then its time to move on. Some people are content with Operation Enduring Paycheck. Its not hard to keep a job once you have it.

    1. Re:How about train him? by Anonymous Coward · · Score: 0

      "Its not hard to keep a job once you have it."

      I've had 37 jobs in the last 7 years. I want to know what makes you say something like that.

    2. Re:How about train him? by Anonymous Coward · · Score: 0

      >> Its not hard to keep a job once you have it.

      I haven't managed to keep a job for more than 2 years in the 12 years I've worked professionally. Admittedly, these were almost all government contractor positions; but I worked with some people who still, 12 years later, managed to keep to the same government contracting company. I have a slew of ex-coworkers perfectly happy to give me an excellent reference because they thought I did an excellent job. Yet I still haven't managed more than 2 years, and a number of them even less than that. I don't know if it's because I'm always the low man on the totem pole in terms of seniority or what, but when funding is cut I'm always in the group out the door. Heck, I was even dumped about 6 weeks after finally getting my top secret clearance, which is an arduous process lasting over a year and costing the company thousands of dollars.

    3. Re:How about train him? by Anonymous Coward · · Score: 0

      Since employees, particularly in I.T., have proven again and again they're willing to self train on their own time and money.

    4. Re:How about train him? by mrxak · · Score: 1

      Just because the standard sucks doesn't mean a company should tolerate it. If younger more capable workers are able to do the job for less pay, and an old timer is dragging down the bottom line and not doing his job (and worse, making other people's jobs harder), of course a company is going to go with the "younger, faster, more curious people" who can accomplish the job they need to do.

      If those older workers have useful knowledge and skills that are still relevant to somebody, they will find another job. Lots of companies with aging mainframes are looking for people who know languages and systems that nobody learns anymore, and they're willing to pay to get that expertise. If those older workers don't have useful knowledge and skills, why do they deserve employment at all?

    5. Re:How about train him? by bfandreas · · Score: 1

      ...and this is why a lot of working environments are what they are. What you describe is a reign of terror that is unable to hold on to good people, ensure they stay valuable and will have a high fluctuation. A fucked company. With no management competence whatsoever.

      Thankfully I feel quite safe in my assumption that you are not currently holding a management position.

      --
      20 minutes into the future
    6. Re:How about train him? by mbkennel · · Score: 1

      If those younger managers are unable to achieve results without generating significant personnel disruption, why do they deserve employment at all?

      A bit more maturity reveals that everybody, yes everybody, has varying skill and knowledge levels on all sorts of tasks. There is somebody better than you at something. Do you think it's reasonable that this other kid wants to get you fired?

      Good management maximizes compatibility between person and requirements. If the older co-worker doesn't know how to program concurrency very well, and you do, then you should take on the concurrency-programming tasks instead of bitching. Yes, you should get a better bonus.

    7. Re:How about train him? by Anonymous Coward · · Score: 0

      Totally agree. If the job requires new skills the employer has to give time and ideally help (train) the employee for doing the job otherwise they can't bitch about them having outdated skills. Your skills fit to what you are doing.

      That said there are people who will try to keep their heads down and out the way and avoid anything new. So sometimes there are people you say "learn or leave" to.

  32. Same as a young guy who doesn't have skills by phantomfive · · Score: 1

    You give him tasks that use the new technology, but are relatively easy. Then give him something a little harder. Then he catches on.

    If you're not his manager, he's probably annoyed that you're telling him what to do. If you are his manager, you can try appealing to his ego and say, "I want to do code reviews. Letting junior developers look at your code will give them an idea of what good code looks like."

    --
    "First they came for the slanderers and i said nothing."
  33. I have to agree.. by Junta · · Score: 1

    I'm not even that old, but have taken a perverse interest in understanding the low level implications of everything I do. Certainly, most of the time I don't have to think too hard about it, but the awareness has been very useful more frequently than one might think.

    I think that low level understanding helps me to adapt to higher level language features as they come out. People who don't understand the low level stuff seem to regard their craft as some sort of unfathomable magic where they learned how to apply a particular generation of technologies without truly understanding it. When a new language feature comes out, if you understand the low level well, you have a pretty solid feeling to understand what that feature is doing and how to exploit it.

    Unless a curriculum is touching all of this, low level and high level and the nitty gritty of how it comes together, i don't think it is constructing durable skills.

    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:I have to agree.. by gweihir · · Score: 1

      Indeed. And it needs to do this with more than one language and more than one paradigm. Otherwise peoples never figure out what the machine can do and what it cannot do, but only what their specific language can and cannot do. With this one language far to often being the hopelessly problematic and good-at-nothing Java, that is really not good.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:I have to agree.. by Junta · · Score: 1

      I think a software developer should proceed in order working with the components comprising a modern software stack.

      Start with fiddling a bit with breadboards and basic circuits.

      In relatively short order, move on the assembly programming for maybe half a year.

      Then, get comfortable with C level development, understanding all the syntax shortcuts for what you formerly had to do, but by and large still being able to easily tell how it maps to your assembly effort. The bulk of the educational aspect should be spent in C.

      Then they should touch perhaps Erlang and Lisp. At least a couple of languages with pretty interesting tendencies that display a line of thinking that diverges prettty strongly from the typical to give the developer a bit more context.

      Near the end, move on to Python, C#, Java, and perhaps Powershell. Have some opportunity to explore the languages most likely to be directly relevant to their immediate career, understanding what sort of things they tend to take care of without you worrying, and what sorts of strategies end with those facilities not providing adequate help (e.g. scenarios that muck up things for reference counting).

      --
      XML is like violence. If it doesn't solve the problem, use more.
    3. Re:I have to agree.. by bfandreas · · Score: 1

      Well, if you don't know how the VM works then you are pretty limited in what you can achieve. While I would generally agree with you that understanding computers is beneficial I don't believe you have to have done a lot of C. Uphill, Through the snow. Both ways. That's how we synchronized our shared memory in the olden days.

      Anecdote time:
      When i was a newbie I had a project lead on a project that involved communication between a Java client and a C server. My project lead insisted that simply opening a socket and go with the protocol we should talk to the server by RMI. So far so bad. The server guys wrote an RMI component that translated it to their protocol.
      Then our project lead went ahead and said that we should only exchange Strings. And since that wasn't insane enough he insisted that we encapsulated our data within XML.
      So what we had was XML in Strings over RMI. Because connecting to a port was too difficult. When he got demoted I didn't get his job because I had "rocked the boat". In retrospect I have to be thankful for that. By then the team was deeply dysfunctional and started baaing like sheep. The customer was somewhat impatient due to a 1 year project overrun. The vendor of the server wanted to sue. And our management was confused what the problem was. You are truly fucked when your management sends in the mediators. I still stuck with them for 3 further years and learned a lot about management. And hiring tech. A career building failure, so to speak.

      --
      20 minutes into the future
    4. Re:I have to agree.. by gweihir · · Score: 1

      I agree that you do not need C, but it is the easiest option. The only other one is programming some assembler for a few different architectures. (C++ qualifies only to the degree it qualifies as "C".) The Java people miss this view completely, as your anecdote exemplifies perfectly. This guy was probably thinking he was using the simplest way possible, when what he actually was using was horribly complex.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:I have to agree.. by Anonymous Coward · · Score: 0

      I don't have an account on here or i'd be giving you points, but goddamn I agree with you. I am an electrical engineer turned developer and my education roughly followed the curriculum you just outlined. Though you'd have to replace python with perl & powershell with bash. I am amazed by people I meet in the industry who are just plain unaware of what is going on "under the covers"

  34. Fire them. by Anonymous Coward · · Score: 0

    Being anti-code review is enough reason alone to fire someone. That is one of the most arrogant and worst qualities imaginable.

    Revision control screwups? That just means he's not qualified for any kind of computing job. These things aren't hard to learn. This guy just plain sucks at what he does and isn't willing to improve himself. Hire someone who actually wants a job.

  35. Switch to a bazaar model by Anonymous Coward · · Score: 0

    If you have a system that allows any developer to contribute code to any module, subject to group review and approval, he will get feedback on his code and have to make the case for its inclusion without feeling like he's being treated unfairly. Meritocracy wins the day.

  36. Lol slshdot by Anonymous Coward · · Score: 0
  37. For starters, you can get off your high horse... by mpthompson · · Score: 5, Insightful

    It's really up to the management at your company to determine whether someone is pulling their weight or if their skills are up to snuff. You may have an opinion, but it's best to keep it to yourself. Many people provide value to an organization in ways that aren't always easily visible to co-workers. It's entirely possible the coders who doesn't seem to be "as up to date" in his skills may be providing benefits to the organization in ways you don't yet have the experience or perspective to appreciate.

    I once kept what others might consider to be a sub-par programmer on my team because he was a good friend of my best programmer -- the type of programmer who provided 10x the value of any of his peers who complained about the sub-par programmer. Besides, the sub-par programmer had a great personality, broad work experience and helped round out the team and make the overall workplace a much more enjoyable place to be. We had to work through some of the coding skill issues, but as a manager it was a tradeoff I was happy to make considering the other ancillary benefits the person brought.

    As a manager, one of my toughest jobs was dealing with the handful of younger programmers who felt it was their duty to judge the value of everyone else on the team -- usually on very narrowly defined terms. Most often it was a case of "the pot calling the kettle black" and the energy invested in pointing out the flaws of others would be much better spent on reflecting upon their own shortcomings and improving their own skills -- which were usually overrated. I can say that because I once was one of those overly self-confident younger programmers myself, but I have since gained some experience and perspective.

  38. My company insists on paying for training by raymorris · · Score: 1

    Where I work, it's the opposite. They onsist on training, and on paying (too much) for it.

    My natural tendency is to simply RTFM. If it's not covered in the manual, I normally read the code. If the code is unclear, I ask the people who wrote it. (I work with open source, meaning the developers of any product I use are an email away.) Yet, the organization insists that I find a conference or something for them to fly me to every year, and classes to take.

    1. Re:My company insists on paying for training by Anonymous Coward · · Score: 0

      The company I work for insists on training as a high priority, has yearly periods where everyone meets with their manager to discuss things (including what kind of training they think would benifit them), even has a specific "ongoing training form" that is manditory.

      In my 6 years working there, I've only seen maybe a handful of people actually get sent on any training. I got turned down for something I was willing to pay for (it would have cost them a week of my time). It's kind of a sad joke around the company.

    2. Re: My company insists on paying for training by xaxa · · Score: 1

      I prefer to Rtfm, so my employer sends me to QCon. I recommend it, it's useful to see all the new stuff in one place.

    3. Re:My company insists on paying for training by Anonymous Coward · · Score: 0

      I worked for a fortune 100 company at a large out of state office. They told us we had to take some required training every year. BUT!!!

      You needed a special login from HR to sign up and they had a limited budget. Our logins were delivered to us a week after all the budgets were spent by signups by people in the home office. We got dinged every year for not taking our training.

      Most of my career I have been on call and have not been able to take any formal training because the company owned my schedule,

  39. Older employee HowTo by Sla$hPot · · Score: 0

    "And, most importantly, how do you do so without stepping on anybody's feelings?"
    LOL..ROFL..LMAO..Very funny.

    The reason why your older colleague doesn't do more than necessary is because that is what the majority of people do. Plain and simple.
    As a lead, all you have to do is hand out new assignments and reasonable deadlines based on estimates made together with old bob.
    Then watch what happens. You might be surprised how well, old timer adjusts to new challenges :)
    I have been working with old colleagues up to seventy years old that would take up any challenge and work like hell until you got scared and sick watching it.
    Your issue is probably more about yourself and how to assert other people, more than other people not being able to take it from you.

  40. There's a time honored solution .... by whizbang77045 · · Score: 3, Funny

    It's simple. You promote them to management.

    1. Re:There's a time honored solution .... by erice · · Score: 1

      It's simple. You promote them to management.

      Where they can use their authority to force everyone else to use obsolete and "considered harmful" methods as policy because it needs to be done that way so they can still understand it.

      No that I've ever had to deal with this situation.....

    2. Re:There's a time honored solution .... by Anonymous Coward · · Score: 0

      Promoting to no longer current developers to stable is also a release time honored tradition.

    3. Re:There's a time honored solution .... by Anonymous Coward · · Score: 0

      It's simple. You promote them to management.

      This may have been scored funny but it is actually quite true. If they fail at management then a company lay-off will clear that up

  41. put them on side-track assigments by 4wdloop · · Score: 1

    If you have influence on the type of assignments they get, push them into more boring, less desired assignments (also less critical). They usually are aware of their situation and will be happy to grind through the bore and even more happy to be left alone. Also the rest of the team will be grateful for this effort.

    --
    4wdloop
    1. Re:put them on side-track assigments by bfandreas · · Score: 1

      The submitter has no power. No influence. Which is good since he also might not have a clue. If he had one then he'd know that this is a management issue.

      I also doubt most of what is written in the blurb. Multithreading is a non-issue in most business software since we spent the past 20 years to make sure we don't have to fuck that particular beehive ever again. The only place where you need this skill is either on a systems level where you wouldn't have survived into an old age if you didn't know anything about it in the first place. Also who has not ever fucked up a VCS commit?

      I either call BS or beehive fucker on this one.


      Sorry for being so drastic but I had to deal with that kind of attitude when on of my new hires thought he knew everything best and started to fuck with one of my most experienced guys. I offered him to go with the program or simply go. So he went. Last I heard he quit his new job after 6 months. I smell the same kind of BS right here. Same stench.

      --
      20 minutes into the future
  42. You don't. by Anonymous Coward · · Score: 0

    How do you help somebody like this to improve their skill-sets? And, most importantly, how do you do so without stepping on anybody's feelings?"
    You can't help people that either don't want help, or don't think they need help. Unless the person either asks you for help, or is obviously struggling and would appreciate the help if offered, you just let them be. It's no different with developers than with anyone else.

    From your question however it doesn't sound like either of the above are true. It's easy enough to help people who want help where you know what the right path is. When the student is ready the teacher will appear.

  43. "Stay current" and "no source control"? by gnasher719 · · Score: 1

    I used source control tools in 1991. I used manual source control years before that. If anyone isn't capable of using a source control system today, that isn't "not staying current", that is failing at basic job requirements.

  44. Training classes by Animats · · Score: 3, Insightful

    Your company probably doesn't send people out for training classes. That used to be common. Today, there's such a programmer glut that few companies bother.

    Revision control is mostly a by-the-numbers process. In-house, you should have a short document that tells people how projects are set up, and where everything goes. Has someone written that document?

    Concurrency is hard for most programmers. Lately, I've been observing people screwing it up in Go. (Go has thread fork and bounded buffers built into the language, but still has shared data, so all the usual race condition bugs are possible.) What language are you using, why do you need concurrency, and do you need thread-level concurrency?

  45. Teamwork and targets by Fuzzums · · Score: 1

    Put him in a team with experienced programmers.
    As a team you decide all code will be reviewed. All code. Comply.

    As for the technology: a manager has to be very clear about this. Explain he / she is falling behind. Explain what new technologies you want him to learn. Explain that the company needs him to learn this new things. Offer help / courses / whatever.
    And finally: "You update your skills (smart targets) or we lower (or don't increase) your salary."

    --
    Privacy is terrorism.
    1. Re:Teamwork and targets by coolmadsi · · Score: 1

      Put him in a team with experienced programmers.
      As a team you decide all code will be reviewed. All code. Comply.

      The team I am in tried this for a little bit, but recently relaxed it slightly as we were spending time reviewing non-contentious code changes that we didn't need to (like renaming something, or minor refactoring). I think it was good to review all code changes for a while, just so we could find what did and didn't need reviewing, instead of just guessing.

  46. Not current by ozduo · · Score: 1

    Raisin with them!

    --
    I got to the chocolate box before you, that's why the hard ones have teeth marks.
  47. Ask Slashdot by R3d+M3rcury · · Score: 1

    I understand it's Slashdot and the department is "Ask Slashdot." Still, why is it when I see whiny little questions like, "What do I do about a co-worker who..." the first answer that comes to mind is "beat them severely." It's sort of a more violent version of Betteridge's Law of Headlines.

    Maybe it's just me, but I feel like I'm seeing more and more of these managerial questions. Y'know, if your interpersonal skills are so bad that you need to ask a bunch of slashdotters how to deal with people, you may not be cut out for management.

    But here's a hint--perhaps he doesn't see a real advantage to learning the latest buzzword-development paradigm. Perhaps, rather than scoffing at his neanderthal ways, you should consider whether or not you're gaining enough to use these techniques.

    If you believe you will--and you may be right--one way to light a fire under his butt may be to show him. Have him write the code. Have you write the code using these glorious techniques. Put the two together and run it. If you can show him the benefits of learning this, he may be more inspired to do so. Similar thing with version control--show him how it benefits him to use it.

  48. Shut up and suck it by Anonymous Coward · · Score: 0

    If you are his boss and don't thing he widths his salary fire him.

    If you are not his boss then shut up and work with him as his boss things that he adds value.

    Stop nagging and learn to work with others.

    1. Re:Shut up and suck it by Hognoxious · · Score: 1

      don't thing he widths his salary

      And this, class, is why you shouldn't use speech-to-text, especially when you have a cold.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  49. offer them training by Anonymous Coward · · Score: 0

    if they are solid programmers, but lack skills with new tech, pay for professional training. if the are good programmers, they should pick it up. let them go If they don't improve in 6 weeks-6 months.

  50. Ol' timer's advice by R3d+Jack · · Score: 1

    I've been around for quite a while, but I have kept my skills up, with four kids, to boot. I feel your pain. Often, these programmers aren't able to go to the next level. At the same time, I've seldom seen Management do anything about them. Here's my advice. Stay away from these people. You do not want to be associated with or influenced by them. Focus on your own work and doing it as well as you can. Unless you are in charge (meaning you have hire/fire authority,) don't concern yourself with the overall situation. BTW, you'll start feeling much better once you've given up hope.

  51. Terminology differences? by Fencepost · · Score: 1

    Is it that he doesn't understand concurrent code, or is it that his knowledge of it is different from yours? If he's my age or even 5-10 years younger he didn't cover much with asynchronous web apps in school (I graduated just before Berners-Lee announced), but he may well be aware of concurrent processing in other contexts.

    First off, anyone who did any GUI development even in completely-unthreaded 16-bit VB3 should be able to understand the basic concepts. DoEvents anyone? Throw a timer control on a form AND handle GUI interaction? Congratulations, concurrency if only at a minor level. Hell, anyone who's written GUI apps that trigger long database queries without hanging the app has dealt with concurrency.

    Second, anyone who's done much with *nix command-line processing uses concurrency even if they don't know it. Piping anything through multiple stages? Each of those processes is running concurrently, either waiting for input or processing input possibly while the preceding stage is still chugging along providing more.

    Finally, has he done any multi-threaded apps (or passed on that approach for scaling reasons)? At this stage I'd expect him to know what you're talking about, but there's still a noticeable difference between multiple threads and thinking the same way about web apps.

    --
    fencepost
    just a little off
  52. Immature know-it-all who needs more experience? by Malc · · Score: 1

    You need to learn some humility and sense of your own limitations. Concurrency and revision control have been around for decades, so it's concerning that you don't know that.

    As for your colleague, you're just describing a shit engineer. That's a problem with your company and its processes. That's a management issue. Whinging on /. won't change that, so what are your proposals to your management to improve the team?

    Another question for you: what expectations does your employer place on people to learn new technologies and theories? What opportunities do they provide for career path and growth that might encourage somebody to learn new things? Has your colleague been asked to take on new roles and responsibilities that might need him to adapt?

    Perhaps you need to express code review in terms of cross-training, effective communication to the wider team and improving the health of the team beyond truck count = 1.

    1. Re:Immature know-it-all who needs more experience? by gbjbaanb · · Score: 1

      in fact, who came up with the summary "you're old so you can't be a coder no more"-type nonsense is what I see on the web from immature kids who don't know the old and good ways of working, all they know is the new let-intellisense-do-it-for-you way of coding and think they're the greatest.

      I wonder if I should post to /. saying "what do do with young brogrammers who can't code or design properly and rely on the tools to do all the work for them?"

      ho well, anyway, another non-story for /. - in this case it sounds like the guy isn't very good in the first place, but you can't always trust the implication seeing as we only have one, biased, side of the story.

  53. Re:For starters, you can get off your high horse.. by msobkow · · Score: 2

    This.

    And also...

    There is nothing like business experience on a development team. The knowledge about the arcane workings and interactions of the company and it's departments and sometimes even individual staff members, all of whom are part of the "big picture" of a real system. There is far more to coding than slinging code, and it's not until new developers have been kicked in the 'nads a few times by company "gotchas" that they realize this fact.

    And some arrogant little snots never learn that fact, and end up job hopping all the time because no place is "challenging" enough for their "elite coding skills."

    --
    I do not fail; I succeed at finding out what does not work.
  54. You have 2 options... by Hauke · · Score: 1

    ..either you take care if his coding and help him or her, or you leave for a new job...
    I personally chose to help and correct the code of a co-worker for almost five years, only to get more and more frustrated. In the end, it was too much to take, as he didn't even care. He had given up learning and caring for his job, but he tried to push me around because he was older... of cause this depends more on personalities than coding, but my advice is to tread carefully. At the end, being right can be patronising and putting the co-worker on the defensive. After all, he might be aware of his short-comings and start playing the politics card... and then it becomes ugly!

  55. Age has nothin' to do with it by bio_end_io_t · · Score: 1

    I'm twenty-seven years old.

    From my limited experiences, "current" has nothing to do with it, nor does age. C has been around since there early '70's; in terms of systems-level programming, there is a huge benefit to being older. The older folk have seen tons of OS's born, raised, reach adolescence, get their first DUI, etc. They know what's it's like to play in a kernel that only has 256 KB of RAM, so they know how to optimize. Lots of youths these days are given higher and higher level languages as intro programming classes. My alma mater, to my dismay, replaced Java with Python for the intro class. I wish I had that insight. We younger generations are missing out on a lot of experience, and as more and more development moves to the web, lots of us are missing out on what really goes on under the hood.

    Now, to address some of your statements:

    "I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code" This is a symptom of poor programmer quality, and has nothing to do with age. You can be 5, or you can be 65, but if you don't know what a spinlock is, then you don't know what a spinlock is. Multi-threading/multi-programming has been around for a long time.

    "and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up." I still have no idea how to use a revision control system. However, it's good practice, at least for me, to befriend someone who does understand them, so he can help you the hard times.

    --
    bio->bi_end_io(bio, error);
  56. Making people desperate makes things worse. by sethstorm · · Score: 1

    In this case, "why do you hate America" comes to mind since it describes you completely. You think that US citizens should be knocked down until they kneel before the world even if it is meant to be the other way around. Suggesting sports terminology doesnt make your case stronger - it only confirms your contempt for any citizen of a First World country.

    Such people that are better fit for management just need to be promoted away from a technical role. That, and the immigrant isnt better, just desperate; you just want the citizen to be made desperate too.

    As for those who are considered long-term unemployed, make them a protected class as long as they dont have a direct-hire job for at least 10 years. Doubly so if over 40 or just entering the job market.

    --
    Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
    1. Re:Making people desperate makes things worse. by Xest · · Score: 1

      "You think that US citizens should be knocked down until they kneel before the world even if it is meant to be the other way around."

      Are you actually for real?

    2. Re:Making people desperate makes things worse. by sethstorm · · Score: 1

      Given your use of the "global competition" euphemism. to suggest that it is something akin to a perpetual sports playoff, I am.

      You show a contempt for the US that is typical of countries wanting to see the US fall.

      --
      Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
  57. Narrow minded criteria by sheerblack · · Score: 1

    Firstly, you haven't explained the context for which you expect them to keep up to date with existing technology.

    If the person you are discussing is a consultant or in pre-sales in an evolving product role then you have a point. Its his duty in those positions to keep up to date on trends related to their particular sphere of influence.

    Outside of that though your comments make me want to punch something.

    My background is as a developer of over 30 years now with at least 10 years in management and roles including technical architect, system and business analyst and various levels of developer. I have always kept my skills relatively fresh by doing many different types of project for a variety of companies in all range of sizes.

    As I always explain to others I would expect members of my team to always improve themselves. That doesn't mean that I expect them to learn new technologies and nothing else. In the world of IT anyone who is capable of displaying human rationale and the ability to understand people will always be head and shoulders over anyone who is purely technical with no soft skills.

    Why? Simple, I don't have to waste time explaining to them that the beautiful thing they have constructed is absolutely no use to the user because they haven't bothered to interact and understand.

    If you are judging people solely on technical skills then you have sadly misunderstood almost all of what IT is about. It is about making peoples life easier, not about giving a developer a grandstanding opportunity.

    If the senior developer really is unproductive then its a management issue as others have said here. Otherwise you really need to sit down and think about what it is that they have that you don't.

  58. Peer-level strategy by Boawk · · Score: 1

    You might be able to succeed by disguising his schooling in terms him schooling you. Pick some topic which the guy needs to know (that you already know) and say (for example), "Bob, I'm having trouble understanding outer joins. I found this reference page on the Web but am still confused. Could we get together next Tuesday and maybe you could help me figure it out?". Providing lead time ("next Tuesday") gives him time to figure it out. Asking him for help strokes his ego and motivates him to learn the stuff so he can be helpful to you. There are variants on the theme. Pick some code from your project (or from the Web) that he can help you "understand".

    Regarding version control, see if you can find some smallish standalone side-project which is relevant to your job. Express enthusiasm for working with Bob on it. Start it in version control. Do things like sit at his desk with him and say, "Let me show you what I've done". Then pull out a cheat sheet and scan it for how to check out your code, discover an error (or add a comment), then make a show of referring to the cheat sheet for how to commit your change. When you're done showing him your code then "forget" your cheat sheet, leave it on his desk. He'll need it because while you showed him your code you asked him if he could add XYZ to your code.

    Code reviews. Have him participate in several reviews of others' code. If he's resistant to even that explain that because of his experience his insight is valued. Once in a review he's an equal participant in debating the merits of various blocks of code. The cordial, social aspect of debating the finer nuances of coding could be enough to warm him to the idea of submitting his own code to a review. Otherwise, when the time comes to review his code motivate it in terms of everyone learning from the code of an experienced engineer.

    You get the idea. Be creative in finding ways that he can "help" you.

    All that said, the parent is definitely correct. It really is management's job to set expectations including "learn this new technology". If management is amenable to "fixing" the old guy, but is just oblivious, then bring it to their attention, complete with telling management, "I don't want to hurt his feelings, but he can't do XYZ and it's taking time and energy away from the rest of the team for us to work around his limitations."

  59. Re:For starters, you can get off your high horse.. by Anonymous Coward · · Score: 0

    You comment about keeping a sub-par but useful in other ways programmer around reminded me about something. I would be wary of saying the old fart is bad at his job, because I'm somewhat dubious the the submitter actually knows what the guy really does for the company. It could be a simple as he's very useful to someone higher up on the food chain for a few specific tasks, as a source of information and advice, or they have legacy stuff that they must support come hell or high water. Might be in the submitters interest to not annoy him.

  60. On Concurrency by Tablizer · · Score: 1

    I'm also skeptical. There's a lot of BS out there about "concurrent" code. I'd like to see specific and typical scenarios. Some people seem hellbent to reinvent a RDBMS in their code for some faddish reason.

    1. Re:On Concurrency by Lumpy · · Score: 2

      Amen!

      notice how all these "ask slashdot" stories whining about an old programmer is some snot nosed punk that thinks he knows more?

      Most of these kids wouldn't last a DAY programming an embedded system where you have 10K for your entire OS and program, let alone a high pressure place like financial programming.

      --
      Do not look at laser with remaining good eye.
  61. It's burn out by zedeler · · Score: 1

    I've seen many developers who has fallen behind, and essentially burned out to the point where they were not contributing with anything any longer.

    The last thing you want to do with such people is to train them or otherwise try up their skills, because the main cause isn't lack of skills - it's just a symptom.

    I work as a consultant, so over the course of my career I've met numerous developers, and every time I ran into a developer who showed signs of burn out, I wondered what caused this. In some management books, the key enabling factors in order to deliver results are people being willing and able. In other words, motivated and skilled. For developers, this isn't really the case. Not being motivated will always - sooner or later - mean not skilled. Developers aren't like factory workers who just do repetetive tasks, it requires a lot of effort to stay current, so not being motivated usually means that you're falling behind.

    So I think the key cause is usually lack of motivation. And what caused the lack of motivation can be many things, but thinking that there is a "technical fix" (such as training or other ways of just getting current again) is just not solving the root cause of the problem.

    To answer the OP question: check if the motivation is still intact (you may be dealing with plain old incompetence), and if it isn't (which is the category I believe most cases fall into), you can try to figure out what caused it. My experience is that rekindling motivation can be really hard, so the best is to try guiding the coworker to seek out new and more exciting challenges.

  62. Resistance to change by eulernet · · Score: 1

    Alas, you cannot change other people, it's absolutely impossible !
    You can probably manipulate him (it's quite easy), but there will be some unpredictable side-effects (some may be dangerous for you !), so I won't recommend it.

    In fact, it's almost impossible to change ourselves, and the change's process is quite mysterious, since it doesn't depend on will power, contrary on what most people believe.

    In fact, his problem is that he wants to NOT change, and not changing is already taking all his efforts.
    He's probably trying to keep control of his life, even though it's just an illusion, since nobody can control his life. I may die tomorrow, who knows ?

    Since you probably want an action, here are a few suggestions:
    1) DO NOT HELP HIM, let him suffer from his own incompetence. When he'll reach the bottom (which may happen in a long time), he'll be forced to stop resisting.
    That's what most people have to suffer in order to grow.
    2) talk to him, and ask him what he fears. Our fears are mostly mental images, without real basis.
    Expressing fears by talking or writing helps people realize that. I saw other techniques like EMDR, but you are not a therapist !
    3) ask him what he will do once he'll lose his job. People rarely realize that their job doesn't need them.
    I call this technique "electroshock", it'll force him to think about his job.
    4) change yourself ! Since you cannot change others' perceptions, just change yours.
    Realize that you want control in your life, and just abandon this control.
    You'll notice that fear appears, but it's not real.
    Once you accepted that this fear is not real, you'll notice that most of your efforts become useless.
    In fact, change is effortless, and only resistance requires effort.
    Once you'll reduce your efforts, you'll notice how much efforts people put in their lives, just to match reality with their dreams.
    When you start changing effortlessly, you'll notice that you understand other people's miseries better, then people will try to mimick your natural way of being.
    Tell them to be themselves, and you'll notice that they'll start changing, but very slowly.
    5) read a good book about NLP, which is full of manipulation's techniques.
    I personally don't recommend that, since it will give you a false sense of control, but it works sometimes.

    Finally, I'll you ask a few questions:
    1) why do you want to help him ? Is this because you are compassionate or do you want to have a better image of yourself ? I'm such a good guy, I can help people at my work.
    2) you cannot change other people, why do you believe that you'll be able to achieve something ? If you have the expectation of changing him, you'll be disappointed, since he's probably comfortable in his current life.
    3) why can't you accept him as he is ? If you work with him, just show him how to work efficiently. If you don't work with him, why do you care ?

  63. It's not up to you. by VortexCortex · · Score: 1

    They usually have enough business knowledge that they provide some value to the company, but from a technical perspective they are a slowly-increasing liability. As an example: I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews; I suspect he dislikes people he considers junior to him making suggestions about how to improve his code. So, how do my fellow Slashdotters handle situations like this? How do you help somebody like this to improve their skill-sets? And, most importantly, how do you do so without stepping on anybody's feelings?"

    Promote them to management, they'll fit right in and might even know a bit about the actual process. They won't be your friend anymore though, so it's OK to keep complaining about them on Slashdot. Problem solved.

    Q: Where do you see yourself in 10 years?

    If you answered anything but 'In a Mirror', then you're fired. Those are the arbitrary requirements I've created for you. I mean, you failed to mention if concurrency and revision control were part of the job -- I know good software engineers that can't operate new revision control, and it's not in their job description.... I really can't say what should be done to help because I don't have all the details. Furthermore, if you have incompetent management then that's the real problem. The best way to fix that issue is with HR. Google something called a "Two Weeks" notice.

  64. Really? by Jack9 · · Score: 3, Interesting

    > I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews;

    I'd get ready to leave the company for a better job since it's clear there's no accountability at your company. This situation cannot end well for one of you. Either you are pulled down/leg go or he is let go/quits. Without accountability you can't be promoted at an organization. This is because there's no criteria (I mean there are edge cases, but don't bet decades of your career on it). This is the business of software development and you don't get to make decisions about appropriate quality levels at your position, nor do you get to judge other people's value, nor can anyone without some progress gauge at a granular level.

    You indicate you use a process where code is accepted without code reviews. You work at a shitty company. You have a process where engineers don't all use revision control. You work at a shitty company. You have peers who act out politically to avoid working/accountability. You work at a shitty company. See the pattern?

    In my experience, there have been cases where we just ignore the lame duck till some accountability gets implemented and it becomes obvious, but that's not the norm. Usually some nasty argument where you're trying to rehash the issue causes a serious consequence over an irrelevant detail (made up reason) to push one of you out the door. Usually you. Start looking for a new job, bring up performance metrics in meetings, ignore him. That's all you can do. Don't try to help him, he can do that himself and has chosen not to try.

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
  65. Old programmers never fade away... by Anonymous Coward · · Score: 0

    ... they die! They die screaming!

    You know what you must do.

  66. Talk to HR by Darinbob · · Score: 2

    Seriously, if you have a disagreement with a coworker then bring it up with your boss or HR department, don't drag dirty laundry and office politics to slashdot.

    1. Re:Talk to HR by blueworm · · Score: 1

      No, don't do this. You'll be seen as a troublemaker in the organization and your mistakes will be scrutinized unfairly.

    2. Re:Talk to HR by neonKow · · Score: 1

      Er, no. That's what HR is for. If you think you have a valid complaint and you're afraid of speaking to someone in a way that is supposed to be confidential, your workplace is very unhealthy.

    3. Re:Talk to HR by istartedi · · Score: 1

      1. Talk to the employee in question. If that doesn't work then... 2. Talk to your supervisor. 3. If, and ONLY IF, your supervisor suggests that the solution to the problem is to have an orgy with the problem guy, then talk to HR.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    4. Re:Talk to HR by Anonymous Coward · · Score: 0

      No, don't do this. You'll be seen as a troublemaker in the organization and your mistakes will be scrutinized unfairly.

      I'm guessing the OP doesn't make mistakes to be scrutinized.

    5. Re:Talk to HR by Anonymous Coward · · Score: 0

      1. Talk to the employee in question. If that doesn't work then... 2. Talk to your supervisor. 3. If, and ONLY IF, your supervisor suggests that the solution to the problem is to have an orgy with the problem guy, then talk to HR.

      Trying to go to HR over your common mangers head is a good way of being shown the door next round of layoffs.

      Personally I think 'talking to someone' is really really the wrong approach. That's the guys managers job not yours. However when I see someone having trouble getting their head around something, I try to help them get their head around it. Often what I see is that the 'new way' has been setup in a way that conflicts directly with the persons normal work flow. Either way, you have to get in their head and work with them so they get it.

      Another issue is someone that's been doing the same job over and over for a long time, is probably tired of his dog food. In that case management should be encouraged to shift the persons responsibilities to something new and improved. My experience is as long as someone has some self-respect and a desire to be useful, something can be found for them to do. It might be that their days of software development are over and they need to be in field service, or customer support, or sales, or whatever. If you can find something else for them to do at least you don't lose corporate knowledge like you would if you canned them.

      Also, the submitter smells kinda arrogant and full of himself. That probably makes it impossible for him to effectively train other people when needed, especially someone older than they are. Because they'll just rub them the wrong way, on purpose. That itself is a career limiting issue, if the submitter is annoying the old fart in the office, he's probably annoying his managers as well.

  67. Well... by Anonymous Coward · · Score: 0

    Well, what could happen is that such programmer would be sent to help a more "current" programmer in a task.
    Because, you know, old programmers can do things like algorithms and can use their experience in problem solving.
    Or, as just happened to me, told to wrote the algorithm, given the book where the language is described and figure out how to translate the algorithm.
    But that is just me.

  68. It doesn't sound like you're current. by Anonymous Coward · · Score: 1

    I do most of my extra learning on the job and by listening to tech podcasts during my commute

    Listening to podcasts and other news sources isn't the same as actually having to code something. Yeah, your a step ahead by knowing what's out there, but I wouldn't call myself current. I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

    I'm currently helping my father-in-law get up to speed on C#. He's a BSME, has been designing, coding hardware test cases in Perl for a decade or so for embedded systems for top secret military hardware.

    He's having a hard time with the WPF stuff. He is in no way stupid or unskilled or anything. He thought it would be easy - I kind of thought so too considering his background.

    That's the sucky part of this industry - you MUST code. There's no way around it. Just hearing about technology is like watching the news and thinking you know all you need to know about an issue.

    tl;dr (ANd I'm tired) You don't know anything until you're up to your neck in code.

    1. Re:It doesn't sound like you're current. by Anonymous Coward · · Score: 2, Informative

      Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

      ... or you don't work in the same field. There are plenty of specific programming areas and industries that need programmers where one, or even none, of those would be relevant. Yet at the same time, they have their own new techs, laws, practices, and other tools that need to be kept up on. I work in computational modeling, and have plenty of places I have previously worked and could apply for a job at that would at most need the C background, and maybe Python. Although where I am now, it is all Fortran and C, and whatever scripting language you want to use to handle small things (Python in my case, but not for many of my coworkers). In my case, I need to keep current instead on papers for various new numeric techniques and optimizations for different platforms. And for friends that do more hardware related stuff, about the only thin on there they need to know is C.

    2. Re:It doesn't sound like you're current. by vilain · · Score: 1, Flamebait

      You lost all credibility as soon as you mentioned the slew of Microsloth technologies. Unless you live in that ecosystem, IMO you should be learning more general stuff. Pity, you drank the Coolaid and it changed your brain.

    3. Re:It doesn't sound like you're current. by Hognoxious · · Score: 5, Funny

      I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET

      That adds up to 50 years, so I'd call them retired.

      Although Android 4.1 has only been out for a year, so perhaps liar would be more accurate.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:It doesn't sound like you're current. by Anonymous Coward · · Score: 0

      Heh, even "5 years of iOS" (programming) experience is borderline.

      The first iOS (then called iPhoneOS) SDK was released in 2008....

    5. Re:It doesn't sound like you're current. by Buzer · · Score: 2

      I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

      Effectively you are saying that (when applied to my current field) if I don't have experience of Forefront IDM, I need to catch up. No, I don't have experience with Forefront IDM, but I have experience with various other IDM systems as well as various Microsoft technologies. But lack of working with it really doesn't matter. If you want me to work with Forefront, I can. I may need a bit of extra time to find the things compared to guy who has worked with Forefront, but that's just when starting out (I have countless examples of time when I need to implement something with something I have never worked with and it has always had a good ending).

      Do you look for carpenter who has 2 years of experience working with black walnut or carpenter who has no experience with black walnut, but has been carpenter for 10 years and has worked with various other woods (there just didn't happen to be a project that involved black walnut)?

    6. Re:It doesn't sound like you're current. by bmpc · · Score: 3, Interesting

      I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

      Are you joking? Or are you using a loose meaning of the word "know".

      People need to start being realistic with this "keeping up" stuff.

      Let's take a look at the stuff you listed and where they are typically used:

      1) web - Java; Python; Javascript; HTML; .NET
      2) mobile - Objective-C & iOs for iPhone; Java for Android
      3) desktop - C#/WPF; Java; Objective-C & iOS; C/C#/C++

      You just described three different development roles (although there may be some intersection of technologies).

      Let's say I'm working as a full time as a "desktop developer" in a company product where I work with a Java development stack. Do you think I should spend my free time doing web development and mobile development , in order to be considered "current"?

      Which other professions have these kinds of expectations?

    7. Re:It doesn't sound like you're current. by drstevep · · Score: 1

      11 environments (ObjC, Mac, C#/WPF... .NET) over five years, so I think he means around 5 months apiece! In other words, a beginner/dabbler who hasn't been involved in a project of any depth...

    8. Re:It doesn't sound like you're current. by Anonymous Coward · · Score: 0

      (I'm DuckDodgers, just too lazy to long in from this PC.) If you're up on technologies and trends, in at least some cases you can convince your colleagues or boss to adapt a new technology at work to improve existing projects. Then you do get to code it, and you code it on the clock instead of at 10 PM when the kids are in bed and you finished the dishes, two loads of laundry, etc.. I learned jQuery on the job - and now I'm looking to see if Ember.js or Angular.js or similar might be appropriate somewhere.

      Yes, just reading about something doesn't help you use it. But you can't suggest it to your peers if you don't know what it is and why it might be helpful.

    9. Re:It doesn't sound like you're current. by Anonymous Coward · · Score: 0

      I saw someone looking for 7 years experience with Oracle 11gR2/12c (which would be impressive considering R2 is only about 5 years old and 12c has not even reached general availability. You should almost never specify a specific technology product experience requirement > 3-5 years. Windows Administration != Windows Server 2013 Administration.

      This is why tech people hate HR! They spend 4 seconds scanning other posts for jobs with similar titles and then just throw something up with tweaked requirements and sooner or later you are looking for a unicorn.
      New Job Posting:
      Looking for a developer with 8 years of Hadoop and working with PB data sets.
      Must have 10 years experience with vSphere and Windows Server 2008.

    10. Re:It doesn't sound like you're current. by Anonymous Coward · · Score: 0

      The joke is that it isn't the resume that lists all of those skills at 5 years, it's the job ad.

    11. Re:It doesn't sound like you're current. by cheater512 · · Score: 1

      Why do you need to know all of them? In my niche focussing on web based stuff I need a fairly broad set of skills but nowhere near that broad.
      I only tick a few of them but the skills I use every day go from DRBD, OCFS2, MySQL low level stuff all the way through to Wordpress and jQuery.
      Each one I need to know quite thoroughly and I make a point of staying current with all of them plus keeping an eye out for anything new that could help.

      And good luck knowing Android 4.1 for 5 years.

  69. WTF is a "current" programmer? by Anonymous Coward · · Score: 0

    Fundamentals of current Languages basically haven't changed since the 90's. Are you saying that new people who don't know whatever silly framework you use?
    hire someone with a real Computer Science degree, and can pick the language up trivially.

    I suppose there have been changes in platforms, kinda... but how often does this happen? iOS maybe? Everything else is just learning new classes/libraries.
    I haven't been a professional programmer in 10 years ( moved into Infosec ) , and I had not coded one single line of Objective C. After a week with iOS, I pretty much had it down pat. So you have to hit the reference manuals if you don't know how to do something. /grew up on 6502 assembly, so I GoTz MaD SkIllZ

  70. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  71. complain about h1b by Anonymous Coward · · Score: 0

    keep stagnant then blame foreigners on h1b for lowering your value.

  72. Fire them. by Anonymous Coward · · Score: 0

    Grow up, they didn't. Life's a bitch sometimes.

  73. Bait and switch by Anonymous Coward · · Score: 0

    Revision control, code reviews and concurrent programming...oh my. Since when is any of this an example of something new?

    I find myself wishing something significant has changed for the better after all this time yet when I look out all I see are lemmings who don't fundementally understand why they are doing what their doing, reality defying memes of the marketeers and constant reinvention.

    It seems to me all we are fucking doing lately is repainting load bearing pillars errected by those who came before us while arrogantly claiming to have accomplished something meaningful...our hubris is deafening.

  74. Why NOT Hire Them? by CrankyFool · · Score: 4, Insightful

    This craze for the most modern stuff -- and believing people can't pick it up -- drives me crazy.

    I'm the hiring manager for a small (5 people) software engineering group. We use Scala. Nobody in my team used Scala before they joined the company -- they learned (hell, we use Scala because THEY decided they wanted to use Scala). One of these developers didn't even know Java before he joined the company -- he was a Perl guy, through and through. He's one of my best.

    We're looking at a candidate now who actually retired from the workforce after being an architect for a while; her last time writing code was 15 years ago. We like her because she has a fantastic fundamental grasp on computer science principles and the passion to learn quickly -- we think. So we showed her the code base for one of our open source projects, asked her to implement a feature that had been requested, and let her loose. She came back with the first version Friday; we'll see how it goes.

    Concurrency isn't Olympic Gymnastics where if you haven't been doing it from the time you were six years old and if you're older than 20 years old you have no chance. It's just something to learn. Smart people can learn pretty much anything you put in front of them.

    Hire smart people.

  75. The Fine Article brings nothing of value to the ta by Anonymous Coward · · Score: 0

    This is very funny in that I usually see the opposite situation in my experience, i.e., the new kids
    can't write a "concurrent" application to save their butts.

    Maybe it's the MS virus/programming memtality or the lazy way their taught nowadays by their college instructors;
    if there isn't a class/method/whatever, then it can't be done. Ask any of them (youngins') to use sscanf, tsearch, snprintf, etc.
    (these examples are from libc in the C programming language) in an intelligent way and you'll see the deer in the headlights stare.
    How 'bout lex, getopt - these are some of the basics not mentioned any more.

    The Fine Article brings nothing of value to the table.

  76. Easy solution - fire them. by Anonymous Coward · · Score: 0

    They no longer have the skills to do the job the company requires, so it is reasonable to fire them.

  77. I don't think these answers cover it all by SinisterRainbow · · Score: 1
    These type of questions always need more details, but deciphering it mostly sounds like basically two colleagues, where the younger one has no power to affect change and his older colleague is same/higher level.

    Handling people there's always something that pushes their buttons.. you have to wisely find their's:
    • * Chummy Inspiration: such as mentioning how you use it to save time (and that it takes little time to learn is always good). People who are resistant will relent in the face of it saving them time later..best combined with some gambling inspiration after assumed initial resistance.
    • * Fun Inspiration (Gambling): Put your money where your mouth is, offer to pay him or buy/bring him lunch for a week if he can do it faster with his tech, and if you win, he must recode it by learning the new technology.
    • * Make Fun Inspiration (ego challenge): Bet him he's too old to learn new stuff and is becoming outdated, doubt him and offer to personally buy him a plaque that you were wrong if he can. (you gotta give something to get if it's that important to you)
    • * Dirty Inspiration: Talk about how old he is he can't even learn x-technology. If he's using y-tech, maybe his name from now on is y-tech John..
    • * Backstabber Inspiration: .. think of your own if ure that big of a dick. :)
    • * Sex Sells inspiration: Get him laid/buy him a hooker if he can learn it in a week.
    • * Blackmail:...uh. see Backstabber
    • * Self-Deprecation inspiration: Sub in for gambling inspiration
    • * Kidnap inspiration: force him at gunpoint. Highly effective, very high cost to self
    --
    -Ultimate Stickman Game Developer Infinite World Puzzler
  78. OP == twit by benjfowler · · Score: 0

    I am slightly irritated with the stupid barely-graduated Dunning-Kruger dimwits out there, who seem to think that if you're old enough to have accumulated the responsibilities of an adult (as opposed to burning yourself out and wasting your youth working 70-hour weeks for stock options), then you're some kind of shirking cunt.

    The Peter Pan syndrome is alive and well, it seems.

    The OP quotes a single data point of somebody with a few years under their belt (and a bad attitude), and then with very broad brushstrokes, paints anybody who isn't junior and wet-behind-the-years a waste of space.

    Accumulating know-how in pointless brand-new hipster technologies when you're a graduate (and have nothing better to do) is one thing. It's quite another to have the experience to know how to most efficient devote your limited time and energy.

    1. Re:OP == twit by neonKow · · Score: 1

      Hit a nerve? Seems like you're one of the senior programmers who can't take criticisms very well. It's quite obvious that OP never painted senior programmres as a waste of space, but rather complains that this one programmer is screwing up the entire workflow and it's because he won't consider the input of someone more junior than himself.

      Seems like you have the same problem with listening before taking offense youself.

    2. Re:OP == twit by mbkennel · · Score: 1

      It's possible the older programmer considered this person's input, thought about it and rejected it. Certainly about concurrency, a wise programmer might recognize the continued difficulties and subtleties in writing such a code, no less maintaining it and remaining clear about subtle semantic assumptions. The right choice is, in many cases, "avoid". There's a difference between clever and wise.

      And then the version control stuff could just be a dumb mistake. They do happen.

  79. You mean stay popular, right? by Anonymous Coward · · Score: 0

    When you say "current," are you sure you don't mean "popular?" Using version control is something every developer should know how to do. Concurrency is very tricky to get right, but is still something developers should at least know the basics of.
    In my experience with older developers, they know the basics very well, but aren't familiar with the newer fads. Five years ago it was ruby on rails. Now it's node.js. Who knows what it will be next year, or even next month?

  80. Tar and feathers by macraig · · Score: 1

    Spray him with tree pruning sealer and then smack him with ripped goosefeather pillows.

  81. Also, maybe he's just dumb. by Impy+the+Impiuos+Imp · · Score: 1

    > "and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up"

    God damn it, I told you to stop using VSS!

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  82. Seriously! by Anonymous Coward · · Score: 0

    Version control is not new. CVS is over 20 years old and by far isn't the oldest version control system, even following the RCS lineage.

    Can't handle version control? That doesn't make him an older programmer; it makes him a BAD programmer with experience.

    (This coming from a programmer rapidly nearing forty years old but who started in high school.)

    1. Re:Seriously! by hackula · · Score: 0

      This. Age is not excuse for 40,000 line spaghetti files.

    2. Re: Seriously! by Anonymous Coward · · Score: 0

      Or maybe he's just using Clearcase.

    3. Re:Seriously! by jabuzz · · Score: 1

      And RCS is over 31 years old and for real old timers SCCS dates from 1972 or 41 years ago.

    4. Re:Seriously! by gabereiser · · Score: 1

      This too. I stopped reading at that point. My suggestion, just get rid of him. If he doesn't want to learn, doesn't want code reviews, can't use a VCS, he's not worth keeping around no matter how much business knowledge he knows. He's garbage.

  83. Carrot and Stick by echusarcana · · Score: 1

    A lot of programmers fall into this track because they have not been given the opporunity to develop or learn new skills. If the company only expects this person to keep grinding out the same old Fortran/Cobol/VisualBasic code and never gives them chances at learning, then the company gets what it deserves: a problem employee.
    My suggestion: give the person opportunities and work time to develop. An employee is a long-term investment - if this works, you'll get a better employee. Remember that this person has lots of business knowledge that they bring to the table and some sort of track record better than a new hire.
    What if it doesn't work? The dude isn't interested in learning anything new. Well, what you describe is potentially a problem employee. The type of employee that insists on using stinky old technology without justifying it with any sort of valid analysis. The sort of employee that says "If it isn't written in VisualBasic, you'll have to find someone else to run the project." The answer to this is REMOVAL FROM ROLE. If you can't fire them send them off to some dead-end part of the company where they can do less harm: you know, Human Resources, Facilities, Projects...

  84. Irrelevant? Ha! by Anonymous Coward · · Score: 0

    However, at most companies where I've worked, there are usually a few programmers who have been employed long enough that the skill-set they were originally hired for has become irrelevant.

    Yeah, until that single legacy system that the entire company is dependent upon goes down at 2am and the previous days transactions don't get processed until the problem is corrected and the system brought back online. But, oh...where's Bob...the only guy in the company that knows anything about that legacy system? That's right he got let go last month because because some junior programmer thought Bob's skills were irrelevant and bitched to management that Bob wasn't learning the latest fly-by-night buzzword programming language that will be replaced by the next big thing in less than a year.

  85. depends on your position by blueworm · · Score: 1

    There's nothing you can do directly if you're not in a position to make management decisions. The only thing you can do is do what you do -- the best you can do it.

  86. I'm older than dirt, but ... by dltaylor · · Score: 1

    I started the transition from HW to SW back at a company that had (for even older projects) a paper tape reader/writer for a two-pass assembler, and I've toggled the bits into UVEPROMs by hand.

    For version control, I started with SCCS, through RVS, CVS, and Subversion, and am "gitting" a handle on git. That's not a currency issue. Source code control is a fundamental skill, regardless of languages and other tools.

    "Concurrent programming" sounds like, maybe, you can't really explain your stuff either. There are significant differences between a simple uniprocessor microkernel where you have to share some variables between threads but handle your own context switches, a preemptible kernel where you definitely need data protection constructs (mutexes, ...), and a fully multithreaded application on "who knows how many" CPU cores (along with interrupt/signal handling) where there can be literal concurrent execution. With even small embedded systems running multiple core SoCs, knowing how to deal with that is also a fundamental skill.

    "Currency" issues are more usually the language/framework/tool set "de jour", and, having seen far too many of them come and go, I no longer get really enthused about them. I use languages and operating systems as tools; if it solves a problem I need to solve, without a lot of silly hoop-jumping to work around missing or awkward behavior, then I can write in any of several languages. OTOH, I'm still an emacs guy, 'cause I've yet to find a better tool for creating source code, and, yes, I've tried a LOT of them.

    Don't get in his face, but don't cover for him either. Let your management decide when he's more trouble than he's worth.

  87. The average engineer by segfault_0 · · Score: 4, Insightful

    The real problem is that there is an idealized picture of an average, competent engineer.

    The reality is that the average engineer is barely competent and average companies will be full of them. Any team you end up on in such a company will almost certainly contain a handful of them, and worse will likely contain at least 1 sub-par engineer to boot. This is just a fact of life.

    The problem is not being unhappy with crappy help -- the problem is the stupid idea that you should never have to deal with crappy help. I think any good engineer should be prepared to absorb some adversity, whether it comes in the form of a tough problem, a bad team member, a bad market, or bad management.

    It's called life.

    --

    I was crazy back when being crazy really meant something. (Charles Manson)
  88. Employer problem, not programmer problem by Cammi · · Score: 1

    This is not a programmer issue. This is an employer issue. If the employer want to embrace new technologies, they would train their employees. If the employer refuse to train their employees, then F U employer, you have nothing to complain about.

  89. Well, where I have worked... by dbc · · Score: 1

    ... what we did is first give a verbal warning, then a written warning, and then bust them a pay grade. Oh wait, that takes a manager with balls. Maybe you should be looking at your company's management training first? Sounds to me like you have spineless managers that either ignore problems, or can't articulate problems to the underperforming individual, or lack the courage to have difficult conversations.

  90. In my experience... by interval1066 · · Score: 1

    ...they are made managers. And there's not a damn thing you can do about it.

    --
    Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
  91. Priorities! by seebs · · Score: 1

    "More importantly, how do you do so without stepping on anyone's feelings?"

    Is that really more important? Because it seems to me that, at the end of the day, engineering has to be about successful design and creation of things, not about feelings.

    Being careful about people's feelings is important. If you want to succeed in solving problems, it is pretty much necessary. But you also have to be able to accept that, sometimes, people will be unhappy about things which are true, or hurt by things they need to be informed of.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  92. just thank your lucky stars by superwiz · · Score: 1

    that the guy is not in charge. could be worse. he could be a manager because of his seniority and be resentful of any new techniques of solving old problems.

    --
    Any guest worker system is indistinguishable from indentured servitude.
  93. Simple. Do you get paid? by couchslug · · Score: 1

    If you get paid, do whatever it takes to maintain the cash flow.

    I don't care if my bosses drool constantly and shit themselves at random times during the workday so long as I get paid. If they want me to humor them, fine.

    If they prefer to be affirmed in their stupidity and will punish dissent, fine, I have zero moral obligation to human obstacles.

    I don't care if they crater their company, torch the buildings, then dance around them naked so long as I get paid. (I'd like to capture it on video then monetize it though.)

    Businesses are expendable constructs to make money. Pay me and I don't give a shit what happens to their construct.

    --
    "This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
    1. Re:Simple. Do you get paid? by neonKow · · Score: 1

      People are not robots. Even you, who purports not to care, will be affected negatively by a shitty work environment where you spend your time dealing with the tolerated incompetence of a senior programmer, and it will affect your attitude and skills when a poorly run business folds and you have to find a job at another company and suddenly find that you spent 5-10 years of your life getting practice fixing problems that shouldn't have existed in the first place rather than getting actual, marketable experience.

  94. Are you right out of college? by Anonymous Coward · · Score: 0

    > I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews

    Let me start off by saying I'm assuming you're right out of college and the guy you're talking about is around 10 years in. If I'm wrong, please ignore this.

    Are you sure you know how to write concurrent code? Are you locking a read only object? Are you sure you aren't missing something? Someone with 10+ years in the biz survived something called the dot com bust which not many people survived. Everything is web now a days, concurrent code isn't that important unless you are using application objects or something. If you are writing engines, then yes, concurrent code is important. Are you writing engines?

    Version control (revision control? WTF is that?) causing a mess is probably up to the version control setup guy. If you're complaining he's checking in his bin directory, he shouldn't have to think about that. How do you make a mess of version control other than just not checking stuff in?

    Code reviews are pretty fucking stupid, IMO. No one wants to have to analyze someone else's code when they have a deadline. Test your own shit then send it to QA. If QA bounces it back, learn to test better.

    1. Re:Are you right out of college? by AaronLS · · Score: 1

      As someone who has been programming for 10+ years...

      "Version control (revision control? WTF is that?)" You don't know what version control is? Or are you trying to start a worthless pedantic debate on terminology?

      "How do you make a mess of version control other than just not checking stuff in?" That depends on the source control system, but they all have certain conventions/workflows you have to follow else you screw things up.

      "Code reviews are pretty fucking stupid, IMO." There's not much of any other way to ensure code quality. If they wrote their own tests, the test could not feel out corner cases, security, reasonable efficiency, etc. Things QA would probably not catch. That action method on a controller that doesn't have a permission check and exposes sensitive data. You can point fingers and say QA's job to test for that, but even if you were right, you still wrote it wrong in the first place and someone has to touch it again. Code reviews give people an incentive to do it right the first time, and if it's not right, at least they will be fixing it while it's fresh on their mind and they can learn from their mistakes. Lots of shit coders write shit code and it works 9 times out of 10. Overtime you rack up a long list of bugs and instead of coddling it along with band aids and duct tape, you finally tear it all out and redo it. So in the end it's not worth paying people to write shit code. It's very much like the contractor who has to tear out a shit job and make someone redo it right. No point in paying someone to write code that someone else will have to tear out and rewrite later.

      On the other hand, I like having my code reviewed. Rarely there is a slip up, maybe I didn't handle a transaction perfectly or think about a certain corner case. Sure it tested fine, but there would have been a race condition at some point down the line that would have slowly accumulated bad data each time it happened. Much better that someone else catch it now before it goes to production and causes some difficult to track down bug that is difficult to reproduce and causes people to have to spend a time fixing bad data.

  95. Employee doesn't take constructive criticism well by neonKow · · Score: 1

    I feel like if you're junior to someone who won't take criticism well, and you can't get the manager to do something about it, then you have a management problem. You should be doing what you should always do in this situation: move to a different position where you are not under this manager or leave your job for a one with a decent boss.

    This is not an issue just about his ability to program at this point.

  96. Re:How do you deal with dentists who haven't? by Dunbal · · Score: 1

    Buy them a Cessna and point them to the nearest IRS building?

    --
    Seven puppies were harmed during the making of this post.
  97. Re:For starters, you can get off your high horse.. by Anonymous Coward · · Score: 0

    You are a wise man, really this sounds like me 3 years ago. Hindsight is 20/20, but looking back I wish I has listened to someone like you, Mr. Miyagi.

  98. Software 'death panels' by verifine · · Score: 1

    I can see it now, a star chamber filled with emotionless shadowy figures. You are summoned and tested by arbitrary standards. You try to object; you are summarily hustled out and told you'll be informed in three days.

    The predictable outcome: You're too old. It doesn't matter what your skill set is; we judge simply on age.

    What could go wrong? Sounds like a perfect socialist societal model to me.

  99. Two words: message passing by Anonymous Coward · · Score: 0

    Pass messages and be done with it. I've never programmed Erlang, but that's the approach there and it has a reputation for being very robust. I always reinvent message passing with I have to do multi-threaded stuff in C. It's not slow at all since you aren't actually copying the message. You're just transferring ownership of the object to the queue while the lock is held by the sender, and taking it away when the lock is held by the receiver. It's been a while since I've done it, but it wasn't that hard. The big leap was to realize that whatever approach that *wasn't* some kind of message passing would lead to exactly the kind of death spaghetti that people tend to run into..

  100. Move him up... by Anonymous Coward · · Score: 0

    A gentle suggestion that they consider moving up to a Business Analyst or Project Manager role which would use their hopefully wide range of knowledge from past experiences. This would be better than alienating them for sticking to a technology that they know well and seemed to still be required. Sometimes you get given the impression that your skill(s) are still relevant but the reality is that know one has stepped up and said "actually we need you to move on, learn something new". Send them on a technology refresher (there's got to be a business opportunity there).

  101. Declare "Tenured" and move on by Anonymous Coward · · Score: 0

    Education institutions call them the "Untouchables" the best way to deal with them is never surrender an "important" line of business position to them. But promote them with lots of ceremonial promotions to keep them satisfied. Emeritus for example was explicitly invented for addressing egos back east.

  102. They get to learn the new tech by Anonymous Coward · · Score: 0

    They simply get to learn the new technologies: Congrats, you're migrating your app to Gradle next week. And no, your SCRUM team can't say no.

    In other words, there is no not staying current, the apps get migrated and they get to do the work.

    1. Re:They get to learn the new tech by JDG1980 · · Score: 1

      What's the business case for this? Unless the existing languages are discontinued (VB6), out of common use, or completely unmaintainable, I'm just not seeing it. And even then, it's going to cost more money and time than you think.

  103. Takings by fyngyrz · · Score: 1, Insightful

    No. Taking money involves force or the threat of force. Businesses very, very rarely engage in such things, and when they do, they're usually acting as an agent of the government one way or another.

    For instance, RIM has never gotten any of my money, nor do I expect to ever hand any over to them, because they make nothing of interest to me. You see? It's my interest, however aroused, that instigates the transaction. So slick pitch or not, they get nothing. My choice. Not theirs.

    Likewise, cable television providers: They get nothing. They have absolutely nothing I want; no transaction ensues. They cannot take; they can only accept what I offer freely -- and I don't.

    The government, however, tells me I owe them X, there's absolutely no choice or option about this for me, and in fact, if I don't hand it over, they will take it from me. Furthermore, if I don't have the money they want to take, they can and will escalate and take other things like real estate, etc., perhaps incarcerate me, ruin my working life, interfere with my family... this is what taking means. It's about use of force.

    A mugger takes. The decision is not yours. There's the force.

    A beggar does not take. No matter how hard he begs, no matter how smooth his "sales pitch" or heart-rending his circumstance; the decision is yours. There is no force involved.

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Takings by ultranova · · Score: 0

      Taking money involves force or the threat of force.

      Hacking your computer to get your online banking password and subsequently emptying your account doesn't involve force or the threat of force, so does that mean the hacker didn't take your money?

      The government, however, tells me I owe them X, there's absolutely no choice or option about this for me, and in fact, if I don't hand it over, they will take it from me.

      Of course you have an option for paying taxes: don't live in a society that demands rent from you for the privilege. Granted, you might not like a society run by profits from government-owned companies, nor one that simply gives up and collapses, but then again, it's not coercion for your landlord to demand rent just because you dislike living under the bridge, now is it?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    2. Re:Takings by fyngyrz · · Score: 2

      Hacking your computer to get your online banking password and subsequently emptying your account doesn't involve force or the threat of force

      You're quite wrong. This is a forceful act, undertaken against my will. You're very confused. Violence is not the only form of force, you know.

      Of course you have an option for paying taxes: don't live in a society that demands rent from you for the privilege.

      No. This old canard incorrectly presumes that there is somewhere to go that resolves the issues you have with where you are; it also incorrectly presumes that such mobility is practical or even possible. All of these are disingenuous presumptions.

      --
      I've fallen off your lawn, and I can't get up.
    3. Re:Takings by netsentry · · Score: 1

      Of course you have an option for paying taxes: don't live in a society that demands rent from you for the privilege.

      No. This old canard incorrectly presumes that there is somewhere to go that resolves the issues you have with where you are; it also incorrectly presumes that such mobility is practical or even possible. All of these are disingenuous presumptions.

      You're wrong. The previous comment suggested to live somewhere that doesn't charge taxes and/or rent. Live off the grid, out in the wilderness. Practical? Maybe not, depends who you ask. Possible? Definitely. Would I do it and lose my Internet? Hell no. From what I gathered though, this wasn't the point of the comment, the point was that there is an option to not be force-fed marketing.

    4. Re:Takings by ultranova · · Score: 1

      This old canard incorrectly presumes that there is somewhere to go that resolves the issues you have with where you are; it also incorrectly presumes that such mobility is practical or even possible.

      Your "issue" is that you presume other people have an obligation to be your unpaid servants. Or do you perhaps think that you owning the real estate you mentioned earlier means anything without the systems tracking and backing such ownership?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    5. Re:Takings by tendrousbeastie · · Score: 2

      You're changing the subject from that of whether governments 'take' money to that of whether the taking of money is justified.

    6. Re:Takings by TheEyes · · Score: 1

      Taking money involves force or the threat of force.

      Hacking your computer to get your online banking password and subsequently emptying your account doesn't involve force or the threat of force, so does that mean the hacker didn't take your money?

      Just because he's not forcing you doesn't mean he isn't using force. He's hacking the bank's computers; basically he's robbing the bank and trying to put the blame on you.

    7. Re:Takings by ChrisMaple · · Score: 1

      OK, I'll refine the definition: taking involves force, intimidation, or fraud. The critical single missing element is consent, which in many cases must be refined to be informed consent

      --
      Contribute to civilization: ari.aynrand.org/donate
    8. Re:Takings by fyngyrz · · Score: 1

      Nope. Nobody force feeds me marketing now. There's no problem to solve there. No force is in play. The only force I experience comes from the government. All else is at my option. You're a bit bewildered here.

      --
      I've fallen off your lawn, and I can't get up.
    9. Re:Takings by fyngyrz · · Score: 1

      Your "issue" is that you presume other people have an obligation to be your unpaid servants. Or do you perhaps think that you owning the real estate you mentioned earlier means anything without the systems tracking and backing such ownership?

      What the heck are you talking about? Did you even read the thread? The only mention I made of real estate is as an example of (just one of many) uses of forced takings by the government against the citizenry, I didn't say a flipping *word* about the systems for tracking same -- I was talking about things taken against the citizen's will to accomplish goals opposed to the citizen's principles. Nor do I think *anyone* has an obligation to be my servant, paid or not. I have no idea what you're actually trying to say, but I suggest you start over again, this time paying more attention to what you read.

      --
      I've fallen off your lawn, and I can't get up.
    10. Re:Takings by netsentry · · Score: 1

      Nope. Nobody force feeds me marketing now. There's no problem to solve there. No force is in play. The only force I experience comes from the government. All else is at my option. You're a bit bewildered here.

      I am having trouble figuring out how this is a response to my comment. Did you reply to the wrong comment? If not, where did I imply that you had a problem to solve? I was explaining how you misinterpreted the previous poster's comment.

      Also, if you live in modern society, you are subjected to billboards, media ads, and other marketing at every turn. You don't have a choice about what to see on the side of the road. It's there, you look at it. This is force-fed. If you want to pretend you have magic pretentious blinders and don't see them, fine, have at it.

    11. Re:Takings by gonzonista · · Score: 1

      You have never been on the wrong end of a hostile takeover.

      --
      If absolute power corrupts absolutely, what does this say about renewable power?
  104. Train them by tompaulco · · Score: 1

    It is in the best interest of a person to keep their skills current. It is also in the best interest of the company for a person to keep their skills current. Therefore, regardless of whether the person takes initiative to keep his/her skills current, the company needs to make training, education, seminars, trade shows and other opportunities available to anyone that they value staying and growing with the company.

    --
    If you are not allowed to question your government then the government has answered your question.
  105. You and I differ sharply on what "current" is by Anonymous+Brave+Guy · · Score: 5, Insightful

    I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

    And yet in a heartbeat I would drop your buzzword-driven developer and hire a developer who had a solid knowledge of data structures and algorithms, operating systems and related topics, networking and distributed systems, concurrent systems, testing and strategies for error detection/recovery, requirements capture and modelling and other high-level functions, different programming styles and software architectures, and other similarly general foundations. I'd even do it without even asking which programming language(s) the developer with the solid foundations used lately.

    Your buzzword guy might have 5 years with those technologies on paper, but if there are so many of them then probably there's not much real depth there. Sounds like someone who blindly follows trends, and who's mostly "up to their neck in code" in the sense that they copy and paste a whole bunch of examples but never really get into any tool long enough to use it idiomatically and play to its strengths/avoid its weaknesses. I don't buy the theory that a good programmer can sit down and learn any new language in a week -- that's a load of nonsense unless the new language happens to be little more than a search-and-replace away from one they already know -- but I'd rather take someone with solid foundations and have them get up to speed with whatever tools we need on a project than take someone who shaky foundations who happens to have used those tools before for about ten minutes. They'll still be current enough to do useful work with the tools, but their basic quality of work will be much greater.

    Just to be clear, I'm not saying that having a general awareness and knowledge of recent language/tool/library developments in your field isn't useful from time to time. But trying to get coding time in with every new buzzword is a fool's game, and the mark of someone too inexperienced to realise the treadmill never stops.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:You and I differ sharply on what "current" is by jythie · · Score: 1

      *nod* people tend to forget that languages and technologies, assuming the person is willing to put in the work, can be picked up pretty quickly. I would not discount someone who had a touch of experience with a wide range like that, but I also would not treat it as a 'must have'. I tend to look more for a good solid developer (in whatever language/API/etc) they have been using.

    2. Re:You and I differ sharply on what "current" is by Anonymous Coward · · Score: 0

      The whole point is that the treadmill never stops. There's new ideas hidden behind those buzzwords - agreed, maybe not in every instance, but then again - you won't know will you?

      I don't think anyone is saying that a proper dev shouldn't have any of the traits you listed, but a _really_ good one, will have all of them and find it interesting how each was applied in the new technologies he's seeing being introduced around him. The fact that you call new technologies "the treadmill [that] never stops" is showing your hand. A "solid knowledge" of "different programming styles and software architectures" probably won't be so solid if it doesn't include the technologies that have come about in the last 5 years!

    3. Re:You and I differ sharply on what "current" is by Anonymous Coward · · Score: 0

      Doesn't really matter whether it never stop if you still have to keep up.

      Radical life extension is about to throw this issue into sharp relief.

    4. Re:You and I differ sharply on what "current" is by Nivag064 · · Score: 1

      "... and everything else the Microsoft has ..."

      Hmm...

      I am 62 now.

      Professionally and personally, I avoid Microsoft like a plague! It is history, it is a dead man stumbling... The 2 most dominant operating systems in the mobile market are either based on Linux, or an Apple O/S. All eBooks are based on Linux, smart TV's are based on Linux, most servers run Linux, and over 90% of the top 500 hundred super computers run Linux (most of the rest run a version of Unix). So for some people, skills in Microsoft technologies might be useful now, but they will unlikely to be widely used in 5 years time. Microsoft is busy innovating new ways to piss people off, like the Metro interface - and alienating OEM's by making their own hardware platforms. Both me and my son (aged 15) have Linux laptops, and I have 2 Linux desktops at home, plus my desk at the University has a work station running Linux - I develop software for the university.

      Probably one of the best databases to know is PostgreSQL, it now has version 9.4 in Beta. Companies have been converting from Oracle to PostgreSQL since at least version 8. Guess, it runs both on Linux, and also on Microsoft boxen.

      If you are serious about web development you should know how to run Apache httpd, even if you don't now it in detail.

      In this field you keep having to learn new things. I took 3 days off when I was a COBOL programmer in the early 1980's, to put myself on a course to learn C at my own expense, then spent time at home writing C programs for fun. Several years later I got paid to teach C to experienced programmers, and when I went to university when I was 40 to get a post graduate diploma (about half the value of an MSc) I could do the assignments as they required C skills.

      I am currently learning SPARQL, very different to the SQL I've used for over 20 years. In the early 1970's our development mainframe had 128KB (even the biggest mainframe had no more than 16MB, and processor was not greater than 2MHz), and I programmed in COBOL. Now I use Java on a Linux box with 16GB and a quad core 64 bit processor running at 3.4GHz.

      Yes, it is not practical to be fluent in depth in half a dozen software fields. But you have to know how to RTFM.

      Adapt or die!

    5. Re:You and I differ sharply on what "current" is by Anonymous+Brave+Guy · · Score: 1

      A "solid knowledge" of "different programming styles and software architectures" probably won't be so solid if it doesn't include the technologies that have come about in the last 5 years!

      Get back to me in 10 or 15 years on that.

      Of course there are genuinely new developments in the field from time to time, but the real pace of advancement is much, much slower than the pace of buzzword advancement. The trick is to be aware enough of general industry trends that when something truly new or a significantly better way of doing things comes along you can pick up on it and study it further.

      For example, if you work on browser-side code for a web app, I'd say interesting developments over the past few years have included AMD, Google's Closure Compiler, and much better debugging and profiling tools for JavaScript in browsers.

      However, I'm not particularly interested in yet another lightweight framework that lets me do a limited version of MV* as long as I'm willing to write my entire codebase following that framework's conventions. Usually, IME, the time to learn these tools in details and the lock-in effect cost far more than any benefit you get from using them. If anyone does write one that really is in a different class and worth the effort, I'm pretty sure the entire web will tell me over the weeks and months following its release so I can investigate it.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    6. Re:You and I differ sharply on what "current" is by Anonymous Coward · · Score: 0

      Absolute filth. Brain rot. Mental filth. Spilled out of the bilious recesses of your cranium. Why would you ever attach this comment to any alias of yours?

      And yet in a heartbeat I would drop your buzzword-driven developer and hire a developer who had a solid knowledge of data structures and algorithms, operating systems and related topics, networking and distributed systems, concurrent systems, testing and strategies for error detection/recovery, requirements capture and modelling and other high-level functions, different programming styles and software architectures, and other similarly general foundations. I'd even do it without even asking which programming language(s) the developer with the solid foundations used lately.

      In a heartbeat I too would drop prospective employees whose resumes already demonstrate a willingness to meet the company's demands in favour of somebody displaying a rebellious streak from the get-go. Boy will OUR faces be red when Stallman's body double makes a bitter post about our trendy buzzword-y hiring practices on Slashdot. And I bet high school wasn't *really* about the education either... oh, the inhumanity!

      but if there are so many of them then probably there's not much real depth there.

      To begin with, you really haven't got the faintest clue what an enterprising mind and 5 years can do. Second, most of the listed skills are at least slightly interrelated (thus making adoption/familiarising less the Herculean errand it apparently is)

      I don't buy the theory that ... but their basic quality of work will be much greater.

      This weird us-and-them dichotomy that seems to balloon up and float around the ol' Slashdot ego watering hole every now and then: the flashy buzzword-spewing, aloof, and otherwise incompetent newblood versus the sage, misunderstood guru whose code-fu is beyond jargon, beyond buzzword, often beyond standards. I guess it's sort of like that Clint Eastwood movie Unforgiven except with more cheetos and neckbeard.

      Just to be clear,

      Thanks for qualifying - would be a nice change,

      But trying to get coding time in with every new buzzword is a fool's game, and the mark of someone too inexperienced to realise the treadmill never stops.

      Right. The treadmill never stops. So why did you?

    7. Re:You and I differ sharply on what "current" is by Anonymous Coward · · Score: 0

      Buzzwords? The quoted section only contains the names of programming languages... where are the buzzwords? I've heard comments like this before, and they've come from exactly the types of people that OP is asking how to manage.

    8. Re:You and I differ sharply on what "current" is by Anonymous Coward · · Score: 0

      Ouch. That is a mighty big chip on your shoulder there, Skippie!! You should maybe go see your family doctor. :)

      Oh wait, I get it. YOU are the 'no hire' guy from last week, the one with the resume like that list who still blew the fizzbuzz test in three different languages. Now you are pissed that they stopped the interview. OK. It hurts if some sage, misunderstood gurus who know less than you do turned you down. They probably just want results not all those certificates I'm sure you have or something. Trust me man, you gotta get right back on that horse and move on. There are some agile shops hiring godlike programming ninjas near here, maybe you could try one of them?

    9. Re:You and I differ sharply on what "current" is by rve · · Score: 1

      And yet in a heartbeat I would drop your buzzword-driven developer and hire a developer who had a solid knowledge of data structures and algorithms, operating systems and related topics, networking and distributed systems, concurrent systems, testing and strategies for error detection/recovery, requirements capture and modelling and other high-level functions, different programming styles and software architectures, and other similarly general foundations. I'd even do it without even asking which programming language(s) the developer with the solid foundations used lately.

      In your experience, do older developers have solid knowledge of data structures, algorithms, OS and related topics, networking and distributed systems, etc, etc? That sounds more like skills of a recent college graduate, with no kids and plenty of time for hacking and going to conferences.

    10. Re:You and I differ sharply on what "current" is by Anonymous+Brave+Guy · · Score: 1

      Whether an older developer has that kind of knowledge depends greatly on the developer, IME. You get people who coast along and never really made any effort to learn the fundamentals at any age, but if you've got someone with 20 years of experience (as opposed to the same year 20 times) then I'd say yes, there's a good chance they've picked up a lot of general programming knowledge over the course of their career.

      In contrast, it would be a truly exceptional recent college graduate who did. A typical undergraduate CS curriculum, even at a reputable institution, is only going to have time to cover the basics in each area, and usually more as theoretical learning of textbook knowledge rather than instilling much insight into concrete practical applications. That's a fine start to a career, but now take someone who graduated from that course with the sound theoretical foundation and give them a few years of professional experience as well, applying their knowledge and exploring the areas that are most relevant to their work more deeply, and the result is probably a very capable developer indeed before they even hit 30 and a walking, talking software production machine by 40.

      FWIW, I don't buy the arguments about not going to conferences or having kids implying a slow-down as developers get older. If you're managing technical employees and relying entirely on them to spend their own time outside of work keeping up to date, if you're the guy who gets asked by an interview candidate what sort of training you offer and all you can say is something vague about "on the job training", then IMHO you're just setting your organisation up for problems later.

      On the other hand, suppose you hire people who are competent and have a genuine interest in improving -- not necessarily 24/7 geeks or rockstar types, just professionals with decent skills and a sincere desire to do a good job -- and you give them actual support. My experience has been that it pays off big-time almost every time. All it takes is simple things like setting aside a credible budget for training and buying reference materials, allowing a useful amount of time each week/month to be dedicated to professional development rather than cranking out code, or organising informal talks by new guys or people with side projects to share their ideas and experience of software development, whether or not the tools or techniques they're using are immediately applicable to what you're doing professionally right now.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  106. No democracy here, I'm afraid by fyngyrz · · Score: 1, Insightful

    Governments do not take your money. You vote them in and they collect taxes to do the stuff you elected them to do

    No. The majority votes them in, and they do whatever they want; and there is little to no certain connection between what they do, and and what I in particular would have them do. I would not have them go to war outside our borders; provide subsidies to the oil companies; prosecute the drug war; impose rules on personal choice; interfere with the sex lives of those capable of informed consent; etc.

    They collect taxes to do all of this anyway, and they do it over my complete disagreement that it is legitimate that they do so. What happened there is that other people have decided to use force against me to make me support their will. That's force. Period. I have no other feasible option whatsoever or I will get hammered.

    If your guy didn't win, well that can suck, but its part of the whole "democracy is the worse form of government except for all the rest".

    In the USA, we don't have a democracy. We have a republic. It isn't even the will of the people we are bound by; it's indirected one very effective level away from that. Which would probably have been fine if the legislators so chosen were the people of honor envisioned by the founders; but unfortunately, they are the puppets of the rich and powerful, and so it is their bidding, not the public's, and not that of responsible, honorable legislators, that we are made to do.

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:No democracy here, I'm afraid by jythie · · Score: 0

      They key word is 'feasible'. If you do not like how a country is run, you can always leave. Leaving might not be cheap or easy, you have to give up all the things the country gives you, but you can do it. They use force if you decide you want to stay and be part of the society yet not obey the parts of it you do not like while having acces to the parts you do.

    2. Re:No democracy here, I'm afraid by Hognoxious · · Score: 1

      In the USA, we don't have a democracy. We have a republic.

      Why do people keep saying this? The two aren't mutually exclusive.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:No democracy here, I'm afraid by fyngyrz · · Score: 2

      If you do not like how a country is run, you can always leave.

      Nonsense. Leaving is not an option for most, "always" is a disingenuous exaggeration. Furthermore, there may well be nowhere to go that resolves the problems you have with where you are. Please leave that old saw in the trash, where it belongs.

      --
      I've fallen off your lawn, and I can't get up.
    4. Re:No democracy here, I'm afraid by fyngyrz · · Score: 2

      Why do people keep saying this? The two aren't mutually exclusive.

      We keep saying it because they're radically different from one another.

      A Democracy directly implements the will of the majority. 51 out of 100 want something? They get it. Simple. Appealing until you realize that often, the 51 want slavery, religion in government, control over your sex life, retarded limits on contracts such as marriage, to deny health care to you because you're not wealthy, etc. Best not to go there. The old saw "Democracy is two wolves and a lamb deciding what's for dinner" about covers it.

      Whereas a republic doesn't implement the will of the majority at all; it implements the will of the representatives. The idea being that the representatives are honorable, thoughtful people guided by principles more sophisticated than the masses, if for no other reason than because they actually have the time to think things through, as this is their day job, as it were. The concept of a working republic depends utterly on the consistent selection of a majority of honorable, thoughtful representatives who are able to gather sufficient truths about the matters they must create legal structures for (if you're thinking "uh-oh..." then you get a gold star.)

      In the specific case of the USA, which is a constitutional republic, by design it implements the will of the representatives, moderated by the constitution's fundamental limits and enumerated powers. Furthermore, the US constitution insists (in article 4, section 4) that each state government is also implemented as a republic. The limits and enumerated powers of the constitution were intended to prevent abuses such as those I outlined as typical for a democracy.

      Design aside, the actual function of the US federal government is implementation of the will of the representatives as dictated to them by moneyed and powerful special interests, very rarely moderated by the constitution, then further (as a matter of fiat power grab) moderated according to the whim of SCOTUS, which, thus far, has often been quite at odds with the plain and obvious requirements of the constitution. Technically, this actually turns out to be an oligarchy, something quite prone to abuses, as we see demonstrated in a most concrete manner on a daily basis.

      The difference between a democracy and a constitutional republic is immense enough. But the difference between a democracy and the oligarchy we actually have is almost incomprehensible.

      What is most likely confusing you about our (nominal) republic is that small portions of the process appear to be somewhat democratic in nature. For instance, once the power brokers in the political parties pre-select the special-interest-compliant figureheads we get to vote for, we can, quite democratically, select either one from column A or one from column B. Most other portions of the process are not democratic. For instance, the FCC, the FDA, the DEA, the CIA, the FBI, the reserve banking system, SCOTUS... these are not democratic institutions, they exist in forms almost completely insulated from the democratic process. For instance, many functionaries persist across voting cycles for representatives; some, like SCOTUS, are effectively impossible to dislodge; some entities, like the federal reserve system, exist outside effective control of anyone at all.

      The bottom line, though, is perfectly clear: The USA is not a democracy, and has never been one.

      If nothing else, take your hint from the pledge to the flag: "...and to the republic, for which it stands..."

      --
      I've fallen off your lawn, and I can't get up.
    5. Re:No democracy here, I'm afraid by tendrousbeastie · · Score: 2

      There hasn't been a direct democracy since Athens, or possibly the French revolution. A representative democracy is still a democracy. Even Switzerland only has referenda on large scale issues, day to day government is still conducted by representatives.

      The voters elect people to represent their interests in government. These representatives are accountable via the means of regular elections, by which unpopular actions on their part will result in their not being re-elected.

      This of course requires an informed, educated electorate. But the same is true of a direct democracy.

    6. Re:No democracy here, I'm afraid by ChrisMaple · · Score: 1

      When the best country on earth is getting worse rapidly, telling someone he should leave if he doesn't agree with the reasons that it's getting worse is unrealistic at best.

      --
      Contribute to civilization: ari.aynrand.org/donate
    7. Re:No democracy here, I'm afraid by ChrisMaple · · Score: 1

      At the very least, there is a difference in emphasis: a republic is more of a representative government, a democracy is more direct control through majority rule. It's an important distinction because representatives can give their full attention to governing, thus are more likely to act on fact than fad.

      --
      Contribute to civilization: ari.aynrand.org/donate
    8. Re:No democracy here, I'm afraid by ChrisMaple · · Score: 1

      A representative democracy is still a democracy.

      And a democratic republic is still a republic. The archetypes are distinct; the structure and actual functioning of the government determines which name is appropriate.

      --
      Contribute to civilization: ari.aynrand.org/donate
    9. Re:No democracy here, I'm afraid by fyngyrz · · Score: 2

      Here's the thing. It happens quite a bit right here on slashdot. The rationale "most people want this, so we should have it" is constantly trotted out. That's because people have an extremely simplistic (and foolish) view of how things "ought" to go. We're not a democracy. We have tiny, diseased democratic process segments. No more than that. Everything else is managed in a decidedly non-majoritarian manner. Oligarchy. Say it, believe it. It's what we have today.

      --
      I've fallen off your lawn, and I can't get up.
    10. Re:No democracy here, I'm afraid by fyngyrz · · Score: 1

      The voters elect people to represent their interests in government. These representatives are accountable via the means of regular elections, by which unpopular actions on their part will result in their not being re-elected.

      What you're missing here is that should representative Doe fail to be re-elected, then candidates Smith and Williams, one of whom will replace Doe as the new representative, will both have been pre-selected by the power brokers to have whatever characteristics they require at the moment. These may be exactly the same as rep. Doe. Depriving an individual of the job is not effective in altering the system when each replacement individual is pre-selected.

      The basic problem is that the power brokers - political parties, driven by moneyed and powerful interests - are not accountable. But they are the ones actually controlling the precise selection of the representatives.

      It's as if you go to the only store there is, intending to buy yogurt, because you don't like cheese. But they don't offer yogurt. They offer cheese. They offer you a choice of two types of cheese. You pick the cheese that seems least offensive to you. But it's not yogurt. It will never be yogurt. And you will keep buying cheese. Furthermore, it turns out that it's the same cheese either way. They just change the labels. You cannot resolve your preference for yogurt, because its a situation that only offers cheese. Suggestions that you switch to a new cheese don't really address the problem.

      --
      I've fallen off your lawn, and I can't get up.
  107. Learning should be a requirement when being hired. by houbou · · Score: 1

    For the most part, being a programmer is not a bad job.
    Above average pay and many perks usually come with the trade. Work from home for some, other perks for others.
    So, if a programmer doesn't keep up with the trends, that's "mea culpa".
    We can't be in this business and not try and stay informed. It's just does NOT compute.
    This is a business where we must keep learning. So, anybody who doesn't want to upgrade their skills, isn't someone worth hiring in the first place. It should truly be one of the many requirements when hiring a programmer.
    And if they don't want to upgrade their skills, then hire someone new.

  108. sccs released 1972 by mynion · · Score: 1

    Just to give a perspective on these new fangled technologies you speak of. I used it on a unix workstation to store my c code at uni 20 years ago - I never assumed either were new then. The 2nd year had a series of lectures devoted to concurrency.

    I've had new graduates lecture me "we should use x" then be surprised when not only am I aware of it but know more about it than they do. I want to use new stuff but only where appropriate. Hell its more fun learning/using something new. (well unless it's the metro interface ofc).

  109. Talk to them by Anonymous Coward · · Score: 0

    I talk to them. Explain that while the skills they have are good, the business requires that they gain addition skills and explain why (e.g the new way is going to enable us to deliver collaborative code faster etc..). Then offer them education and mentoring opportunities. If they don't take them then explain that eventually if the skills that they have are no longer what the business requires then the role may be made redundant as it doesn't make sense for the business to pay people who can't deliver what they need.

  110. If you have to worry about his feelings... by Anonymous Coward · · Score: 0

    you are just another cubicle drone who should mind their own business. Damn busybody.

  111. Not uptodate by Anonymous Coward · · Score: 0

    .There always new technologies in the market.
      Normal scenario i heard.

      I learn visual studio 2003, i don't know how to code in Visual Studio 2012. So the junior also have to code old code old visual studio 2003
      I don't know mvc thing. So why we need those spring. just write in plain jsp /php is enough.. Client wanted fast................

    In reality not all new technologies become hippies in the market.
    1.Flash application. in 2001 kinda hot but in the end nobody use except adobe flex developer,Microsoft silverlight developer.
    2.Java applet . in 1998 till 2001.Kinda hot and dim..

  112. It can be made easy by Hentes · · Score: 1

    Multiactivity is a subset of concurrency, and can be solved safely and easily using the actor model. The other concurrent problem is parallelism, which can also be made easy by using one of the loads of libraries that do the dirty work for you. As long as you divide a concurrent problem into a multiactivity part and a parallel computation part and don't try to mix the two, concurrency is a solved problem.

  113. Training by Anonymous Coward · · Score: 0

    My company has a training program. All relevant and semi relevant educational needs are paid for. Even if you make minimum wage at our company you can go to college as long as you make good grades. The only catch is it has to be either something that is relevant to your position or college, and you can't fuck up and get poor grades. It's sad, but less than 10% of the people of our workplace take advantage of it, even though we go out of our way to let EVERYONE know about it multiple times. Part of being in I.T. is staying up to date. if you don't stay up to date...well enjoy the door hitting you in the ass on the way out.

  114. At first they came... by BlackHawk-666 · · Score: 1

    At first they came for the COBOL programmers
    and I said nothing because I didn't like whitespace having special meaning.
    Then they came for the LISP programmers
    and I said nothing because I didn't care for parentheses.
    Then they came for the C programmers
    and I said nothing because I had C++ and OOP. ...

    --
    All those moments will be lost in time, like tears in rain.
  115. I think you misrepresent a little bit by bytesex · · Score: 1

    You act as if versioning systems and concurrent programming have only been invented in the last ten years. And that is simply not true, so there must be another problem underlying yours.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  116. Is it your job to? by Osgeld · · Score: 1

    no? then shut the fuck up.

  117. The same way as with younger programmers by S3D · · Score: 1

    There are always programmers who didn't not bothered to remember their math course. They usually have enough coding knowledge that they provide some value, but from a technical perspective they are a slowly-increasing liability. As an example: I work with a developer who is 10 years younger, but still doesn't understand how to extract rotation matrix from coordinate transformation matrix and cannot be trusted to code gradient descent without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of refreshing his math skills; I suspect he dislikes people he considers senior to him making suggestions about how to improve his math knowledge. How do you help somebody like this to improve their skill-sets? And, most importantly, how do you do so without stepping on anybody's feelings?

  118. This problem is pretty common... by Anonymous Coward · · Score: 0

    Here is a really similar situation. Smaller development team working as consultants on code that gets deployed to multiple operating systems and supports a large number of clients. The girl that's been there the longest insists on coding everything in Perl and using CPAN modules that haven't been updated in years. Not to mention that this extends to Windows, not just *nix systems.

    New people who have arrived in the last two years can code in Ruby, Python, Scala, JS, and other languages and keep up-to-date with where things are moving, but the first person mentioned is very very resistant to change. It doesn't help that the entire client base uses primarily Python. This girl is really, really bright and can easily pick up new things, so how do you get her out of her comfort zone and trying a bunch of new things?

    1. Re:This problem is pretty common... by Anonymous Coward · · Score: 0

      How should anyone here know what to do about a random person we know nothing about?
      For me, you'd just assign me a bug with a good description that is easily reproducible and I'd learn a whole lot while fixing it. Unless you want them to resort to printf debugging you might want to give a few additional hints though.
      Also some people will really get annoyed because they hate debugging.

    2. Re:This problem is pretty common... by Anonymous Coward · · Score: 0

      I think OP is talking about someone who is stuck in their original coding ways even though the rest of the team and the client have moved on to newer stuff. I'm also surmising that this person that has been there the longest has become a lead and/or manager.

  119. Concurrent code? by Anonymous Coward · · Score: 0

    doesn't understand how to write concurrent code (...)

    Somehow this reads to me as the guy doesn't properly appreciate the miracles of the yet another asynchronous, event-loop based, callback-infested, buzz-driven and hipster-promoted "solution" to concurrency problems which in reality is reinventing the concepts from more than 20 years ago.

  120. A bad conscience indeed by Anonymous Coward · · Score: 0

    " On top of that, he is really resistant to the idea of code reviews"

    This equals to admitting your code is bad. End of discussion. Subject is probably an attention whore.

  121. Why does this guy even have a job? by Zontar+The+Mindless · · Score: 1

    I work with a developer who is 10 years my senior, but ... cannot be trusted to use a revision control system

    Stop. Right. There.

    He cannot even use an RCS?

    See $subject.

    --
    Il n'y a pas de Planet B.
  122. Wrong analysis at work on this one by DrNoNo · · Score: 1

    > I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews

    This is not a skill set issue. Really it is not.

    This is an attitude and competency problem.

    Added to which, if you start off with the wrong analysis that it is a skill set issue and mix age in with your analysis as a probable root cause, you are likely to start down the road of making damaging assumptions with adverse implications for other employees and devalue perfectly good software engineers unnecessarily

  123. WIPO: Kill them by maroberts · · Score: 1

    ..they're useful as garden fertilizer.

    --

    Donte Alistair Anderson Roberts - hi son!
    Karma: Chameleon

  124. Respect by Anonymous Coward · · Score: 0

    Firstly you have to be aware of all the stuff you don't knoÅ yourself. Like how the company works, how to get things done there, what is important to the company and what is not (and it ain't knowing how the latest source control system works). Then you have to figure that 'programmer who hasn't stayed current' will probably be you one day. That's a good place to start.

    Then you will have to figure out why people don't stay current. Maybe he's lazy or stupid, maybe he's smart enough to understand that just knowing the latest buzz phrase isn't that important getting good systems written.

    The arrogance and naÃveté of youth is an asset, and overturning the old guard is an important part of keeping an organisation fresh, but at some time you'll become more aware of what you don't know tan what you do, and the consequent humility will be a great assets to you.

  125. Can't do concurrent code, code reviews & is ag by Uber-ix-geek · · Score: 1

    Firstly, I think all three of these issues are not linked in any way. If there is a way to get code working without concurrency, and your programmer is able to get that to work with all your use cases on your platform, you should just be fine. If not, you should give him ways by which he could learn concurrent programming and implement it for your given context/program.. Honestly, how much time will it take to convert his code to concurrent code - if there is no other way to run it. Secondly, for code reviews - if he's the only guy to resist it in your team/company, you have a big problem of teaming. This is a big "NO" in any group that does complex software development, you need really good team players to be in there. Your hiring process needs to be fixed or a reassignment is the only thing that could work. Insisting on a process that's uniform across the board - irrespective of age would make this work. Thirdly, for the age part - you ought to be sensitive enough and mature enough to know how to handle senior talent. It might be hard to remould them, since they are already molded in a particular way, but if you are able to gain their respect - then they could make magic..With age comes maturity - commitment and a lack of fear, but also stubbornness, lack of mold-ability, etc caused due to lack of of RESPECT. People are normally rational beings who upon respect would act in their own self-interests and perform...but you got to have them respect you. If the person you are talking about never respects, you then no matter what you try to do, he/she's going to duck it and continue down the same path, making it hard. The key - earn their respect through action ( and not talk,) and compassion and make them see the point. The ice has got to break, and the faster it is done, the better of a leader you are.

  126. Talk to you boss by Anonymous Coward · · Score: 0

    Someone in your company will be responsible for on ensuring on going professional development. If your company doesn't do this, they can hardly complain that their employees don't have the right skills. Recommend training, for everyone if necessary.
    Also, allocate some time for people to do personal professional development, and provide suitable materials.
    Software engineering is about constantly learning. Anyone who fails to do that, is a waste of space.
    If you have a developer who can't handle simple branch/merge workflows in source control, they must have a serious problem. Perhaps this individual just isn't capable of software development, and never has been?

  127. Code Review by Anonymous Coward · · Score: 0

    Code Review is at the wrong end of the process. Far more important is a design review. The higher up the chain the better.
    In my experience code review is a chance for those of a nit-picker mentality to shine. Those who want everything to be in the right column, but fail to see the "big picture".

  128. Deep business/domain knowledge is very valuable. by Anonymous Coward · · Score: 0

    Getting some young developer in who is gung ho about the latest buzzwords he reads on blogs
    requiers very little effort, especially on the market place today.
    Getting a good young developer is harder.

    But both tasks are a lot simpler than finding a developer of any age, who has a thorough
    and deep understanding the business. Yeah maybe there are fancier new languages,
    maybe more efficient patterns, but to the stakeholders who are paying for the effort,
    and to the end users, those things dont matter.

    A functional system that is built in top of a deep insight into how the business works
    is much better, than a fast efficient multi threaded application written in Erlang with
    built in scripting support for LUA, coded up by a team of young consultants who spent
    2 days to a week analyzing the business.

  129. If they can't do their job they are let go... by gatkinso · · Score: 1

    ...or sometimes put into a job they can do - if they are well liked. It is as simple as that.

    --
    I am very small, utmostly microscopic.
  130. Not doing the job by EmagGeek · · Score: 1

    One of the basic job requirements for my developers is to stay current on new technologies and always to be looking for ways to make our products better. I've never had a developer fail to do that, but if I did notice a developer starting to fall behind, I would do everything i could to save my enormous investment in them.

    Really, losing an employee is very costly in terms of lost experience and having to go through the engagement process and bring someone new up to speed. It's the LAST thing I want to do.

    A lot of the time, employees will get bored or something and start spinning their wheels. It's important to give employees the opportunity to spend some time on other things. I give employees 1 month out of the year to work on "fun" projects - stuff they're interested in doing, new and interesting technologies, or things that are otherwise off-mission but a break from the routine. I think it has been a success for me, and we as a company have learned a lot of new things from it.

  131. Quick answer by poofmeisterp · · Score: 1

    And, most importantly, how do you do so without stepping on anybody's feelings?

    "You're living in a world of make-believe with flowers and bells and leprechauns and magic frogs with funny little hats."

    - Homer Simpson

  132. You don't by V!NCENT · · Score: 1

    You let him crash and burn. You put oil on the fire, everytime gets pissed of at this guy. Later on, you get together and talk to his manager/boss/supervisor.

    You do this in a clever way; as in under the radar. This, however, requires knowledge of social mechanics.

    If you try to keep that person from crashing and burning; you'll have to deal with it, for as long as you work with this guy.

    Version control is realy old, BTW...

    --
    Here be signatures
    1. Re:You don't by V!NCENT · · Score: 1

      I'll give you an example:
      Imageine this guy is responsible for coding some kind of cashflow algorithm in accounting software. What you guys are going to be doing is adjusting your own code accordingly: working around the bugs.

      A month or two later, you all start to get together to investiga why suddenly everything seems so disasterous. Suddenly you all spontaniously find out it is this single asshole who fscks up the entire codebase.

      Armed with this spontaniously acquired knowledge you all go up to upper management and say:

      We were all so productive and on schedule. The problem was that suddenly we all got miles behind on schedule [for the software that makes the company a shitload of money].

      Since we are all so productive and good working class heroes, we started to investigate the issue, unpayed and in overtime. We found out that mr. A. Cocksucker messed up the entire CVS. Now the annual profit prediction will plummet.

      Steve and Jack were already trying to get this guy to learn the [git manpage], but we didn't know mr. Cocksucker was so uncapable that he would absolutely ruin the perfect planning of our software that we put soooo much sweat and tears into [bla bla bla].

      We wanted to tell you this because we want you to know on time, because we all love our work and we would be so sad [of course not] if the beloved customers would not benifit from our efforts. We absolutely love this company and our software and we would like to be able to have meaning in our day-to-day jobs of hard labour. [boo-fscking-hoo]

      Manager: *I need to get this guy fired* "What is the damage?"

      We realy can't work around this any longer, which is why we investigated this tragedy in the first place. We need to rollback at least [time it took from start to finnish].

      Asshole above your social status gets fired, nicer code can be written and CVS horrors are over.

      --
      Here be signatures
  133. A better question would be... by Afty0r · · Score: 1

    Why has your organisation allowed a senior developer to stagnate? Why has he not been given continuous mentoring, training, qualifications etc?

    Sounds like your company has failed to educate and train its' workforce and is now suffering. The answer to this question is not "train him" but "examine your training and career progression policies" as it sounds like they need a massive improvement. If they event exist at all.

    1. Re:A better question would be... by iggymanz · · Score: 1

      also, people can learn from the team in the right environment. does the article's place really have a team? a coach?

  134. Individual or company burden? by MDillenbeck · · Score: 1

    Is it the burden of the individual to continually upgrade their skills on their own time at their own cost, or does the company have a responsibility to provide access to training if they need constantly updated skills from their workers?

    Also, what is the role of the programmer? For example, if the programmer's job is to design efficient algorithms for the team to implement in code, do they really need to understand a specific language or can they communicate effectively in pseudocode?

    Finally, which is more important: knowing three dozen different languages for programming OR knowing three languages that are representative of various styles and being able to generalize programming methodologies and use research to find the specifics of the language. For example, suppose I know JavaScript, C++, and C backwards and forwards but not Java; how hard do you think it would be for me to use the internet or a book to research the Java and apply my knowledge on a per-case basis without crowding my brain full of unused garbage?

    As to the example coworker you defined - I don't think the issue is that the programming language knowledge is out of date. It sounds more like the coworker is not a team player and is unable to take constructive criticism - the person could be up to date in every programming language and tool out there and this would still be a problem.

  135. Old? What about Young? by Anonymous Coward · · Score: 0

    We just upgraded from CVS and SVN to GIT. Strangely enough it was the young programmers at our company who were the slowest to adopt. I've used multiple source code repositories throughout my career, so adopting a new one was just business as usual. But for many of the young programmers at our company this was the first time they have changed from one system to another. As IOS and Android development has picked up and we've asked the programmers to learn this, programmers in their 40's and 50's can rely upon their skills in moving from one system to another previously. We actually have a programmer in his 30's who has refused to work on anything but .NET applications on the desktop. Go figure. Not keeping up doesn't have much to do with age it is mindset. However your question is silly. Just let them go. Jobs aren't gifts; you only keep employing someone as long as their output makes more money than they cost. If that concept is too difficult for your management, maybe it is your managers who aren't keeping up.

  136. LEARN by ZenDragon · · Score: 1

    We have a huge problem with this in my office. A couple of us are working on a new application that utilizes MVC, and a heavy javascript front end which includes Knockout.js. Since this project started I have re-factored this thing 3 times the first because I was told to keep the JS limited to just pure js and jQuery, so I did. However it got complicated and I got to the point where implementing SPA made sense, my manager seemed supportive so I went about the first re-factor. On one point another developer that has not kept his skills current started pitching a fit, at which point my manager who has also not kept his skills current started taking a deeper look at the project, together they claimed it got too "complicated," and at that point I was asked to revert back to page per view, with simple js, so I spent a couple weeks doing that. This eventually created MORE complications due to the nature of the application, rather than storing data in local variables I had to persist through cookies and all kinds of shenanigans. Short of going back and implementing the entire thing in with razor and persisting in session state, which I could have done but given the work I had done thus far was mostly on the client, this would have basically been a re-write of the entire front end. I talked to my managers boss about my frustrations with the indecision of my manager and she said that she absolutely wanted me to do it in SPA as that best represented the vision that she had for the project. So I went and re-factored it AGAIN using knockout, although to be honest this is the way I wanted to do it in the first place so I am happy with the outcome.

    In any case, my point is that just a couple developers that have not kept their skills up to date have caused a lot of frustration for the department. The rest of us are all on board with this new way of doing things, why should we cater to the lowest common denominator? In my opinion if these guys doing want to keep their skills up to date they should be relegated to maintenance and legacy applications. We shouldn't hold the rest of the department back because two guys don't want to learn new things, one of which happens to be my manager unfortunately (but doesn't really have the authority to let me go, more like a team lead I guess). As far as I am concerned, you either get with the program or get out of the way and fortunately for me my bosses boss (the VP of IT) is on board with this so I've at least gotten my way in this case lol.

  137. How about by Anonymous Coward · · Score: 0

    You realize there is far more to a corporation and the people under its employ than some arbitrary wizz bang tech skill. If the individual is doing their job satisfactorily and their management is happy with them you should go have a fresh cup of STFU. Every year you fucking punks come out of some shitty uni thinking you're hot tits and can do no wrong, posting on here about "how can I tell these omg old ppl how to do their job"

    Go fuck yourself with a point pencil for a few minutes. That burning sensation you now feel? That's you. You are a rectal tear on society until you grow out of your annoying post uni phase and realize that guy you're bitching about is you in 10 years. And guess what fuck head, that guy is doing his job. You're not his fucking manager, so stop pretending you could be and sit the fuck down and shut the fuck up. Maybe, just maybe, you'll learn something and stop being such a fucking twat.

    Oh, and get the fuck off my lawn you miserable little twat. Come back when you have some real experience beyond writing 5 lines of code for some gay faggot cs101 course in Knuth MMIX assembler.

  138. A good engineer is a good engineer by tarpitcod · · Score: 1

    A good engineer / programmer understands fundamental things that matter far more than the latest language trends, if you are dealing with non-trivial problems.

    If you could magically have Knuth, Dijkstra or Hoare look at a hard problem do you think they'd do a lousy job? If you do, you need to go back and read the stuff those guys have written.

    Having a soup of buzzwords is fine, but it is worth less than nothing if they don't understand how to look at a problem and determine the dependencies of the problem. The best case for the geewhiz person will be that they by-chance end up using a pattern someone else came up with that maps. The worst case is you get something that looks nice and seems nice but is neither correct or robust.

    Concurrency didn't start with cheap desktop mult-icore microprocessors. Dijkstra wrote his stuff about Sempaphores in the mid sixties.

    There's a hell of a lot to be said for sitting in a quiet place and thinking through a problem perhaps with a pencil and piece of paper. If you've never worked on a problem that required you to do that, then either your problems have been easy or you're an unsung genius.

  139. Give the person an opportunity to use it! by Anonymous Coward · · Score: 0

    Well, give the person an opportunity to learn and USE WHAT HE LEARNS. I've "learned" a lot of so-called relevant skills but never have any chance to use them because people keep paying me to do older stuff. I've gotten to where I am reluctant to invest my time and money learning skills no one will pay me to use. Maybe old == smart in this case.

    BTW, anyone who is honest will (1) admit concurrency is difficult, and (2) admit most concurrent implementations are mind-blowing. Every tried to trace Android's over-engineered multimedia framework? It's an absolute nightmare. I think whoever wrote it channeled the ghost of Rube Goldberg.

    Most concurrency seems to be constantly checking to see if an object is null or not because the poorly-designed frameworks never know when something has been initialized or not.

  140. It's called efficient management. by pep939 · · Score: 1

    This is something that should be handled by his superior. It's his superior's job to slap him on the wrist if he moans about code reviews and doesn't take being up to date seriously. In my experience, management that doesn't have the guts or skills for straightforward communication is one of the worst obstacles to efficiency.

  141. Re:For starters, you can get off your high horse.. by Kjella · · Score: 1

    From the question:

    They usually have enough business knowledge that they provide some value to the company, but from a technical perspective they are a slowly-increasing liability.

    What you said:

    Many people provide value to an organization in ways that aren't always easily visible to co-workers. It's entirely possible the coders who doesn't seem to be "as up to date" in his skills may be providing benefits to the organization in ways you don't yet have the experience or perspective to appreciate.

    And if those people moved either up or sideways to continue to provide that benefit, that is great. The problem is when those people are still doing technical work that lead to bad code, bad design, bad practices and bad solutions that they can do by virtue of their seniority. It's very hard to rein in someone who has more experience, longer work history and who has more management clout from making bad decisions even when they really are bad. There's at least three ways to make a senior person butt out like trust, vanity or distraction. The best is of course if they just relinquish control if they trust me, which usually comes along. If that fails, there's always vanity as no senior person really likes to hear he's dealing with the nitty-gritty implementation details and the third is just to run up requirements/business side issues until they leave more of the tech side to you.

    Is it a bit cynical and cruel? Perhaps, but I really don't want to have a manager that I feel is holding everyone back, push them towards where they can shine and leave me some room to shine on my own. The best managers seem to have this figured out on their own, they know when to provide direction and guidelines but also when to back off and let the people who know all the details make the right decision. But the world isn't full of great managers and really, you can waste a lot of time and great code writing a flawed system that can't ever really work and perform the way it was supposed to. And nobody cared how great your wall was when the whole house caves in.

    --
    Live today, because you never know what tomorrow brings
  142. Training budget by ebvwfbw · · Score: 1

    That's what a training budget is for. Offer them the opportunity to learn something new. Offer it over and over again. If they don't take it and there is no business sense in keeping them around - lay them off. If this happens to you, never turn down training.

  143. New Programming Paradigm...? by stoicio · · Score: 1

    "How do you deal with programmers who have not stayed current with new technologies?"

    The hiring of anyone is based on applicable skills. The applicable skill for programming is the ability to learn.

    It seems odd that companies would not assess skills required for the actual job at hand rather than demand 'The New Skill-Set'.

    Our company has gone through a couple fiascos due to programmers due to this myth.
    To be clear, just because a programmer 'knows' a language does not necessarily make that programmer any good at programming in that
    language or any other.

    Also, Just because a programmer doesn't know 'Current Technologies', does not mean they are poor programmers. In fact, it's often
    better to hire someone who is willing and able to READ THE MANUAL and get up to speed, which is what most good programmers do
    anyway.

    Give a new prospect a test to see if they can, and are willing to, learn.

    --TEST--

    Read and perform the following tasks and questions.
    If you cannot complete a task for some reason, write why you cannot, and how you would go about getting enough information to complete the task.

    Question/Task #1: Write a small program in C/C++ that opens a file, writes a string to that file, closes the file, opens the file again and reads the data to the screen.

    Question/Task #2: Look at the following code. What do you think it does?

    Question/Task #3: How would you learn to write a small program in a language like ? How long do you think that would take? Would you require access to the language reference manual after a week of programming in ?

    Question/Task #4: Document the following code.
    ( DELIVER C A =>B )
      [
            LVAR X #
            LVAR Y #
          X = ChuckaBlocka(A) #
          Y = HumBucket(X B) #
          BegaBoards = YodelMax(Y) #
    ]
    )

    --End Test--

    The point of the test questions may seem obvious at first, but each question has a alterior motives other than the task.
    The idea is to get some insight into HOW the programmer thinks and attempts to resolve the problems.

    I would rather hire an older programmer who is able to learn and identify patterns, than any programmer with
    'the new technology' who has none of those pattern comprehension skills.

  144. legacy systems by Anonymous Coward · · Score: 0

    Many of the systems and technologies out there are âoelegacy" and require someone with and âoeolder" skill set. Many of those systems are still being sold.

  145. Innovation jams by tonejava · · Score: 1

    One great way is to promote innovation in a company. As some have noted, some people have families to think about outside of work that hacking on something new outside the office is not always a priority. In the office however you can encourage people to try something new by allowing a certain percentage of innovation time. Then once every 12-14 weeks allow debs to focus on their in ovation projects awarding the winning project.

    You get:
    Devs trying something new
    New skills being bred
    New ideas for your workplace
    Possibly new productivity tools
    A great environment to work in
    People encouraged to work as a team

    There is a lot of tech out there now and nurturing skills is very important especially if someone needs to decide if they want to stay employed.

  146. Andrew Morton won't use patches ... by wdef · · Score: 1

    That's right, the 2ic of the Linux kernel, Andrew Morton, flatly refuses to work with patches and still sends his revisions to Mr Torvalds in massive tarballs, a cause of merciless jibes from the latter. Linus laughs it off and puts it down to Mr Morton's eccentricities (but he also puts up with it).

    Does this anachronistic obstinacy make Andrew Morton a "bad" programmer?

  147. let them attend conferences by anomalous+cohort · · Score: 1

    Where I work, they pay for every engineer to attend a conference of their own choosing. This year, I am going to the Cassandra summit in San Francisco. Last year, I went to the Lucene Revolution conference in Boston. The year before that, I attended Velocity. Zoosk is still a start up but has been around for six years. They run R&D projects about twice a year for new hires and conduct a hack days competion every year. They have one project where six engineers are working with new technology to reinvent their whole stack.

  148. I still don't understand... by Anonymous Coward · · Score: 0

    but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews

    I still don't understand how you consider any of these "new" - they're all decades old...

  149. Straw man ageist argument by Anonymous Coward · · Score: 0

    This has nothing to do with "old guy" senior programmers; my experience has shown that this is a problem with some people regardless of their years of experience.

  150. Fire by sjvn · · Score: 1

    Fire them all and let unemployment sort them out.

    More seriously, if he can't produce the code you need, or maintain older code, whatever, he really does need to be moved out.

    Steven

  151. Managers by Johnny+Mnemonic · · Score: 1

    Step on his feelings. This kind of thing needs to show up on their (annual) reviews, and their performance should be derated. That doesn't necessarily mean fired, but their performance evaluation should be penalized. That would generally mean a failure to get COLA increases, to say nothing of merit increases. If they have 10 year old skills, then their wages should be frozen as of 10 years ago. If you don't have annual reviews, your company has a problem. That's what managers are for. If they're not doing their job, that should show up on their reviews as well.

    Are they worried about hurting this guy's feelings? This isn't a daycare. Are you worried about this guy leaving for another company and taking valuable information with him? He's not going anywhere, no one else would hire him with skills that old.

    If you have a company that mature without either annual reviews or management that feels that they should manage, your company has a dire problem and you should get out of there. The way you phrase this makes it sound like it's actually a government position, and sadly that is more par for the course. Now you know why people don't like paying their taxes.

    --

    --
    $tar -xvf .sig.tar
  152. Quit assuming you know better by Anonymous Coward · · Score: 0

    I'm in my mid 20's, I do not touch C# or Java. I avoid them like the plague. I code in C/C++ for CLI based applications solely. I have no reason to write "concurrent" code. I write what we call multi-threaded code which is very fun. I write low level system daemons. I typically code solo so no use for a repo except for my own personal desires to branch features and backup code etc.

    I will always have a niche because all of you trying to stay "current" run off and obsess over coding a webapp and learning the new buzz word. While you're all competing for work, I'll be fought over for legacy positions when these older gents retire because they'd rather spend time with their families than worry about how to write a new app for their smartphone. I envy and can't wait to join them!

  153. you go to mcdonalds by Anonymous Coward · · Score: 0

    And work it out. It's not hard. McDonalds is a good shelling point for putting away your pride and solving your problems. Only downside is that it's completely disgusting. Sometimes, sacrifices need to be made for the greater good.

  154. Programming left me by pivot_enabled · · Score: 1

    Or as a friend says, "I didn't leave programming, it left me".

    The goal of most commercial development efforts is, or should be, to solve a business problem in the most permanent and cost effective way. Cost effective is a combination of the initial effort, ongoing maintenance and the cost of hardware required to run the solution.

    I haven't seen many shiny *new* tools that do that any better than the *old* tools did. When you have been in this business long enough and you see the same wonderful *new* ideas come around for the third time you get a bit jaded. You realize just how pointless this wonderful new thing is. You will solve the same problem but using MUCH slower development tools and environments and in the end the product itself will be slower.

    If this new skill you are hoping they will adopt is as indispensable as you seem to think it is, then lead by example! Show them how quickly you can solve the problem and how easy the new code base will be to maintain. If you can do that and they are still not interested then they are simply in the wrong business. On the other hand don't be surprised if you find out they can do the same but much quicker with their own tools and possibly produce code that runs as much as 1000 times faster. Will you be able to swallow your pride and acknowledge that you are full of BS? I doubt it.

    Writing for concurrency is far from a new concept and not being able to do that is not indicative of a faded skill set. That is an essential skill set which was never acquired. Revision control systems have been around for a long time. Most systems can be learned well enough to use properly in just a few hours and they are essential to effective team work. Again not what I would call a faded skill. This is a fundamental lack. As to code reviews those cut both ways. Their pride will recover quite nicely when they review YOUR code.

    Are you REALLY interested in how to make this person productive? Team your one of your "old" guys with one of the "young" guys. They will BOTH learn a lot.

  155. Re:For starters, you can get off your high horse.. by Anonymous Coward · · Score: 0

    the energy invested in pointing out the flaws of others would be much better spent on reflecting upon their own shortcomings and improving their own skills

    I think I'd like something like this on a T-shirt.

    -x

  156. You mean how do you deal with incompetentance by drew_eckhardt · · Score: 1

    >As an example: I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up.

    The developer in question just isn't competent. Concurrent programming dates to at least 1950 and SCCS came about in 1972.

    >So, how do my fellow Slashdotters handle situations like this?

    Avoid them where possible and work around the damage. For instance good test automation will limit how long their mistakes go undetected.

    >How do you help somebody like this to improve their skill-sets?

    You don't. Understanding concurrency is one of the programming aptitudes which can't be taught.

  157. how do you handle coders who don't say current? by Anonymous Coward · · Score: 0

    gosgog:
    FIRE HIS/HER ASS....if they are in the Hi Tech Industry & don't continue to learn...again FIRE 'EM, they're lazy !

  158. Outdated developer here. by codeButcher · · Score: 1

    I would probably fit, started working as a programmer 17 years ago. I've always LOVED building stuff, so I never moved up the ladder.

    A workplace makes a huge difference to learning new tech. One will be able to learn what one uses the easiest, else it just stays theoretical knowledge that gets rusty quite quickly. If a company insists on using an application server two versions back from current ("its tested, it works, we know its quirks") - well, learning what makes some other AS great will not be very easy in your private capacity as opposed to an enterprise environment.

    When I started as a newbie, a lot of emphasis was placed on the "peripheral" stuff (version control, formal testing, modelling, design, documentation, code reviews, project management, etc. etc.) In other words, Software Engineering as opposed to just Coding. As years have progressed (and I have moved between jobs) it seems that the younger folks see the value of these activities less and less, as opposed to what is described in the post. Companies are looking to hire the Crack Cowboy Coders, to pull them through. Of course newfangled buzzwords are bandied about ("Agile" was the last one I paid attention to) but even those don't get done (and I don't even think it's a bad idea - but of course ideas are worth nothing if they don't get implemented).

    All of this leaves me with a sense of dread and despair, since I have recently gone through a spate of interviews and eventually change jobs, but NONE of the companies I interviewed seemed to ask the right questions - all where just on about the "right" mix of new-version tech buzzwords. "You know JBoss? No, sorry, we want someone that knows Weblogic..."

    At my current employer, a fairly biggish consultancy, I've been on three different projects in 6 months. Every one uses a different database, a different application server, a different version control system, a different app framework, different coding conventions, different customizations to the Eclipse IDE, no discernible SDLC, let alone any of the other Software Engineering concepts mentioned above. I'm one of the few more senior people. I really don't know what they teach people at college these days. It doesn't look as if they will learn it while working...

    In the end, a company should be more than just a loose collection of (whipper snapper) coders. It should/could be an ORGANISATION that ORGANISES their resources along the lines of personal strengths and project needs, and can use economies of scale to make the work more efficient than what individuals could do.

    On the positive side, they provide free snacks. And financial and time support for courses/learning.

    --
    Free, as in your money being freed from the confines of your account.
  159. Easy... by Anonymous Coward · · Score: 0

    In a state like Texas, which is a right-to-work state, you tell them to shape up or they lose their job to someone who can do it better (and likely cheaper).

  160. Everyone wants trained employees but ... by Larry_Dillon · · Score: 1

    Your post comes off as a just-out-of-college know-it-all who has never been on the other side of the equation. You think you're hot shit because you are up on the latest technologies, having just learned them in school. (Not trying to insult you, but this is how you sound.) If companies want people to have new skills, then need to train them. It's easy for young people with no other obligations to devote much of their spare time to learning new technologies. The guy you speak of may have been like that when he was young. Your attitude seem to reflect a current trend in American business. Everyone wants trained employees but no one want to train. This is a short-sighted approach. Or are programmers like athletes? You have a 10 or 15 year career and have to move on?

    --
    Competition Good, Monopoly Bad.
  161. Shoot first. . . by TripleE78 · · Score: 1

    Shoot them first, ask questions later. If they get back up, shoot them in the head, because they're clearly zombie coders.

    If that still doesn't work, put them on help desk.

  162. Agree on UML by charnov · · Score: 1

    UML was a management and inter-project requirement for coordinating code across hundreds (or even thousands) or projects within the multi-company infrastructure. We had upwards of 3000 developers working on various parts of the ERP at a time and it was a helpful tool to make sure programmers had a pretty good idea of where the project leads wanted them to go. They were never gospel, though, as we wanted creativity and flow first, standards second. Standards were my job along with spec'ing, SDLC, proper process control, HR related stuff, etc. We let programmers program and managers managed. Man, I miss that job...

    --
    [RIAA] says its concern is artists. That's true, in just the sense that a cattle rancher is concerned about its cattle.
  163. Business Case by Vrtigo1 · · Score: 1

    The same way you get businesses to do anything else. Write down everything you want to accomplish and format that list as bullet points. For each item on the list, make a business case that shows why it should be done, what benefits will be realized by doing it, what risks come with not doing it and any other info you feel is pertinent. Then take that list and show it to the person that has the authority to implement the changes.

    Unfortunately, many times, people will resist change if they feel it will hurt someone's feelings. This is especially true among small teams. If that's the case, then you just have to weigh the risk of not doing something against the turmoil it would create and figure out which is the lesser of two evils.