How Can an Old-School Coder Regain His Chops? 565
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?"
C-sharp (Score:4, Informative)
Don't hate the players, hate the game.
F/OSS! (Score:5, Informative)
I wouldn't discount languages like C just yet. They're still hugely important in the kernel world, for example.
As far as newer languages go, there are a lot of F/OSS projects that could use another hand. Have a look at the Bugzilla for various projects and grab the latest source from svn/git/mercurial/whatever. Your skills as a programmer should transfer over to a new language relatively easily, and you'll have done a good deed.
Re:stupid idea but.. (Score:2, Informative)
No books necessary, just hit the net for more control over finding something that caters to your skill level. One dosen't have to go to Sourceforge to find snippets and application code.
Re:Don't (Score:5, Informative)
Parent is definitively right.
This guy knows *COBOL* and he thinks for career reasons about new languages? As fas as i understood that COBOL coders are right now (or in a few years) worth their weight in gold; I hold a phd in physics, programmed in nearly all "post-c" languages, (and some non post-c languages) and i was thinking about learning COBOL to earn money.
I mean it could be that he got some offers by now.... (maybe posting to ./ was just a way of applying for a job?).
Re:Work backward (Score:5, Informative)
Re:Hundreds of thousands? Are you SURE? (Score:1, Informative)
Hey, I'm 54, so I'm an older programmer.
One of the things that really started to happen in the 80's was the concept of event loops, and programming based on that. It's a big difference in how you do things, compared to what was done in the '70s and early '80s.
So, in addition to all those new-fangled pinko languages like Java, C++, C#, Perl, and all that other stuff, you've got to think event loop as well.
Personally, I'd find some simple projects to do that'll let you bit into both more modern styles, and languages. Get friendly with middle and high school math and science teachers, do some classroom demo programs for them. Lots of neat, small projects, a good way to warm up, and a chance to do something constructive at the same time.
Now, you kids get off the lawn.
Re:C-sharp (Score:2, Informative)
Re:C-sharp (Score:4, Informative)
Mono can run way more apps than Wine, specially if you include ASP.Net sites.
Of course, most programmers do stupid mistakes that make it impossible to run in another environment than Windows. The most common one is handling paths like "C:\..." in which case there's nothing Mono can do.
The sources for the main libraries are available from Microsoft and they even include installers so you can see them while debugging an application. I said kinda because the Microsoft license isn't exactly compatible with everything else out there and it isn't exactly built around a community you can simply commit a patch.
Switch to embedded (Score:2, Informative)
Instead, the method back in that I've found for those of us who started in the "old days" is to go for embedded systems development. The embedded world uses 10+ year old technologies, so your experience with assembly language programming and writing software for systems with limited amounts of RAM and storage space is a big plus for embedded systems development. There are plenty of companies still creating software for processors that run at between 4 and 20 MHz with anywhere from 256 bytes of RAM on up to a handful of kilobytes of RAM. I've found this sort of development work is much more interesting, anyway, and people with old school knowledge are considered more valuable, rather than a dinosaur, for such work.
Re:FORTRAN and COBOL makes you money (Score:4, Informative)
Depending on what platform your COBOL runs on, you can almost certainly find some way to wrap it in a Java stateless session bean. Turning that into web services is pretty easy these days -- most free IDEs have wizards that will do this for you for the free containers. If you're using IBM stack then WebSphere and Rational are a must.
Point being: Java and Java Enterprise Edition are also very useful here.
iTunes U (Score:3, Informative)
As a child of the personal computer revolution I too grew up with procedural programing sinclar basic, apple integer basic, Pascal and Fortran. although I've worked with Java, C+, Obj C Visualbasic and real basic I've allways felt a little uncomfortable because I never had any formal training in any of them. The Stanford CS classes on iTunes U have really helped me fill in the missing pieces. 80% was review for me but the last 20% helped make the first 80% make more sense. Don't be afraid to start right back at the beginning it will really help.
Re:C-sharp (Score:3, Informative)
Re:C-sharp (Score:1, Informative)
Hogwash. Even on the piano, C# major scale goes: C# D# E# F# G# A# B#
Re:C-sharp (Score:4, Informative)
As far as language features go, Mono fully supports C# 4, and that support was timely available (made to match public betas of .NET 4). It was the same for C# 3. There's no lag in that department.
Re:C-sharp (Score:3, Informative)
I use C#.net at work, and with MS Visual Studio's code-completion it practically writes itself. Not only that but you can use the built in UI to build windows forms.
Granted, you will be tied down to Windows platform, which for some is too great a problem to overcome. In that case, try out Python with the Pygame lib. Works rather well on all platforms (even some mobile ones)
Re:C-sharp (Score:3, Informative)
Agreed. We use Java for that reason. The fact still remains that, even with MS's monopoly power, Java is still the most used programming language. It's not perfect, but it is widely used and it isn't going away any time soon.
Other than that, C and C++ are still in heavy use. And C will never die since all the new languages are written in it.
Re:C-sharp (Score:2, Informative)
Or ruby, or python, or perl, or .....
Windows Message Loop (Score:3, Informative)
The first thing you should know about Windows programs (and most if not all GUI programming) is that the programs generally run in a loop (even if your programming language of choice hides this from you) and act upon receipt of "messages" from the OS. You have to program, among other things, what happens when you receive the message that says "the user pressed this button you've made" or "the timer you've set up has ticked" or "the user pressed the close window button", etc... Understanding this basic model will help you no matter which language you choose.