Avoiding Irrelevance



  • New here, but long-time reader of TDWTF.

    I'm no cutting edge developer. I'm competent, and can put out good designs, but I don't have half of the knowledge that seems to be the average on here. I've gone through my rookie phase, cargo cult phase, and am now in the realize I know so little phase. I make it a goal to read and try and learn, and to ask what may be stupid questions.

    How do coders avoid turning into dinosaurs? Every developer over 50 that I've worked with refuses to break out of the process that was ascendant in their early career. You know the old rag about how expert programmers can make everything look like FORTRAN? That's all I ever see. They're so entrenched, with senior level positions (and 30 years in the same place), that they always win with the higher ups.

    I don't want to be a dinosaur - laughed at by the up-and-coming, and holding back progress. Is it possible to remain adaptable? A better question is - can I remain adaptable without sacrificing large areas of non-work time?

     



  • @SwampJedi said:

    Is it possible to remain adaptable?

    Yes. 

    A better question is - can I remain adaptable without sacrificing large areas of non-work time?

    Large areas of what?



  • @SwampJedi said:

    I don't have half of the knowledge that seems to be the average on here
    It's more a sum than it is an average so don't let it intimidate you.

    @SwampJedi said:

    can I remain adaptable without sacrificing large areas of non-work time?
    Maybe by sacrificing small areas of non-work time? It's either that or you learn on the job while there's something to learn about the technoly stack in use. If you want to keep learning after that then you might have to change jobs. It comes with the territory I'm afraid.

    Personally I try to learn the stuff that trascends languages; coding practices, decent OO design (MVC etc), design patterns, project management, low-level OS stuff , touch typing, anything that will still be relevant 10-20 years down the line.



  • @SwampJedi said:

    How do coders avoid turning into dinosaurs?
     

    You ask that question; I think you're already safe.

    Just keep investigating new stuff, and judge it all on practical merits. You may be familiar and comfortable with language X, but if the next big thing unlocks a large library of stable, pre-written modules that work together rather well, then fuck the old stuff and in with the new.



  • @dhromed said:

    @SwampJedi said:

    How do coders avoid turning into dinosaurs?
     

    You ask that question; I think you're already safe.

    Honestly? Yup.

    Look, if you read this site, or CodingHorror, or The Old New Thing (blog or book or both), or if you've read The Mythical Man-Month, or The Macintosh is Not a Typewriter, or The Design of Everyday Things, or ... anything like that? You're not part of the problem, you're part of the solution. If you regularly use more than one programming language, you're part of the solution.

    The problem is the people who:
    1) Don't advance the art (or possibly even realize that someone else is advancing the art)
    2) Don't switch tools (or possibly even realize alternate tools are available)
    3) Don't read anything trade-related
    4) Never stop and say to themselves, "this process sucks, there *has* to be a better way"

    You're not one of those people.

    Now be careful, because from reading that you probably have the impression that I'm talking about the guy who still uses Borland Builder, but that's not necessarily true-- you can be a huge fan of Ruby on Rails right now, and still meet all three of those bullet-points. (The only difference is that it's easier to fake people out because you happened to get stubborned onto a new platform and not an old one).

    Remember: the state of this industry is dire. If you use *source control*, you're in the top ~25% of programmers. It really doesn't take much to be a good programmer, when you consider who you're competing with.

    Edit: Of course a more urgent issue might be "how do I continue to evolve as a programmer when my boss insists I write Fortran?"



  • I've read a few of those books, yes. I've also spent a lot of time over at c2.com (Ward Cunningham's wiki), though sometimes I feel like it's a shade Cargo Culty.

    Source control has saved my chops more times than I'd be able to count. I will say that I don't use it when (rarely) I do personal projects, but that might need to change. However, yes, it amazes me how people refuse to use it, or cheat it, or think a protected directory is good enough. Heck, I had Visio *herk* kill some stupid UML stuff I was working on today, and found myself wishing that I had a better way.

    Edit: Of course a more urgent issue might be "how do I continue to evolve as a programmer when my boss insists I write Fortran?"

    This. Change jobs? Hard with a family, and with the current economy. It is amazing to me how soul-destroying this can be. It becomes easier to disengage, and just get the violation over with. After all, what does the guy with less than 5 years experience post-grad school have to teach to people who started here before he was born? If adding a noodle and jamming works, why not keep jamming? The sad thing - no, the terrifying thing - is that disengaging is exactly what can create dinosaurs. Playing the game to minimize conflict (keeping bosses/senior dinosaurs happy) and keep advancing in the ranks will fossilize you by the time you reach the place in the hierarchy where you can make a difference.

    Your issue #1 really hits the nail on the head. What we do is an art - which is why sites like this exist. They collect the crimes against the art, so that people like me can learn to be a better artist.

     



  • @DOA said:

    Personally I try to learn the stuff that trascends languages; coding practices, decent OO design (MVC etc), design patterns, project management, low-level OS stuff , touch typing, anything that will still be relevant 10-20 years down the line.

     Learning new concepts in the realm of project management is more important than most developers imagine. The projects that I've personally seen fail have failed directly because of poor management.  Also stay on top of software design.  There are valid and useful patterns out there you've probably never heard of, as well as implementations of those patterns that could be useful to you.

     I posted recently about a gigantic WTF of a company I was working for.  I recently left there and got a job that so far is awesome ( I know there's a wtf around here somewhere but I haven't uncovered it yet...been here 2 months now..). Sometimes the only answer is to remove yourself from the dysfunction.  Will you be able to move on from that position with a relevant skill set?

     It's often a neccessity in the IT world, especially is you are a consultant/contractor, to view your *skill set* as your career, and not vice versa.  If you don't have a relevant skill set, you may find it increasingly difficult to obtain employment elsewhere.  So either stay in a dysfuntional environment and become a dinosaur or leave and see what the rest of the world has to offer.  Pretty much everywhere is going to be screwed up in one way or another though, you gotta find a level of WTF that suits you and your career goals and make do.  Or start up side projects... most everywhere I've worked considered contribution to an open source project (commiter status or highly active otherwise) as relevent and desireable work experience.

    Go to developer conferences as often as you can. They can be valuable portals to the rest of the IT community.  Join a User Group nearby, you don't have to hit up every meeting but go to the ones that hold your attention.  It's also a good way to meet like minded folks.

    @SwampJedi said:

    If adding a noodle and jamming works, why not keep jamming?

     Spectate... is cancer... and should be killed with fire.



  • @SwampJedi said:

    I've read a few of those books, yes. I've also spent a lot of time over at c2.com (Ward Cunningham's wiki), though sometimes I feel like it's a shade Cargo Culty.

    Honestly, if you know what the term "cargo cult" means, and understand why it's a bad thing? You're not one of the bad ones. Try quizzing your boss on some of these, and see how he scores, hehe.

    @CaptainCaveman said:

    So either stay in a dysfuntional environment and become a dinosaur or leave and see what the rest of the world has to offer.  Pretty much everywhere is going to be screwed up in one way or another though, you gotta find a level of WTF that suits you and your career goals and make do.

    That's good advice. We look down on resumes from people who switch jobs every year, but we also look down on resumes from people who stuck with the same job for 16 years. If you work in IT, and you've been at the same company for 16 years, frankly, you're one of the bad ones. (Unfair, but true enough to be a useful rule.) Those are the people who manage to wedge themselves into a huge corporation either by keeping critical information in their skull (and nowhere else), or finding a team with extremely low performance expectations.



  • @blakeyrat said:

    We look down on resumes from people who switch jobs every year
     

     I hear this from some people and I hear other's say if it's contract work it matters less... what's your thoughts on that?  Does it look as bad if people are working several 6-12 month contracts? 

    In my experiencce... well it hasn't hurt me yet... but it then again I don't want it to become a problem either.



  • @CaptainCaveman said:

    @blakeyrat said:

    We look down on resumes from people who switch jobs every year
     

     I hear this from some people and I hear other's say if it's contract work it matters less... what's your thoughts on that?  Does it look as bad if people are working several 6-12 month contracts? 

    In my experiencce... well it hasn't hurt me yet... but it then again I don't want it to become a problem either.

    I've done about 2 dozen interviews and honestly? It hasn't come up. For whatever reason, people who work contracts don't interview with us, haha.

    As to how I'd treat it, well, I'd just say make sure the resume clearly states it's contract work, so it doesn't look like you just bailed after 6 months. That's the most important thing.



  • @DOA said:

    @SwampJedi said:

    I don't have half of the knowledge that seems to be the average on here
    It's more a sum than it is an average so don't let it intimidate you.

    @SwampJedi said:

    can I remain adaptable without sacrificing large areas of non-work time?
    Maybe by sacrificing small areas of non-work time? It's either that or you learn on the job while there's something to learn about the technoly stack in use. If you want to keep learning after that then you might have to change jobs. It comes with the territory I'm afraid.

    Personally I try to learn the stuff that trascends languages; coding practices, decent OO design (MVC etc), design patterns, project management, low-level OS stuff , touch typing, anything that will still be relevant 10-20 years down the line.

    All good advice and I would like to also point out that a whole bunch of "new" stuff is not actually new.  MVC is 25 years old as is a load of the web technologies that the OP probably thinks the dinosaurs don't understand. 

    Examples are client/server, OO, MVC, RPC (aka web services these days), data modelling, various SDLC practices, security, performance concerns etc. etc.  I could go on but the point is that plenty of old stuff underpins what passes for new stuff.

    Personally, I would be more comfortable if the "mammals" (or whatever the non-dinosaurs are called) could embrace and apply some of these fundementals before worrying about how to do the next new thing.



  • @LoztInSpace said:

    @DOA said:

    @SwampJedi said:

    I don't have half of the knowledge that seems to be the average on here
    It's more a sum than it is an average so don't let it intimidate you.

    @SwampJedi said:

    can I remain adaptable without sacrificing large areas of non-work time?
    Maybe by sacrificing small areas of non-work time? It's either that or you learn on the job while there's something to learn about the technoly stack in use. If you want to keep learning after that then you might have to change jobs. It comes with the territory I'm afraid.

    Personally I try to learn the stuff that trascends languages; coding practices, decent OO design (MVC etc), design patterns, project management, low-level OS stuff , touch typing, anything that will still be relevant 10-20 years down the line.

    All good advice and I would like to also point out that a whole bunch of "new" stuff is not actually new.  MVC is 25 years old as is a load of the web technologies that the OP probably thinks the dinosaurs don't understand. 

    Examples are client/server, OO, MVC, RPC (aka web services these days), data modelling, various SDLC practices, security, performance concerns etc. etc.  I could go on but the point is that plenty of old stuff underpins what passes for new stuff.

    Personally, I would be more comfortable if the "mammals" (or whatever the non-dinosaurs are called) could embrace and apply some of these fundementals before worrying about how to do the next new thing.

    Last year, we needed to get some data off an AS400 to a Windows file server (the AS400 had to initiate the transfer).  I told the dinosaurs that I preferred to not use FTP as FTP is fairly difficult to secure properly.  I asked about Web Services or MQ, the response was "We don't have WebSphere installed and if we did, we wouldn't know how to do it".  How about SFTP? -- "Never heard of it".  IFS? -- "It breaks our security model".

    At the end of the day, it turned out that the platform had at least a half dozen solutions, but the people could only do FTP.  In the four years I've worked with 3 full-time RPG programmers, not one new technology has been introduced.  If we needed to hire somebody, we could hire somebody that had been in a coma since the 1980's and they wouldn't see anything they didn't understand on our AS400.

    We call them dinosaurs because they really are stuck in the past.  Anybody that has kept up with the times is indistiguishable from a modern programmer.  We have one division where all of the code running on "big iron" is Java written in Eclipse using the Rational toolset for SDLC and source control.  These guys are not dinosaurs.  The real dinosaurs have never done client/server, OO, or MVC and think source control is keeping a single previous copy of a program's source code.



  • @Jaime said:

    If we needed to hire somebody, we could hire somebody that had been in a coma since the 1980's and they wouldn't see anything they didn't understand on our AS400.

    I interviewed for a position once that turned out to be for AS400/RPG. I tried to find out if they were thinking about webservices, a port to .NET or at least RPG IV, they basically told me "that stuff is insecure, at least RPG alweays works" and even got annoyed a bit that I dared question their ways.


Log in to reply