Slashdot Mirror


How Can an Old-School Coder Regain His Chops?

DonLab writes "I was a proficient software engineer in the 1980s, writing hundreds of thousands of lines of ALGOL, FORTRAN, COBOL, and Pascal programs, as well as working in 370 and 8080 assembly language & pre-relational DBMS systems. My hands-on programming career ended when I became a freelance analyst and designer, ultimately retiring young in the early '90s. Now I'd like to reenter the field, but I'm finding that I know nothing about today's post-C languages, programming tools, and computing environments. I wouldn't know where to start learning C++, PHP, Java, HTML5, or PERL, much less how to choose one over the other for a particular application. Can I be the only pre-GUI software designer or hobbyist searching for a way to update his skills for Windows, iOS, or Android?"

9 of 565 comments (clear)

  1. Work backward by p3bf · · Score: 5, Insightful

    If you want to develop for the iPhone/iOS, then learn Objective C. Just figure out what you want to do, keep your focus narrow for now, and work backward from the requirements.

    --
    Slashdot: Everything in Moderation, including Moderation itself.
  2. Mailing lists by gatzby3jr · · Score: 5, Insightful

    Here's a few tips that I try and use when learning new languages:

    1) This one may seem obvious, but just start using it. Write "Hello World!" programs, and then an address program, stupid stuff until you get used to syntax. Eventually you'll start to pick up on the strengths of the particular language and come up with ideas on how to write stuff to further enhance your knowledge and proficiency.

    2) What worked for me usually was to subscribe to a mailing list. Not necessarily even the 'official' *-users mailing list, but just one that talks about problems. By reading through other people's common problems, not-so-common problems, and more importantly, the community's solutions will help get a perspective of the language and how other people are using it.

    3) Start looking at well written code in that language. Go on GitHub, Bitbucket, sourceforge, or whatever, and start looking through the code.

  3. Old person syndrome by girlintraining · · Score: 5, Insightful

    First, start by giving up on that "I don't know where to start" attitude. Just dive in. That's how you learned code "back in the day" and very little has changed. You just need to start absorbing information and trusting that after awhile, it'll turn into useful knowledge.

    --
    #fuckbeta #iamslashdot #dicemustdie
  4. Stay Retired. by Nikkos · · Score: 5, Insightful

    Really, did the crash hit you that hard or are you bored? I don't know if you understand the employment situation for programmers these days. You're going to be old in an industry noted for it's ageism, behind the curve technologically, and depending on where you do find a job, you're likely to be paid terribly for long hours and work under a clueless asshole boss.

    I really hope you have other options, it's ugly out there these days.

  5. Don't by kryptKnight · · Score: 5, Insightful

    Proficiency in ALGOL, FORTRAN, COBOL, and Pascal makes you stand out from the crowd. Market yourself as a specialist.

    --
    Facts do not cease to exist because they are ignored. -Aldous Huxley
  6. I second that by Dan+East · · Score: 5, Insightful

    Pick a language and dive right in. If you are proficient in as many languages as you state, then learning "modern" languages will be no problem. Especially if you are familiar with Pascal, which structurally is very similar to the languages you want to learn.

    C++, PHP, Java, C# and Javascript are all related structured programming languages, and primarily differ in minor syntax, class definition, data types and strictness.
    For example, the C code:
    if (++i > 10) {
      j+=5;
      i=0;
    }
    will execute as-is in all 5 of the languages I mentioned (PHP would have $ signs in front of variable names). So if you are familiar with C, or even Pascal, then you already understand a good portion of modern languages.

    "HTML5" - HTML, CSS and Javascript (and throw in PHP for server-side), would represent the largest departure from what you have done in the past, due to the tremendous amount of segregation between what runs on the server versus what happens in the browser. To some extent the entire thing will seem like a big hack, and to a large extent that's what it is.

    Still, my point is that if you were able to become proficient over such a wide variety of languages in the past, then you will not have any problem today, especially since many of the modern languages are quite similar.

    --
    Better known as 318230.
  7. Re:C-sharp by Gorobei · · Score: 5, Insightful

    If he needs to look into modern COBOL, he should just give up now.

    Almost nothing has changed between 1980 and 2010. Modern PCs and phones look a lot like mainframes from the 1980s. Sure, speeds are higher, programmers are more expensive, and communication is much cheaper. But, algorithms and design are virtually unaffected. A good 1980s hacker can be up to speed in a month, tops.

    Pick up python, ruby, or whatever, and write code. GUIs aren't magic - they are just bits visible to the user: read and play and you realize they are trivial.

  8. crank start by epine · · Score: 5, Insightful

    I wouldn't know where to start learning C++, PHP, Java, HTML5, or PERL, much less how to choose one over the other for a particular application.

    There's something a little odd about this question. Mentions the volume of code output from his past life, but not the application domain. Seems to have weak Google skills. Not sure how he managed to post this query to an electronic discussion board. Did he dictate to his grand-nephew?

    Having expertise in an application domain would be a good place to start. Then figure out what languages have remained relevant. But I get the feeling his former application domain is in the same state of decline as his programming skills.

    With that list of former languages, the guy *ought* to have a fairly strong skillset for maintaining write-only Perl scripts (write-only code was a major industry back in the day), and I figure there's some demand for that. It would be a good transition language: old school mindset, old school syntax (uglier than most), but with a post-Algol dynamic execution environment.

    If he can get over the hurdle of the moderately complex program that use to run in 50k now requiring 50M, he'll do OK. If not, he should try his hand at embedded. I've never written a line of code for an AVR that I couldn't have written (conceptually) with a C compiler from 1983. Those early microcomputer C compilers were riddled with trivial bugs. I recall a fairly simple C static variable initialization (more than one nesting level) the compile mis-generated. That wasn't uncommon. It's been a long time since I've had to report a major code generation error in a C compiler. It's the same skill, minus much of the grief.

    The other thing that changed is that I no longer schedule lunch around a global recompile. Certain of the old-school time management skills have gone by the wayside. These days, it's your computer that goes to lunch. Between keystrokes.

    Hey there old guy, while you were cranking out 100,000 lines of code, did you acquire any documentation skills? Those older code bases he's equipped to maintain often go along with old school formal management processes.

    The biggest change from then to now is that you simply don't know what you're doing in most modern development environments, not the way one used to. Competence is a bubble of lantern light you carry on your person as you trudge into dark places, with one screen tethered to the internet. It's humanly impossible to learn PHP without constant recourse to a memory aid, if your memory is filtered on sanity. New kids won't even know what "filtered on sanity" means. It's been way out of style since Microsoft introduced us to the glories of central planning. In the 1980s, I knew *every function* of my favorite program editor. Often I knew every command line switch on the compiler I was using. And every function in the API I was programming against. These days, I don't even know every line in the context menu that comes up on a simple right click in Eclipse.

    The other sea change one has to master is letting your tools do more of the work, whether it's unit testing, make scripts, or an IDE.

    A fairly debilitating liability at the outset is not having a good sense of what is supposed to be painful, and what isn't. The rules on how productivity is gated have changed substantially. Long ago it was possible to put in a super productive week banging out a top notch utility library suited to the compiler and application domain. You'd be hung in the modern workplace for losing a week on an HIH detour.

    If he's a bit more adventuresome, despite not mentioning Forth on his list of skills, he could do a lot worse than buying himself a Lego Mindstorms NXT and a copy of WoW and investing some quality time into Lua. The C side of Lua is anchored in the old-school skills he seems to have in abundance. He won't have a job at the end of play time, but he'd manage to bridge about half his generation gap in the process, and he mig

  9. And this bile was marked insightful? by luis_a_espinal · · Score: 5, Insightful

    Really, did the crash hit you that hard or are you bored? I don't know if you understand the employment situation for programmers these days.

    Depends on the programmer. Seriously. Not to make up shit, but I'm getting an average of 2 calls every week from headhunters I know for well-paid positions, calling me if I'm interested or if I know people that might fit the bill. I'm happily employed, and the only people I'd trust enough to recommend are employed. People I know that I wouldn't even trust to code a "hello world", those are the ones that are continuously having a hard time getting a job. Maybe for other people, who are truly qualified, they have a harder reality, but from where I'm sitting, if you have the chops, you get the job.

    And I'm not even in a place that is known for its plethora of IT/software jobs. And yet, 1) I know people who are continuously getting the gigs, and 2) I know that a lot of positions are being unfilled.

    And it's not as if companies aren't willing to pay. It's just that there isn't enough qualified software engineers. There is a shitload of cookie cutter programmers out there, you know, the type who never gets the basics, like why he needs to close a database connection or avoid Java string concatenation. For them, obviously, there aren't enough jobs. But there are jobs out there, companies are willing to pay good for filling them... and they have a hard time filling them in with qualified people.

    That there is a problem with the economy is one thing. That there aren't enough jobs for the cookie-cutter programming masses, that's another. You have the skills and you have been intelligent enough to cultivate your professional network, you get the job. Period.

    You're going to be old in an industry noted for it's ageism

    Cliche. I work with developers who have been working with software for 25 years if not more, people well into their late 50's. I'm not making that up.

    behind the curve technologically,

    This you might have a point, and the person in question might have to start in an entry level position, but that's his call. But consider this.

    Most people that are working with software NOW are already behind the curve. You see people out there that have been doing, say, Java for 10 years and still don't understand why fine-granularity web services are a bad idea. Since the dot-com (and thanks to it) our software industry is inundated with people who can't program for shit, and who expect to get paid $70K out of school just because they know how to code a JSP/ASP page.

    I'd rather have a veteran programmer starting up with Java and C# in a junior position over the junior developers we have know. And I know for a fact of employers who think that way as well.

    and depending on where you do find a job, you're likely to be paid terribly for long hours and work under a clueless asshole boss.

    Isn't that how it for most us anyways? This is how it was 30 years ago, it is what it is now, and that's how it is going to be? The people who work 9-5 are those who work on an assembly line connecting piece A with piece B non-stop. You want to work with software, with finance, with medicine, with law, expect to work long hours.

    As for having an asshole boss, you'll get one now matter where you work or what you do. It's life. It's a 50/50.

    I mean, fucking seriously, are we really to believe that it likely to get an asshole boss, with likely meaning the majority of times? Are we really that cliche and gullible? One thing I know is that the more people focus (and believe) that this is the case, the more that it is simply a matter of projection, of projecting their own assholery.

    Yes, sometimes we get an asshole boss. But other times it is not. It's called LIFE!!! And when you repeatedly hear someone always complaining about asshole bosses, they are actually saying "I'm an arrogant, pr