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?"

565 comments

  1. C-sharp by Ethanol-fueled · · Score: 4, Informative

    Submitter - not trolling, but you should include C# in your list if you want to be relevant today.

    Don't hate the players, hate the game.

    1. Re:C-sharp by WGFCrafty · · Score: 3, Funny

      Don't forget to B#.

    2. Re:C-sharp by dskzero · · Score: 3, Interesting

      I agree. C# is very likely to become a powerful language in today's market, if it isn't so already (It isn't on my market, people just seem to love Visual Basic and PHP a lil' too much). That said, the new COBOL versions, as my father says, who's a guy who's been working with computers for over 30 years, have programming environments which are very close to what Java offers. Perhaps you should look into that area.

      --
      Oblivion Awaits
    3. Re:C-sharp by binarylarry · · Score: 0, Troll

      C# is just a windows specific knockoff of Java.

      It's important if you're specifically looking for a Microsoft job, which is like 10% of the job market.

      With such poor leadership and Microsoft's general power waning, it probably won't ever surpass being a niche technology.

      --
      Mod me down, my New Earth Global Warmingist friends!
    4. Re:C-sharp by gatzby3jr · · Score: 0

      Maybe I haven't used it in a long enough time, but I thought the Mono project bridged that?

      At my school, they taught us C# by using the Mono project. Worked fine for me.

    5. Re:C-sharp by Anonymous Coward · · Score: 0

      I suppose you've never heard of Tomboy notes that comes with Gnome? Its C# and has nothing to do with windows

    6. Re:C-sharp by outZider · · Score: 1

      Submitter asked about Java, which takes care of half the equation. Some enterprise shops are C#, some shops are Java. Not everyone wants to deploy on Windows.

      --
      - oZ
      // i am here.
    7. Re:C-sharp by binarylarry · · Score: 0, Troll

      In a way... sure.

      It fits the exact same position as the wine project. It's a clean room reverse engineered version of a Microsoft technology stack.

      How well does Wine work these days? How well does Mono work?

      --
      Mod me down, my New Earth Global Warmingist friends!
    8. Re:C-sharp by PmanAce · · Score: 0

      Maybe you would like to list those retardations so we can discuss them? I am curious since I bring home the bread with C# (3.5, 4.0 coming soon in our shop). Thanks!

      --
      Tired of my customary (Score:1)
    9. Re:C-sharp by Ethanol-fueled · · Score: 1

      Well, if submitter learned Java then it would be trivial for them to learn C# as well.

      And I've seen a hell of a lot of shops(big technology companies) running a hell of a lot of VB code, and recently porting all that code to C#. The point is not the Linux zealot's negative perception of all things Microsoft, the point is what's out there (and, by extension, what's gonna make you money). My current shop is now porting all of their VB applications to C#, and my previous shop also ported their apps to C#.

      Of course, you do have your major idiots like a prior high-tech employer that used Excel as a database, and the technicians had to manually add rows as the test data would accumulate.

    10. Re:C-sharp by alexmipego · · Score: 5, Interesting

      Don't talk about you know nothing about. Wine is an effort to reverse engineer something that is ill documented, not a standard and huge moving target. It might never worked or work well in every scenario though.

      Mono on the other hand is based on the standards which makes it much easier to implement, make it compatible and test. Not every API is ported though, but I can tell you from experience you can create well performing apps that run cross platform with Mono and .Net without a single source code changes (or binary for that matter). Even ASP.Net runs out the box.

      If the submitter wishes to learn C# (and I think he should) I even go as far as suggesting he does it on Mono/Linux. Not because I think Linux is great but because it will help you understand the implications of cross platform development which in some little cases the .Net platform did a poor job although it's a primary objective of the whole framework.

      Oh, and btw the .Net source code for the core APIs is kinda open source so you can read it too.

    11. Re:C-sharp by Anonymous Coward · · Score: 0

      So ah, how many different versions of "I want to learn to program" do we need before Ask Slashdot is finally complete?

    12. Re:C-sharp by Anonymous Coward · · Score: 0

      They ported Tomboy out of C# and called it gnote

    13. Re:C-sharp by Simon+Brooke · · Score: 0, Offtopic

      Don't forget to B#.

      Do you get your jokes right.

      It's A flat minor.

      You get it when you drop a piano down a mine shaft....

      ...(although a mainframe would do two).

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    14. Re:C-sharp by Anonymous Coward · · Score: 0

      Do you get your jokes right.

      It's A flat minor.

      You get it when you drop a piano down a mine shaft....

      ...(although a mainframe would do two).

      Some mainframes would do three.

    15. Re:C-sharp by Javagator · · Score: 1, Informative

      I would recommend starting with C#, also. One big advantage is the excellent and free IDE available from Microsoft (C# Express). There are also some excellent books available, such as Programming Microsoft Windows with C#, by Petzold. Also, C# is similar in syntax and structure to Java and C++, so you can more easily transition to these languages, if needed.

    16. Re:C-sharp by Anonymous Coward · · Score: 3, Insightful

      A commercial software developer would have to be nuts to put their company entirely into Microsoft's basket by committing to C#. C, C++, or Java would be better choices for a Windows application because it remains portable, it's easier to go from version to version of Windows, and it's harder for Microsoft to just squish you if they want to.

      I speak from experience on the Microsoft squishing you part.

    17. Re:C-sharp by Herkum01 · · Score: 0, Offtopic

      I was going to say Fight Club, but I guess learning a new language would work too.

    18. Re:C-sharp by Anonymous Coward · · Score: 1, Funny

      You're both wrong. It's D flat (same as C sharp). No minors were harmed in the writing of this snide comment.

    19. Re:C-sharp by Anonymous Coward · · Score: 1, Interesting

      It is based on standards. The old standards.

      Every time Mono starts to get remotely up to date with the current API Microsoft release the new version.

    20. Re:C-sharp by Anonymous Coward · · Score: 0

      If Submitter learns C# he won't have to learn Java. Which is good because whatever Java does some other language does it better.

      If you think I troll, look inside yourself and know it is true.

      If you are going to write smallish desktop applications, especially ones that don't require raw speed and have a smallish user base, then C# is basically the only game in town. If speed is critical C++ or even C depending.

      In the Embedded World (Hello Mom!) C and to a lesser extent C++ are king. Note Kernel and Driver development is embedded.

      It seems to me that the people I know that use scripting languages to hack out a throw away personal solutions to a problem still use Perl. Others have moved on to Python. In particular the geek friends of mine that have large brains and wear button down shirts like Python.

      If you are going to write for iPhones/iPads Objective-C. Especially since Steve Jobs war on Flash and all things Adobe.

      Personally I've never had any interest in web development work. So my advice is useless except to say Flash is probably peeked, HTML5 is the new thing and the cool kids are using Ruby. But PHP appears to be the mac truck of web development.

    21. Re:C-sharp by binarylarry · · Score: 1

      What good are standards if the standards don't matter to any of the parties involved?

      --
      Mod me down, my New Earth Global Warmingist friends!
    22. Re:C-sharp by fuzzix · · Score: 2, Interesting

      I would recommend starting with C#, also. One big advantage is the excellent and free IDE available from Microsoft (C# Express). There are also some excellent books available, such as Programming Microsoft Windows with C#, by Petzold. Also, C# is similar in syntax and structure to Java and C++, so you can more easily transition to these languages, if needed.

      Haven't tried C# express but I did use SharpDevelop in a previous gig when doing a little windows dev - it struck me as very polished.

      I ended up doing what I needed with Win32 API calls and building with wxDev-C++ but I don't like talking about it... (Because of Winsock2 rather than wxDev-C++.

    23. Re:C-sharp by alexmipego · · 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.

    24. 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.

    25. Re:C-sharp by alexmipego · · Score: 1

      The CLR is a standard as well as the C# language. Which means that except for a very few set of very core libraries/classes (like String) the majority of APIs aren't standardized.

      Yes, Mono tries to keep up, but not everything is like you lay it down. For instance, the C# 3.0 and 4.0 standard was implemented before the respective releases from Microsoft. As soon as the standard is out Mono starts implementing it and tries to keep up with any changes the beta releases do. Usually it's up to date by the time the final release is out.

      As for newer APIs someone needs to implement the changes/new ones. Some APIs aren't ever implemented for the lack of interest. But the point is, if you want to be cross platform with C#, you can. ASP.Net, Linux, Windows, OS X and even stuff like iPhone and Android.

    26. Re:C-sharp by digitig · · Score: 4, Insightful

      A commercial software developer developing for MS Windows has already put their company into Microsoft's basket. How many companies are turning a profit on Windows development, compared to Linux development (note: development, not support)?

      --
      Quidnam Latine loqui modo coepi?
    27. Re:C-sharp by digitig · · Score: 1

      C# is certainly Windows specific: although it's available under Mono it's designed to be pretty much .NET's native high-level language. But knock-off of Java? Oh, please. It's taken the best from all over the place, including Java but including pretty much everything else. Compared to Java it's an absolute dream to program in; it's a pity it's not as suitable for cross-platform work.

      --
      Quidnam Latine loqui modo coepi?
    28. Re:C-sharp by digitig · · Score: 1

      I thought Mono only supported C# v2? That's not bad, but the really neat stuff in C# comes with version 3, and I didn't think mono supported that yet.

      --
      Quidnam Latine loqui modo coepi?
    29. Re:C-sharp by digitig · · Score: 1

      Well, if submitter learned Java then it would be trivial for them to learn C# as well.

      Only in so far as if the submitter learned any OO language it would be trivial for them to learn another. Have you looked at recent versions of C#?

      --
      Quidnam Latine loqui modo coepi?
    30. Re:C-sharp by Anonymous Coward · · Score: 1, Insightful

      Actually, learning the newer languages isn't the real challenge. Anyone who spent all their time coding in procedural languages and doing non-GUI stuff probably never got into Object-Oriented Programming.

      OOP only began to join the standard toolkit about the mid-80's. To become proficient in Java or C#, OOP skills are key. Especially Java, where the idea of a class-free component isn't even part of the language definition.

      Design Patterns also only became a formal discipline after that time.

      Every language has a mindset, and the mindset of the OOP languages is quite different from that of the procedural languages, just like Functional Programming has its own unique ways to warp your brain.

      As far as what languages are important to know, that tends to be shaped by the target platform desired. C is still popular for OS-level work, Java is pretty much essential for industrial-grade webapps and certain other niches such as Android. If you're a Microsoft fan, .Net languages are critical. For Linux, Python, Perl and shell scripting. Quick-and-dirty webapps? Use PHP, RoR, Django or something similar. In short, pick a target first. What type of app, what type of OS? The language options become more manageable once you have a specific goal. When in doubt, check the local want ads to see what's in demand.

    31. Re:C-sharp by jozlod · · Score: 0, Offtopic

      B# does exist, depending what key the music is in, it can be better to have a B# then a C natural when notating

      --
      this is not my signature
    32. Re:C-sharp by alexmipego · · Score: 1

      Of that example is very trivial. Not everyone is a programmer so I didn't want to go into details but you need to consider there is more to it than simply replacing C: with /.

    33. Re:C-sharp by Surt · · Score: 1

      I'm trying to imagine how ... we do this sort of thing routinely in our java libraries to make them linux/windows friendly, so I don't understand what the issue is.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    34. Re:C-sharp by alexmipego · · Score: 1

      Jesus. All I said is, people sometimes do stupid things like hardcoding paths into the application. .Net provides API to get directory separators and such, but if people don't use them it can't simply make it work by magic.

      The more common problem is hardcoded file names being case sensitive in most *unix file systems. Surely your precious Java can't fix that can it? If not why don't you apply for a job at Sun and show them how trivial it is to fix everything for every one.

    35. Re:C-sharp by oiron · · Score: 2, Interesting

      Take a look at GP's sig: 101 Reasons why Java is better than .NET

      Of course, a large number of those are quite dated, but that's where he's coming from...

      FTR, I don't agree with most of that: just an attempt to be fair

    36. Re:C-sharp by boredsenseless · · Score: 4, Funny

      "We need a name that's witty at first, but that seems less funny each time you hear it." - Seymour Skinner

    37. Re:C-sharp by grainofsand · · Score: 1, Interesting

      Unless you play trombone where there is a difference between C sharp and D flat.

      --
      A dream is good. A plan is better.
    38. Re:C-sharp by binarylarry · · Score: 0, Troll

      C# is exactly like Java to program in, unless you need to do anything complicate like generate bytecode at runtime.

      Then C# is a clusterfuck.

      C#: It makes the easy things easy and the hard things impossible (like performance, scaling and security... LOL)

      --
      Mod me down, my New Earth Global Warmingist friends!
    39. Re:C-sharp by SplashMyBandit · · Score: 1
      Actually, according to the Tiobe index there's about 400% more Java out there. Since C# and Java are more similar than different viz-a-viz other languages (no suprise, C# is the Microsoft evolution of Java via the intermediate development language "Cool").

      http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

      With the diversity of platforms starting to increase again the one-platform pony of C# would be a more restrictive choice than Java.

    40. Re:C-sharp by Anonymous Coward · · Score: 0

      I second this . C# is a modern multiparadigm language thats neither too high , nor too low level. It can be a great starter if you want to brush up on (or even learn a new) the object oriented, component oriented, functional, declarative, gui , automatic memory managed, etc paradigms and skills. You can proceed to others (PHP, Python, Java) from there, depending on what you want to do.

      XML is another key post-C language/technology that you need to familiarize (not necessarily master) yourself with. From XML's basic ideas you can proceed to HTML etc group of technologies.

    41. Re:C-sharp by Anonymous Coward · · Score: 0

      I fully agree ... C# on mono will be a great cross platform experience.

    42. Re:C-sharp by Khyber · · Score: 1, Interesting

      On the typical chromatic scale most instruments use, no such thing as B#. B# only really exists in instruments where there are no fixed note intervals, like a trombone or fretless slide guitar.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    43. Re:C-sharp by kale77in · · Score: 0, Offtopic

      It's good to B-natural AND B-sharp in interviews.

      Doesn't sound harmonious, but try it and C if it falls flat.

    44. Re:C-sharp by jozlod · · Score: 3, Informative

      if a scale has C# in it, but also has the note a semi-tone below C#, then you will use a B# In theory, you shouldn't have two forms of the same note in your modal scale, so that note, instead of being a C, becomes a B#

      --
      this is not my signature
    45. Re:C-sharp by thePowerOfGrayskull · · Score: 1
      Also not trolling - but not as necessary as you'd think. Not that C# isn't relevant -- it is -- but in reality, Java has a broader market and a larger installed base. This is doubly so in the enterprise space, where C# has made some inroads but just doesn't have the penetration. Additionally, most popular mobile platforms (Android, J2ME [supported by nearly every phone except iphone], and BlackBerry) use Java as their language of choice.

      A quick search of several popular job boards shows that Java postings outnumber C# from 2:1 to 7:1 depending on the board. C# is definitely useful (particularly for client development IMO), but it's not where the demand currently is. If you had to pick one to focus on, I'd go for the one with better job prospects.

      And of course... .language aside, most critical is learning the concepts of OO programming over any one particular framework.

    46. Re:C-sharp by Anonymous Coward · · Score: 1, Informative

      On the typical chromatic scale most instruments use, no such thing as B#. B# only really exists in instruments where there are no fixed note intervals, like a trombone or fretless slide guitar.

      Hogwash. Even on the piano, C# major scale goes: C# D# E# F# G# A# B#

    47. Re:C-sharp by Anonymous Coward · · Score: 0, Offtopic

      That's because B# and C are enharmonic, dufus...just as Db major and C# major are enharmonic.

      If you don't know your scales, don't bother commenting on musical topics. KTHXBYE.

    48. Re:C-sharp by Oligonicella · · Score: 1

      PERCobol See for yourself.

    49. Re:C-sharp by Nursie · · Score: 4, Insightful

      Why is the natural opposite to windows development necessarily linux development. In my job we target AIX, Solaris, HP-UX, Linux and Windows. Solaris is our biggest market at present, IIRC.

      Granted, this is not desktop software.

    50. Re:C-sharp by fbjon · · Score: 2, Funny

      If you need pianos with the keys clearly marked, you're probably not the best person to ask for advice on music theory.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    51. Re:C-sharp by HereIAmJH · · Score: 1

      From what I have seen from job listings lately; if you want to work for the government or build android apps, spend a lot of time getting good with Java. Most private businesses are looking for VB/C# and ASP to build web applications. The overall distribution of jobs is probably quite different, but those are the jobs they are advertising.

      For someone looking to tackle this on a personal basis without investing a lot of money in tools, Android development is nice because you just need to download the Java JDK, the Android SDK, and Eclipse. You don't even need to own a smart phone. But be prepared, the Android emulator is going to need 10 times more resources than you think...

      If you're looking to go Windows, don't waste your time working with Windows native (or .NET WinForms), go ASP. iOS is interesting, but Android is growing faster.

      But the submitter didn't say whether this is for future employment, or 'what can I study to get back to work now'. If it's the latter, realize that no matter what language you choose, you won't have any real world experience and your non-coding experience means little. Interviews may be hard to get. They'll interview people who have experience in the language of choice and hope for good project management skills. They don't seem to want to risk hiring someone with a proven project management track record and hope you'll pick up their development language. Particularly since all his coding experience is pre-OOP and all his database experience is pre-SQL. So he may have to shell out for some certifications before he gets a chance to put on his monkey suit. Coding for a living is a bitch if you stay on one job and don't jump to new technologies when they start to take off.

      Having said that, I'd download the Android tool chain. Set up a web server with ASP and PHP. Get Visual Studio Express and get familiar with VB and C# (both Winforms and ASP). Set up MySQL and SQL 2008 Express to get comfortable with SQL. Work with Java, VB, and C# and see which one suits your personality. And then hope the IT market has a drastic turn around.

      BTW, the only thing there that costs money is the Windows license and possibly IIS. (don't know if there is a free version of IIS, haven't considered anything but Apache for over a decade)

      --
      Another day, another update to a Google android app.
    52. Re:C-sharp by shutdown+-p+now · · Score: 1

      Writing an application in C++ but to Win32 API does not make it any more portable than a .NET application.

      As well, I don't know what you mean about "easier to go from version to version of Windows". .NET 1.x still runs on Windows 7, and so do apps written in it.

    53. Re:C-sharp by fbjon · · Score: 0, Offtopic

      Still confused? B# is used so that each note name appears only once in the scale.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    54. Re:C-sharp by shutdown+-p+now · · Score: 4, Insightful

      A commercial software developer developing for MS Windows has already put their company into Microsoft's basket.

      It depends on the development platform. If it's something that abstracts away the OS reasonably well (e.g. C++ with Qt or wxWidgets, or Java with Swing or SWT), then it is quite possible to develop for Windows, but maintain an easy migration math to other OS in case it is needed.

      Of course, there's also Wine...

    55. Re:C-sharp by shutdown+-p+now · · Score: 1

      Actually, Mono doesn't stick to ECMA/ISO specs. For example, no C# 3 or 4 features - such as LINQ or opt-in duck typing - are standardized (yet), but Mono has them all already.

      It mostly lags behind on libraries, and even then on the more advanced stuff such as WPF. The base class library (collections etc) is up-to-date. And for portable UI, you'd want to use Gtk#, anyway.

    56. Re:C-sharp by shutdown+-p+now · · Score: 3, 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.

    57. Re:C-sharp by wall0159 · · Score: 1

      What are the patent implications of using Wine vs using Mono? I don't understand it, but there's been discussion on /. before which, to my mind, never formed a clear resolution. It is hard to tell though, because when it comes to Microsoft, /. is fairly polarised...

    58. Re:C-sharp by prockcore · · Score: 1

      C# is exactly like Java to program in, unless you need to do anything complicate like generate bytecode at runtime.

      Except for where it's not. Like C# supporting closures, and not making the distinction between primitives and objects... etc. Actually, C# has very little in common with Java.

    59. Re:C-sharp by Canazza · · Score: 2, 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)

      --
      It pays to be obvious, especially if you have a reputation for being subtle.
    60. Re:C-sharp by kiddygrinder · · Score: 1

      ignoring possible the possible patent issues, as long as you stay away from windows forms there's nothing really tying you to windows if you use C#.

      --
      This is a joke. I am joking. Joke joke joke.
    61. Re:C-sharp by dave87656 · · Score: 2, 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.

    62. Re:C-sharp by dave87656 · · Score: 3, Insightful

      A commercial software developer developing for MS Windows has already put their company into Microsoft's basket. How many companies are turning a profit on Windows development, compared to Linux development (note: development, not support)?

      With java you have independence. You're not tied to Windows or Linux.

    63. Re:C-sharp by dave87656 · · Score: 1

      Isn't the GUI very windows specific? I.e. not portable like Swing or SWT?

    64. Re:C-sharp by Anonymous Coward · · Score: 0

      C# relevant lol, it maybe popular but not relevant, and anything .net is interpreted and no use for low level code, its the new visual basic 5 of this time period. It has its uses just as VB did/does. I will not lie now, it is nice, but I am not puting any extra effort into it. I see no future for it in programing. Scripting yes, web apps sure. Hard core programing, not by a long shot.

    65. Re:C-sharp by nmg196 · · Score: 0, Flamebait

      > A commercial software developer would have to be nuts to put their company entirely into Microsoft's basket

      Yes because it's just commercial insanity to back the fastest rising programming language produced by the market leader who has by far the biggest market share... Seems to have worked out OK for the vast majority of companies that have done it though. I'll stick with C# thank you (despite being trained in C++ and Java) - because that's where all the jobs are at the moment, which is kind of relevant when considering a career.

      > C++, or Java would be better choices for a Windows application because it remains portable, it's easier to go from version to version of Windows.

      Totally disagree about Java. Java is *notoriously* bad for developing windows apps (slow performance and high RAM usage) which is the whole reason it's never really taken off outside the academic and science communities. Personally, I've got 80 applications installed on this machine and not a single one of them is written in Java. In fact I can't even think of any popular apps that run under the JVM. C++ however is obviously very widely used and multi-platform.

      Personally I'd go with a .NET language (C#) as it's very easy to learn and therefore will be quick for the OP to get back in the game.

    66. Re:C-sharp by maxwell+demon · · Score: 1

      But be prepared, the Android emulator is going to need 10 times more resources than you think...

      Well, in that case it's probably best to think it use no resources at all. Because 10 times nothing is still nothing.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    67. Re:C-sharp by digitig · · Score: 1

      And I don't recall Java having lambdas, anonymous types or any of the LINQ stuff which gives C# such good support for functional programming, although maybe I missed those.

      --
      Quidnam Latine loqui modo coepi?
    68. Re:C-sharp by digitig · · Score: 1

      And is everything you do cross-platform?

      --
      Quidnam Latine loqui modo coepi?
    69. Re:C-sharp by somersault · · Score: 1

      Don't work? No qualifications? You're just looking like a troll now.

      Whenever I've tried WINE it hasn't always worked with stuff like the very latest games, but within a year or two stuff works fine. Thanks for reminding me of this fact - it's been long enough since I played stuff like the GTA 3 series, HL2 and all its mods etc that it is probably worth buying a medium spec laptop just to play them all again (I've just been console gaming the last 2-3 years).

      --
      which is totally what she said
    70. Re:C-sharp by Nursie · · Score: 2, Insightful

      Pretty much. Where we do have GUI components the codebase on windows and the UNIX platforms is usually pretty separate. Otherwise it's all C.

      So cross platform code, not cross platform binaries.

    71. Re:C-sharp by Anonymous Coward · · Score: 0

      GUIs aren't magic - they are just bits visible to the user: read and play and you realize they are trivial.

      Trivial to make but not to design. That's why so many OSS UI sucks balls while most of the Apple UIs feel polished and usable.

    72. Re:C-sharp by mhelander · · Score: 1

      The risk is certainly there ("Microsoft squishing you") but I think you can weigh that risk into the total tally and still end up with C# without being nuts. It has other advantages, such as still being actively developed (though some might find that another drawback) and that coding C# usually means some decent job opportunities. But I agree one shouldn't go for C# without being clear on the risk you depict.

    73. Re:C-sharp by Pinhedd · · Score: 1

      most of those 101 reasons are also just poor attempts at trolling

    74. Re:C-sharp by wertigon · · Score: 2, Insightful

      Yes because it's just commercial insanity to back the fastest rising programming language produced by the market leader who has by far the biggest market share... Seems to have worked out OK for the vast majority of companies that have done it though. I'll stick with C# thank you (despite being trained in C++ and Java) - because that's where all the jobs are at the moment, which is kind of relevant when considering a career.

      Except that Linux is being requested more and more, with no sign of stopping.

      Except that Microsoft's grip on the PC Desktop market is slowly but surely slipping away.

      Except that, outside the PC Desktop and XBox, Microsoft has at most 20-25% of the market.

      Except that C# is a ticking time bomb that will either go free or collapse with Microsoft's empire.

      Learn it if you wish. I know I'd rather put my money on something that is easy to port.

      --
      systemd is not an init system. It's a GNU replacement.
    75. Re:C-sharp by luke923 · · Score: 1, Offtopic

      Heh, if you hit the wrong note, we'll all "B flat!"

      --
      "Good, Fast, Cheap: Pick any two" -- RFC 1925
    76. Re:C-sharp by Lumpy · · Score: 0, Troll

      which makes me question the reality of the "article" Has this guy been unplugged cince 1990? He does not know how to use google to answer 90% of what he is asking?

      Honestly all it takes is a few moments searching google to find every resource needed to learn all these "new" languages and learn that knowing only one is how you fail. You need to know several and master a couple to be a high value programmer. Look at current job listings and see what is being asked for. Hell write a script to scrape the job sites and aggregate the averages of languages desired to get a day to day picture of what is hot right now.

      He whole question sounds like he in 1990 retired and built a time statis chamber and put himself in it for the past 20 years.... Fishy.

      --
      Do not look at laser with remaining good eye.
    77. Re:C-sharp by Lumpy · · Score: 2, Insightful

      I would not do any of those. Desktop programming sucks. Embedded systems programming allows you to work with cool stuff, interface level, and you dont have to throw your designs in the trash because some moron in marketing wants you to rip out all your privacy crap so they can make more money on ad's.

      Plus embedded programmers get a whole lot more money than a desktop app jockey. And the glorified IT guy that can code in VB for the company get's even less.

      Embedded programming is where the fun and excitement is at.

      --
      Do not look at laser with remaining good eye.
    78. Re:C-sharp by mdwh2 · · Score: 1

      Just to add to this with another example: for Symbian/Maemo development, it uses C++ with Qt, and the tools/IDE are also free. I've had no resource problems running the phone simulator - and it's simulated rather than emulated, in that I believe the code is compiled natively for your development platform, so it runs quickly.

      Good thing about Qt is it also supports Windows, Linux and OS X, so just about everything.

    79. Re:C-sharp by fuzzix · · Score: 3, Funny

      I would recommend starting with C#, also. One big advantage is the excellent and free IDE available from Microsoft (C# Express). There are also some excellent books available, such as Programming Microsoft Windows with C#, by Petzold. Also, C# is similar in syntax and structure to Java and C++, so you can more easily transition to these languages, if needed.

      Haven't tried C# express but I did use SharpDevelop in a previous gig when doing a little windows dev - it struck me as very polished.

      I ended up doing what I needed with Win32 API calls and building with wxDev-C++ but I don't like talking about it... (Because of Winsock2 rather than wxDev-C++.

      Troll, eh? Is that because winsock2 is actually good or because I didn't close the bracket?

    80. Re:C-sharp by allcar · · Score: 1

      Agreed. Server development is what matters in the enterprise and Windows is just a small piece of that pie. Various flavours of UNIX dominate.

    81. Re:C-sharp by dintech · · Score: 1

      It sounds like he wants to avoid GUI programming though. I suggest being a server-side Java dev for him.

    82. Re:C-sharp by 32771 · · Score: 2, Insightful

      Seeing how ARM processors support Jazelle, I'm convinced people have taken Java serious enough to even bother with improving its virtual machine performance. So Java doesn't even just give you freedom but also a well developed ecosystem.

      --
      Je me souviens.
    83. Re:C-sharp by elrous0 · · Score: 1

      He said Java. What's the difference?

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    84. Re:C-sharp by Anonymous Coward · · Score: 0

      "Fishy"

      And questioning the motives and credibility of someone posting an "ask slashdot".... Paranoid.

    85. Re:C-sharp by bill_mcgonigle · · Score: 1

      The more common problem is hardcoded file names being case sensitive in most *unix file systems. Surely your precious Java can't fix that can it? If not why don't you apply for a job at Sun and show them how trivial it is to fix everything for every one.

      IIRC, Apple contributed that code to Java because of the inverse problem on HFS+.

      Think about how not-really-hard that text filter is... look for the exact match - if it fails, downcase the requested file name and the directory listing and see if there's a match. The behavior can be set globally or optionally based on an environment variable.

      It's like what, 50 lines of code? OK, maybe 200 in java/c#.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    86. Re:C-sharp by theshowmecanuck · · Score: 1

      There is a difference between the 'scale'/'key signature of the song' you are playing' and the 'the scale on the keyboard/fretboard/etc'. If there weren't, piano players would only be able to play songs in the key of 'C'. However that is not the case. Learn music theory before commenting on music. Google: C sharp major. You will see that the note B is marked as to be played 'sharp'; and yes, in that case it means you play a 'C' when you see a 'B' on the music staff.

      --
      -- I ignore anonymous replies to my comments and postings.
    87. Re:C-sharp by MBGMorden · · Score: 1

      Granted, this is not desktop software.

      Which is expected, but there ARE a lot of companies out there making desktop software (or at least software with a desktop component). For those, MOST business users are still running Windows desktops.

      Now sure, you can grab wxWindows for cross platform compatibility. The reality though is that developing in wxWindows is much more time consuming than in Visual C#, so you'd have to make sure that the gains of cross-compatibility are worth that extra effort. You could program in Java, but having played around quite a bit with NetBeans and the like, I can tell you that the different widgets and overall slower feel to the software is a put-off. Again, if you have a large cross-platform target market then that's going to be a trade-off that's worth it, but if the vast majority of your potential customers are running Windows, then it's not.

      That said, this whole discussion is a bit moot. Pickup C++ OR Java and learn object-oriented programming, and from there either of those OR C# is just a matter of slight syntactic changes. Same with PHP, which is also pretty close.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    88. Re:C-sharp by networkBoy · · Score: 1

      I long for the days of that back.
      I work in high tech manuf...
      my group used to use excel and it sucked.
      This is after we used a *thin* webUI to enter test results. it wasn't shiney enough, so we migrated to HP's "Quality Center" but the server was at a different campus and it sucked. Then we moved to Clear Quest, also located on a different campus and DC.
      I'd rather be shot in the head.
      If you can get access to a TS on the same network as the CQ server, then life is good.
      If, however, you have to use the windows client...
      God help you, there are roughly 90 transactions for each test update, takes ~45 to 120 seconds per update depending on network congestion. Updating ~100 tests positively ruins your day.
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    89. Re:C-sharp by Beat+The+Odds · · Score: 2, Informative

      With java you have independence. You're not tied to Windows or Linux.

      Or ruby, or python, or perl, or .....

    90. Re:C-sharp by johnlcallaway · · Score: 2, Interesting

      I make a boat load of money just doing Java and SQL. And in the last few weeks, I've had 3 people ask me if they know of any Java programmers (two for full time positions, one was contract work). Two of those people only knew I was in the computer field. Yet no one has EVER asked me if I know of any C# programmers. So toss out the comment about having to know it to be relevant today.

      Figure out what you want to do, then learn the language appropriate for it. Want to code Windows, MSSQL, or whatever Windows calls their web server these days?? Might not hurt to learn C#. I do mostly back-end data loading/transformation/modeling work, and Java works just fine. It fits more in with my skill set, and there just aren't that many programmers that want to do such 'boring' work so I'm in high demand.

      In fact, just about any language, including COBOL, would work fine for 90% of what I do. Some of the financial modeling requires recursive code and more advanced mathematical functions, such as standard deviation, and I don't think COBOL ever incorporated that. But I haven't done COBOL since '85, so don't quote me on that.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    91. Re:C-sharp by Surt · · Score: 1

      As another poster has pointed out, this is already happening in java, so no need for me to go help with that effort. Besides, I'd have to take a pretty painful pay-cut to work at Oracle. I really am just surprised mono hasn't solved this problem, given the relatively trivial and well known solutions to these problems.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    92. Re:C-sharp by Surt · · Score: 1

      Ouch, troll now for being hard on mono developers. Go getem metamods.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    93. Re:C-sharp by theshowmecanuck · · Score: 3, Interesting

      Java is still the most used programming language.

      FTFY: Java is still the most actively used programming language.

      Cobol is still the most used programming language... and is still being used (and I have no idea how to program with it... I can barely stand looking at its record/data structures).

      --
      -- I ignore anonymous replies to my comments and postings.
    94. Re:C-sharp by alexmipego · · Score: 1

      Mono does have a solution. There is a flag you can turn on so make it happen. It's just not on by default because it affects performance for obvious reasons (attempting to find a match). But of course my point is a simple as, if you code it right you don't need to!

    95. Re:C-sharp by alexmipego · · Score: 1

      The CLR and ECMA are standards so this means anyone can implement C# and the CLR freely. The libraries are not standards which means MS could (theoretically) sue claiming intellectual property or something like that. However, MS and Novel have agreements on this (they even contribute code to each other on .Net iirc) and it's unlikely that Microsoft would profit anything from this thus unlikely they'll want to sue/block it anytime soon.

      I'm not too familiar with Wine but my guess is that since Wine is a purely reverse engineer effort they're right in the gray area without any sort of protection from law or otherwise. But since Microsoft has everything running for them (they release new APIs much faster than Wine can keep up) they simply don't bother with it.

    96. Re:C-sharp by alexmipego · · Score: 1

      The Windows Forms (the original Microsoft UI toolkit which Mono folks call M(anaged)WF) is very platform specific. That doesn't mean it won't work on other platforms. A good set of features is available on Mono and you can run a lot of MWF applications on Linux/OSX without code changes. That's not to say it will ever be perfect without some tuning or picking a better (cross platform) toolkit like GTK# which will work almost everywhere Mono supports (e.g. it even runs on Nokia devices!).

    97. Re:C-sharp by stimuli_ii · · Score: 0, Troll

      I was waiting for you to say: "2010 is the year of Linux". Just like 2009, 2008, 2007, 2006, 2005, etc...

    98. Re:C-sharp by Blakey+Rat · · Score: 2, Insightful

      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.

      I'm guessing all the GUIs you produce are godawful.

      I highly doubt that modern COBOL programming tools give you what you need to create a stellar GUI compared with C#-- hell, even Java doesn't, IMHO. I could be wrong.

    99. Re:C-sharp by Blakey+Rat · · Score: 1

      The productivity loss from using a non-memory managed language is far more important than some lock-in effect you're worried about. For the time you waste fixing stupid C++ bugs, you could just port the C# code when/if needed.

      Plus Java has some severe limitations GUI-wise. (I'm not sure if the asker cares about GUIs or not, but I'd go as far as saying it's impossible to create a truly great GUI in Java, whereas it's quite easy in C#.)

      Also, it's not like the Windows API miraculously becomes more portable if you use C++. You'd still end up porting all the GUI-related code, which would be a lot.

    100. Re:C-sharp by Blakey+Rat · · Score: 1

      Most of them are so vague you can't even tell what the author was thinking when he wrote it. And the links don't work, so you can't actually look them up.

      What the heck does "dotNet Purity is a myth" mean? Number 3 on the list, and he's already completely lost me. (Number 1: true. Number 2: Was true; is no longer)

      Saying ASP.Net is poorly-designed and crippled! Hah! Compared to *Java* frameworks, ASP.Net is poorly-designed?

      Ok, I gotta stop reading that list, it'll just make me want to slap the author with a raw fish. He's an idiot.

    101. Re:C-sharp by Doctor+Memory · · Score: 1

      Almost nothing has changed between 1980 and 2010

      Uh, maybe if you're a rice-picker or something. As far as writing code goes, there's a hell of a lot that's changed:
      Design: Object orientation. Use cases. UML instead of flow charts and DFDs.
      Coding practices: The whole paradigm of TDD. Security as a design center. Agile methods instead of waterfall.
      Technology: Relational databases. The whole concept of the web and n-tier systems. SOA and web services. Multi-core CPUs.

      Modern PCs and phones look a lot like mainframes from the 1980s

      Oh, yeah, I hate when my phone ABENDs with a S0C7 and I have to re-init JES before I can make a call...

      --
      Just junk food for thought...
    102. Re:C-sharp by Doctor+Memory · · Score: 1

      the excellent and free IDE available from Microsoft

      Boy, wish I'd gotten that. I'm stuck with Visual Studio 2010 "Premium", which sucks rocks compared to the Java IDEs I've used (Eclipse and NetBeans). Gotta love writing debug statements to a console that evaporates when the program dies. And I wouldn't be doing that, except VS randomly decides whether or not it'll honor breakpoints in the debugger.

      I'm sure the Petzold book's nice, though.

      --
      Just junk food for thought...
    103. Re:C-sharp by Doctor+Memory · · Score: 1

      I found that the hardest thing for me to learn over the past twenty-some years was web development. The whole concept of stateless request/response interactions was, for some reason, incredibly difficult to get my head around. Hopefully the books available today are better than what was out there at the turn of the century, but it's still a fairly significant paradigm shift.

      --
      Just junk food for thought...
    104. Re:C-sharp by Andy+Dodd · · Score: 2, Funny

      Could possibly be worse. Is COBOL like FORTRAN in that EVERYTHING IS CODED IN ALL CAPS AND READING THE CODE HURTS YOUR EYES?

      I did a tiny bit of FORTRAN work when I was at an internship while in college. The code was painful to read, almost entirely because it was ALL CAPS. :(

      --
      retrorocket.o not found, launch anyway?
    105. Re:C-sharp by Andy+Dodd · · Score: 1

      Or possibly embedded systems or microcontroller work. That's an arena where there's still a lot of C, and in some cases even ASM still.

      --
      retrorocket.o not found, launch anyway?
    106. Re:C-sharp by chadruva · · Score: 1

      "Web Application" Companies of course, good hosting is cheap, self-hosting is cheaper with OSS, tools are top-notch (Django, Ruby on Rails, etc), and the client does not care what the backend is running if it shows in their browser and works well.

      --
      C-x C-c
    107. Re:C-sharp by JWSmythe · · Score: 1

          That's what I was thinking.

          I'm just getting back into music after a long hiatus (almost 20 years). Still, I remember where the keys are, and the difference between the white and black keys. :) My problem has been transposing music between the piano, alto sax and tenor sax. It brings back a lot of memories, and a few headaches. :) At least after an hour or so of playing, I'm remembering most of what I thought I had forgotten. Now if only I could remember the hundreds of pages of music that I've forgotten...

      --
      Serious? Seriousness is well above my pay grade.
    108. Re:C-sharp by Slime-dogg · · Score: 1

      I read that a while ago, and it ends up being primarily 2 or 3 key points that revolve around software freedom. While philosophical discussions are great, they aren't always subscribed to by everyone.

      In short, I was expecting technical specifics of why Java was better, but there weren't any at all.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    109. Re:C-sharp by JWSmythe · · Score: 1

      He whole question sounds like he in 1990 retired and built a time statis chamber and put himself in it for the past 20 years....

          I did that once. It was to avoid the great depression. A few of the lab workers and myself were put into stasis, to be awoken after the economy recovered. We had predicted the world would either be a wonderful place or we'd be in the aftermath of complete socioeconomic collapse. Something happened to the lab workers who stayed behind, and it wasn't until the early 1970's that someone found our equipment and released us. We completely missed the 1960's. Dammit. Drugs, free love, and freaky freaky hippie chicks. At least the computers are better now, but all of our social prediction models have shown there won't be another time like that for centuries. We have been monitoring a few extraterrestrial transmissions that seem interesting. We just have to convince the DHS that it's ok for a private company to have large quantities of what they consider to be dangerous materials.

      --
      Serious? Seriousness is well above my pay grade.
    110. Re:C-sharp by Gorobei · · Score: 1

      Uh, maybe if you're a rice-picker or something. As far as writing code goes, there's a hell of a lot that's changed:

      Design: Object orientation. Use cases. UML instead of flow charts and DFDs.

      OO: Smalltalk 80? That was 1980. An already mature OO system.
      UML vs FCs and DFDs? This is not really programming. Just porn for managers now available in HD versus VHS.

      Coding practices: The whole paradigm of TDD. Security as a design center. Agile methods instead of waterfall.

      TDD: 1970s. See IBM.
      Security as design center: now sure what this means.
      Agile: 1970s. We forgot it in the late 1980s when C beat out LISP.

      Technology: Relational databases. The whole concept of the web and n-tier systems. SOA and web services. Multi-core CPUs.

      Relational DBs: 1970s. see Codd.
      The web & tiered systems: not much new here.
      Multi-Core systems? 1970s. Transputers - early 80s.

    111. Re:C-sharp by Anonymous Coward · · Score: 0

      Sorry, Apple's GUI's may look polished and shiny, but they also suck balls.

    112. Re:C-sharp by dave87656 · · Score: 1

      Cobol, IIRC, doesn't care about case. The reason a lot of people think it has to be written in CAPS is that the printer used to print it that way on the old impact printers and that the card punchers didn't have lower case. I could be wrong about that. It's been a while.

      What I did like about Cobol was that it could do everything you needed for business applications including reports and pre-compiled SQL statements which did direct assignments to code variables.

    113. Re:C-sharp by dave87656 · · Score: 1

      With java you have independence. You're not tied to Windows or Linux.

      Or ruby, or python, or perl, or .....

      True. And, if you use the web browser as you GUI, you are truly platform independent. Perl could be a little dicey for GUI applications.

    114. Re:C-sharp by HereIAmJH · · Score: 1

      I would not do any of those. Desktop programming sucks. Embedded systems programming allows you to work with cool stuff,

      That's a matter of personal preference. Even though I used to have business cards that listed my job as Code Monkey, I haven't been one for years. I prefer to work on in-house applications and probably less than a quarter of my time is coding. I do full cycle project management and spent more time working with people outside of IT than within. I like the requirements gathering and problem solving as much as the coding.

      If you're doing embedded work you are most likely writing code for products your company is selling. You'll be handed a set of specs and be expected to churn out code.

      Even though I have an interest in robotics and have done a couple small embedded projects (data collection), I have yet to see an interesting job posting for an embedded programmer. Coding widgets for a GPS or red light camera isn't what I want to do.

      --
      Another day, another update to a Google android app.
    115. Re:C-sharp by nmg196 · · Score: 1

      > Except that Microsoft's grip on the PC Desktop market is slowly but surely slipping away.

      They said that 10 years ago, but it hasn't made any noticable impact yet.

      > Except that Linux is being requested more and more, with no sign of stopping.

      Less and less you mean? Dell have actually just stopped shipping machines with Ubuntu as nobody is ordering them anymore. According to my own stats, the percentage of people visiting my websites who are running linux is falling - not rising. Perhaps you live in a country where it's more popular - but it seems to be dying here in the UK.

      > Except that, outside the PC Desktop and XBox, Microsoft has at most 20-25% of the market.

      Not sure where you get that from! They have a 65% share of the server market for a start. src. Your figures might be correct for *web servers* perhaps, but certainly not for the server market as a whole.

      > Except that C# is a ticking time bomb that will either go free

      Huh?! Unlike Java, C# is a totally open and free language - it's a public standard just like C and C++.

    116. Re:C-sharp by wertigon · · Score: 1

      >> Except that Microsoft's grip on the PC Desktop market is slowly but surely slipping away.

      > They said that 10 years ago, but it hasn't made any noticable impact yet.

      It has made an impact. Today Linux is a viable alternative, and CEOs everywhere are aware of the alternative even though they may not choose to employ it.

      >> Except that Linux is being requested more and more, with no sign of stopping.

      > Less and less you mean? Dell have actually just stopped shipping machines with Ubuntu as nobody is ordering them anymore. According to my own stats, the percentage of people visiting my websites who are running linux is falling - not rising. Perhaps you live in a country where it's more popular - but it seems to be dying here in the UK.

      My company is getting so swamped with orders that we can barely keep up with the demand. Granted, we're a Linux/Open Source shop, but compared from a year ago our customers have nearly doubled. So what if Dell doesn't sell Linux desktops? The future is in web apps, and there Linux rules supreme. So yes, the demand is growing from what I see.

      >> Except that, outside the PC Desktop and XBox, Microsoft has at most 20-25% of the market.

      > Not sure where you get that from! They have a 65% share of the server market for a start. src. Your figures might be correct for *web servers* perhaps, but certainly not for the server market as a whole.

      How did Reuters come up with that number? By counting number of sold units? Well, got news for you - There are hundreds of thousands of servers out there that hasn't cost their owners a penny. Are those counted as well? Distros like Debian does not cost a penny to install - are those also counted? Not saying you're wrong, but I'm very sceptical of the numbers you've provided.

      >> Except that C# is a ticking time bomb that will either go free

      > Huh?! Unlike Java, C# is a totally open and free language - it's a public standard just like C and C++.

      Criticism of the "free" part is plenty. Even ignoring the controversial patent disputes, there are the facts that C# is still controlled largely by Microsoft and that there are several non-standard core extensions that are only available in Microsofts own implementation of it. Calling C# free is like calling OOXML a worthy ISO standard; it might be true on paper, but in spirit, it isn't. Atleast, that's how I interpret it.

      And, yeah, Java is also free nowadays. GPL implementation and all that.

      --
      systemd is not an init system. It's a GNU replacement.
    117. Re:C-sharp by Doctor+Memory · · Score: 1

      The web & tiered systems: not much new here.

      Well, there we have it, then.

      --
      Just junk food for thought...
    118. Re:C-sharp by Khyber · · Score: 1

      believe it or not most large consumer-grade MIDI pianos come with things pre-labeled to you can handle using multiple banks, left side for drums and right side for rhythm music.

      But You've probably never owned $10,000+ MIDI baby grands so you cant be blamed for not knowing.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    119. Re:C-sharp by Anonymous Coward · · Score: 0

      One month?

      We are talking pre-GUI, pre-HTTP, pre-Web 2.0/SOA/XML/... architecture here.

      I'm sure the original poster can teach himself what he needs to know, but a month is pushing it. Syntax ain't architecture. Frankly, a little UML/Agile methods/XP wouldn't hurt either.

      I'd recommend anyone looking to come up to speed with more modern techniques learn how to create an Apache module. If you can program in 10 flavors of assembly, try extending Apache. I'd put Python or Ruby second on their list. I'd follow it up with Java.

      When you try to scale Java, you start to figure out were Java really differs from other languages. Transaction Processing and Session Management take on a new meaning.

      Learning to write Java apps well is like peeling an onion. You start with Java syntax. You then learn about everything from Servlets to Portlets to EJBs. Next, you start wading through the various frameworks. Finally, you figure out that half your project would be better in .

    120. Re:C-sharp by TiPros · · Score: 1

      A commercial software developer developing for MS Windows has already put their company into Microsoft's basket. How many companies are turning a profit on Windows development, compared to Linux development (note: development, not support)?

      With java you have independence. You're not tied to Windows or Linux.

      yeahh ... only tied to Oracle ... what a difference !!!

    121. Re:C-sharp by fbjon · · Score: 1

      Do you mean fully electronic pianos or acoustic pianos with MIDI fitted? Either way I've seen and played on many, and I have never seen labeling of any kind. Any examples?

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    122. Re:C-sharp by SolitaryMan · · Score: 1

      GUIs aren't magic - they are just bits visible to the user: read and play and you realize they are trivial.

      I see you've never done any serious GUI development, if you think it is trivial. I did my share of core, DB, system programming and I have to say that GUI is *by far* the hardest part for implementation. Let me explain why.

      1. No clearly defined protocols. Users do stuff. They do it in pretty much unpredictable and quite often unreasonable way, with different pace. You just can't rely on *anything* and have to check every step the user takes. What if he gets distracted in the middle of some several-step-dialog and session expires? What if he, on the other hand, clicks buttons too quickly and mutually exclusive actions are started? What if this is a malicious user? etc. etc. etc. GUI programmer is the one checking and validating the data before passing it to the core, which, in effect, works in a "safe zone".
      2. Number of controls is overwhelming. Right now in your browser window you can *literally* see *hundreds* of controls, each of them listening to ~20 events. There are again literally thousands of possible combinations of states for these controls and foreseeing every one of them is impossible.
      3. Automatic testing is next to impossible. See above. You just can't emulate a user.
      4. GUI is the only visible part. You'd have to look into *every bug* of the application, before delegating it to core/DB/whatever team, because to the user and to the tester every bug is the GUI bug.
      5. It is always your fault. When something goes wrong in the core and it functions improperly on some input or some feature does not work right, in 90% cases you will be the one "quickly" fixing it, by installing some "temporary" hooks, because the core team needs another month to fix it properly.

      So, you see, GUI development, while may be not so math/science intensive (which I suspect is your definition of "hard"), is pretty hard to do, even if you know how to handle it.

      --
      May Peace Prevail On Earth
    123. Re:C-sharp by Anonymous Coward · · Score: 0

      Yes, and the B# key is the white key called C. Hey we're back onto programming.

    124. Re:C-sharp by Anonymous Coward · · Score: 0

      > C# is just a windows specific knockoff of Java.

      Plus linq, operator overloading, delegates, lambdas, type inference, reified generics, etc. Oh wait it's from Microsoft, so yeah all they ever made is Bob, nevermind, you go back to your job. Yes I would like fries with that.

    125. Re:C-sharp by Anonymous Coward · · Score: 0

      > Yes, and the B# key is the white key called C. Hey we're back onto programming.

      It's called C in some scales, B# in others.

      What about the C# key? Is it "called D flat" in your Little Coloring Book of Piano?

    126. Re:C-sharp by desmondmonster · · Score: 1

      Can you suggest some tips on getting involved with ETL/data modeling work? I'm coming from an accounting background but have experience with Perl and VBA. Haven't messed around with Java too much, and my personal projects are too small to be useful for learning about back-end data flow.

    127. Re:C-sharp by dave87656 · · Score: 1

      I use icetea which is an apache project.

    128. Re:C-sharp by TheTrueScotsman · · Score: 1

      You can trivially simulate Lambdas in Java by wrapping them in a 'Lambda' class with a single method (Object arg, Object return, generics to taste) with the overhead of a small additional amount of typing.

      I use such a construct almost every day for such things as threaded functional transforms, closures, etc.

    129. Re:C-sharp by digitig · · Score: 1

      You can simulate lambdas in pretty much any OO language by wrapping them in a class. The advantage of language support for them is that the extra typing of wrapping them in a class is not small if you're doing it a lot, and wrapping the lambda in a class obscures the intention making maintenance harder.

      --
      Quidnam Latine loqui modo coepi?
  2. 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.
    1. Re:Work backward by Dan+East · · Score: 1, Interesting

      You don't have to use Objective-C to write iPhone applications, nor should you if portability is a concern.

      --
      Better known as 318230.
    2. Re:Work backward by Netshroud · · Score: 5, Informative

      If you want to learn Objective-C, the iPhone Application Development course (Stanford) on iTunes U is extremely useful.

    3. Re:Work backward by Jezza · · Score: 1

      Objective-C is an excellent language for a beginner who is grounded in C. The syntax lets you spot the message passing from a mile off, for the beginner this is useful. Objective-C can also be mixed with ANSI C (of which it is a superset) and C++ (it then becomes Objective-C++) so you hurt yourself with it, if you really want to.

      Probably the biggest weakness is needing a Mac for development (I say this because it means you need a new system - not that there is anything wrong with the Mac per se). Of course, there is GNUstep... but that won't help you do iPhone development.

    4. Re:Work backward by Anonymous Coward · · Score: 1, Interesting

      You do need to use it if you're planning to use UIKit though -- or good luck with the objc_* funtions. I wish there was a decent C API because the entire thing is a clusterfuck. I've christened the satanic mix of C, C++ and ObjC (required to develop even trivial cocoa apps for iOS), "WTF++".

      It's an "exciting" new, composite language, mixing 3 runtime libraries and 4 types of memory management (excluding ObjC GC). On the positive side, at least Apple finally did something about the POS that was XCode.

    5. Re:Work backward by Bing+Tsher+E · · Score: 1

      My Slackware 95 distribution (a bookcover CD I bought way back then) included an Objective-C development environment. I don't know if Slack includes it anymore.

    6. Re:Work backward by mcornelius · · Score: 1

      There is no GC on iOS.

    7. Re:Work backward by Moridineas · · Score: 1

      Do you have any examples of open source iOS programs that DON'T use a majority of Objective C code? I really haven't looked at many, but Wolfenstein comes to mind. Anyway, would love to see how it's done for a non-trivial app that isn't an opengl game.

      I'm still learning Objective C / Cocoa/UIKit and while I find that Objective C I don't mind too much, I so far at least am not really appreciating the verbosity of Cocoa. I'm still using the 3.2 SDK for iPhone, but the 4.0 sdk looks like the API has some nice use of blocks which I like.

      My biggest problem with iOS programming actually is that when googling solutions for things that aren't clear to me, there are TONS of posts/webpages/tutorials by people who seem to be absolute programming noobs giving terrible advice. Oftentimes I find a class / method / design pattern that's simple and EXACTLY what I want, but I had to wade through dozens of pages of junk to find it. I'm also not yet adept at navigating expertly through the Apple docs and the "proper" way of doing things isn't always apparent.

    8. Re:Work backward by Anonymous Coward · · Score: 1, Interesting

      4 types of memory management (excluding ObjC GC)

      There is no GC on iOS.

      Which is why I excluded it and totalled 4 instead of the 5 availiable to fully fledged WTF++ Cocoa apps on OSX.

      1. C free
      2. C++ delete
      3. ObjC release
      4. ObjC autorelease
      5. ObjC Garbage Collection (not available in iOS)
    9. Re:Work backward by dgatwood · · Score: 1

      Anyway, would love to see how it's done for a non-trivial app that isn't an opengl game.

      Well, your view is going to be in Objective-C. I mean you could technically use objc_msg_send in C code, but unless you enjoy self-flagellation, you probably won't enjoy that much, either.

      Beyond the view code, though, there's nothing stopping you from writing the rest of your code in C or C++. For example, you might take an app like OpenOffice and write a new GUI that uses most of the exiting core code under the hood, calling back into Objective-C code for updating the screen and so on. You just make normal C function calls out of the Objective-C code, passing Objective-C objects as void *. When those functions need to call back the other direction, you create a C source file with normal C functions (e.g. update_view(void *cocoaView)), but you compile it with the Objective-C compiler. You cast the void * back to an appropriate class object, and send the appropriate message as you would from any other Objective-C code.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    10. Re:Work backward by dgatwood · · Score: 1

      Another handy thing is that most of the basic NS types (e.g. NSString) have equivalents down in Core Foundation (e.g. CFStringRef), and the objects are transparently bridged; if you create an NSString, you can pass it down to Core Foundation, use it as a CFStringRef, pass it back, and use it as an NSString again, and vice versa.

      As a result, it is fairly straightforward to mix the toll-free-bridged data types between pure C code and Objective-C code.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    11. Re:Work backward by mini+me · · Score: 1

      What language would you suggest? Keep in mind that Objective-C is C. If you can compile C on your target device, you can compile Objective-C to the same device. The only other option on the iPhone for native development is C++.

      Objective-C has a long history of portability. OpenStep, an open standard for GUI applications, implementations were implemented atop Objective-C. You'll find numerous open source implementations of the Foundation and AppKit libraries that you may use on non-Apple devices. Granted, the open source UIKit implementations are immature at best. Even Java was heavily inspired by Objective-C.

      Yes, using Objective-C and UIKit might make porting your code to another platform difficult. Of course there is nothing stopping you from implementing UIKit yourself. But otherwise, Objective-C is a fantastic choice if portability is a concern.

    12. Re:Work backward by jamiegau · · Score: 1

      The more I think about learning Objective-C the more I think its a bad idea.

      I don;t know why we are all moving away from heterogeneous development. Its idiotic. It may be a lock in for Apple, but its a fu*k yourself over in the long run. If I am going to program anything in the future, it better run on more then one platform. HTML5 is fine but its a crappy set of standards pulled together making a dogs breakfast of a development environment. (Compared to near anything else). But if thats what we have to do for now. So be it.

      We will simply have to pay for the big boys trying to lock in thire technology (apple) or push out others (Google) by being forced to used development technologies that are not ideal.

    13. Re:Work backward by HiThere · · Score: 2, Interesting

      What if you are interested in Objective-C, but not in Apple EULAs? Is there a good choice (is that a good choice) in that case?

      I'm rather interested in using Objective-C on Linux, but not enough to fight with the old tutorials I've been able to find. (I suppose I could learn Objective-C++, but I've heard less than friendly things about it.)

      Last time I looked at it I looked long enough to determine that the Foundation libraries supported Unicode (mandatory!), and I think I remember utf8. But that was string libraries, and I couldn't see how that translated into I/O. I'd need seek and tell, etc. Which probably means read binary files in C, convert into buffers, tell the string libraries to cast them into a Unicode string, etc. But I couldn't find any could tutorials about this.

      Documentation is a real hassle. Last time I looked at Vala it looked quite interesting, until I started trying to figure out how to do the things I knew I needed to do...and the answer appeared to be "Use standard C libraries, but we don't bother to document that, because you're supposed to already know that." This just doesn't work. I can handle Java (though I hate their I/O routines and a few other features), Python is easy, Ruby is easy, D is easy (though a pain when you're needing to link with C libraries that require complex structures to be passed and match). But C and C++ seem to be undocumented. You're supposed to "just know" it. But I don't. I understand that gobj is important, but I can't find where it's documented, so if your language just says "And for this you call gobj", then you lose me. I don't have a history of C/C++ in Linux, and my history in MSWind dates back to the 1980's. (Actually I've got more history on the Mac II than in MSWind.)

      Fortunately, for me, Python comes "batteries included", so I can get around that. (And it's got GOOD documentation. So does D. So does Java. So does Ruby. But both Ruby and D require C libraries, and that gets me back into trouble.)

      Objective-C is in even worse position. It's documentation for the native language (the part I've found) isn't all that great. AND it requires you to use C libraries with no obvious documentation. (Granted this depends on what you are doing, but I know what I'm doing.)

      So, it appears (to me) that Objective-C is only a decent choice if you are intending to develop on Apple hardware. If I'm wrong, I'd certainly like to know.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    14. Re:Work backward by Anonymous Coward · · Score: 0

      iPhone

      portability

      lolwut

    15. Re:Work backward by shutdown+-p+now · · Score: 1

      If you want to develop for the iPhone/iOS, then learn Objective C.

      If you want to cash in on the fad of the day, learn the fad language of the day. Of course, you'll have to relearn every few years.

      Or learn C and C++, and you will stay relevant for decades to come. Neither one is going away anytime soon.

    16. Re:Work backward by geminidomino · · Score: 1

      You can put the iphone in your pocket and take it with you.

      Thus: "portable." Duh. ;)

    17. Re:Work backward by Anonymous Coward · · Score: 1, Interesting

      I'm rather interested in using Objective-C on Linux

      I develop the majority of my iPhone apps on linux, mostly I'm writing C. The ObjC stuff is kept to a minimum until I switch to OSX and import into XCode. The best ObjC tutorial I found was reading the GNUStep header files. The only other documentation I bothered with was the trivial stuff for GNUStep make.

      Last time I looked at Vala it looked quite interesting, until I started trying to figure out how to do the things I knew I needed to do...and the answer appeared to be "Use standard C libraries, but we don't bother to document that, because you're supposed to already know that."

      If you want to know how something works in Vala, it's mostly documented. 3rd party libraries are documented _somewhere_, the bindings are self-documenting. Grep the .vapi and you have all the information you need to use the binding. Remember that Vala is not yet stable, some of the bindings are incomplete and the Posix profile is (currently) useless by itself.

      If you're beginning to see the "self-documenting" pattern here, it's not limited to open source projects. I personally find Apples API documents useless, again I favor using their header files for reference.

      But C and C++ seem to be undocumented. You're supposed to "just know" it.

      C is a very simple language and a copy of "K&R" goes a long way. Very few people know C++.

      I understand that gobj is important, but I can't find where it's documented,

      I'm currently getting HTTP timeouts from library.gnome.org. There's a link to the documentation at the bottom of the GObject wikipedia article. Vala transparently wraps GObject via the C API so you can also pass --save-temps and study the generated C code.

    18. Re:Work backward by Kildjean · · Score: 1

      Also if you want help with people helping you test your iPhone Apps, have them download the app AdHoc, and have them put an email of your choice, then you can include their iPhone UDID's on your build so they can test them for you.

      --
      Nom de dieu de putain de bordel de merde de saloperie de connard d encule de ta mere.
    19. Re:Work backward by Anonymous Coward · · Score: 0

      There's plenty of documentation for C/C++. You obviously haven't learned how to look for it.

    20. Re:Work backward by CptNerd · · Score: 1

      Once upon a time gcc had ObjC support, but I don't know if it still does. If you want to learn the basics of the ObjC paradigm, you can still find copies of Brad Cox's "Objective-C" books around. I bought mine long long ago, when he first wrote the language and sold it through his company StepStone. A co-worker of mine and I started working on a VT-100 based game like "Empire" based on ObjC, and it was a breeze to program, since I had already been working with Smalltalk for a year. Coming from a Smalltalk background, I've always preferred ObjC's syntax over C++ and other derivatives like Java and C#, because it makes the object part of a hybrid language more evident and easier to understand separately from the procedural part.

      If you want to understand the libraries involved, that's a steep learning curve regardless of the language. Looking at the immense menagerie of libraries out there just for Java development, I've given up hope of ever being able to keep up, or learn enough to be more than a maintenance programmer.

      --
      By the taping of my glasses, something geeky this way passes
    21. Re:Work backward by Anonymous Coward · · Score: 0

      Try looking up gnustep and libobjc2 I think it is.

      Not positive they have any better documentation, but given that it's a reimplementation of both NeXTstep and OSX objc libraries there is a decent chance they have documentation for what you're looking for.

    22. Re:Work backward by jbolden · · Score: 1

      What you want isn't really practical. Obj-C is essentially an Apple only language now. But it is possible and in fact supported:

      http://www.gnustep.org/

  3. OOD, first by Anonymous Coward · · Score: 0

    The biggest thing is to learn modern object-oriented design. Java's pretty good for that. Pick up any "java programming for beginners" book, and for the moment forget your old knowledge. Learn about objects, then the APIs, then finally start throwing your old algorithms knowledge at problems. As soon as you start getting a basic competency with Java, switch over to objective C.

    Avoid Perl. Its not a clean enough version of objects. I highly recommend it later on, but get some more updated theory first.

    Avoid C++. This isn't 1980 anymore. You shouldn't need to be mucking around with that much detail.

    Avoid PHP. It's not worth learning anymore.

    1. Re:OOD, first by justin12345 · · Score: 1

      Avoid PHP. It's not worth learning anymore.

      Oh I wish, I wish, I wish... unfortunately it's not so. If you wind up on pretty much any web project you're going to have to be fluent in PHP. Nasty, spaghetti-coded PHP generally. Even if your job is just to replace it with something better that's easy to build on, you still need to read the PHP and translate it into something sensible like Python.

      Also. Java? Really?

      --
      Cool art gallery, if you're into that sort of thing.
    2. Re:OOD, first by DurendalMac · · Score: 1

      Java is all over. You'd be surprised at how many backends are written in Java. It's almost guaranteed to suck when you slap a GUI on it, but put it in the background and it works pretty well. That and Java is a pretty good place to start learning Obj-C-style languages.

    3. Re:OOD, first by kthreadd · · Score: 1

      Avoid Perl. Its not a clean enough version of objects. I highly recommend it later on, but get some more updated theory first.

      I would actually recommend it, but only if we're talking Perl 6. The changes are so big compared to Perl 5 that I would almost call it more closely related to Ruby than to Perl 5. Interesting language, too bad I don't have as much time as I would like to play with it.

    4. Re:OOD, first by Khuffie · · Score: 1

      It's kind of hard to say avoid PHP and that it's not worth learning anymore when one of the world's largest sites runs on the damn thing.

  4. 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.

    1. Re:Mailing lists by Tubal-Cain · · Score: 1

      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.

      Have any links? It's not hard to find a list if you know a languages' "official" site (Python), but something older (like C) seems to be harder to locate.

    2. Re:Mailing lists by fernaus · · Score: 1
      I thought I'd post a couple of links to some particularly well written code examples, just to save other people some time searching for them:

      C

      Perl

      Python

      Ruby

    3. Re:Mailing lists by MainframeGuruDennis · · Score: 1

      I think this is a good idea - having taught programming at the university level for many years, I know that intorductory programming classes are not about learning the language, they are about learning how to program. When you already know how to construct a program, picking up a new langauge is a matter of learning the idosyncrasies of a new syntax, not trying to figure out how to code a control break to start each new account on a separate page. The first thing you should do is to read code - look over real world examples of how the langauge is used. Typically, textbooks are of little use in this situation - the author won't include any example programs that take up more than a page of text. Start with some open source projects that were written in one of the languages you're interested in. Step one - go use that application first - see how it looks and how a user interacts with it. Then go get the source and start reading - see how the coders set up the data stuctures and how the code was structured. As you read, refer back to the textbook or language reference manual to see what some specific syntax was used. Once you get familiar with reading code, then write code. Pick a problem you already know how to solve - even if you have to go back to the programming exercises from the COBOL 101 course you took in college. You need to get past the hurdle of becoming familiar with the new syntax, and the only way to do that is to write, compile, correct syntax errors and repeat. Expect to refer to the langauge reference manual frequently, and learn to curse the compiler writers who delight in obscure compiler syntax error messages. The largest hurdle to learning OOP is learning the class structure and becoming familiar with the pre-defined methods that go with it. The old procedural langages had but a handful of basic data types, all of which were exposed to the procedural code. The object oriented model has the procedural functions inextricably linked to the data structures they serve, so the challenge in OOP is to first figure out what data structures you will use, and then put together the program using the methods allowed for those structures.

  5. stupid idea but.. by muphin · · Score: 1

    go to a book store, buy a book and read it?

    --
    It's not a typo if you understood the meaning!
    1. Re:stupid idea but.. by WGFCrafty · · Score: 1

      go to a book store, buy a book and read it?

      You seem to know about a specific book designed to show pre-GUI coders the best way to advance from 80's coding languages?

      AND you didn't even share your source with the guy.

    2. Re:stupid idea but.. by Ethanol-fueled · · Score: 2, Informative

      I have never read an introductory O'Reilly or "...for Dummies" book that was better than the multitude of online tutorials out there. Introductory books are, in my opinion, wastes of money.

      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.

    3. Re:stupid idea but.. by muphin · · Score: 1

      Obviously, how did he learn (how do we all learn) a programming language?
      this information, that is highly sought after is contained within some paper pages called a BOOK

      He wants to learn how to program, doesn't take someone with a high IQ to realise there are books out there that will teach you this stuff.
      Amazon, Barnes & Noble ... your local book store.
      Considering he has had experience with compilers and coding structure it shouldn't take him long to pick up any other language, read a book, practise. done!

      I hate these "How do I ..." questions on slashdot, if you don't know research or post in a forum specifically for that topic, not on a geek news site.

      "How do I learn how to program" is this parents topic.
      while we are directing these people to a book store, can you help me out...

      How Do I Wipe My Bum?

      --
      It's not a typo if you understood the meaning!
    4. Re:stupid idea but.. by afabbro · · Score: 1

      go to a book store, buy a book and read it?

      Exactly! This is a ridiculous Ask Slashdot. If you're smart enough to learn ALGOL and FORTRAN, you're smart enough to learn Java or C# (or dumb enough to learn C++...no no, I kid...I kid because I love).

      There's nothing magic about GUI programming. Once you code up a few toy GUI projects, you have the basic idea down and can start to work on more difficult things.

      To the original question...go read some of the O'Reilly Head First books. They're not perfect but for diving in and learning a fresh new subject, they work great.

      --
      Advice: on VPS providers
    5. Re:stupid idea but.. by sumdumass · · Score: 2, Insightful

      While you are trying to figure out how to wipe your but, I will give you a heads up on why your post is sort of irrelevant.

      You see, he isn't looking for an intro to programing, he already knows how to program. He is looking for ways to use his knowledge of the past to make learning a new language easier today. Now 10 years ago, there might have been all sorts of resources on how to transfer your knowledge of assembly or cobal into something more relevant today. In fact, 10 years ago with the Y2K BS, there was probably a sleuth of resources on transferring your present day knowledge to yesterday's coding languages.

      However, this point of reference has diminished to the point that he needs to ask present day coders, perhaps people who went through the transition years ago, what they found, what worked, and what was a waste of time. This will let him compile a book list and seek out the probably out of print books and other resources (even if using the way back machine which doesn't have a search like Google) that you recommend without mentioning the name or title of.

      This isn't a typicle example of how do I do something everyone else is doing, it's an example of how do I do something that hasn't needed to be done in 15-20 years. And yes, if you look at something that hasn't been done for 20 years, you will find that the resources available simple arne't- at least not like they were 20 years ago or are for today's challenges.

    6. Re:stupid idea but.. by Hognoxious · · Score: 2, Funny

      there was probably a sleuth of resources

      No Shit, Sherlock.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    7. Re:stupid idea but.. by Frightened_Turtle · · Score: 1

      I have never read an introductory O'Reilly or "...for Dummies" book that was better than the multitude of online tutorials out there. Introductory books are, in my opinion, wastes of money.

      I'm inclined to agree on this point. I find I get much more mileage out of online tutorials and references than I do out of a book for beginners.

      But I do like "cookbook" style books where they address numerous common problems and present solutions for solving these problems. I find it easy to extrapolate what I may need to do when finding an example that similarly addresses my project goal. When trying to move from one language to another, I find these cookbooks very helpful in showing me the proper setup for the new language. One example would be making a MySQL call from PHP versus doing the same from C. While it is brain-dead simple in PHP, C requires a lot more setup before you can successfully make the call. So look for a book that covers various examples for algorithms in your targeted language that you already know how to do in your familiar programming languages. By comparing the differences in how you would go about addressing a known task in the new language, you should be able to easily pick up on what is needed to write a successful program in that new language.

      --


      Whew! This water sure is cold!
  6. Easy by camcorder · · Score: 5, Interesting

    Pet project.

    1. Re:Easy by rwven · · Score: 1

      Yeah, this is the only way to go, imho. Find a hole and fill it on your own time. Best way to learn.

      By the way, if you're looking for something more on the lucrative side of things, I kinda look at it like this:

      PHP (my forte) has such a low barrier of entry that the market is flooded with people who THINK they know PHP. There are TONS of worthless PHP programmers out there, and it hurts not only the reputation of the language but also the salary ranges because no one trusts that many of them are all that good (probably rightfully so). You may find a team out there with a real job to do that truly values what a good PHP programmer can do (and will pay in the high 80s, 90s, or sometimes even over 100k/yr), but most shops just want to shell out 30-40k/yr to some schmuck trolling away on Joomla modules (no offense, Joomla fans). .NET in general (esp C#) tends to pay better than what you'd find with PHP.

      Java is gaining in the pay scale from what I hear. I've heard about a lot of decent Java programmers landing 150k+ jobs or on the rare occasion 250k+ because it's not as popular with the young programmers these days, but it's still in a lot of demand due to the maintenance and continued development of Java apps that are out there.

      Objective-C may end up being pretty lucrative as well given the ridiculously huge demand for it right now. I can't speak much on it because I don't actually personally know any programmers who write i-Apps.

    2. Re:Easy by Anonymous Coward · · Score: 0

      How is writing software for your domesticated animals going to help?

    3. Re:Easy by Anonymous Coward · · Score: 0

      Heh, for a second I was thinking "Hmm, wasn't PET a 70's computer..." But having a nice project, and FINISHING the project, that teaches!

    4. Re:Easy by stiller · · Score: 1

      Exactly. Look at a problem you would like to be solved, or solved in a better way than it is today. Find the language that best fits this problem area, use google and wikipedia to find the various strengths and weaknesses concerning your specific application. There is no one ultimate language. Learn the syntax using simple exercises. When you feel at home, start looking at what others have done to solve parts of your particular problem. Try to tie together said parts, be they frameworks, libraries or just code snippets.

      As soon as you have an interesting demo to show, start attracting others to your project. You can learn an incredible amount from just talking to people who are more experienced than you are in a specific field. If you are financially solvent, try treating the project if it were your job, even if it isn't making you any money. That means a few hours each day on project management, code documentation and answering stuff on your forum, blog, whatever.

      Alternatively, you can try joining an open source project that already targets your pet problem. Start submitting bug reports, then patches and ultimately, new features.

    5. Re:Easy by Intron · · Score: 1

      Pet project.

      Working on your own gets you started, but doesn't give you the feedback to know if the way you are doing it is right or wrong. You need somebody who has been working with the language looking at what you do or training you. Another way is to try cloning something that you can get the source for and then look to see how they did it differently from you.

      --
      Intron: the portion of DNA which expresses nothing useful.
  7. Never touched C# by earthforce_1 · · Score: 0, Troll

    I use C++ for all my development, with a small smattering of perl. Learning Python is on my TODO list. Never touched C# and have no interest in learning a MS platform only language.

    \

    Until 2 years ago, I was working at a place where embedded and DSP developers were using pure C - C++ was forbidden.

    --
    My rights don't need management.
    1. Re:Never touched C# by commodore64_love · · Score: 1

      c# is only for Micrsoft platforms? Well that's dumb. Do you think other platforms like Amiga, Mac, or Linux will adopt it?

      --
      "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
    2. Re:Never touched C# by binarylarry · · Score: 0, Troll

      The GNOME project has adopted Mono (and thus C#) although it has quite a few Mono lead devs on its board. I doubt anyone else in FOSS land or other technologies companies relish the idea of getting into bed with Microsoft. They have a history of fucking their partners.

      As I mentioned earlier, C# is just a knock off of Java.

      It's extremely similar if you're familiar with both, 98% of a port can be done with search and replace... s/using/import/g, etc.

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:Never touched C# by V!NCENT · · Score: 0, Troll

      Nope, nope and partialy. So no.

      Better go with C++, which is alround. C with classes is what you need for the Mac. Linux still uses C for the largest part.

      Currently the market wants:
      -Linux sys admins
      -.Net developpers (Microsoft C# runtime crap that will insta-kill any desire you have to go back into programming after exactly 5 seconds)

      --
      Here be signatures
    4. Re:Never touched C# by digitig · · Score: 3, Insightful

      As I mentioned earlier, C# is just a knock off of Java.

      It's extremely similar if you're familiar with both, 98% of a port can be done with search and replace... s/using/import/g, etc.

      Somebody else who needs to update their knowledge, evidently.

      --
      Quidnam Latine loqui modo coepi?
    5. Re:Never touched C# by Randle_Revar · · Score: 1

      The GNOME project has adopted Mono

      They certainly have not. Mono is not part of the Gnome platform and it is unlikely in the extreme that it ever will be.

      (and thus C#) although it has quite a few Mono lead devs on its board

      I don't know that much about who's who in the Gnome and Mono communities, but looking at the list of board members, (http://live.gnome.org/FoundationBoard/CurrentBoardGroup) I only see one that seems to have much in the way of ties to Mono (Jorge works on Tomboy, which is written in Mono). Certainly Miguel hasn't been part of Gnome leadership in quite some time.

    6. Re:Never touched C# by Anonymous Coward · · Score: 1, Funny

      I doubt anyone else in FOSS land or other technologies companies relish the idea of getting into bed with Microsoft. They have a history of fucking their partners.

      Isn't that the whole point of going to bed with someone?

  8. 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
    1. Re:Old person syndrome by kikito · · Score: 1

      I think he realizes that. He's asking "what language should I pick", not "how do I learn a language".

    2. Re:Old person syndrome by Anonymous Coward · · Score: 0

      start absorbing information and trusting that after awhile, it'll turn into useful knowledge.

      Well, no. Start coding simple apps (in an easy to learn script language such as Ruby or Javascript) and read up on "how to do X" when you need it. That's much more efficient. We don't retain information well if we don't know what use it is. And much of the "knowledge" imparted in computer science is actually completely useless in practice, or outdated.

      Oh, and read code. Lots of it. Read programmers' blogs, follow the ones you like, fork their projects on Github, read their code, communicate.

    3. Re:Old person syndrome by nonguru · · Score: 1

      This is partially why coding cowboys proliferate and why the industry still hasn't grown up as an engineering discipline. "Just dive in" is usually a cover for bad habits, incomplete knowledge, and cavalier attitudes to design. (I learned the same way. It's stress-relieving since you have the illusion of making progress, without understanding nuances and context. Though in the slashdot crowd I would be an old-schooler having developed proprietary firmware language, written in assembly code, and designed C, Fortran and Pascal based products. Nothing changes - sighhhhhhh.)

    4. Re:Old person syndrome by syousef · · Score: 0, Troll

      You're being too nice. I wasn't and got modded troll. The reality is he's got the whole of the Internet with thousands upon thousands of resources - books, tutorials, whole development environments he can download, and instead he's chosen to post to ask slashdot? WTF?! I wouldn't want to work with him.

      --
      These posts express my own personal views, not those of my employer
    5. Re:Old person syndrome by symbolset · · Score: 1

      Um, I don't recall "just dive in" being how such things were handled "back in the day". At least not in the say the submitter is talking about.

      I seem to remember a great deal of prerequisite instruction before you were presumed ready to write any code at all.

      --
      Help stamp out iliturcy.
    6. Re:Old person syndrome by syousef · · Score: 0, Flamebait

      I see the fucktards are moderating today.

      --
      These posts express my own personal views, not those of my employer
    7. Re:Old person syndrome by maxwell+demon · · Score: 1

      Well, in that case you probably learned programming at school.

      For those of us who had computers at home before schools offered courses on programming them (and back then, computers came with a BASIC interpreter that started directly on switching them on), there was not much of instruction first. You basically got your knowledge from manuals (back then, the computers still did come with printed manuals which deserved that name), from printed magazines, and most of all from experimenting and from writing programs.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    8. Re:Old person syndrome by Anonymous Coward · · Score: 0

      "Old person syndrome"

      Spoken like a young person.

    9. Re:Old person syndrome by Anonymous Coward · · Score: 0

      But "old person syndrome" is very real. When you're as old as the original poster is, and I'm at least there, with the same experience, it is daunting to look at the sheer breadth of options out there today, and try to make sense out of how to start. I've spent the last 10 years in management, and I'm tired of it. I still find I know more than (most of) the guys who work for me, EXCEPT the syntax and tools. I know the low level stuff.

      I had to start grabbing books, writing snippets of code, and make 'em work, and periodically ASK someone who worked for me what I'd done wrong.

      It's not easy, emotionally, to start back up.

    10. Re:Old person syndrome by Anonymous Coward · · Score: 0

      Back in the day we didn't "just dive in". We went to class and were instructed!

    11. Re:Old person syndrome by Anonymous Coward · · Score: 0

      Actually, "back in the day" we learned in a much more structured way. EVERYONE learned assembly because that was a big part of industrial programming... do they even teach assembly any longer?
      The "kids" coming out of college these days can be pretty useless programmers. They've been fed a steady diet of very high-level, abstract languages that are very forgiving (eg. everything is garbage-collected) to hackers and thus the kids have no idea how to design good, solid, efficient code.

    12. Re:Old person syndrome by 32771 · · Score: 1

      So you want to take this illusion of progress away and replace it with some more concrete progress indicator. You could go ahead and get a book like:
      Comparative Programming Languages (http://www.cs.stir.ac.uk/~rgc/cpl/) figure out what kind of language features you were missing, and what new language
      encompasses the most new features and then learn it by focusing on the new features and using them properly in a project.

      The listed languages "ALGOL, FORTRAN, COBOL, and Pascal" unfortunately preclude the asking slashdotter from knowing about object oriented programming and design principles. Which I think is the biggest hole in his resume. I don't know whether functional programming is really all that hot in the industry, but the industry is just purely lowest common denominator, so I think he should just learn the new stuff and he should throw in functional programming too.

      Mentioning design principles I would point to "Design Patterns" and UML.

      Looking at the industry, it appears to me that the industry is at fault for this poor man's choice of languages. He could have picked up OO stuff by learning an OO language like Simula as early as the seventies, or he could have learned LISP and have had CommonLoops since 1986.

      His biggest issue may have been that all those other languages weren't available to him like they are to us now as free software, but only through an industry or research project.

      --
      Je me souviens.
    13. Re:Old person syndrome by Intron · · Score: 1

      Learning FORTRAN:

      1) Put on your white shirt, tie and pocket protector.
      2) Take sharpened No. 2 pencils and preprinted coding forms to class, remember your flowcharting template!
      3) Read the language manual, the compiler manual, the linkage editor manual, and the overlay manual.
      4) Punch cards
      5) Submit your deck and wait for the line printer
      6) Debug with your hex calculator
      7) GOTO 4

      Learning Ruby

      1) Take your laptop to Starbucks
      2) Drink lattes and go through the online tutorials
      3) Debug? What's that?
      4) Send it to the client and cash the check before they think to load test it.

      --
      Intron: the portion of DNA which expresses nothing useful.
    14. Re:Old person syndrome by Anonymous Coward · · Score: 0

      You are god, on my cheep English.

  9. Why bother? by spiffmastercow · · Score: 0, Flamebait

    It's hard to get a job these days as anything but a code monkey. Anything really interesting (operating systems, compilers, games, etc.) will net you little to no pay because there's so many people who don't mind doing it for free or cheap.

  10. 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.

    1. Re:Stay Retired. by commodore64_love · · Score: 4, Insightful

      >>>clueless asshole boss

      My goal is to earn a BS in Business and become one of them. Or one of the HR people. That's where the real power lies. And money.

      --
      "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
    2. Re:Stay Retired. by backwardMechanic · · Score: 1

      I guess you missed the 'retired early' part. Sometimes folks do things for fun rather than profit. Especially when they've fixed the profit part elsewhere.

    3. Re:Stay Retired. by swrider · · Score: 2, Insightful

      Yeah, it is going to be tough for you. I have been programming since the mid-1970's and over the last 10 years or so, I have found it difficult to get good paying jobs. And, these are jobs where I have the skill set and know the language. Companies want to pay noobs right out of school a pittance rather than pay an older, experienced programmer what their skill and experience is worth. Even if I can finish the job in a fraction of the time required by the noobs. If you are older, you need to be an owner in a software business if you want to get in coding time. And, if your skills aren't that current, you should just focus on the management end of it. You are going to make more money, faster, by putting on the blue jacket and practicing your smile and welcome.

    4. Re:Stay Retired. by oldhack · · Score: 1

      He wrote he wanted to be "relevant" - doesn't sound like he's asking about some hobby project that interests him.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    5. Re:Stay Retired. by Godskitchen · · Score: 1

      Good luck with that... HR grunts make crap and that's where you will end up with a BS in Business.

    6. Re:Stay Retired. by Anonymous Coward · · Score: 0

      I guess you missed the 'retired early' part. Sometimes folks do things for fun rather than profit. Especially when they've fixed the profit part elsewhere.

      Both of your points was covered by his "did the crash hit you that hard or are you bored" question. A lot of people who had a pretty secure retirement saw a good chunk of their savings wiped out as their portfolio got hammered. What was a fairly comfortable retirement for some turned into a rather lean retirement. So those who "fixed the profit part" may not have as much profit as before.

      Regarding folks doing things for fun, it could be he wants to do this for fun, which was the "are you bored" part. Reading comprehension is for you too!

    7. Re:Stay Retired. by Nikkos · · Score: 1

      I guess you missed the "did the crash hit you that hard or are you bored?" part - you know, the first sentence. Apparently you can read minds and don't need such information.

    8. Re:Stay Retired. by ShakaUVM · · Score: 1

      >>He wrote he wanted to be "relevant" - doesn't sound like he's asking about some hobby project that interests him.

      But the answer might very well be "a hobby project". If he's an all grognard, maybe he could learn GUI programming by writing a client for his model railroads or miniature wargames or whatever he does with his time in retirement.

      The basics of programming don't change - if you know algorithms, logic, and how to think about edge conditions to avoid bugs, you can pretty much do whatever. Walk through a tutorial online on how to build a GUI, and there you go. PHP, Python, Java, etc. are all easy to learn, and have good online tutorials.

    9. Re:Stay Retired. by david_bandel · · Score: 0

      Sounds like you picked the wrong career. I don't think the majority of people have experienced what you describe.

    10. Re:Stay Retired. by sorak · · Score: 2, Interesting

      and work under a clueless asshole boss.

      Amen. I had an experience last week where someone, (who wasn't my boss, but is over me, and happens to be married to the sister of the CEO of the small corporation I work for), complained that on a web page I had worked on, that half the hyperlinks were purple and the other half were blue, chastising me for the inconsistency. (It wasn't just that one comment; he had four emails full of requirements, but that was the straw that broke the camels back).

      I set a reminder to deal with it the next business day, when I could respond in a more professional manner.

      Off-topic, I know, but I wanted to post an example of what OP may be getting into.

    11. Re:Stay Retired. by assertation · · Score: 1

      I knew this was the wrong thread to read, feeling slightly tense and anxious today.

      I can always count on programmers and Slashdot for a "can't do" attitude. Yes, you have to deal with reality, but fog colored glasses are just as unreal as rose colored glasses.

      Yes, we are all going to die in intense pain after living on the streets, in the rain, going hungry and living in humiliation for decades first. Toto will die. *Evil Laugh*. Oy.

    12. Re:Stay Retired. by jellomizer · · Score: 2, Insightful

      I never found problems in finding developer jobs. The problem is so many good developers are just bad employees. Who think their IT skills are the only factor in employment. Durring the dot com boom in the 90's companies tolerated many of our quarks and sometimes celebrated then as skill of the "new economy". However after the pop the survivors were people who can handle the business and technical side of things. The ones who treat sales and marketing as key and an intelligent component to the business. And use their insight as inspiration to male a netter product. Verses just taking there ideas as a mindless rant. We as software developers are not actually any smarter on the average as anyone else in the organization with a Bacharach degree. We just have different skill sets

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    13. Re:Stay Retired. by Anonymous Coward · · Score: 0

      tehe... HR people are overpaid and over-glorified administrative assistants. They are an impediment to hiring the best person for the job and overall provide little value to organisations.

      And... While Nikkos' comment about working for a "clueless" boss may be a generalization it is a fact that many managers do not have an appropriate understanding of the technology about which they make far reaching decisions. This is a detriment to productivity, to profitability in many companies and government institutions.

    14. Re:Stay Retired. by Anonymous Coward · · Score: 0

      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.

      I can't agree with this enough. I graduated with a CS degree in 2007, worked in the field first for a company that used a weird and very proprietary language, and then for some other company that hired me using a bait and switch (they told me it was C# development with no indication during the interview that it'd be any different, then they stuck me on QA). Then they strung me along saying that they'd get me on development and it never happened. When I finally tried to get out, I learned that having QA on the resume is worse than having nothing. Having my career ruined and being unemployable (I know a lot of people will say to "join an open source project" --- I'm in the midwest where most companies will say "we don't care what you do in your freetime, what did you do in school and on the job?" and yeah, I was told that in interviews when initially looking for work in 2007), I'm leaving software hopefully forever. I'm a stereotypical geek who loved programming, did it constantly, autodidactic, etc, but now I hate it more than anything -- and even more, I hate the assholes you have to deal with, and it's not just the bosses.

      I'm going back to school to finish a BA in math and then off to grad school to hopefully have a career in academia.

      Oh yes, one more thing: no more cube farms for me.

    15. Re:Stay Retired. by Matheus · · Score: 1

      I'm guessing a little read-between-the-lines would apply here. Around the time this guy 'retired' the markets were a gold mine and life was grand. Throw a dot-com bubble burst (which he probably was heavily invested in given his background) and the more recent financial markets explosion and I bet his retirement fund went and disintegrated on him. The dude probably *really needs a job right now.

    16. Re:Stay Retired. by phantomfive · · Score: 1

      A BS in business will get you nothing. At best it will get you into middle management, but you'll have better luck with that if you get an MBA (and undergrad in something real).

      If you want the real power, you need to start your own business. No on is going to promote you to CEO because you have a BS degree. They're going to promote you because you are competent at running a business.

      In other words, if you ARE going to get a BS in business, make sure you actually learn something, because it's what you learn that's going to help you, not the degree.

      --
      Qxe4
    17. Re:Stay Retired. by Anonymous Coward · · Score: 0

      >>>clueless asshole boss

      My goal is to earn a BS in Business and become one of them. Or one of the HR people. That's where the real power lies. And money.

      If you want to be a boss, DON'T get a BS in business. I'd NEVER hire you. A BS is Business is a signal you have no creativity, nor an open mind. I'd hire a Engineer/Artist/Historian/English Major/Divinity school grad/Chemist/Architect before an undergrad biz school student. Now a MBA is another story . . . .

    18. Re:Stay Retired. by Existential+Wombat · · Score: 1

      Absolutely right.

      Sometimes you just go to know when to throw in the towel.

      A man should always know his limitations.

    19. Re:Stay Retired. by Anonymous Coward · · Score: 0

      If you can't solve the problem, you might as well become part of it, eh?

    20. Re:Stay Retired. by Anonymous Coward · · Score: 0

      Then you get the women.

    21. Re:Stay Retired. by Darkman,+Walkin+Dude · · Score: 1

      My goal is to earn a BS in Business and become one of them.

      Eh no, you get to be a boss (a real one, not a middle manager) by jumping into the shark tank with the others and being the one who emerges at the end. No amount of formal education will give you even a taste of the experience you need. Thats why you see plenty of successful businesses being run by college dropouts and the like - if you want to be a boss, go ahead and start a business. As for HR, I think you'll find they are peons like everyone else, they just loom large to new hires.

    22. Re:Stay Retired. by Lumpy · · Score: 1

      and you will fail.

      to get high up in business does not take education. it takes schmoozing and networking. Get to be good friends with someone high up. and they will drag you up with them. In business it is NOT what you know but WHO you know.

      Stop wasting time and money on getting a BS in Business. Join Toastmasters and a lot of other clubs to get exposure to powerful men get to know them and most importantly get them to know you.

      If you prove to be a valuable person to them they will accept you into their tribe.

      --
      Do not look at laser with remaining good eye.
    23. Re:Stay Retired. by Lumpy · · Score: 1

      They're going to promote you because you are competent at running a business.

      I spent a decade in the big corporate world... I pissed myself laughing at that statement.

      They most certainly do not promote on competence. I watched several complete nit-wits get promoted to Director of IT and Director of future technology simply because they could kiss ass and take credit of other people's work.

      One blatantly took full credit of a project he was not even a part of and could not even answer questions about. But he golfed with the executives, partied with them and had his nose jammed so far up the VP of IT's anus that we could smell what he had for lunch the day before.

      Competence typically keeps you in your position. If you are incredibly good at it, you will never get promoted. The ones that get promoted are the ones that are ineffective but take credit for "managing" projects.

      --
      Do not look at laser with remaining good eye.
    24. Re:Stay Retired. by Anonymous Coward · · Score: 0

      Wow, I'm sorry you hate your job so much. Of course I have some rough days at work now and then, but overall I really enjoy being a programmer. I'm lucky enough to work on a team with some really sharp people where we often get the opportunity to tackle interesting projects. Of course there are also plenty of days where I'm stuck filling out TPS reports, but that will be the case in any job at a company with more than 10 employees. There are plenty of interesting, rewarding programming jobs out there for people with the right skills. If you happen to find yourself in an intolerably frustrating situation, I recommend polishing up the resume and looking for another job.

    25. Re:Stay Retired. by umghhh · · Score: 1
      if the guy is actually looking for a job and I do not see it from his post.

      In any case I would imagine that having an ass for a boss is just a must otherwise we would not enjoy our get together with friends and colleagues so much :)

      In any case the competition with young and younger from the great countries of India and China etc gets our jobs away only to the extent we let them. In corporation I work for currently there is constant drive to do things more cheaply. What we noticed however is that the 'cheap' countries are cheaper per hour but skills needed for the job are often lacking then and this makes projects more expensive (esp. if you have to do things twice) than as if they were done in expensive countries. The problem is not drive to do things inexpensively but constant quest to do things cheaply instead of doing things right. This 'strangely' increases costs. It is of course OT but I though I bring it up to enlighten a day.

    26. Re:Stay Retired. by Anonymous Coward · · Score: 0

      unless you do cobol
      then you have to beat the job offers off with a stick

    27. Re:Stay Retired. by powerlord · · Score: 1

      Two things.

      1) You've got a good grasp on things. When the market is bad, if you can't get a job, its a good time to go to school and increase knowledge for when the market is better. After dropping out of college and working for 10 years, when the market bit the dust, I went back to school and finished my CS degree. Came out a little before you, and have been working since.

      2) Where you work is as important as what you do. A smaller start-up might not have the same job security as a large business, but might be more flexible on time, responsibilities, etc. They also have more need of generalists than larger companies.

      3) If you love programming, but hate your bosses, become your own boss. The up-side, you can structure things as you want to. The down-side, you need to figure out how to put money on the table, it can be even worse job security than a Small Business.

      --
      This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
    28. Re:Stay Retired. by the_womble · · Score: 1

      If you think that the real power and money is in HR, you are out of contact with reality. HR is widely despised and not particularly well paid.

    29. Re:Stay Retired. by Anonymous Coward · · Score: 0

      Just set your body link and vlink to the same color.

    30. Re:Stay Retired. by Cro+Magnon · · Score: 1

      So, to put it another way, you don't need a BS degree, you need to do BSing?

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    31. Re:Stay Retired. by ciaran.mchale · · Score: 1

      someone[...] complained that on a web page I had worked on, that half the hyperlinks were purple and the other half were blue, chastising me for the inconsistency.

      I've encountered a great many websites that suffer from that problem. Finally, I know who is to blame for it!

    32. Re:Stay Retired. by phantomfive · · Score: 1

      Don't let what happened to the middle managers at your crappy company get in the way of what I said. If you are kissing up hoping people promote you, then basically you suck. What you want is headhunters desperately calling you and offering you millions to turn their company around because, you are that good. The fact that the executives were tricked by that kind of garbage shows how rare and valuable competent leadership is when you find it.

      --
      Qxe4
    33. Re:Stay Retired. by Anonymous Coward · · Score: 0

      What in the be-Jesus happened to your post near the end? Looks like someone scrambled it with homonym cryptography.

    34. Re:Stay Retired. by sorak · · Score: 1

      Yeah. It's not a hard problem to solve. It's just the thought that someone saw it as a problem in the first place. He'd might as well have called the DMV asd said

      all the stop signs are confusing. They don't tell me what to stop. I suggest you make news ones that say "stop driving".

    35. Re:Stay Retired. by Anonymous Coward · · Score: 0

      Hope you are trolling. If not, I despise you.

    36. Re:Stay Retired. by CptNerd · · Score: 1

      From my experience, the salary history for programmers is a bell curve, with the peak between 30 and 40. Same for the number of job offers and interview requests. If you're a really good shmoozer, or someone who can lie on their resume and look younger than 50 you can probably stay up there, but don't count on it. For every company with requirements that match your skills and that wants to hire you for them, there are dozens that have the same requirements but won't give you the time of day, if you're "too old." I had one place tell me that back explicitly in '08, they were looking for someone with my exact skill set (C, Unix, Perl), but wanted someone who would "grow into the job". If I had had the money and wasn't interested in getting another job, ever, I would have tried to sue, but it would haven't gotten me anywhere even if I had won. This age bias is cultural and has been going on for decades, so don't count on it ever changing.

      --
      By the taping of my glasses, something geeky this way passes
  11. F/OSS! by comrade+k · · 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.

    --
    "Every vision is a joke until the first man accomplishes it; once realized, it becomes commonplace." -Robert H. Goddard
    1. Re:F/OSS! by shutdown+-p+now · · Score: 1

      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.

      Good deeds are good, but having bread on one's table is important, too. So, what's the pay?

    2. Re:F/OSS! by Rezell · · Score: 1

      I agree! As an embedded programmer, ASM/C/C++ are languages I code with every day. Possibly worth noting: I am 30 years old and started with Visual Basic. Just because something is *newer* doesn't necessarily make the old languages less valuable.

    3. Re:F/OSS! by comrade+k · · Score: 1

      Good deeds are good, but having bread on one's table is important, too. So, what's the pay?

      I absolutely agree with you. I'm not suggesting that the guy become a full time free software dev. However, I'd argue that working on a FOSS project will look good on a resume AND improve his skills. I'm not so sure that there are many employers out there who are willing to let an older, semi-entry-level developer onto their team.

      --
      "Every vision is a joke until the first man accomplishes it; once realized, it becomes commonplace." -Robert H. Goddard
  12. 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
    1. Re:Don't by Burnhard · · Score: 4, Insightful

      Mod parent up. The OP is missing the big opportunity here. There are millions of lines of FORTRAN and COBOL code out there today in live production environments.

    2. Re:Don't by fruitbane · · Score: 4, Insightful

      This. Very much this. There are any number of bank and government softwares that still use these languages and are losing people able to deal with them to retirement. They may not be overjoyed that you are coming out of retirement to do it, but they may not have much choice.

    3. Re:Don't by Anonymous Coward · · Score: 0

      Interesting idea, but where would he go to brush up on what's been happening in the old school language developer communities? (If such communities exist.)

    4. Re:Don't by keeboo · · Score: 2, Insightful

      Agreed. It makes more sense if he updated his knowledge of COBOL/FORTRAN (why waste years of experience?) and exploit that niche.

    5. Re:Don't by drolli · · 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?).

    6. Re:Don't by syousef · · Score: 0, Troll

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

      Yes but asking such a silly question on slashdot makes him unemployable. There are thousands of tutorials, books and even complete development environments online. If this is a genuine query this guy is LAZY.

      --
      These posts express my own personal views, not those of my employer
    7. Re:Don't by Anonymous Coward · · Score: 1, Interesting

      It partly depends upon where you look if you go to the scientific side the core calculation software is likely still FORTRAN because the best optimizing compilers exist there.
      Cobol support is in short supply because the bulk of cobol programmers are retiring. If you look at a bank you will notice that sooner or later a 3270 style screen appears
      on the reps PC and some info has to be input there. A lot of the bank web interfaces are essentially screen scrapers of 3270 displays (may be more sophisticated than a
      pure screen scraper but the core app runs on the mainframe, because the performance and reliability best on Z-OS (MVS). If you have some business experience go into analysis
      because its harder to move those jobs offshore. Once upon a time the oil company I worked for wrote compilers and operating systems (early 1970s thru about 1980). Then these got
      to sophisticated and the ROI was not there. Today if you want to to os programing there is MS, Oracle, and IBM, unless you want to do device drivers. 20 years ago there
      were far more operating systems out there, DEC had 5 or 6 alone.

    8. Re:Don't by Anonymous Coward · · Score: 0

      Oh I dunno - I weigh a lot more now than I did when cutting cobol code

    9. Re:Don't by ArundelCastle · · Score: 1

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

      Indeed. Aren't these exactly the kind of people that were in demand to mitigate Y2K?
      Not as if a FUBAR like that won't happen again. And again. And again.
      Nobody has the budget to rewrite entrenched systems into higher level code these days.

    10. Re:Don't by Anonymous Coward · · Score: 0

      Many applications large companies still use run on those language platforms. I would be willing to bet that they find it difficult to find people who can maintain, change, etc., those applications. I don't know what's behind the applications we use where I work but it's definitely something that existed in the 70s, so that rules out a lot of the newer languages. I would not be surprised if they run on Cobol or Fortran. The idea of marketing yourself as a specialist might be a good one.

    11. Re:Don't by Nysul · · Score: 1

      Maybe he doesn't want to work for anyone and wants to make bank in his spare time writing ifart applications.

    12. Re:Don't by Anonymous Coward · · Score: 0

      I was going to give him advice, but actually you're right. Who would want to hire a coder who doesn't know how to learn autonomously?

    13. Re:Don't by afabbro · · Score: 1

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

      Just don't mention the Pascal part.

      --
      Advice: on VPS providers
    14. Re:Don't by Anonymous Coward · · Score: 0

      Spot on!

      Universities aren't teaching COBOL at all these days, it's too old fashioned and out-of-date. But since (for a lot of applications) there's no replacement, there are still places looking for COBOL deckhands and paying handsomely for it.

      It's not exciting, but there's also no need to stand out in a crowd. There are lots of young 'hot shots' out there who can tell you 1000 uses for an applet (try competing with them), but couldn't identify a Btrieve file if their life depended on it. It's a dwindling area, but I'm guessing that you're looking for a payday and not a career.

    15. Re:Don't by arth1 · · Score: 3, Interesting

      I'm sorry to say, but you probably won't land a good job just by learning COBOL.
      What's needed is experience with the whole systems the COBOL programs run on, which is much more of a challenge than the programming language itself. Someone hiring COBOL programmers likely expects people who live and breathe CICS and LPARs too.

      As for the OP, I vehemently disagree with those who suggest languages like Java and C#. Not because they're bad, but because they're so completely different from what he already knows.
      To go from FORTRAN to C# is like going from AutoCAD to Photoshop. Just so very very different.

      If he wants to ease into what's popular today, perhaps start with Object Oriented COBOL. That would be a handful in itself, as it turns the whole concept upside down from what's "old school", but it would still not be as suicidal as jumping directly into any of the "new skool" languages.

      And if he wants to learn (pseudo)scripting langauges, Python is probably the way to go. Not because it's a wonderful language, but because it is about as unforgiving as COBOL, yet small enough that you can keep it in your head and focus on the actual problem without going OO (although you can certainly do that in Python too -- you just don't have to).

    16. Re:Don't by liquidsin · · Score: 1

      i think he should do both; get current and help those governments and banks get their stuff current. they need to update before there's real trouble and they can't find anyone who can read the legacy stuff, and you can scare them into paying you lots for your unique skill set.

      --
      do not read this line twice.
    17. Re:Don't by Anonymous Coward · · Score: 0

      I hold a phd in physics...

      No you don't.

    18. Re:Don't by Actually,+I+do+RTFA · · Score: 1

      As fas as i understood that COBOL coders are right now (or in a few years) worth their weight in gold;

      That used to be true, but the price of gold has gone up lately.

      --
      Your ad here. Ask me how!
    19. Re:Don't by Anonymous Coward · · Score: 0

      Absolutely.

      And if you want to do 'modern' things like Web apps with AJAX, then C is probably today's most efficient tool, see:

      http://gwan.ch/

    20. Re:Don't by Anonymous Coward · · Score: 0

      There are some important systems that run today that are written in COBOL(or other legacy languages), like the banking in my country. Corporations will pay stupid amounts of money to specialists who know these languages, because its just too risky port the system the currently work to a system that might not.

    21. Re:Don't by gravis777 · · Score: 1

      The poster, however, did state he was looking to enter Mobile arena.

      COBOL is not as big as people may think. It may vary by geogrphical location, but COBOL jobs in my geographical area are practicatlly non-existant. 12 years ago, you may have gotten a job fixing Y2K bugs, but, and this is just me speculating, if a company is still using COBOL, its because their stuff has worked for 30+ years, and probably have no need for a maintainer.

      To directly address the poster's question, I suggest starting with reaquainting yourself with Pascal. Once you do that, you will notice that C is EXACTLY THE SAME THING with different syntax. Start with basic stuff, Hello World, some basic text input, some simple logic statements, until you get the hang of the new syntax. Then break into, oh gosh, what are they called, modules? That doesn't sound right. I can see the code in my mind, but its been 12 years since I have dealt with C, and forgot the term.

      After that, start playing with Object Oriented portions of C. I imagine at a leasurely pace, you can be here in a week or two (maybe three if you are lazy). You can learn a LOT here. Then you can start playing with C++ and C#.

      Do you know Basic at all? If so, I HIGHLY recommend Visual Basic as a good start for GUI programming. It will teach you the basics of programming for a GUI enviornment without having to worry about the language.

      Once you get those two things down, you can then start getting into other stuff, GUI in C, and stuff. With your experience, you should be making simple GUI interfaces in C in probably 2-5 weeks, depending on how motivated you are.

      After you get object-oriented stuff in C down, THEN start looking at Java and other languages. I almost dare to say that Java is practically a derivative of C, but might get yelled at. You can deffinately see that Java is inspired by C. You will then notice that other languages such as Python get their insperation from C and Java.

      In a nutshell, refamilerize yourself with Pascal first, and use that as your springboard into other languages. Make sure you remember how to do object-oriented programing before diving into Java, Python and other languages, otherwise you will frustrate yourself to no end trying to refreash your mind while at the same time trying to learn a language. Start familer, jumpstart your brain, then launch into other areas.

      After you have tackled the languages themselves, you then may want to look at tackling OpenGL.

    22. Re:Don't by arth1 · · Score: 1

      What part of "What's needed is experience with the whole systems the COBOL programs run on" didn't you understand?

      Yes, banks have legacy COBOL applications. No, they can't just hire someone who knows the language COBOL. They need someone who knows COBOL and have experience with the whole environment, where the COBOL code is just a minor part. Someone who knows how to get to the actual program, upgrade it, debug it, and won't look like a big question mark when faced with a double-oh-seven ABEND. Someone they won't have to train, because there is no-one to train them.
      That is why you can get paid big bucks. Not by learning COBOL.

    23. Re:Don't by Carpathius · · Score: 1

      Insightful? Not really.

      Once you've learned a non-OO language like C, any competent programmer should be able to learn any other non-OO language in a short time. Same for OO -- learn one, and a competent programmer can learn the next very quickly.

      Programming languages aren't like spoken languages. They have a regular syntax and a very small vocabulary. And no conjugations. Sure, you've got to learn what string functions are available, and what libraries do what, but you aren't really learning anything new. So, you have to keep a cheat sheet (the web, for example) that tells you strlen() is now length(). So what? After you do it a couple of times, you've learned it and you move on.

      Point is that learning syntax should be easy for a programmer, and since syntax is what a programming language is, a decent programmer will pick up and use any language that he or she needs. Different languages are just tools in a developer's kit.

    24. Re:Don't by Defenestrar · · Score: 1

      As for the OP, I vehemently disagree with those who suggest languages like Java and C#. Not because they're bad, but because they're so completely different from what he already knows. To go from FORTRAN to C# is like going from AutoCAD to Photoshop. Just so very very different.

      If he wants to ease into what's popular today, perhaps start with Object Oriented COBOL. That would be a handful in itself, as it turns the whole concept upside down from what's "old school", but it would still not be as suicidal as jumping directly into any of the "new skool" languages.

      And if he wants to learn (pseudo)scripting languages, Python is probably the way to go. Not because it's a wonderful language, but because it is about as unforgiving as COBOL, yet small enough that you can keep it in your head and focus on the actual problem without going OO (although you can certainly do that in Python too -- you just don't have to).

      Delphi - OO and very Pascal like.

      Although it's not on the list of other languages. I'm just an engineer working in a small research lab and it was quick for me to pick up and useful to make a custom instrument do what I needed it to. I don't know Delphi's commercial viability.

    25. Re:Don't by GarryFre · · Score: 1

      So how come the young folks aren't learning these ancient languages? Ps: Pascal isn't that old. I know all those languages except algol, and I tell you those are a hell of a lot easier to learn than the mishmash of Web programming stuff that's in use now. Ps, if you need someone to do your legacy code, contact me in the url below.

      --
      www.Migrainesoft.com - Computer giving you a headache? We can fix that!
    26. Re:Don't by lbmouse · · Score: 1

      I'm sorry to say, you are wrong. In the past 20+ years I've been a PC programmer surrounded by legacy mainframe systems for various older financial, insurance, and manufacturing companies. COBOL programmers are retiring but the systems are not so companies are hiring with any decent experience. I'm taking up COBOL now to help cover the slack (and make more cash) at one of the worlds largest tire makers.

      That being said. Maybe the poster is not interested in going backwards and wants a challenge. The best way for that is to look for a job where they interfacing legacy mainframe systems with modern systems (where there are is a major need for frame programmers). He can start where he is familiar and work towards the more modern systems. That is how I'm learning older system (but in reverse).

    27. Re:Don't by drolli · · Score: 1

      Thats the reason i now consider something else. Getting hands-on experience on the systems/environments running cobol would be unreasonable difficult.

  13. Language is language by commodore64_love · · Score: 2, Insightful

    If already know those programming languages, you should be able to pick-up the newer ones easily. Maybe look at some Open Source code to familiarize yourself with the new words and structure, but that's all your really need.

    The biggest challenge will not be learning these new languages, but convincing the HR dopes (i.e. liberal arts majors), that just because you've never programmed in C++ or C#, doesn't mean you don't know to do it. That's been the biggest challenge for me: "But we need someone who knows System Verilog, and you only know Verilog. You're not qualified."

    Idiots.

    Also you may find yourself working against ageism, even if you did have the required skillset. Slashdot just recently ran an article about how hiring managers in tech firms assume anyone over 40 is not suitable for working on new technologies. They want young blood, preferably those with no family, no life, willing to work lots of hours and/or fresh out of school.

    --
    "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
    1. Re:Language is language by uncqual · · Score: 1

      Fortunately, the HR dopes often just do keyword matches (and that's only on the good days when they do anything vaguely useful). If someone has learned, for example, C++ on their own, they should just put it on their resume. Of course, the hiring manger/interview team will probably ask some C++ questions and one should be able to answer them.

      However, "learning" a language is a lot more than just learning the syntax and semantics. There are often styles, idioms, and design patterns that are commonly used when programming commercially in a particular language but they aren't "part of the language" - just commonly used in that language. Language tutorials and books often don't cover these (or at least not well). Consider for example RAII in C++ -- very commonly used, but a language tutorial may not mention it. So, one has to dig deeper - perhaps by looking, in detail, at FOSS code (if the language of interest is used much in FOSS - C++ for example is not all that common in FOSS as compared to C or Java) and reading up on style/tips sources (such as, for C++, Effective C++ and More Effective C++).

      But, bottom line, you gotta write and debug real programs/systems, not just toy two page examples, to learn the language. Failure to do so will almost certainly doom one to failure in an interview.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    2. Re:Language is language by GPSguy · · Score: 1

      Where do I find the open source COBOL projects?

      --
      Never ascribe to malice that which can adequately be explained by tenure.
    3. Re:Language is language by Idbar · · Score: 1

      Although I agree with you to some extent. I'm an old school programmer and I've been having troubles understanding OO. When I think I understand that stuff, somebody comes to confuse me. But pretty much I think it's not hard once you know how do they work (do it by "interrupts", "calls", "methods" or "subroutines", "functions", or "procedures", most of them just work similarly).

    4. Re:Language is language by Anonymous Coward · · Score: 1, Insightful

      Programmer Liberal Arts Major, here.
       
      For the sake of a bit of perspective, I suggest you undertake a few years work to get on top of several (4+) natural languages for methodological and substantive use, study up on the literature, philosophy, historiography, religion, material culture, etc, etc of a given people/place over, say, 500-1000 years, and then attempt to make some innovative or, at least non-obvious, contribution to the field. All without being a simple-minded, condescending ass, if possible.
       
      To their credit -- and little can be said here -- most liberal arts people I was around as an undergraduate and graduate student did not go on about how the people in engineering, natural sciences, and math were a bunch of dismissive, reductionist tools. Believe it or not, most of my liberal arts classmates were studying their chosen subjects out of deep interest and/or curiosity, possibly not unlike their Klingon-speaking bretheren over on the other quad.
       
      Most HR dopes I have known studied management, finance, or business. If you want to abuse someone for being a dipshit, please direct your menacing intellect toward those circle jerks.
       
      P.S. -- please reconsider before using HR terminology like 'skillset' in future posts.

    5. Re:Language is language by arth1 · · Score: 1

      That's the big difference between old school and new programming -- an old school programmer has to know how things work. Modern programming introduces magic, and the coder is supposed to be concerned about the destination and not how to get there.
      This undoubtedly can increase productivity, and reduces the risk of errors, at the expense of code bloat and generic code taking the place of bespoke code.

      Unfortunately, it also makes troubleshooting and debugging a whole different concept. You no longer have to deal with just the problems of GOTO, but the complexities of COMEFROM, multi-layered wrappers and data that changes depending on from where you look at it. As this is too complex to wrap your head around for any sizeable piece of code, the code gets broken down into smaller pieces, and testing (including fuzzing and unit tests) becomes a substitute for verifying the entire logic.

      In some cases this is fine, in some cases it isn't. There's still room for and a need for old school programmers. And new.

    6. Re:Language is language by Anonymous Coward · · Score: 0

      They didn't talk about engineering students because they couldn't. That's like someone at burger kind making fun of a doctor's job. One knows useless information and can be easily replaced, while the other requires years of training to get to that point.

  14. learn python by dr_leviathan · · Score: 2, Insightful

    Postpone learning the other languages and focus on Python. It has almost as many modules as PERL but us much more readable. It supports object oriented design and is easier to use for small projects than C++.
    http://python.org/

    --
    Religion is poison to rationality, and we lose sight of that at our own peril. -- Lurker2288
    1. Re:learn python by maXXwell · · Score: 1

      While learning Python isn't the only reasonable option, it's way up there. It has several key advantages:

      1. Object oriented

      This is one of the key paradigm shifts since you were coding, and Python embodies the principle more cleanly than Perl or C++ . In fact, learning Python will probably make it easier to understand C++, Objective C and Java, which are arguably more awkward embodiments of OO.

      2. Interpreted

      The rise in interpreted languages is another major development since the 80s. It also helps speed the edit-test-debug cycle, making it faster to learn.

      3. Popular

      Python is one of the top 10 most popular languages at the moment: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. It's pretty much eclipsed Perl, which has been on the wane for a while. Interest in Ruby (the other "hot" interpreted language) also seems to be flagging.

    2. Re:learn python by Anonymous Coward · · Score: 0

      I agree. Python is OOP, you can program GUIs, you can program web server side and it was easy for this PASCAL trained programmer to pick up. Learn it first and then branch out into the other stuff or just use Python for everything.

      The best thing about Python? The batteries ARE included!

      This message posted by an AI written in 10 lines of Python or less...

    3. Re:learn python by Anonymous Coward · · Score: 2, Funny

      Don't learn PYTHON (I'm a Perl programmer returning the complement, hence the inappropriate upper case):

      1] It's too metrosexual for a real man

      2] significant whitespace

      3] ESR

    4. Re:Learn PYTHON by Xeontg · · Score: 0

      I too am 70's & 80's era computer programmer. I was very proficient in FORTRAN and IBM 360 assembler. Among the new languages, I find that PYTHON is somewhat similar to FORTRAN, but more powerful. I suggest that you learn PYTHON

      Agreed :) Plus it's easy to read compared to the others and flexible.

  15. If you don't mind doing the drills... by Anonymous Coward · · Score: 0

    ...I heartily recommend the books from the Head First Series: http://oreilly.com/store/series/headfirst.csp

    I hope you don't think I'm trying to sell you something...I've been using these books to learn and as references for the languages I know. Java and C# are covered in the series and it's a very unique (and effective) way to learn. Wish you the best!

    -- Your friendly neighborhood Spiderman

  16. drop everything by Anonymous Coward · · Score: 0

    Work through this over the next 3 months. http://book.realworldhaskell.org/

  17. Just dig in and do it by Improv · · Score: 1

    A language is just a syntax and a set of standard libraries. Pick a language, find some examples, and start tweaking them while studying the API. If you still have the skills, it won't be too long until you're writing big stuff. Just be sure to keep studying other people's code so you'll know which of your old habits arn't appreciated in the modern language, and you'll be fine.

    The biggest differences you'll need to get used to is:

    1) The programming tools you can use today (from vim to Eclipse) are much smarter and more helpful
    2) The documentation is differently organized. I still have programming books from my childhood like "Introduction to MS-DOS Programming" -- they're nice and talk-y. Nowadays, particularly in OO languages, the documentation tends to be online and bundled with your compiler or IDE (or maybe on the web). Modern docs tend to be a lot more terse and to-the-point, and you explore them rather than read them.

    Good luck!

    --
    For every problem, there is at least one solution that is simple, neat, and wrong.
    1. Re:Just dig in and do it by Anonymous Coward · · Score: 0

      Exactly.

      OP: you might have had a little formal training in C at some point, but you almost certainly learned the most useful skills on the job. Pick up a book on the language of your choice, or browse for some good tutorial websites. They're out there. Most language also have good, friendly beginner lists (e.g. perl.beginners).

      Once you have some basics, the best way to get your hands dirty is to find an open source project in that language that interests you, and start looking at the code. Then get involved in the mailing lists for the project. Try to pick a project that seems to have high documentation standards and enforces coding guidelines.

      Make some friends. Submit some patches. Get some feedback.

    2. Re:Just dig in and do it by shutdown+-p+now · · Score: 1

      A language is just a syntax and a set of standard libraries.

      It's also semantics, and that can be vastly different. It's a common myth that appeared because many people look at C++ vs Java, or even Java vs Python, and see a lot of commonality - and then conclude that all languages are like that. But compare e.g. C++ vs FORTH vs Haskell vs Prolog, and the differences in even the most basic things are much more major, and require significant changes in how one approaches tasks.

  18. Embedded by Anonymous Coward · · Score: 0

    Go embedded.... I'm new to the industry (4 years post-college), and write nothing but straight C; Makes it easy.

  19. Hundreds of thousands? Are you SURE? by mmaddox · · Score: 1, Insightful

    You're a coder who's written hundreds of thousands of lines of code, but you don't know how to start learning a new programming language?

    I suspect there's someone out there, tasked with supporting some of these "hundreds of thousands of lines," who is cursing your name and your sorry-ass programming skills, right now.

    I'm 41, an "old" programmer, and consider this question so stupid it's embarrassing.

    --

    What'dya mean there's no BLINK tag!?

    1. Re:Hundreds of thousands? Are you SURE? by Anonymous Coward · · Score: 0

      No!!! Mod the grandparent down as Flamebait! :D

    2. Re:Hundreds of thousands? Are you SURE? by Anonymous Coward · · Score: 0

      I'm 41, an "old" programmer, and consider this question so stupid it's embarrassing.

      I don't know where you work but in my company's local office you'd be one of the younger devs and overall the company has a couple thousand devs.

    3. Re:Hundreds of thousands? Are you SURE? by Anonymous Coward · · Score: 0

      He didn't see he doesn't know how to start learning a new language, he was wondering where to start.
      And why do you assume the code he wrote in the past is bad? Programmers always curse the name of those who write the code they maintain, because most programmers are idiots and have no sense of perspective.

    4. Re:Hundreds of thousands? Are you SURE? by Anonymous Coward · · 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.

  20. Anything at all by JumpingBull · · Score: 1

    Although it sounds like a cop-out; anyone you'd want. I'm a hardware type, so I only use programming when I have to. I like being close to the metal, so your assembler experience is still valid. I'd kick the tires on smalltalk/squeak squeak.org; the go programming language by Robert Pike; Perl is good for text mungification; Python has its fans; I've used Forth for debugging ...

    If you use open source software, (or extensible commercial stuff) learn the language where the action is, for you.

    I'm not a really good programmer at any one thing, but you learn fast in this game. DSP work and multiple core processors have a lot of growth ahead in them, that's why I mentioned Go. The embedded space is still active, and your skill set should be a nice match.

    Someone else can fill in the must reads - I liked the mythical man month, design patterns look interesting, Eiffel has its charms, too. Stonebreaker on databases, other stuff.

    Now I'm just rambling, hope others can help more

    --
    This is progress?
  21. Why would you want to? by fkx · · Score: 1

    Why would you want to?

    Be the Boss and get the children (under 30) to write the code.

  22. Duh by Anonymous Coward · · Score: 0

    Programming languages might have evolved, but learning them hasn't changed.

    1) Pick a language (that choice will come naturally if you already have a project in mind)

    2) Get your hands dirty

  23. I'd start with php by yeshuawatso · · Score: 1

    If your not familiar with C and its variants, I'd start with PHP. PHP is so similar to c++, yet so simple, it would be easier for you to dive in. Since it's a scripted language, you can see your mistakes without compilation and gradually slide you back into OOP. Then, use that same box and gcc to step into c++. You can also learn JavaScript and port what you've learned to Java. Html5 is an html spec that at its root, is xml. Which isn't programming.

    1. Re:I'd start with php by shutdown+-p+now · · Score: 1

      God no! PHP is chock full of language quirks and bad design decisions that are virtually unique to the language. It goes for everything from basic syntax (the new namespace syntax *shudder*) to fundamental data types (the messy way PHP associated arrays handle key types), and to the standard library which is completely procedural and woefully inconsistent.

      To date, the best C-like language in which to learn OO remains Java - it has a relatively small set of basic language constructs, and the only new ones relative to C are those that deal directly with OO (excepting labeled break/continue), so it's a natural migration path from C, and a good language to learn on in general because the extra stuff doesn't get in the way. Meanwhile, it's an extremely popular industry/enterprise language, so learning it has immediate practical value, as well. And it generally earns more than PHP.

  24. Don't by clinko · · Score: 4, Insightful

    Stick with what you know. You're trying to enter an overpopulated market with no experience in the new languages.

    "Hi I'm here for the French teaching job. "

    "Experience?"

    "I'm fluent in latin, amazing at it in fact"

    "You're here for the wrong job"

  25. Go back to school — a little, anyway by bhetrick · · Score: 1

    The change from imperative/procedural languages to object oriented languages can probably be done through reading and experimenting, but an instructor-led course would be easier by far. If you can take one or two semesters at a local college of some object oriented language — Java and C# are the two most approachable, and conveniently have free IDEs and toolchains — that would put you back in the game enough to learn through reading and through playing around. Once you have your mind wrapped around OO concepts, a GUI framework (Swing, WinForms, GTK+, etc.) is easy enough to pick up. Similarly, learning how to exploit relational DBs is deserving of a course: I've never seen anyone self-teach more than about half of a relational DB's capabilities. I'd put off C++ to start: the language is fearlessly exploring what happens when OO concepts are applied orthogonally across a language, but Java and C# fit nicely into the 90% solution space that people actually use.

  26. Missing one important detail by AlXtreme · · Score: 1

    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.

    Great that you'd like to re-enter the programming community, but why do you want to?

    If you're looking to be a code monkey again (as if), most jobs are for Java, C# or PHP with a bit of HTML/CSS & SQL on the side. You can pick any and make a decent buck.
    If you want to simply take up programming again for the fun of it creating or contributing to an interesting pet project is more important than the language choice (with your experience you should be able to pick up any language within a couple of days/weeks anyway).
    If you want to further your career you'd be better off aiming for a lead architect position, which is pretty much language-independent.

    --
    This sig is intentionally left blank
  27. By starting to code again, ... maybe? by Qbertino · · Score: 1

    Dude, WTF is that kind of a question? Isn't the answer obvious?

    I don't think I understand your problem.
    Compared to back in the day it's paradise today. We've got bizarely powered hardware that fits in you hands and costs less than a good stereo set. You can get in anywhere and have it up and running in no time. We've got the best publishers competing with each other in writing concise witty indepth books on any IT subject you can think of and we have a very solid open source eco system with all the pickings you like for free (beer & speech).

    I suggest you get yourself a cheap laptop from dell our something, install ubuntu on it and start coding in one of the cool new programming languages. I personally recommend Python, because it really is the only PL I know that is used in every professional field I can think of while still being a neat new open source PL. For getting up to speed fast you want to check out the books available from O'Reilly and Pragmatic Programmers Bookshelf. Any subject they don't have a book on isn't worthwhile picking up. That's a good rule of thumb.

    That aside, it really doesn't matter wether you're 18 or 80, just dive into it. I know good programmers aged between 17 and 60 and all of them learn new things every day and have no trouble doing so. Age issues are mostly hysteria. If you're interested and hooked, you'll pick up a subject fast, no matter how old you are.

    Welcome back.

    --
    We suffer more in our imagination than in reality. - Seneca
  28. FORTRAN and COBOL makes you money by MagikSlinger · · Score: 5, Interesting

    There are still plenty of FORTRAN shops out there, or at least legacy FORTRAN applications.

    There is a ton of COBOL apps that need maintaining

    If you are going to learn anything, it should be stuff that makes you more interesting as a FORTRAN and COBOL coder. For example, get comfortable making HTML/CSS pages. A lot of shops are trying to connect COBOL to the web and SOAP.

    Find a web site or book to learn what relational databases are. Everything is relational these days. The NoSQL crowd think they're post-relational, but they still talk in the relational language.

    That's the other thing you should learn: Oracle PL/SQL and Service Oriented Architecture (SOA). SOA these days means SOAP and message busses. At my place of work, we have a legacy COBOL application that needs to connect to the enterprise's Enterprise Service Bus (ESB). We are struggling to find anyone who can do it inside our company.

    Your future is being the bridge between the past and the future. Learn how to make those old apps do new tricks, and you'll make lots of money.

    Learn Perl. Because Perl is like the swiss-army knife for programmers. You may not write an application with it, but you might use it to make bulk changes to a hundred COBOL or FORTRAN source files.

    --
    The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    1. Re:FORTRAN and COBOL makes you money by MAXOMENOS · · Score: 3, Informative

      That's the other thing you should learn: Oracle PL/SQL and Service Oriented Architecture (SOA). SOA these days means SOAP and message busses. At my place of work, we have a legacy COBOL application that needs to connect to the enterprise's Enterprise Service Bus (ESB). We are struggling to find anyone who can do it inside our company.

      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.

    2. Re:FORTRAN and COBOL makes you money by MagikSlinger · · Score: 1

      Thank you for pointing out Java EE -- forgot that.

      P.S. Could I hire you under the table to write this @$! component at work?? :-D

      (I can't believe no one on their [the COBOL app side] knows how to do this...)

      --
      The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    3. Re:FORTRAN and COBOL makes you money by denis-The-menace · · Score: 1

      Check the contracts for those languages you know.

      I know of a contractor that's been at the same place doing COBOL for almost 20 years.
      She makes $800 per Diem!! (sorry guys, she married)

      Governments are swimming in COBOL apps.

      --
      Obama's legacy: (N)othing (S)ecure (A)nywhere and (T)error (S)imulation (A)dministration
    4. Re:FORTRAN and COBOL makes you money by Anonymous Coward · · Score: 0

      Yup. Become a specialist in stitching the old to the new. I couldn't agree more. It's what I do for a living and it pays well. You've got one HUGE advantage over all the kiddies out there. You understand how things REALLY work. If you couple that with some perl, SOAP (which is just a way of doing comms inefficiently but cross platform) and some unix (teach yourself Linux and a place using AIX, Solaris etc. isn't that different) you will offer an employer a wealth of knowledge.
      Trust me, NOTHING can substitute wisdom, experience and the ability to solve problems.

    5. Re:FORTRAN and COBOL makes you money by Anonymous Coward · · Score: 0

      "At my place of work, we have a legacy COBOL application that needs to connect to the enterprise's Enterprise Service Bus (ESB). We are struggling to find anyone who can do it inside our company."

      We have solved this in our company by using Tuxedo and DC COBOL.

  29. Complicated Answer by Anonymous Coward · · Score: 0

    Well what would you like to do.. you mention Windows, iOS and Android, sadly all three of these platforms have different "best languages" For windows programming you need to program in Visual Studio by Microsoft, using any of the available languages, C# being the one most supported to use all the features of Windows. The plus side of learning C# is that it is also the most used language for ASP.NET web pages. Android runs applications written in Java, get Netbeans or Eclipse (I prefer Netbeans). iOS uses a language called Objective C which is basically C++ except has a more mature objects syntax.

    Now that should cover the languages you would want to learn. How to learn is a different matter. Honestly I would start with Java. It isn't the most used language but I am assuming that you haven't programmed with objects/extending/implementing/etc, IMHO Java has the easiest and most strict implementation of Object Oriented Programming. Should be the easiest to pick up from a book or even tutorials online. There is always the option of taking a couple college classes as well.

    Once you pick up one Object Oriented language you will pretty much "know" them all.. then its just the matter of learning all the quirks and libraries for one of the other block style OO languages. Stay away from C++ as your first OO language, the OO implementation is flakey and very young, its better to learn from a more strict and mature language and work your way out into the wild from there.

    1. Re:Complicated Answer by petermgreen · · Score: 1

      Well what would you like to do.. you mention Windows, iOS and Android, sadly all three of these platforms have different "best languages
      Afaict if you want to write the core of your code (obviously you will have to rewrite the UI for each) in a way that is portable across those platforms and more then the best option is to write that core in either plain C or "C with classes" style C++.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  30. +1: "Just figure out what you want to do" by kale77in · · Score: 1

    Mod parent up! You have to have something you want to accomplish.

    I'm a web dev who had no meaningful GUI skills, and limited Ruby skills. But I wanted a particular kind of multi-pane editor with wiki formatting and language support for ancient Greek, that worked a bit like KDissert, my favourite mind-mapper/outliner.

    I found I was able to figure out the essentials of QT-based GUI programming in Ruby over a focused long weekend. Nothing but persistence and online tutorials were required. It would have been easier with Python, as the documentation was better. But with a definite target, you just keep moving toward it.

    Postscript: Then I rewrote the app in PHP and put it online for easier accessibility. :)

    1. Re:+1: "Just figure out what you want to do" by infinitelink · · Score: 1

      Hey, I'd love to see this thing online! What's the site? I'm currently studying Latin and have studied Koine a bit, but in the near future plan to heavily hit the books on the Hellenic Greek, and then back-peddle to classical (the idea is not to cause confusion or mental blocks between classical Latin and classical Greek, given their similarities, so I'm purposefully putting material between them and making it harder by doing eras of the languages that are more dissimilar at any given time), and for this have interest in practically any and every Greek/Latin/Ancient-studies site and materials. Thanks for your time!

      --
      Intelligent idiots are we. | Evil men do not understand justice.
    2. Re:+1: "Just figure out what you want to do" by plastbox · · Score: 1

      As a fellow web dev with little appreciable GUI (or at least graphical design) skills, I warmly recommend jQuery. It makes writing cross-browser JavaScript a dream. Also, jQueryUI is pretty damn awesome and lets you whip together a pretty smooth interface quickly and with very little code.

  31. Java and C# by Confused · · Score: 1, Insightful

    Java and C# is where you'll find the old style coding you've been brought up. Those languages give themselves some new-fangled and modern look, but in reality the mess they create is just as bad as 150k lines of Cobol. If you were able to debug accounting applications 20 years ago, you still can do it today - they're just as bad, nothing really was learned.

    1. Re:Java and C# by assertation · · Score: 4, Insightful

      I don't mean to insult the author of this comment, but I think he is very wrong.

      If by "old style coding", he means procedural programming, with a column of hundreds of lines of code then that isn't Java. Java is Object Orientated language. Every hear of encapsulation with that? Everything is separated into modules.

      I have seen old school programmers put hundreds of lines, procedural style, into a JSP or one monolithic function, but that just means they are ignorant of OO and using the language wrong.

      Sheeesh.

    2. Re:Java and C# by Anonymous Coward · · Score: 0

      That is one of the most ignorant comments I have ever read on /. I appreciate that you likely enjoy the copious amounts of elastic band functional php and perl code and the like that litters the web these days. Given the OP's intention of returning to the workforce and his history, this is not likely where he is going to end up. Systems integrity has greatly diminished with the advent of some of the current 'hipster' platforms and languages. Me, I do ABAP, C# and Transact SQL mostly - but then again, I was a C/C++ guy. Guess what, all the software you are running on whatever platform you are typing your inane comments on are written in those.

    3. Re:Java and C# by bcwright · · Score: 1

      I've got news for you - that wasn't considered "good style" back in the day, either, except perhaps for a few cases that involved lots of complex mathematics that were hard to break down with any efficiency. Outside of the modeling community, this has been considered detrimental for something like 50 years - you'd have to go back to the 60's to find a time when it was acceptable.

      Not that it wasn't often done - but then on the other hand one can find pretty ugly modern "object oriented" designs as well.

      "Beauty is only skin deep, but ugly goes clean to the bone."

    4. Re:Java and C# by Anonymous Coward · · Score: 0

      Get a real editor if you are stuck in a mess of hundreds of thousands of lines of code you can't follow.

      With OO languages and a smart editor, you rarely have to look at more than a 20-30 line block at a time. Everything else if abstracted out in a nice object level tree. You can get popout docs for anything and drill into anything you need more details for.

      It doesn't matter what language. Pretty much every OO language has at least a handful of editors capable of doing this. The days of being happy with syntax highlighting ended decades ago.

    5. Re:Java and C# by shutdown+-p+now · · Score: 1

      If by "old style coding", he means procedural programming, with a column of hundreds of lines of code then that isn't Java. Java is Object Orientated language. Every hear of encapsulation with that? Everything is separated into modules.

      It all sounds nice in theory, but have you seen what most code for all those "enterprise" systems out there actually looks like?

      By the way, modules have very little to do with OO, and generally predate it. Modular programming was mainstream long before OO became that - ever heard of Modula-2?

      I have seen old school programmers put hundreds of lines, procedural style, into a JSP or one monolithic function, but that just means they are ignorant of OO and using the language wrong.

      I have seen new, fresh-out-of-college programmers "put hundreds of lines, procedural style, into a JSP or one monolithic function".

      Heck, back when I studied OOP/OOD in the uni, the majority of other students did it that way, and simply couldn't understand this whole OO thingy for real. They knew they had to had classes, so they added one. They also knew that if they have customers in their app, there should be a class for it, so they added it. From there, it virtually always went downhill.

      To sum it up: in theory, there is no difference between theory and practice. In practice, there is. A person capable of and experienced in reading, debugging and maintaining spaghetti code is just as valuable today as they were 40 years ago.

    6. Re:Java and C# by Anonymous Coward · · Score: 0

      Every hear of encapsulation with that? Everything is separated into modules.

      Oh... shiny... But Fortran got modules in fucking *1990*. That is about 5 years before Java was released, and most Fortran programmers around here do make good use of them. Maybe because I have been busy shooting the rest...

    7. Re:Java and C# by assertation · · Score: 1

      That makes sense, the older languages where I saw that had *some* modularization, if only functions/procedures. The people who did it were probably just lazy and or ignorant.

    8. Re:Java and C# by assertation · · Score: 1

      I agree with you, but those weren't the points I was arguing.

      The original poster, the person I replied to, claimed that Java and C# were old school languages, on par with the programming world that the retired programmer left and were about the same bad way of doing things. First, Java was just being created in the 90s, C# came after 2000. Second, the point I made, was that Java was designed against those very things. It comes down to the point you and I made that those problems were the result of ignorant and/or lazy programmers, not the languages/tools. People who don't what they are doing, like the original poster who didn't know the philosophy behind the two languages he was dismissing.

    9. Re:Java and C# by Anonymous Coward · · Score: 0

      I don't mean to insult the author of this comment, but I think he is very wrong.

      If by "old style coding", he means procedural programming, with a column of hundreds of lines of code then that isn't Java. Java is Object Orientated language. Every hear of encapsulation with that? Everything is separated into modules.

      I have seen old school programmers put hundreds of lines, procedural style, into a JSP or one monolithic function, but that just means they are ignorant of OO and using the language wrong.

      Sheeesh.

      I once worked in a junior position under a guy who did this sort of crap, and before long he was let go and I inherited his position. His code was a nightmare to maintain and modify for this reason and often large parts were better off just if I rewrote them properly.

    10. Re:Java and C# by Anonymous Coward · · Score: 0

      Are you some sort of pinhead, Assertion?

      Your insipid comments regarding "old style coding" "procedural programming" and "OO" languages indicate you don't understand that good engineering practices are independent of the programming languages and tools used to develop an application.

      For example, what if you had to deal with 25 million lines of EDA software written in several procedural languages (like C, C++, FORTRAN, LISP, Scheme, mainSAIL) written by a dozen engineering teams having 500 or so developers located all over the world. And this product line had to run on hardware platforms like Cray, IBM mainframes, a dozen Unix boxes and Windows PC's.

      Here's a quarter, go buy yourself a clue about how to write software using "old school" development methods....

  32. Re:Or learn C-flat by Anonymous Coward · · Score: 0

    otherwise known as B.

    Actually if you sharpen B, (go up a semitone) you end up back with C, which may be telling as it seems to be the basis for all we have today.

  33. O'Reilly books are a good start by kevmeister · · Score: 1
    I have learned several languages by starting with the "Learning ..." book. Perl, Python, PHP, Java are all covered and written to learnthe languages, not as references. (They publish references, too, but those are for after you have learned the language.)

    Also, don't sell Fortran and COBOL skills short. There is a real demand for people who can program these...especially COBOL. (Lots more folks are still writing Fortran than COBOL, but lots of businesses are running COBOL and need people who can update and modify the codes written a couple of decades ago.

    --
    Kevin Oberman, Network Engineer, Retired
  34. It's about Objects. by CFD339 · · Score: 1

    The main difference, aside from syntax, between the old way of coding you've done and the new, is objects. You have to learn to think in terms of objects and object modeling. If you can't do that, no amount of rote syntactical education will help you.

    I'm not really a big fan of Java for most things, but hands down the single best, most approachable, most relevant introduction to object oriented program is Kathy Sierra's book "Head First Java". It's one of the only textbook style programming books I've ever found readable enough to just sit down and go through in order.

    Once you understand objects -- including inheritance, polymorphism, and so on -- then you're at a place where the specific languages vary mostly by the libraries available for them and their syntactical differences -- which are easily overcome. C# and Java are extremely similar so I'd start with one or the other. C++ is still the real deal, but both C# and Java let you work without having to manage memory so damn carefully.

    Starting with Java over C# will, IMCO, give you a better feel for best-practices because the MS Visual Studio IDE tends to push you to draw your screens and dialog boxes first, then hide code behind events and buttons instead of starting with a functional object model and then using the UI tools to build an interface and call back into your real objects. C# will probably take you further in the employment market, but learning Java first will make you a better C# programmer.

    --
    The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
  35. FORTRAN, COBOL etc. by Roger+W+Moore · · Score: 1

    Why update at all? There are still legacy systems using FORTRAN and probably COBOL as well. While there are C#, Java, PHP developers all over the place I imagine that finding a developer to maintain a legacy system is extremely hard. Of course that means there will not be many jobs out there for you but the pool of qualified applicants will be extremely small.

    1. Re:FORTRAN, COBOL etc. by fuzzix · · Score: 5, Interesting

      Why update at all? There are still legacy systems using FORTRAN and probably COBOL as well. While there are C#, Java, PHP developers all over the place I imagine that finding a developer to maintain a legacy system is extremely hard. Of course that means there will not be many jobs out there for you but the pool of qualified applicants will be extremely small.

      Plenty of money in COBOL but there is a need to suit up (physically and mentally) - not for everyone.

      I have found a small but significant niche in embedded *nix programming. Small yet powerful systems requiring every scintilla of juice tempered with a familiar API - C Systems programming work is common enough (yet not common enough!). This is where I hope to spend the next while.

      An "old school" approach to knowing the architecture inside-out and attention to detail is clouded by the bizarre abstractions of C# and Java. PHP isn't even an abstraction, it's a distraction (I grew tired of the inconsistency so no longer practise).

      Perl is unfashionable in some circles and has a reputation for having magic constants (or whatever it is the detractors call "I don't want to learn this language") but I recommend it if you want dynamically typed "chops".

      I find these "chops" are overrated. I enjoy low-level thinking so don't need to bloat up with virtual machines[1] (the real ones work fine for me), OO[2] (I know how to pass a pointer to my data to a lib) or design patterns[3] ("ways to do things" - if you learn one way as "the way" you may be unlikely to think there may be a better way)

      [1] I use virtual machines but it's perverse running the dozens of MB JVM (and waiting around for it) for a browser bound animation or trivial desktop app. There may be a better case for this messing on the application server, but I don't care.

      [2] OK, I will make an argument for OO in GUI programming - a large and complex library of heterogeneous components is difficult to arrange sensibly in a procedural manner. gtk_status_icon_set_from_file(foo_icon, "bar.png") or fooIcon.fileSet("bar.png")? There may be a similar argument to be made for other systems but for the most part I find the OO model a needless abstraction.

      [3] Right... most programmers aren't brilliant - I know I'm fucking terrible for the most part - so having established methods for common situations is no bad thing... just don't get too attached.

    2. Re:FORTRAN, COBOL etc. by Anonymous Coward · · Score: 0

      Dang, I'm tempted to register with slashdot just to mod you up. Best thing I've read here in a long time.

    3. Re:FORTRAN, COBOL etc. by Lord+Kano · · Score: 1

      Last year, I worked on a migration of a huge legacy system written in FORTRAN.

      I have personal knowledge of how entrenched some of that code is. Just because it's old doesn't mean that any company wants to spend half a million dollars to replace it.

      LK

      --
      "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
    4. Re:FORTRAN, COBOL etc. by SimonJG · · Score: 1

      I absolutely agree with your point about attention to detail.

      I find that there are a number of owners of legacy code - engineers and so forth - who want to update their code - often FORTRAN - to a modern GUI and implement features like calculations in real-time response to changes in the GUI.

      However, they do NOT want to rework the FORTRAN code itself. These programs are often thousands of lines of dense calculations which were started back in the 60s or 70s and are known to be efficient and essentially bug-free.

      They also want the GUI in something that they more or less understand - which means C or C++.

      Hence the problem is one of understanding and modifying the original FORTRAN command line interface and the platform it was written for (remember VMS?), working with the engineers to design an appropriate GUI and then implement it in a mixed-language (C++ or C and FORTRAN) environment. These days I tend to use a cross-platform framework like Qt or wxWidgets.

      That's how I live anyway ...

    5. Re:FORTRAN, COBOL etc. by hughbar · · Score: 1

      Just want to go 'me too' to say that this is a great post. I'm 60 this year, did a lot of COBOL, some C, now do Perl [critics would say this is increasing the probability of early dementia, but I love it] and I believe the main thing about programming is programming and [importantly] development, especially clean development cycles etc. not the specific language.

      I make quite a decent living from Perl because, like COBOL a) it's legacy and b) there's still a lot of it around to be maintained.

      --
      On y va, qui mal y pense!
    6. Re:FORTRAN, COBOL etc. by Anonymous Coward · · Score: 0

      I don't need electric starters, power steering, or automatic transmissions, but I realize how ridiculous it is to mock these features which are common in a modern time.

    7. Re:FORTRAN, COBOL etc. by Uksi · · Score: 4, Interesting

      This is a plea for anyone who thinks object-orientation won't do anything for them to stop and back away from that view for a second. Give me a minute to explain.

      Read this great article called Why are you still using C?. I think it explains very well what OO can do for it.

      Did you know that the Linux kernel, despite NOT using C++, is actually doing bonafide object-oriented programming?

      Just one example is the Linux VFS. A filesystem passes in a struct with function pointers to read, write inodes, etc. The I/O kernel code only knows about each VFS in the generic terms, but ends up calling specific implementations via the function pointers. This is called polymorphism.

      That's right, the Linux kernel is doing real, meaningful object-oriented programming. In contrast, if you put a few functions together under a class (like many people do that "have to" write OO), then you ain't doing jack shit worth of object oriented programming. However, because the kernel is using C, it has to do a lot of messy things with pointers. C++ helps take care of that mess (polymorphism is supported in the compiler), so you don't have to write it by hand.

      Problem is, object-oriented programming is useful when it is applied on an as-needed basis.

      Design patterns? Same thing. People got a design patterns boner when the book came out (I know I did). The academic/enterprise/fancypants software architect approach was: "What if? What if?! Why not use a pattern here, just in case you ever need to do it this other way?" So, you end up seeing patterns and flexibility and layers of abstraction (variations on a theme) built everywhere, where you end up not using them.

      So you end up with a ton of code that never really does you any good. Worse, when you suddenly realize that you need some kind of flexibility, you already probably sliced the code the wrong way, so now it's actually *harder* to make things flexible. All because you made them flexible ahead before you knew what you actually needed.

      There's a concept of emergent design, which basically says: don't come up with any frameworks, let frameworks emerge from the code. That is, if you find yourself needing to copy/paste the code or find yourself repeating something that's awful similar to this other thing, well, *now* -- only now is the time to use a technique to eliminate the duplication. Maybe you make a little framework. Maybe you just make a class or two to help you out. Maybe you use a bit of a larger design pattern, well, 'cause you don't need to use the whole thing. And that's great! You've taken care of the duplication, so now all the code you have has purpose, has a real need.

      WE have been made to feel stupid, by all these academic and UML software architect wankers that are removed from real-world coding and proclaim the need for design patterns everywhere and "careful architecture" beforehand. Turns out that we weren't stupid, we were just being practical.

    8. Re:FORTRAN, COBOL etc. by Anonymous Coward · · Score: 0

      Did you know that the Linux kernel, despite NOT using C++, is actually doing bonafide object-oriented programming?

      So does UNIX. In fact, VFS came from UNIX.

      There is actually another example that is used by a lot of application code: X Toolkit and Motif. All C and very OO.

    9. Re:FORTRAN, COBOL etc. by kikito · · Score: 1

      I do like object oriented programming. I have even created my own lib so I can do object-oriented stuff on non-object oriented languages (Lua).

      That said, I will not touch C++ if I can avoid it. The linked article has just confirmed this decision.

      The thing that bugs me the most is exactly that "C++ is C" thing. It makes the language ugly and unnecessarily complex. I would have preferred library compatibility without source code compatibility (like a CLib object to which one could simply invoke functions on). This decision has deep consequences - such as conserving the insecure and ugly array model from C, as well as the horrible char* usage for strings (I know about std String and Vector - but the others are still used in C++).

      Then there are these quirks here and there. The multi-lined templated types error messages. The multiple inheritance model (I'd rather have single inheritance + mixins)

      When I'm doing Object-oriented stuff, I'm not so concerned about efficiency. I'm concerned about properly modelling abstractions. C++ is just not abstract enough for my taste, and that is partly because it inherits too many things from C.

      As it is now, I prefer using a scripting language such as Python or Ruby for Object Oriented stuff, and plain C for low-level things, since plain C is better supported than C++ for libs and the like.

    10. Re:FORTRAN, COBOL etc. by Anonymous Coward · · Score: 0

      Linux neither invented VFS nor implemented it well at all. That's a SystemV thing, one that BSD ported back to good effect, without needing a "void *implementEverythingMeaningful" member nor a big union that needed to be recompiled everytime a new filesystem was added.

      The concept of "don't write frameworks, let frameworks be ``extracted``" is otherwise summed up as YAGNI: You Ain't Gonna Need It. It's a pretty neat principle of parsimony that of course got turned into an empty slogan to the point of glorifying ad hoc design that only solves the problem of the moment; a moment that is always gloriously validated as the most important thing by way of the unit tests (also ad hoc) passing for whatever purpose-built code was put together for today's problem. But sometimes when you see the big picture up front, it pays to solve that problem first.

      The people that make me feel stupid are the functional programming people who can check for things like infinite loops at compile time. Design Patterns was a decent book, but I only admired the effort, not so much the insight.

  36. 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.
    1. Re:I second that by Anonymous Coward · · Score: 0

      > C++, PHP, Java, C# and Javascript are all related structured programming languages, and primarily differ in minor syntax, class definition, data types and strictness.

      Woow.That is so wrong that I am speechless.

      Java and C# have similar philosophy, sure. But there is a world of difference between, for instance, C++ and Javascript, even if they look syntactically similar.

    2. Re:I second that by Anonymous Coward · · Score: 0

      The way I did it:

      To learn Java: http://download.oracle.com/javase/tutorial/reallybigindex.html
      To learn PHP: http://www.php.net/manual/en/ (start with the simple tutorial)
      To learn Perl: SAMS Teach Yourself Perl in 21 days, http://www.amazon.com/Sams-Teach-Yourself-Perl-Days/dp/0672320355/ref=sr_1_1?ie=UTF8&s=books&qid=1280710004&sr=8-1

      I don't recall where/how I learned HTML/CSS. w3schools.com might have helped--it certainly helped with Javascript--but beware, particularly with Javascript, that not everything there is portable or even right. Once you have the feel for HTML and CSS, just go to w3.org where the specs are fairly readable.

    3. Re:I second that by Anonymous Coward · · Score: 0

      C++, PHP, Java, C# and Javascript

      Javascript ain't like the rest

    4. Re:I second that by geezer+nerd · · Score: 4, Insightful

      I think this is a very sound response. I served in the industry from the early 70's, and retired in 2006. Learned many languages and wrote lots of code during those years. The poster already understands programming, so he is really looking for how to upgrade his language base. He does not need, in general, to go read a bunch of introductory books. He needs to have a problem to solve, choose an unfamiliar language to solve it in, and then dive in, consulting quick references and online tutorials when progress is blocked by lack of knowledge. That is how I learned C, Java, Perl, and PHP. (And HTML and Javascript.)

      From what the poster says of his background, I think the biggest, most difficult challenge he has to face is learning about object-oriented programming languages and methodologies. I know when I was trying to get past Fortran, Algol, and such that was my biggest hurdle, and teaching myself was a real challenge. But once understood, the programming world becomes a brighter place. Good luck!

    5. Re:I second that by Steauengeglase · · Score: 1

      I'd second all of that and say that most of the JS books out there total crap. The only real way to get proficient in it is to download IE, Firefox and your Webkit browser of choice and tinker until you know how to get your scripts running on all 3. Outside of W3Schools and essays written by folks who deal with it every day and are compelled to stretch it and make it work as a language, you are going to end up with some crappy guides that point you towards oblivion.

      As for the non-web side of things, I'd suggest tinkering with C++. Other languages left faith-based questions where C++ gave answers concerning OOP. I really wish I had started there instead of other languages that will not be mentioned. I'd have had few headaches.

      From there it is on to design patterns and from there the world.

    6. Re:I second that by HereIAmJH · · Score: 1

      Especially if you are familiar with Pascal, which structurally is very similar to the languages you want to learn.

      That depends an awful lot on what flavor of Pascal he is talking about. If it's Borland Pascal then he might have a solid foundation. But Turbo Pascal didn't get OOP until v5 or 5.5, and even from there it's a big leap into the Object Pascal that Delphi uses. There were no APIs or any of the logic for windows/frames/etc.

      It's not the:
      if (++i > 10) {
          j+=5;
          i=0;
      }

      that will be the problem. It's the:
      mmoResolved.Lines.Add(sDomain + ': ' + TARecord(DNS.QueryResult.Items[0]).IPAddress);

      It's a completely different mindset. Just ask any C programmer making the leap to C++.

      --
      Another day, another update to a Google android app.
    7. Re:I second that by vtcodger · · Score: 1

      ***I think this is a very sound response.***

      I think so also. But as an old Fortran programmer, I'd suggest a two step approach. First do a couple of slightly more than trivial programs in C and Python. C because it is a poorly readable Fortran like language with a (very) few niceties. Not much of a learning curve. Even though it is poorly unsuited to large systems, it is exactly what is used to produce many large systems. The code is produced is insecure and doesn't work all that well, but what the hell, it worked once and must be ready to ship. Many "modern" languages use C-like syntax. Python because it is easy to learn and, unlike c, builds in some genuinely useful concepts not present in Fortran -- lists, hashes, objects. Python also allows rather remarkable programmer access to the internals of the internals of the language. Don't like the way lists work? Change it.

      Once comfortable with C and Python. Pick the language one really wants to work with -- presumably based on market factors -- and learn it.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    8. Re:I second that by Anonymous Coward · · Score: 0

      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.

      This is ludicrous. Being aware of minor syntactic similarities between C-style languages doesn't come anywhere near a `good portion' of each language. In order for your example to do anything useful, it would need to use several language and/or paradigm specific functions.

      Learning syntax takes a good programmer a few hours. Learning the language takes a great deal longer.

    9. Re:I second that by Anonymous Coward · · Score: 1, Funny

      Yes, your first infinite loop right there.

    10. Re:I second that by Lumpy · · Score: 1

      The code (that) is produced is insecure and doesn't work all that well,

      I believe quite a few Linux Kernel developers would highly disagree with you.

      C is still a highly viable language. Your DVD and BluRay player runs code that is written in C. your car stereo, etc... It's still heavily used in embedded systems.. I would not be surprised that Missie guidance stuff is still in C. I haven't seen a VB.net module for target acquisition.. I have for C.

      --
      Do not look at laser with remaining good eye.
    11. Re:I second that by walkeraj · · Score: 0

      Replace 'PHP' with 'Perl' and this is a good response.

      --
      Those days are dead and gone and the eulogy was delivered by Perl. --Rob Pike
    12. Re:I second that by Anonymous Coward · · Score: 0

      How did the poster lump PERL in with the rest of those languages? PERL has been around form the 80's is a scripting language. It does not depend on GUIs.

    13. Re:I second that by geezer+nerd · · Score: 1

      Back in the day, if you were writing scientific/engineering applications in Fortran and/or business applications in COBOL, you might have seen the 4 letters PERL arranged in that order, but you would have been highly unlikely to feel a need to learn about it. If you knew about it at all, you knew that it was a tool for systems administrators, not for "real" programmers.

      I finally got to do some PERL coding in the last 5 years I worked, when I ran up against doing server-side coding for web apps. I did a fair amount of PERL coding during that period, but I cannot say I really "learned" it. Fortunately I had a genuine PERL guru sitting at the desk across from mine at the time. PERL is much too complicated, though with enough energy one can make that complication do some brilliant things.

      PERL seems like SNOBOL, a language in which almost any string of characters represents a legal language construct. I remember once in the early 70's I was doing some assembly-level coding and I accidentally fed an assembly-language source file into the SNOBOL interpreter. I don't know what SNOBOL thought the thing might do, but it compiled OK!

  37. How Can an Old-School Coder Regain His Chops? by omar.sahal · · Score: 1

    Eric Steven Raymond in his how to be a hacker is a good start, some say a Real Programmer Can Write in Any Language.

    1. Re:How Can an Old-School Coder Regain His Chops? by Anonymous Coward · · Score: 0

      I'd love to see a non-trivial software by esr.

  38. I see this a lot by MichaelSmith · · Score: 1

    My wife is an Architect and she has a friend who started in the same business at a time when drafting was done with pencils and rulers. In early middle age he took a comfortable sideways step in the business. Now the work is all high pressure CAD drafting and he can't get back in to work.

    I am 44, I have been working in the transportation field for 22 years. I work for a big engineering firm and the pay isn't fantastic. The advantage is that employees are valued for domain knowledge and the tools you know aren't so important. My main business now is configuration management and for me this is a field where your experience can be valued, without you understanding all the latest wiz-bang tools.

    I don't have any easy answers except don't focus on the tools (Java, C#, etc). Thats a game you are going to lose. Focus on your domain knowledge. Do you know banking? Look for work there. That kind of thing.

    1. Re:I see this a lot by shutdown+-p+now · · Score: 1

      A coder cannot avoid focusing on tools, by definition of the job. It's a kind where you have what it takes to keep up with the new stuff, or you fall by the wayside eventually.

      Well, or you could end up like one of those COBOL programmers today ~

    2. Re:I see this a lot by MichaelSmith · · Score: 1

      A coder cannot avoid focusing on tools, by definition of the job. It's a kind where you have what it takes to keep up with the new stuff, or you fall by the wayside eventually.

      Well, or you could end up like one of those COBOL programmers today ~

      Yeah this is partly why I have avoided becoming a short term coder for hire. I don't contract. I spend enough time to understand the area I am working in. Where I work we have employed plenty of coders, particularly when there was bulk "code creation" to be done, but those people are gone now.

      In my wife's field the equivalent is the CAD operator. The problem with both types of work is that you are only as good as your recent history and if you drop out for a while it can be hard to get back into the industry.

  39. Consider an Alternative Career Path... by qazwart · · Score: 2, Insightful

    There are build managers, release managers, configuration managers, QA managers, etc. All who need high technical skills, but no need to do heavy duty programming skills. What they need is a technological eye and the ability to solve problems on the fly.

    These positions get paid as much as developers, and are quite technical. And, they tend to be the place where older individuals can really make their mark. You can't out code 20 to 30 year old developers. They grew up in college with this stuff and know it forwards and backwards. However, most of them are pretty lost when it comes to the overall design of a software development life cycle.

    As for programming, my recommendation is to forget about compiled languages.

    Learn Linux and BASH shell scripting. Should take you a couple of weeks to get the hang of it. Then, try Python, and after that JavaScript/AJAX. These are the languages that glue everything together and can be used in either Windows or non-Windows environments.

    Your main concern is getting a hang of object oriented programming. That was the most difficult thing for me to get my mind around.

  40. Comment removed by account_deleted · · Score: 2, Insightful

    Comment removed based on user account deletion

  41. Pascal by sznupi · · Score: 1

    It's quite alive, if you want to toy around you can start from basic level of "pure" Free Pascal DOS-like IDE, and take it from there with whatever tools and toolkits you like. Or Lazarus. There's still good old Delphi of course. Wikipedia pages and categories are, as usual, a good starting point to finding related projects & communities.

    --
    One that hath name thou can not otter
    1. Re:Pascal by shutdown+-p+now · · Score: 1

      How many commercial projects are out there in Pascal or dialects (by the way, Delphi has evolved a lot from Turbo Pascal, which in turn is quite different from the original Wirth's Pascal)? More importantly, how many new commercial projects are started in Pascal?

    2. Re:Pascal by sznupi · · Score: 1

      Not much of it, sure (Skype being maybe the only notable example); but in the sense of willing to train oneself in "new ways", the way via modern Pascal-related tools might be handy.

      --
      One that hath name thou can not otter
  42. Online courses, community colleges, short courses by davidwr · · Score: 1

    And of course books and videos.

    I sincerely hope this reply didn't tell you anything you didn't already know.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  43. Linux by jonsmirl · · Score: 1

    Download a Linux distro like Ubuntu and have fun. There is far more free software available today than you can possible consume. Hack on the kernel, set up a web server with LAMP, play with Java, hack on Open Office, use Eclipse for an IDE, etc. Source code for everything is freely available. The world of software has changed immensely from the 1980's.

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

      Yeah, we didn't have free source in the 80s. *cough*cough*

      Either you're a young one or you're a raving fanboi. Most of us programming enthusiasts ONLY had source code in the 80s. Nice try at revising computing history tho. In the future I suggest you study up and you'll find that open source is far from new.

  44. Re:don't bother by cskrat · · Score: 2, Insightful

    Java isn't that tough. If he were to find a local college willing to let him audit or, if necessary, pay for just a Java class then it would probably be a worthwhile investment. If he has experience with procedural languages and programming then a good Java course would let him catch up with OOP design.

    I think Java still makes a good poster child for OOP design and is more portable and accessible than C# or any other .NET language.

    --
    My God! It's full of eval()'s.
  45. Here's what I did by Jorl17 · · Score: 1

    I'm not like you at all in the sense that I am a kid who started learning how to program without knowing anything about it at all.
    Around my 6/7 years, I was taught HTML 4(very basic things) at a computer school. Then, when I turned 11 I got interested in it again and learned a bit of Javascript, but I didn't really realize what I was doing. One year later, though, when I turned 12 (or 13, I can't remember), I browsed thousands of C++ tutorials because it seemed the right thing for me to learn. It was C "with classes", which included nearly all the languages I thought existed. After 3 years on my own, learning through my own projects and tutorials, I bought a great book called "C++ How to Program" (and other Portuguese books). They helped me gain some algorithm development techniques while not teaching me language semantics and esoterisms themselves.

    Added to that, I learned PHP for a couple of projects, and I realized that indeed C++ had prepared me for that very well. Same thing with Javascript -- I understood it immediatly. Then I decided to go with Assembly, which you already know. It helped me understand deeper roots within C++ which, in turn, enabled me to understand other languages in a better way as well. Nowadays, whatever language I look at, I usually get the gist of it just by reading a few lines of code, because *most* of their features are contained in C++ or C++010 or C++-related articles that I read. Also try to learn a bit of the Win32 API, but don't forget to write portable code. I worked with the W32API until I moved to GNU/Linux and had to write portable code so that all my windows friends could run what I programmed.

    --
    Have you heard about SoylentNews?
  46. odd question, really by Eil · · Score: 1

    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.

    Er, same way everyone else does... Take a class or better yet, start Googling.

  47. The language doesn't matter by SoftwareArtist · · Score: 1
    Really, it's not that important. You can pick up a new language in very little time. What matters is that you have a strong background in the fundamentals: algorithms, data structures, architecture, etc. My current job is mostly C++, yet I had done very little C++ programming when I was hired. That didn't matter. I once hired someone as a Java programmer who had never used Java before. That also didn't matter. He was a good programmer, and he took very little time to start turning out high quality Java code.

    If your experience is all in Fortran, COBOL, and the like, the big thing you're missing is experience with object oriented design. So you need to focus on acquiring that. And you can do that with any modern, object oriented language.

    So what language should you learn? That depends what you want to do.

    iPhone/iOS: Objective-C. That's the only option.
    Android: Java. It's not the only option, but it's the very strongly encouraged one.
    Windows: C#. Again, it's not the only option, but it's the recommended one.
    Web development: Java. People love to debate about what's the best language for web development, but Java is probably the dominant one, and it's a good default in any case.

    --
    "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
    1. Re:The language doesn't matter by shutdown+-p+now · · Score: 1

      Windows: C#. Again, it's not the only option, but it's the recommended one.

      In practice, if you're doing systems programming on Windows, knowledge of C++ is an absolute must, and it will be very helpful even for higher-level stuff. .NET Framework these days covers a lot of ground, but still not all, so eventually you'll find yourself having to call Win32 APIs directly, and those are generally C++-centric (you can call them directly from C#, but all documentation, tutorials etc will use C++, and in general you will have to understand how C# maps to C++ constructs to call more exotic stuff).

  48. Learn HTML, JavaScript the CSS, then HTTP POST,GET by Anonymous Coward · · Score: 0

    That's my advice. HTTP POST, GET is a bit like 3270

  49. OOP by Anonymous Coward · · Score: 0

    Learn Object-Oriented Programming

  50. Try Android development by Paul+Fernhout · · Score: 1

    http://www.android.com/ -- you learn Java, the projects are small in scope, and you can demo your stuff easily to friends, and it is only getting hotter. :-)

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  51. Find your muse by electronicpanopticon · · Score: 1

    If you don't have a passion there's no point. Programming is a really hard slog if you don't have that drive pushing you forward.

    I walked away from computers all together back in 1984. 10 years later I was doing construction and it hit me. I haven't looked back since.

    You need to find something that you want to do, figure out the technology that is best to do it, and get at it. The books out there these days are amazing, and thanks to Google, YouTube and iTunes U there are thousands of people out there willing to help you for free.

  52. Get hired for what you know, then widen your scope by dpbsmith · · Score: 4, Insightful

    Get hired for the skills you currently have, in a company that's small enough that it doesn't have a huge number of software engineers, and one that's a good company to work for and therefore doesn't have too much turnover.

    Do good work and collaborate well with your colleagues. Be constantly on the lookout for any vaguely software-related task that turns up that's sort of a nuisance for them, that nobody has specific expertise in, but is too small to justify a full-time hire.. Don't worry if it's a marketable skill as long as it's a _new_ skill. Companies prefer the devil they know to the devil they don't know, and once they have confidence that you can do the tasks you say you can do, when you say "let me take care of it for you," they'll let you take care of it for them. If you keep acquiring new skills, sooner or later some of those new skills will be marketable skills.

    When you're trying to get a job, it's very hard to get away with saying "Well, I don't know C++ but I'm sure I can pick it up because I know Smalltalk, which is another object-oriented language." When you're inside the company and they trust you, it is much easier to get assignments for which you can make the case that you may not be a perfect fit, but you're close enough.

  53. Pick a project by hedrick · · Score: 4, Insightful

    The problem with books is that most people learn by doing, and toy problems don't teach you what a real application is like.

    I'd suggest picking an open-source project and doing something with it. Depending upon the type of programming you want to do, add something to Linux, OpenOffice, or any of the number of Java-based things. (I'm currently working with the Sakai course management system. There are plenty of things that need doing there.)

    The languages aren't any worse than what you're used to. The problem is that real programming these days tends to involve lots of complex libraries and frameworks. Those are hard to learn in the abstract, which is the reason for my advice.

    Whether it make sense for someone to (re)enter programming as a job I can't say. That's a decision for you. There are a lot of problems with the profession. But there's also lots of important things that need to be done, and a lot of the people who think they're programmers aren't up to it. Programming approaches are changing often enough that skills go out of date in a few years. That's both good news and bad news for people like you. Since people have to learn new techniques all the time anyway, it's not like you have to relive the whole last 30 years.

    The language depends upon what you want to do. Systems software and desktop applications typically use C-based stuff (C++ is probably the best place to start, although Objective C and other things have advantages.) Web applications use Java or .NET. I'd probably start with Java. You can find real and interesting applications in just about any language, so you can argue for Python, Ruby, and all sorts of other stuff. But C++ and Java are probably the place to start. I keep hoping that there will be some major new programming technology to use multiple processors / cores well. But there are lots of nice demos, but so far I haven't seen an approach that looks like it's going to really take off. That's really pretty discouraging. I wish things were more different from when you were programming. C++ and Java are only slight improvements on what you're used to. It's really the libraries and frameworks that are new.

    If you're thinking of web-based work, I strongly suggest learning Javascript and at least one major Javascript programming environment (e.g. jquery or one of its competitors). UIs are increasingly moving into Javascript.

    1. Re:Pick a project by Nursie · · Score: 1

      Multiple processors took off years ago. Multi thread and multi process programming has been available to programmers for decades.

      I suppose it would be useful to some folks if there was some sort of programming language revolution that made this invisible, or automatic. For now you have to know what you're doing and control the actions and communications of your threads/processes somewhat explicitly. I've been doing parallel and distributed computing, commercially, for almost 10 years now, and I'm not an old hand at it.

  54. You have skills.... by cptdondo · · Score: 4, Interesting

    Typically the older coders grew up in a much more structured environment - we were expected to know the theories of programming much more than today's coders. Not a put down for anyone; times have changed.

    The only place I know of for old coders with old skills is in embedded linux. It's much the same attitude - squeeze a lot of performance from a limited box. And GUI skills don't really matter.

    So start with busybox. Tear it apart, put it together, submit some patches. You'll find you're not so rusty.

    Then find an embedded project you want to work on and contribute. Forget about working for someone else; most companies these days don't want anyone over 35.

    Set yourself up as a specialist consultant. Embedded systems, old systems, IBM stuff that's still out there. COBOL is still in demand and coders, good ones, are getting consulting jobs. Not permanent jobs, mind you, consulting jobs.

    Do what you know and build on it.

    1. Re:You have skills.... by Anonymous Coward · · Score: 0

      I agree. Go embedded. Go deep. Lots of fun and (still) different from the business systems. Also a possibility of learning new skills and applying previously learnt at the same time. The general engineering background is sometimes required for the industrial systems, for example. That might mean some on-the-job skill set refreshing.

  55. First some training, then some work.... by Anonymous Coward · · Score: 0

    I managed the transition using formal training offered through my employer (about 2 years part time study at night), and then through on the job training (trial by fire). So step 1 is to get an introduction to OO programming through a local university course, then decide what type of work you want to pursue (web-oriented, database, ...). Then take the courses available for that. The actual work experience is where things all come together, no matter how many classes you have had or books you have read. I stumbled around a bit my first month, but at the end of a year I was pretty confident I wrote good code and made good design decisions. If you can't get a job using your language of choice fresh out of training, find an open source project in that language that interests you, and then dig in and help for a few months. Listen to the other project members when they critique your work, and try to find a someone local with good skills you can bounce ideas off.
    As a side note, I really enjoy working in Java much more than I ever did in Fortran, and I think I am much more productive in java than I am when I work in Fortran. I still do Fortran work - there are tons of legacy codes that we still use as mainstream analysis tools, and that will probably not change in my lifetime.

  56. It's not the language, it's the understanding by jabbadeznuts · · Score: 0

    Learning a new language is a matter of semantics and punctuation, not logic. I'm a firm believer that once you have an understanding of logic, adapting those skills to other languages is a relatively simple process. A for loop, logically, is the same in C, Java, BASIC, Visual BASIC, C#, AGOL, FORTRAN, Pearl, Ruby, COBOL, or any other language.

  57. Re:don't bother by Sarten-X · · Score: 2, Insightful

    Java gets a lot of criticism for its sandbox attitude, but that lets it enter the realm of idealism more than other languages. In my opinion, that's exactly what's needed for a programmer new to OOP. As I said above as an AC (damned checkbox), learn how to use and think with objects first, then apply the old knowledge of algorithms to get the most out of your abilities.

    --
    You do not have a moral or legal right to do absolutely anything you want.
  58. Loops is loops by Culture20 · · Score: 1

    Just be glad we haven't shifted into an entirely different paradigm like functional or quantum. Multi-threading or cluster-computing is about as close as you'll come to weird tricks. Other than that, loops are still loops, conditionals are still conditionals, and functions are functions. You'll figure out the details without issue.

  59. That depends on your motives by next_ghost · · Score: 1

    If you're doing it for fun and the feeling of being useful instead of money, forget about jobs. Just pick some open source project you like and start hacking right away. Either way, don't forget to check out new coding tools as well as new languages. Version control systems for example went a long way from the 80's and you should definitely try GIT or Mercurial.

  60. Weekend projects from Make magazine. by Anonymous Coward · · Score: 0

    Make magazine is full of weekend projects and the people who write the articles all have their own dev environment preferences. Why not pick some projects that sound fun and use the instructions as a tutorial to walk you through whatever language that person preferred? It sure beats getting frustrated at a language/environment because it's getting in the way of your own project and then you get some fun stuff out of it.

  61. get a book and pick a project by ZeroNullVoid · · Score: 1

    The best way to learn is to start a project.

    Get a book or read tutorials and start coding.

    Many programmers don't use gui's to code and if they do, they typically only care about syntax highlighters or auto-complete.

    You may like python... it is my favorite language now.

  62. Processing.org - Java - Whatever by Beardydog · · Score: 1

    Processing.org is a pet-project producing machine, great for easing one into OOP as gently as possible.

  63. Fiddle around, and don't forget anything. by Kittenman · · Score: 1
    I learnt COBOL myself back in the '70s, and still use it every now and then. Most of my stuff is in ALGOL, WFL or LDL (I work on Unisys gear). I dabbled in Perl, learnt some BSH when I was on Unix for a spell, bought myself some "C# development" books and now do some C# too.

    Moral of the story? Do whatever they pay you for. Learn some OO stuff - always handy - but you'll find your skills and knowledge transferable from language to language (this is sorta like today's Poll - and the same applies. Fancy that).

    --
    "The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
  64. Two likely problems by phantomfive · · Score: 1

    I've noticed that programmers from the older generation sometimes have trouble getting over the GUI hump, mainly because it is a different way of programming, and it can be a bit painful to think of things differently. Some give up completely and never learn GUI programming. Don't do that. Realize that it's not really a huge hump, and after a little work figuring out the different paradigm and the function calls and tools, it's not hard (and once you learn one GUI toolkit, all the others become cake).

    Another thing I've noticed, as I and others have gotten older, you have to pay more attention to your health. Learning is a physical process, and involves growing new neural connections, maybe even new braincells. If you want your body to do that easily, you've got to give it the nutrients it needs, so make sure you eat healthily, sleep well, and if you're low on energy, try exercising.

    --
    Qxe4
  65. The more things change the more they stay the same by akeeneye · · Score: 1

    I'm an old techie too, old enough to have once been hacking out device drivers on 16 bit cpus. The bad news is that the industry has gone to hell since your last experience in it. Remember how you were practically revered by non-tech people for the magic you could do with those machines? How you made almost as much as the suits? Well, no more, the vast bulk of developers are just commodities now. And as another poster remarked, companies seem to want fresh n00bs right out of school who can do a seemingly passable job and are willing to work for nothing. Oh, and remember working independently, doing things from A-Z your way and doing it fast and well? You can forget that too, developers today are pretty much harnessed together to the same wagon via a "software development methodology". Every few days it will spit out a morsel of work for you to program and you'll get another one when you're done. Welcome to the machine. Pretty much the only fun place to work anymore is at a start-up and good luck getting a gig at one of those if you've got a gray hair on your head. Now the GOOD news is that programming is just as damn fun as ever, more fun than back in the dark ages. There are a lot more interesting languages to choose from. The more popular (lucrative, corporate) ones such as Java and C# share much of their syntax with C. My recommendation however, if you don't need to make $ ASAP, is to get going with a so-called scripting language. They're just plain FUN! I love programming in Python but Ruby would a reasonable choice for you as well. Your main tool will just be a text editor of some sort, no compiler, no virtual machine runtime. If you feel the need there's good IDE support for interpreted languages these days. And don't think that these languages are toys. They power a whole lot of commercial and OS applications I find that the best way to approach what seems to be a challenge is to find a way to make it fun rather than a grind. Exercise is the same way. If you hate the gym and those treadmills, just go for a relaxing five mile walk every evening. If you want to get hip to programming again, pick a lightweight, FUN scripting language, get an intro book to get started with, and you're off to the races.

    --
    The man who dies rich dies disgraced. -- Andrew Carnegie
  66. I consider myself a modern programmer... by Anonymous Coward · · Score: 0

    But I don't use any fancy tools besides C, vi and gcc. I don't know anything about agile programming or any other methodologies. Is that still ok?

  67. Be the bridge by Anonymous Coward · · Score: 0

    1. Get back in the game with what you have - meet some people, talk to some recruiters - see what you're likely to need as secondary skills to back up your legacy stuff.

    2. Get the introductory stuff out of the way with one or two of those target technologies

    3. Get hired as the guy who has the chops with the crufty stuff, and the know-how to interface the iron with the hot shit project

    4. ???

    5. Retire again (with profit)

  68. Do it for the love by geber22 · · Score: 1

    If you learn Java you will be gainfully employed, the same goes for C#. If you learn PHP, Ruby, Python or my personal favorite Perl you will be happily employed.

    1. Re:Do it for the love by shutdown+-p+now · · Score: 1

      Or learn both (and more), and enjoy a wider choice of jobs, and the ability to switch them easier if needed.

  69. Academic / Scientific Programming by pz · · Score: 1

    If you are thinking of entering the academic / scientific programming field, which has somewhat lower pay scale but much better benefits and job stability than nearly anywhere else programmers can get hired, then you must include MATLAB as one of your languages. MATLAB looks very much like any other programming langauge (C-ish, Perl-ish, PHP-ish, ALGOL-ish, PASCAL-ish, whatever) except that the types are different and the way one thinks about writing code is different, since fundamentally the basic type is a matrix of doubles, rather than a 32/64-bit integer.

    A good MATLAB coder knows the GUI and profiler and can speed up even library MATLAB code by a factor of 2. A great MATLAB coder knows how to use the GPU / IO / realtime extensions.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  70. Python is a good choice by jrminter · · Score: 1

    I really like Python. It is cross-platform, Open-Source, and has lots of contributed modules. Really fun too. The creator was a fan of Monty Python, so tradition has programmers embed "hints" to the comedy in their code. As a scientist, I really find the numpy, scipy, and matplotlib add-ons indespensible. There are also modules that have bindings to popular databases. I like the MySQL bindings...

    1. Re:Python is a good choice by Stuntmonkey · · Score: 1

      I really like Python. It is cross-platform, Open-Source, and has lots of contributed modules.

      I really like Python too, but I couldn't recommend it to the OP. Python is still very narrow in the range of problems it can solve. You aren't going to write a performance-intensive app in Python. You aren't going to write embedded code in Python. You aren't going to write a (good) GUI-based app for OS X or Windows using Python. The current runtime, CPython, is pretty badly broken in terms of support for multithreading. All of this is to say, it a fantastic language with great syntax, and good for learning and scripting, but as a tool to make great software? Try as I might I can't recommend it.

      For an old-school programmer the biggest delta between the 1980s and today is object-oriented programming. I'd say learn an object-oriented language that you could use to make a great piece of software; depending on platform Objective C, C#, or Java would be good. Then get started on a project, since that's when you really learn. I would stay away from the hairball that is C++, but that's just my personal bias.

  71. You should already know by Anonymous Coward · · Score: 0

    Not to troll but this is a stupid question.
    How did you get into pascal and COBOL?
    Just start as you did back then it's the same thing with different tools. The best thing to do is to think of a small project or program you wrote in COBOL and look up an sdk for a more current language and re-write it. Then don't stop. As long as you can maintain your self motivation. You will get along fine you obviously have a good skill set to base your new learnings around. Take those skills and apply them to a new technology.

  72. Concepts first, then languages by zullnero · · Score: 1

    Without a proper understanding of how the concepts have changed, you cannot understand these languages and you'd never know where to begin.

    First and foremost, pick up a book on object oriented development. Read it, draw diagrams, do some of the examples. Start with C++ and get the basics.

    Second: Don't be afraid to write inefficient code (by your standards). Kids these days don't understand how things were in the 80's when 512 bytes of binary size could demand a near rewrite and massive refactoring. A lot of this stuff is virtualized, like .NET, Python, you name it. It's being run through an interpreter. It's the stuff we all turned our noses up at 30 years ago (around the time I first started getting into programming, anyway, in the very early 90's). These new languages almost force you to write inefficiently (by your standards). They take away the efficiency of pointer arithmetic, bcd, segmentation, and other tricks you could do to shrink your code down. Efficiency, these days, is how fast it runs, not how much memory it requires. Wrap your head around that concept because it's the most fun thing about modern development (unless you're really OCD about memory management, of course).

    Now, jump into a language. I'd take C++. Most languages derive a lot of their concepts from it, and if you get solid with it, you can pick up most other languages fairly easily. Get a book on design patterns...it'll help prevent you from knotting your code up too badly when you jump into your first project if you can pick a pattern or two that fits what you want to do and implement them.

    Last, mobile coding isn't what you'd think it would be. It's closer to web development these days than it is to desktop development. Maybe 10 years ago with Palm OS you would have been able to dive right in, as it was single tasking, segmented 64k memory model, and you could write everything in good ol' C. But since then, mobile platforms have gone all over the map with various ideas. Where you have basically Appleified C++ on iOS, you have non-standard java on Android, .NET C# or VB on WinMob, and either C++ or literally HTML+Javascript on webOS. Heck, even Blackberry OS is basically Java-oriented. My advice is to code out a hello world for whatever platform that strikes your fancy, and see which one is easiest for you to "get". Just because a platform is "hot" in the mobile space doesn't mean it'll stay around...I've been doing this stuff for over 10 years, and the only thing you can rely on in mobile is that whatever's big now will be on the downside soon enough. It's always been a big pitfight in mobile. Just pick the platform you like developing for the most and stick with it, maybe branch out if it's lucrative enough, but don't count on anything sticking around.

  73. You may want to consider ABAP and SAP by Anonymous Coward · · Score: 0

    As I understand it from the guys I work with, ABAP (the language used with SAP systems) is basically just a database-integrated version of COBOL.

    (In the same way Oracle PL/SQL is a database-integrated version of Ada)

    There's big demand for ABAP people generally, and most of the people doing SAP programming are pretty ordinary so it wouldn't be hard to compete if you are an intrinsically good programmer.

    It's worth investigating...

  74. Windtalkers? by Anonymous Coward · · Score: 0

    Dying languages can be extremely valuable.

  75. Drupal by chx1975 · · Score: 1

    While Drupal is PHP and as such some here will snicker at it if your motives for reentering the field is profit then this is where the money is. The global demand for good Drupal coders is WAY higher than the supply and if you are a seasoned hacker, learning PHP is almost just adding $ signs before the variable names in C and getting used to the server-browser separation. Good senior software engineers who know how to deliver instead of being a junior code monkey are even rarer.

  76. Go Embedded by scum-o · · Score: 1

    I live in Longmont, Co and there are a *ton* of harddrive companies around here. Many of them hire for embedded programmers (mostly C and C++). If you know Pascal, C is not a big jump away. Also, I used to work at a weather research facility and there are tons of scientists there that all write Fortran to do their weather modelling. You'd still be very useful in both of those fields. Search harddrive places and harddrive controller places - all very 'embedded programming' friendly.

    1. Re:Go Embedded by Kagetsuki · · Score: 1

      I second this, that's the first thing I thought of. I'll bet you systems like ITRON would seem scarily familiar to what you used to do, and are coded mainly in ASM and C. Embedded is something a lot of high level programmers just don't understand because they never really learned how hardware works in the first place. Programming on older systems like you did required that kind of knowledge, so I think not only will embedded not require you to learn so much new information but will also seem familiar and probably comfortable. Embedded programming is also a field that's not over crowded, you should be quite in demand and finding a job should not be too hard. To get started and used to it you need only buy a dev board and programmer (I recommend Renesas but I'm in Japan where they are big, look for what is big in your country).

  77. Google? by frank_adrian314159 · · Score: 0, Troll

    Good God, if you really can't figure out where to start, you really are too old.

    --
    That is all.
  78. Sad they don't pay for analysis and design anymore by ynotds · · Score: 1

    I'm a dozen years down the same track, though was a lot less intentional when I got back on that horse. Twice, I swore I would never learn another programming language, initially liking the look of C but feeling past it already then looking at Forth and immediately swearing off reverse Polish. I could not have been more wrong. All it took was the right incentive.

    Having privileged very early access to a LaserWriter with the tangible reward it provided of high resolution dots on a page very quickly had me at the leading edge of independent PostScript development, but that morphed into a business opportunity and I again moved on, though at least with any barrier to thinking about the previously, to me, obscure notion of graphical programming thoroughly erased. (There is an aside in there about GW Basic and the false hopes it gave me that VB might be the way to go with some legacy Fortran, providing my final disillusionment with anything M$.)

    Having spent a decade getting paid more for words than for code, I found myself doing some CGI tweaking with Perl which I soon came to see in its c.1998 incarnation as being the ideal language for an ageing coder to return to. A young colleague's accelerated learning soon dragged me through Perl's object model and MySQL, but there I've been stuck for a decade, still waiting for Perl 6 and earning an ever-decreasing drip feed enhancing a system I designed long ago ... largely through choice as I place other values on whatever productive time I have left.

    An aside on SQL: once you accept that it really does very little, it becomes a handy way to deal with lots of stuff. Nowadays I spend as much time writing queries as I do writing Perl 5.

    Given the chance to choose again today, I'd focus on JavaScript and keep waiting for Perl 6.

    --
    -- Our systemic servants do not good masters make.
  79. Jump into Linux, take courses if necessary by leopardi · · Score: 1

    I too was a COBOL and Pascal coder in the 1980s, but wrote mostly in Assembler, then C, for airline reservation and travel automation systems. In the first half of the 1990s I was writing less code and doing more "analyst" stuff. I got a consulting job in 1995 which forced me to upgrade skills and learn configuration and scripting for Solaris, OS/2, Windows NT/2000. I then worked as a secondary researcher and essentially did no coding, but read and did self-study, including studying Linux. In 2000, I went back to university and learnt Matlab, and at the same time invested in my first Linux distro: SuSE Linux 6.3. I subsequently obtained a job at the uni which required me to learn Fortran 90. For my masters project I taught myself C++ by writing an open source library, GluCat. In a later job, I had to quickly learn Labview, IDL, Java and MySQL. I am now a postdoc. My teaching now involves Python and Scilab.

    My point is, if you know how to program, you just pick up a language manual and do it. Preferably do it using Linux, where you don't need to pay for compilers and tools, and the documentation is all on the DVD or on the web. Sure, the learning curve is initially steep, but if you give yourself some credit, you can get started. As a next step, start your own small open source project on SourceForge, or join a simple, small project. I have found, as a coder, the large projects seem complicated and hard to get my head around.

  80. iPhone app developer by rainmouse · · Score: 4, Funny

    If you develop apps for the new iPhone, can I put in a request for an app that uses GPS to direct you towards the nearest public phone box.
    Thanks.

    1. Re:iPhone app developer by stillnotelf · · Score: 5, Funny

      Clark Kent? Is that you?

    2. Re:iPhone app developer by Anonymous Coward · · Score: 0

      It's Dr. Who.

  81. Switch to embedded by solid_liq · · Score: 2, Informative

    You'll find getting back into the field, to program in high level languages with all of your previous experience outdated, to be very difficult. Companies will not want to pay you the salary your years of experience would warrant, and it would be like starting over.

    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.

    1. Re:Switch to embedded by MpVpRb · · Score: 1

      I do mostly embedded work...and I agree

  82. Concepts by Neotrantor · · Score: 0, Insightful

    To stay on top now, you have to be aware of the advanced concepts coming out of functional programming languages. But moreover, you have to get good enough with those languages that it starts to effect how you write java/c#/c++ etc etc. I recommend getting down with Haskell or lisp and choose some industrial languages after you're comfortable with them.

  83. Some Helpful Information by zeroRenegade · · Score: 1
    So a less useless comment would be:

    If you want to get current, you should start by making a sample web page. You need a face for your programming skills, a portfolio of sorts.

    You can either pay $5 a month for a domain and hosting services, or just set up a linux box, install apache and php, and use a free dynamic dns from dyndns.org. If you pay anything more than that for a personal website you are getting ripped off.

    The modern web languages would be HTML, XML, Javascript, CSS, PHP, SVG. Excellent simple tutorials for all the languages are found at w3schools.com

    If you want a greater challenge, I would check out a few mobile platforms. Android and the iPhone OS. They have excellent sample applications, and terrific tutorials on their SDK websites (developer.android.com and developer.apple.com/iphone). They both require a modest developer fee.

    The languages for the Android SDK are Java and XML. I tend to just use Java for the initial setup, and use the NDK (native development kit) for all my complex programming in c++. The main language for the iPhone OS is Obj-C, but since it is just a stripped down and dressed up version of unix, it uses a gcc llvm, (plus many other bsd utilities), so you also have C++ at your finger tips. For C++ check out cppreference, and cpluplus.com for info. I would not write any more obj-c than what is in the sample applications. Any cocoa framework information is found in Apple's excellent online and offline documentation.

    If you want to get into some desktop application development, I would check out Qt (qt.nokia.com). You can either go the Python or C++ route. I much prefer C++.

    The libraries to start with should be OpenGL/OpenGL ES, GLSL, OpenCL/Cuda. There are some outdated tutorials at nehe.gamedev.net, but devmaster.net and gamedev.net are excellent resources. Also, Nvidia provides an excellent GPU computing SDK for cuda and OpenCL, with lots of samples and documents (developer.nvidia.com/object/cuda_3_1_downloads.html).

    WebGL will soon be the standard for online gaming. If you do not want to learn WebGL, you could check out GLGE. (www.glge.org)

    If you do not want to learn OpenGL, GLSL, which takes a lot of graphical theory, then you could try out Ogre (ogre.org). It is an excellent starting point for graphics developers, though a lot of the time it is better to just code it yourself than deal with a lot of the constant changes to an engine that are out of control. Even the simple act of changing a class declaration from a lowercase to capital can be such an annoyance. Plus you become dependent on lots of unsupported aging extensions.

    Another popular skill is writing python plugins for open source or commercial graphical applications (blender, xsi, etc).

    If you take any of these suggestions, consider yourself a contemporary developer.

    If you have become windows dependent, I really suggest you start playing around with a linux distro. I'm sure you are familiar with a CLI style interface. Check out Ubuntu or OpenSuse. If you really really want to develop on windows, then checkout C# and DirectX, which are the popular tools for windows. msdn.microsoft.com is the site to use for information.

    If you want to use an IDE, I suggest Eclipse, X-Code, or Visual Studio Express. But emacs and vim are still the popular choices for most developers. I prefer vim.

    All the OP wanted was some more modern hip developers tell him what languages he should learn. So much ugly negativity. Anyone can program, at any age. I hate that we make it such an esoteric cynical society for which we must have a "no homer" membership to join.

    Development has become so well documented online, that I bet I could teach my nephew to program before he even learns to read. You do not really need to be able to read. You only need to know how to copy and paste. Not that I condone it, but most developers become dependent on the action. Make sure you understand the difference between LGPL, and GPL. Most people do not understand that they are suppose to contribute back any changes, even in the academia environment.

    1. Re:Some Helpful Information by aunt+edna · · Score: 1

      All the OP wanted was some more modern hip developers tell him what languages he should learn. So much ugly negativity. Anyone can program, at any age. I hate that we make it such an esoteric cynical society for which we must have a "no homer" membership to join.

      Well said. A little humanity goes a long way.

  84. 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

  85. Re:Or learn C-flat by digitig · · Score: 1

    Actually if you sharpen B, (go up a semitone) you end up back with C

    Not quite, although not all instruments are capable of making the distinction.

    --
    Quidnam Latine loqui modo coepi?
  86. Take classes by MojoSF · · Score: 1

    One thing that worked well for me is taking classes at UCLA Extension, even working for a certificate. Admittedly the classes are usually pretty lame, and you'll find yourself cruising through them for the most part. It's not the classes themselves that you get most of the skill from, it's just doing organized work in the language, and all periphery skill you acquire along the way. I do much better with scheduled in-person classes that have real homework than with online stuff.

  87. Read "Clean Code", write clean code & keep lea by Uksi · · Score: 1

    I don't know whether you've gotten caught up in the UML/"design lots of patterns"/"writing code is for suckers" hoopla of the late 90's early 2000's--as if you didn't, you'll have a much easier time learning state of the art in development, while being able to apply enough experience from your younger days. (Consider everything that has to do with J2EE Enterprise Java of early 2000's as an example of what not to do.)

    If you want to become current, you are going to need to learn to do:

    1) Test-driven development
    2) Write clean, expressive code (with much less need for comments and documentation)
    3) Object-oriented design, as used to solve actual problems (not just putting functions into classes)
    4) Design for what you need now or in the immediate future and refactor only as needs change
    5) The Do Not Repeat Yourself principle. No duplication or copy/pasting.

    The best advice I give to any starting out developer these days is to read Robert Martin's book Clean Code. It distills the wisdom of many an experienced programmer into a clear, well-explained format. It's Java-centric, but principles apply everywhere. Read it and see why separation of concerns is good, why keeping your functions at the same level of abstraction is good, why the single responsibility principle is good.

    That book is the first book that explained to me properly why I should give a crap about the Law of Demeter. That law has been around since 1987 and yet I rarely came across anything but explanations with sterile, academic examples. Yet, "Clean Code" showed me why it's bad in closer-to-home terms AND, best of all, instantly provided a rewritten version that didn't violate the law and was clearly better.

    One important point: it's not the languages you know, it's whether you know how to code well, design well and analyze problems well. All languages are just tools.

    Modern development has finally stopped pissing over code and began respecting code. Gone are the days of trying to make UML diagrams generate Java (Model-Driven Architecture seems to have successfully passed us by without doing too much damage). In the web apps world, I think Ruby on Rails exemplifies latest thinking in software engineering, namely the thinking of "less code = better" and how to add abstraction layers without imposing code overhead in your application (e.g. convention over configuration).

  88. The good news by MpVpRb · · Score: 1

    Computers are still pretty much the same, most of them still use the VonNeuman architecture

    Logical problem solving is still the same

    Learning modern languages should be easy..Question is, what do you want to use them for?

    If it's a purely academic exercise, to sharpen your mind, pick one of the functional languages, or lisp, or scheme

    If you want to do web stuff, Java, Javascript, Php,

    For embedded systems, C is still king, but C++ can be used as well as long as you keep it simple

    Most of the leading open source stuff is C or C++

    Lots of custom business stuff is using C#

    And python is just plain cool

    If you have a lot of free time, learn them all

  89. Mmmm ... So Da! by Anonymous Coward · · Score: 0

    Least Squares.

    Wall Street firms (and NSF) are all head-up-ass about Auto-Regressive-Moving-Averages (ARM).

    If an "Old School Guy" could make a play on Least Squares, and sell it, then
    a wounderfull thing would happen.

    The Monkeys (on Wall Street) and Baboons (at NSF) would have to eat shit, yet again, their own shit, with a .. Chianti ... Sssss.

  90. Decide what you want to DO... by uncqual · · Score: 1

    Then find out what languages/tools are commonly used in that sector. The goal of "update ... skills for Windows, iOS, or Android" is a little broad. Just deciding "Windows" isn't sufficient -- what sort of problems do you want to solve commercially on Windows - server class? End user GUI tools?

    Also, there's been quite a bit of change from the 1980's in how most software is developed. Before the mid 80s(?) one was likely to write something that either stood alone on top of an OS or interfaced to a particular proprietary application/system with a fairly limited API. Now, it's much more likely that you will interface with several "black boxes" - most of the time your program/function is executing, the computer won't be running in your code but buried in nested library calls or in other subsystems you call. There are exceptions of course.

    Also, the priorities have changed a lot in most development in the last 25 years. Most software development now doesn't need to worry nearly as much about CPU path-lengths and memory footprints as 25 years ago -- the trend of "People are expensive, machines are cheap" continues and has changed the balance a lot. Of course, algorithmic complexity still matters a lot - Moore's Law hasn't yet allowed us to get away with O(n^n) for large n. Internalizing this could be as hard as learning a new language.

    --
    Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  91. Re:Or learn C-flat by matthiasvegh · · Score: 1

    citation needed bud. MIDI doesn't make the distinction, neither does any instrument I know of, so please back your statement up.

  92. Try "Creating a Web Site - The Missing Manual" by millerjwm · · Score: 1

    Consider getting a copy of the book "Creating a Web Site The Missing Manual". This covers HTML for building web pages, PHP for application logic, and MySQL for storing and retrieving data. This communicates clearly how to determine what gets executed on the client machine in the web browser and what gets executed on the server(s). It can also help you get everything you need installed on a PC. My sales pitch for doing this first is that you don't need to climb the object-oriented learning curve until you are ready, you can use the knowledge to build a web site for yourself or a non-profit organization, and you will get a small amount of relational database experience. I programmed in Assembler on IBM 360 and 370 computers so I at least understand your question and concerns.

  93. Basic list of the latest software idioms by Anonymous Coward · · Score: 0

    Software doesn't change. The only difference is that it is now easier to get your job done.

    Learn Python. Be sure to learn to think in Object Oriented style. Python is not great for that, but it is way better than Perl and about the same as Ruby.
    Write a web app using Google App Engine / Python. Learn ReST-ful design. Learn the Rails notion of Model-View-Controller. Learn YAML. Learn to think about semi-structured data (schema-less App Engine Datastore)
    Learn HTML and CSS (Cascading Style Sheets).
    Learn jQuery / unobtrusive JavaScript. I don't even know much JavaScript, but it is not hard to use jQuery.
    Now you know the latest stuff, namely an Agile programing language and application UI as document: aspect-oriented factoring of structure (HTML), presentation (CSS), and behavior (jQuery).
    Learn basic Agile methodology.

    Do not bother learning Perl; use Python instead.
    Rails is a pain in the ass to use despite what people say, but it teaches some good design idioms, such as Model-View-Controller.
    Ruby isn't that great; I would use Python instead.
    It is going to be hard to avoid learning Java at some point.
    Learn the difference between structured data (SQL), unstructured data (bytes), and semi-structured (XML). Semi-structured is the future, but XML is not a human-readable syntax for it.

  94. Re:Or learn C-flat by Anonymous Coward · · Score: 0

    MIDI is not tied to western scales, let alone the even tempered one.

  95. It's not about language by digitig · · Score: 1

    Everybody seems to treat this as if it's a "what language should I learn", and that doesn't make sense to me. The two big changes I see since the 1980s are object oriented programming and event driven programming. Add those two together and it's a whole different way of thinking about a problem. Just change language, and you'll still be producing 1980s solutions in a 21st century language. I would say that the language doesn't matter one iota, as long as it supports object orientation. C++, C#, Ruby, Python, Java, Objective C, Object Pascal, Smalltalk, even Ada95 at a push -- it doesn't matter. If you're any sort of a programmer you'll end up able to switch between them easily. What will take the effort is getting into the modern way of breaking down a problem. So find a good tutorial on object oriented programming, and learn the language that the tutorial uses. Then find an event-driven GUI and learn the basics of that. If you're on a Windows platform then the version of Visual Studio Express for your language of choice is pretty much a no-brainer. It doesn't matter whether it's the same language as the OO tutorial, and it doesn't matter whether it's the GUI you'll end up programming for. You're not going deeply into either at this stage. The key is to get a grasp of the fundamentally different way programs are put together nowadays. Once you have that, then you can start looking at what languages and what platforms you want to fine-tune your skills on.

    --
    Quidnam Latine loqui modo coepi?
  96. Skip a generation: learn Functional languages by Anonymous Coward · · Score: 0

    The world is focusing on multicore processors to extend Moore's Law, but no one knows how to program for them, except the Functional folks.
    Take a look at Scala or Haskell. If you absolutely must do .NET, then pick up F#.

    1. Re:Skip a generation: learn Functional languages by Nursie · · Score: 1

      Bullshit!

      Lots of people know how to program for multicore. I hate this "Oh! Multiple cores are new and nobody knows how to use them!" meme.

      Threading and thread strategies have been around for well over a decade. Multi-process computing has been around since the 80s or earlier. There are lots and lots of professionals in industry that use parallelism all the time. If YOU don't understand how to do that with traditional languages, that's a failing in you.

      Can these new languages bring new, easier ways of handling large numbers of cores efficiently?

      Yeah, probably. But don't assume that the rest of the world is stuck with single processes and single threads, or is necessarily using them badly.

  97. Yes. Learn Python by leftie · · Score: 1

    Go play with Python on...

    http://ideone.com/

    "Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows
    to compile and run code online in more than 40 programming languages."

    Have a book...
    http://www.swaroopch.com/notes/Python

    Have two...
    http://www.greenteapress.com/thinkpython/thinkpython.html

    Have a link to the Python Learning Foundation site...
    http://www.awaretek.com/plf.html

  98. It's a zoo out there! by GrecoGerman · · Score: 1

    Thanks, Timothy, for the entertainment - You stirred up a hornet's nest. I'm probably a contemporary of yours, and you probably remember that the industry has always been fragmented and contentious. Well guess what, it's far worse now! C#, Java, C++, Perl, Python, etc, enthusiasts are all convinced their language is superior to all others. The suggestion to stay with what you know is a good one if all you want to do is make some money. If you want to have fun, though, learn this object-oriented stuff. Don't let them fool you - it is not that easy for an old-style procedural programmer to make the switch. I did it in the early 90's because I had to, but it was a while before I even believed what I was doing was worthwhile. It is worth doing, believe me. Unfortunately, I can't recommend a book which starts where you are - there aren't any. You will either have to get an elementary textbook in C++ or Java and put up with wading through tons of stuff you already know to get at what you don't, or you will have to get a reference manual in your target language and fill in the gaps with on-line searches. It is a hard road, but if you are tired of being out to pasture I suggest you start with C++ and use one of the books by Savitch. C++ is the best vantage point for migrating to any other OO language.

  99. Decide on platform first by lena_10326 · · Score: 1

    I think you should first decide which platform you want to work on then go for the tools commonly used on that. Platforms are basically Linux, Windows, or cellular/iphone/android. With your lack of tool experience and your absence it'll be a tough sell, so you've got to demonstrate you've got desire and motivation. I would first start working on something and setup a website showing off your work. Put your software on sourceforge or equivalent. Make it seem like you're busy and you've got things filling up your day.

    You left out SQL on your list of languages. Knowing SQL is a must for probably 80% of the jobs out there. Try out MySQL or Postgres.

    I would avoid pursuing a web developer only job. They are commonly populated by teams with young graphic designers and programmers. I think older people 40+ are discriminated against among those circles.

    One other thing. It's been a while since you've interviewed for a programming job. Interviewing has changed a lot since the 1980's. Today there is a kind of interviewing culture (or perhaps "language") you should know about. Long gone are the days when recruiters took your word when you said you knew X, Y, and Z. Today you are generally expected to code on the whiteboard and get into nitty gritty details of algorithms and containers. This can really hit you hard if you've not thought about the material in years. Do some interviewing research. Google, Microsoft, Amazon seem to have the model everyone emulates. Read up on Programming Pearls, Programming Interviews Exposed, and reading list and blogs like codinghorror.com

    You should know about the riddle/puzzle interviewing fad that swept the industry between the late 1990's and early 2000's. Ala How Would You Move Mount Fuji. The riddle interview fad has mostly passed (at least for programmers), but you never know if you'll get hit with one.

    --
    Camping on quad since 1996.
  100. 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

    1. Re:And this bile was marked insightful? by Steauengeglase · · Score: 1

      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, prima donna turd, and since my boss doesn't get my social ineptitude and lack of professionalism, he has to be an asshole."

      Often but not always. Some business environments promote and facilitate sociopaths, because they get results and their superiors never question why their underlings are so unhappy, unsatisfied, revolving door, etc. I've thankfully never had one as a boss, but I've seen, worked with and watched the type. Lousy human beings can be found on both sides of the desk.

      There are people out there who like to work. There are developers out there who like to code no matter the years.

      If someone cannot understand this, they should think twice about being in this career.

      Agreed. It is one of the few fields that allows and encourages the creative process and constantly gives you new problems to tackle. It is also one of the few fields where you can't possibly learn everything and if you can't get use to the fact that you are constantly picking up new skills, it probably isn't the line of work for you.

    2. Re:And this bile was marked insightful? by Anonymous Coward · · Score: 0

      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, prima donna turd, and since my boss doesn't get my social ineptitude and lack of professionalism, he has to be an asshole."

      Often but not always. Some business environments promote and facilitate sociopaths, because they get results and their superiors never question why their underlings are so unhappy, unsatisfied, revolving door, etc. I've thankfully never had one as a boss, but I've seen, worked with and watched the type. Lousy human beings can be found on both sides of the desk.

      It sucks. My wife had a boss like that. I offered to have her boss killed ... several times ... she always laughed and thought I was joking.

      Unfortunately, based on how miserable she was making my wife's life, I probably would have, even knowing I would be caught.

      She was as bad if not worse than the irredeemable wretch in "The Devil Wears Prada" (the book, not the softer version the film demanded). Her department continues to achieve near 100% turnover, but the bosses are happy because she "gets results" (and so the rumor mill goes is sleeping with one of them), all while touting her "Christian Values" that let her sleep at night.

      Personally the woman needs a bullet or two to help her sleep ... possibly with a stake to make sure she doesn't "rise" again ... just to be sure.

    3. Re:And this bile was marked insightful? by Domini · · Score: 1

      Some of the things you say are insightful, I too am an 'older' programmer, but I'm constantly keeping up... not because I have to, but because I still find the work interesting. Since I got my first C64 as an adolescent I've always felt an adrenalin rush as I got back to my computer to try and program.

      I started out on basic, pascal, 68000 assembly. But have moved on to perl, python, C#, C++.

      I'm a slow learner, but have deep understanding... it took me ages to get my degree... in the meantime I watched many (although not all) undeserving MS and PHD students pass me by.

      But as long as I have work developing, I am happy. I'm not just an average developer tho, I really have a deep understanding of OO design, multi-threading and distributed systems development.

      But things are not that simple (perhaps for me at least). I lost my job because our whole division got axed... and I too (like you) had many headhunters look for me while I was working, only for them to disappear when I called on them. Most of those headhunters are tasked with accumulating resumes of people they have no intention of hiring just so that some company can fill a quota and get the person they want anyway (in most cases this is a foreign visa candidate)

      For finding work my best results have been craigslist strangely.

    4. Re:And this bile was marked insightful? by Anonymous Coward · · Score: 0

      Couldn't have said it better myself. I've never had trouble being employed, with interesting work, a good work environment, and good to excellent pay. I've been at this for over 12 years now. Been through the ups and downs. The people I know that can't find work in the down times are ones I personally wouldn't want to work with (or clean up after). If you are good, really good at what you do, you will always have opportunities. When ever I hear someone griping that they can't get work in this field, I immediately think "You probably aren't as good as you think you are".

    5. Re:And this bile was marked insightful? by Anonymous Coward · · Score: 0

      "Depends on the programmer"

      Does it depend on the programmer or the location? Local company here just dumped 500 employees (alot of them developers), outsourcing to India. Probably not enough local positions to hire 10%.. does that mean the other 90% suck? Or that it's "ugly out there these days."

    6. Re:And this bile was marked insightful? by Anonymous Coward · · Score: 0

      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.

      Java string concatenation is just fine for simple or rarely accessed operations where the performance hit is negligible. Plus it makes code more readable/maintainable.

      See: http://fishbowl.pastiche.org/2002/09/04/the_stringbuffer_myth/

  101. If you can't talk without being rude, don't talk. by leftie · · Score: 1

    If you really can't figure out how to talk to people without being an asshole, don't talk again, Frank.

  102. The last, final and only language you will ever .. by xmorg · · Score: 1

    need is C. no pounds, no pluses, no coffee, no snakes, no snakes in your coffee. Just C.

  103. Be an Architect by Anonymous Coward · · Score: 0

    Just put Architect on your resume and your title. Nobody will dare question your skills. Then learn on the job!

  104. Parallel Processing - pthreads, MPI, CUDA by nigels · · Score: 1

    Aside from all the interesting suggestions made here already - one challenging area to engage with is parallel processing. Google for CUDA, OpenCL and pthreads for an idea of where things are heading for processing intensive applications, that might once have been the domain of Fortran. Indeed, there is probably a whole lot of Fortran code ready and waiting to be adapted to CUDA, and Fortran expertise a bit hard to come by.

  105. Bridges by mattr · · Score: 1

    A lot of good comments in this thread already so I will only add one more vector.

    The comments are about how to learn new languages/paradigms, and also to try and market yourself as a specialist.
    I'd like to add that the days are gone when companies can afford years-long rewrites of legacy systems converting to SAP, etc. Instead of interfaces being built from every system to every other system, just one interface is made to a data hub system that mixes and reroutes everything.

    Even if systems do end up being totally converted to new platforms, there is a need to run the old system in parallel for some time (years possibly).

    The point being that someone has to build these interfaces. You could be the specialist who gets hired onto a team to do this. If you can get yourself hooked up with a software house that has a chance at getting these jobs then it is possible you would get jobs one after the other in a stimulating atmosphere where you could see what other things are going on today.

  106. Cobol Not Necessarily Outdated by Anonymous Coward · · Score: 0

    I don't think that COBOL is necessarily outdated. I just graduated from university and had a 6 month COBOL training class first thing starting out at an insurance company. I am not using it now (am working with database design) but it is a plus to know. Business is slow to change, particularly since there are things that COBOL does well that there isn't really any answer for with newer languages (and why change something that works, particularly when it costs money).

  107. uh by buddyglass · · Score: 1

    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.

    Those are some pretty disparate technologies you've listed here. Of them, I only know Java and I manage to make a living. My advice would be to first sit down and figure out what sort of programming you actually want to "do" with an eye towards choosing something realistic. Do you want to write thick apps on Windows? Then gear up on C++ and Windows development in general. Though, I'd say that focus probably has a pretty high barrier to entry. Do you want to write business software deployed on *nix? Java's probably the way to go. Etc. Once you know what you want to do, the question of which knowledge to acquire is much more straightforward.

  108. but a paradigm is not a paradigm by Anonymous Coward · · Score: 0

    a language is a language. However, I'm not worth a shit with OO or objective languages. However, I can make an assembler stand up and beg. I recommend he fucks about a bit with the hardware that cobol and fortran are running on now, and throw some bullshit on his resume to get past the HR tools.

  109. HTML5 by nog_lorp · · Score: 1

    whatwg.org/html5/

    Best resource.

  110. iTunes U by TRRosen · · Score: 2, 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.

  111. Re:Or learn C-flat by Khyber · · Score: 1

    You don't know about instruments, then. B# can exist in instruments without set note intervals. Trombones are one example.

    And get off the citation needed nonsense. Around here, most people actually know what they're talking about.

    I've been in music, horticulture, and computer science for 2+ decades. Working on year 25 as we speak, actually.

    --
    Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
  112. Easy way or hard way? by CrazyJim1 · · Score: 1

    Easy way:

    Figure out which commands are synonymous with your known functions, and code how you always have.

    Hard way:

    Take a class and learn some new languages. You can still come up with your own coding style instead of doing everything to your prof's methodology. But he'll teach you some optimal ways.

  113. Learn PYTHON by lalitp · · Score: 1

    I too am 70's & 80's era computer programmer. I was very proficient in FORTRAN and IBM 360 assembler. Among the new languages, I find that PYTHON is somewhat similar to FORTRAN, but more powerful. I suggest that you learn PYTHON

  114. Exactly right by sdnick · · Score: 1

    If you are proficient in as many languages as you state, then learning "modern" languages will be no problem.

    This is very true. If you know how to code, you know how to code. Especially if you have some familiarity with C, it simply isn't very hard to become productive in Java, C#, Javascript, ActionScript, etc. And even if you don't have familiarity with structured programming languages, you'll find the "modern" languages much easier to learn than COBOL or FORTRAN ever were.

    Just start writing code - the ability to program matters more than the language used. Same as it's always been.

  115. Anonymous by Anonymous Coward · · Score: 0

    Shoot yourself nigger

  116. Wait by eclectro · · Score: 1

    Submitter is DonLab....Don...Don... DON KNUTH! Is that you? Is this the "exciting announcement you were going to make?

    --
    Take the cheese to sickbay, the doctor should see it as soon as possible - B'Elanna Torres, "Learning Curve"
  117. Re:Or learn C-flat by mwvdlee · · Score: 1

    I've been in music, horticulture, and computer science for 2+ decades. Working on year 25 as we speak, actually.

    I wonder what kind of job requires you to practice music, horticulture and computer science at the same time. And can keep you occupied for nearly 25 years. I understand doing music for some years, doing horticulture for a few and computer science for the rest, but combining all three of them in a single full-time profession for nearly 25 years just sounds highly improbable. Or do you include a few hours a week as a hobby for a year as full year of experience?

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  118. Tried to post this before by Anonymous Coward · · Score: 0

    You sound like a real bona-fide nerd. If that's the case, you don't need our help.

    But you're asking for it anyway.

    I say, be a web programmer. You need to learn about 5-10 different skillsets, and excel at all of them, and you never will get credit for it. It sounds like exactly what you're looking for.

    Do that and come talk to me in 3 years and we'll talk about you getting a 100% raise.

  119. I am Ruby, hear me Rail by grikdog · · Score: 1

    Just looking at stuff on my personal laptop, I've used Ruby, Perl and PHP, but stick with BASH for most quick scripting. If it gets complicated, I turn to C, and if it gets downright annoying, C++. I like Code::Blocks IDE, because it handles most of my needs. It's not Visual Studio by a long country mile, but quick and dirty. If you're coming from Mac's Code Warrior tradition, been there done that, but not a clue what's current or what's next in that country. Apple has a tendency to get religious about C variants nobody uses in the real world, but that might be a reason to look into their stuff. It looks like the future is tiny apps on tiny platforms, with a distributed scalable model attaching everything together in clouds that don't actually live on particular platforms, but do have to live somewhere. So maybe that's a clue.

    --
    ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
  120. asking slashdot for advice by Anonymous Coward · · Score: 0

    If you're the type to post a message to slashdot asking for advice, you've probably got no hope.

  121. If you're in for the fun, go for Javascript by Anonymous Coward · · Score: 0

    Take a look at node.js, JSDB, Narwhal/CommonJS.

    Javascript is incredibly easy/fast to learn (except for some quirks) and also very enjoyable and powerful. Any of the mentioned platforms should give you plenty of practice and get you up to speed on bleeding-edge asynchronous/event-based programming.

  122. Robotics maybe? by Billy+the+Mountain · · Score: 2, Insightful

    Timothy, Hopefully you read Slashdot from the bottom up like I do. A lot better signal to noise ratio that way!

    Consider getting hands on with hardware and robotics and do the programming as well. The robotics field is only going to continue grow. Simple single-purpose robots are common. Think in terms of 3-D printers, Automated labs in a box, Beer brewing machines, CAM robots, etc. All of these are can be controlled by microcontrollers. A microcontroller (mcu) is a true computer on a chip. Even the memory is contained on the single chip CPU. What would be neat about going into this industry is the programming will start out pretty simply--pretty much where you left off in the 80's. This is because the mcu's are still pretty simple (cheap too--you can buy 5 Arduino mcu kits for $50). You can start by building simple robots and go to more complex ones and relearn/transition into the trade as you go. Also as far as programming languages go, you can use BASIC for PIC, C for Arduino and Java is available for some mcu's as well.

    BTM

    --
    That was the turning point of my life--I went from negative zero to positive zero.
  123. I'm a non-gui programmer in this day and age by OrangeTide · · Score: 2, Insightful

    I write system software mainly, basically unixy bits for network appliances, enterprise servers and consumer electronics. I tend to read assembly a few times a month. and my idea of graphical programming is how to access the memory mapped registers to program the graphics controller. I also use zero C++, because Linux and the other OSes I work on are very C heavy. For an old school developer I think C is probably going to feel very familiar to things like Pascal and the various system programming languages of the 70s and 80s.

    Picking up Objective-C and writing some iOS apps is pretty straight forward really, and not that hard to pick up. You have to have some talent and artistic flare to be good at it, but it's not that hard to throw up some widgets or draw some OpenGL ES graphics.

    --
    “Common sense is not so common.” — Voltaire
  124. Agreed, 110% on 1 part by Anonymous Coward · · Score: 0

    a Real Programmer Can Write in Any Language. by omar.sahal (687649) writes: on Sunday August 01, @07:21PM (#33104972) Journal

    Agreed, and I really cannot understand this guy who wrote the post story: I program in each of the languages he claims to have used, and adapting from FORTRAN or especially PASCAL is easy to make a jump to C/C++ pretty much, and then JAVA is cake once you've done C++ I feel. Any "real coder" realizes it's not so much about syntax as it is CONCEPTS in programming. You simply have to have a concept of what it is your are out to do, and then, check the syntax or even example code in helpfiles to do it basically! I actually wonder if the guy who the story's about actually really IS a coder in fact because of this. I had to make the same "jump" myself, and even picking up on JAVA and .NET was simple and I came from a FORTRAN, COBOL, ASSEMBLY background! Fact is, imo @ least, the "weirdest" language I've seen lately from the most "newish/latest-greatest", has been Objective C in Eclipse (not crazy about it here is all, it's "different" imo, too different, and other languages such as C++, JAVA, and .NET are just more used from what I have seen on paying jobs at this point from what I have seen).

  125. Those who can't..... by peterofoz · · Score: 1

    Those who can't do, teach. Those who can't teach, manage. Those who can't manage, consult.

  126. Re:Or learn C-flat by 91degrees · · Score: 2, Funny

    I wonder what kind of job requires you to practice music, horticulture and computer science at the same time. And can keep you occupied for nearly 25 years.

    Tech guy for The Wurzels.

  127. A real coder by jandersen · · Score: 1

    It is unusual to meet a real coder in this day and age :-) (Note for the younger generation of programmers: before you get all emotional about this, please note the ":-)" symbol - this is called a "smiley", and it indicates that the previous statement should be received in a light-hearted spirit)

    As for what languages to learn and how to go about it, I'd say C and C++ are the ones to go for. C is what Pascal and assembler should have been in a more beautiful world; if you don't already know the language, I would say you will find it easy, knowing assembler. There is nothing in C that you can't think your way out of logically, knowing the basics of the language; and the majority of modern laguages are built more or less over the C paradigm, so they will be easy to master once you know C.

    C++ in many ways the encapsulates the spirit of most modern object oriented languages; this is just my view - I know it is a subject with many emotions attached, and I will probably attract a number of corrective comments. None-the-less, if you master C++, all the other oo-languages will present no difficulty, and although C++ is several orders of magnitude more complex than C, it possesses the same beauty of logical completeness as C. I have often thought something like "... logically I should be able to do so and so, but it seems rather too bold ..."; but it always turns out to hold water.

  128. Go Embedded! by Anonymous Coward · · Score: 0

    If you don't want to learn a whole bunch of new concepts & languages, consider working in the embeddded systems/microcontroller area.
    The architecture and limited capabilities of low to mid-range microcontrollers will be familiar to 1980s programmers, and your understanding of how to efficiently use systems with limited resources will be a valuable skill. Nobody uses anything more advanced than C to program them, so there are no major new mindsets to get your head around.

  129. Use your strengths by Peter+(Professor)+Fo · · Score: 1
    As programmers get older their sharpness of brain fades (making quick and accurate coding a struggle) while their experience and ability to take a mature overview of a project improve. You aren't the mental athlete you were 30 years ago so bear that in mind when building a mix of computing skills.

    If you want a gentle lead-in to web-ish programming then PHP will be a doddle and give you the opportunity to get your feet under the OO table without a straightjacket. There are lots of fun things you can do with it quite easily: Getting to know the front-end of HTML,CSS etc., URL wrappers, and of course interfacing with the database of your choice. Also there are many PHP frameworks (quality and approach may vary) which are an important part of a lot of people's thinking nowadays.

    If you want to get more involved with 'native' code then there are so many choices. There are two 'modern' paradigms, OO and event-driven, which are a big change from FORTRAN but not difficult to understand. Java is cross platform and has plenty of meat on if from a programming perspective.

    Might I suggest that you become familiar with something 'more modern' but look towards design and management as a mainstream activity.

    1. Re:Use your strengths by Dunbal · · Score: 1

      As programmers get older their sharpness of brain fades

      Citation needed. Not all older people have Alzheimer's.

      --
      Seven puppies were harmed during the making of this post.
    2. Re:Use your strengths by Peter+(Professor)+Fo · · Score: 1

      Not all older people are crippled but that doesn't mean they can run the 10,000 metres as fast as they did when younger. The sort of intellectual athleticism that is real programming (I can't speak for the average plodder - I'm talking about the programmer who is a number of times more insightful, productive and less error-prone than the majority) is subject to general age-related effects.

    3. Re:Use your strengths by Dunbal · · Score: 1

      You are attempting to compare physical strength with mental ability? Perhaps you are not as mentally agile as you believe yourself to be.

      Any senior citizen with a mental deficit is suffering from a disease. "Senility", which used to be something accepted normal as you aged, is now known to be the symptom of a problem. Trust me - the medical degree on my wall assures me that I know whereof I speak. You are merely aware of the old stereotype.

      Fortunately for you, it's not true. So by the time you reach 80, assuming you've kept your blood pressure, thrombi, neurodegenerative diseases and all those other CAUSES of "senility" under control, and haven't banged your head about too much, you should be just as agile as you are now - or perhaps even smarter. It turns out you CAN teach an old dog new tricks. And because he's an old dog, he probably knows quite a few more tricks than you.

      --
      Seven puppies were harmed during the making of this post.
    4. Re:Use your strengths by Peter+(Professor)+Fo · · Score: 1
      Rubbish. Loss of mental faculties is part of the normal ageing process which is just that. But the medical profession need things to 'treat' at a profit - modern snake-oil salesmen. For a classic, up to date, example of over-diagnosis look no further than the following link.

      http://www.bbc.co.uk/news/health-10787342

    5. Re:Use your strengths by Anonymous Coward · · Score: 0

      > Rubbish. Loss of mental faculties is part of the normal ageing process which is just that.

      All it takes is a single old person (say, 80+) who is mentally sharp with a good memory to disprove your assertion. I have known several, and I bet you have too!

  130. Carry over could be alright by KingAlanI · · Score: 1

    I figure your skills with old languages, having familiarized you with general programming concepts, should carry over fairly well to new languages, even though there are a lot of changed details.
    Old knowledge may lie dormant, but hopefully it will come rushing back once triggered.

    --
    I listen to both RIAA and non-RIAA stuff if I like the music, tangential business/politics nonwithstanding.
  131. Help California by data2 · · Score: 1

    As some have already suggested, the languages you know are still in use today. Just remember the news about California's COBOL-system http://www.infoworld.com/d/developer-world/californias-cobol-conundrum-067

    As to learning languages, I would go about it as I go about learning any new language. I read the first few pages of some manual for it (which you really can just read if it's not your first language), and then start some kind of project.
    Also, try to read code by renowned programmers, as they oven write great code and you can pick up one or two things from them.

  132. Google teaches it very good : by unity100 · · Score: 1

    you simply start a project. ie, a website idea. a small website to do X. then you start asking google questions. for example, you need to do Y at any given moment for the project. all you need to do is to correctly name the operation - ie 'creating an inventory table in mysql'. google it, and voila - you will see there are hundreds of people who did it before you, and with cases too. even so that you may start going deeper and deeper from ensuing links, ending up in random analysis of best inventory table practices in mysql from here and there. of course this is not advisable at your level yet.

    you have created a proper inventory table in mysql ? alright. move on to next question. for example, 'inventory website in php'. whoa broad topic. a lot of stuff. identify what is your particular project is similar with, and go deeper in your query. on and on.

    you can ask anything you dont know. ie, how to do a mysql query in php. on and on, you will start to learn your language. AND, most important thing is, the most important thing for learning and doing anything, the enthusiasm, will never fade away, because you will always be reading up on the very exact question that is in your mind, instead of having to go through tedious course books that tell a million irrelevant things to the question at hand, until they come to the point you need.

    1. Re:Google teaches it very good : by nOw2 · · Score: 1

      Yeah, I've rescued projects which were originally written by copying and pasting from random websites over the web.

      It's a nice way to pick up a new language quickly if you already have some skills, but it's not a substitute for skills.

  133. Re:Or learn C-flat by digitig · · Score: 1

    As Khyber has pointed out, the trombone can make the distinction. All brass instruments can, actually; the trombone does it with the slide, the French horn with the hand position and the rest with the lips. So can all string instruments (unfretted ones more easily than fretted ones), most synthesizers, and, of course, the human voice. The tempered scale that keyboard instruments are usually tuned to is a compromise, and when good musicians don't have to make that compromise they usually don't. I doubt you'll hear a good quality string quartet playing using the tempered scale.

    --
    Quidnam Latine loqui modo coepi?
  134. From Another old hand by business_kid · · Score: 1

    It strikes me that a goodly number of Industrial companies would need support for older software. The cycle is this: A company buys a machine ($0.5M) and runs it for 5 years. During that time, the developers move on, work for the opposition or generally become obnoxious and if you ring up looking for support on a 7-8 year old machine nobody remembers any of it! As for the approach, if you know C, C++ isn't that bad, but wherever you go you need the ability to keep up to date with many languages, and learn what's coming out. I would do an open source project. Adopt a redundant one needing maintainers, or do your own. Then you'll have something to be hired on. People won't hire cobwebs, they need current skills.

  135. Web by ciw42 · · Score: 1

    I've been developing professionally for 25 years, and used a good many languages and environments in that time, including all of those that you mention.

    The vast majority of our development these days is web delivered apps, which in general appears to be the way things are going, certainly in the Enterprise. They might be a bit more work to develop, but from a deployment and maintenance point of view they're fantastic.

    So, if you were to spend some time learning HTML, CSS and Javascript, then you'll be in a fine position to develop not only websites and desktop apps delivered through the browser, but also apps for the iPhone/iPad/iPod Touch, Android devices and several others using the likes of PhoneGap or Titanium. These basically act as a wrapper around your web app and give you access to things like GPS, touch events etc. from within Javascript, as well as allowing installation in the same manner as a regular natively coded application.

    Of course, you'll need a server side language, and whilst C# and the Microsoft .NET framework are actually pretty good, you'll be stuck with an IIS back end and therefore Windows on the server. The Mono project will give you a fairly similar environment on other platforms, but I've found that you run into minor problems which are an annoyance, and so would recommend PHP, which is a pretty good language that's a natural fit for web development, can be used in a procedural manner (as that is likely what you're used to) or Object Orientated once you're happy with the concepts, and will run on pretty much any platform.

    This setup doesn't however exclude you from developing "local" desktop apps, as something like XAMPP (which you'll probably use for your development environment anyway) will give you a pretty small install that includes a web server, database, PHP and various admin utilities, which can be dropped on the user's machine. In a small production environment, you can also use XAMPP on a server. If the size of your installs is a major issue, then there are a number of tiny web servers which can just be dropped onto a client machine, and I set up one a while ago which included PHP and the relevant libraries that came in at under 2.5Mb when compressed.

    You may also like to take a look at ExtJS and Touch from a company called Sencha. Whilst there's a bit of a learning curve, these Javascript libraries/frameworks provide you with a toolkit of client side components which allow you to build apps that look and behave in a very similar manner to their classic desktop GUI counterparts, and end-users tend to like that sort of thing a lot. There are other frameworks which do a similar job, but coming from a traditional GUI development background, I found that they gave me a familiar set of controls and a similar event model, which just seemed right.

    If you go the PHP route, also consider using something like CakePHP for building your back end. It's a modern Model-View-Controller framework which provides a simple and scalable way to build a model driven back end, handle routing to give your application structure, and maintain a separate set of presentation pages, which depending on your application may simple be dumping out JSON or XML data. CakePHP will even automatically build you a "scaffold" which is essentially a simple web application for administering your database. You'll probably not want to use this scaffold for anything other than testing, but you get a lot, very quickly, for very little effort, and it's a good way to learn how it all fits together.

    There are a lot of very good free applications out there which you can use, especially if you choose PHP as your back-end language, and with one exception (a designer for ExtJS front-ends from Sencha which is great for prototyping) everything I use day-to-day is free, and in most cases cross-platform:

    - XAMPP (Apache, MySQL, PHP, FTP server, essentially a full server back-end which you can run locally on your machine)
    - Netbeans (in my case the PHP v

  136. Start with what interests you. by nixNscratches · · Score: 1

    There are all kinds of different 'coders' these days. They have their own idioms, ideals, tools and culture. You will find people who will try to convince you that Python is the Holy Grail, others will tell you that Ruby is the one true path. (Although usually the story is so over the top, you end up missing the simplicity and beauty of Ruby, all you know is she got "Railed" for three days straight and is now servicing millions of requests, at least when she's not busy batting eyelashes at some Mongrel or really anybody as long as they have a really Fast CGI.)

    Most development these days is taking place between all these tubes that make up the interwebs. That means you're usually looking at something that runs on, through or near some sort of web or app server. Set yourself up with a local web server or app server configured with whatever jingles your bells, and get to it. There is no right or wrong way to go about it, and even if you kiss a lot of frogs, you'll eventually find your favorite way to php/jruby/jython/plone/java/flex/lasso/squeak/perl_mod/whatever your way into web programming and Service Oriented Architecture (Which is just a fancy way of saying functions (which are now methods) are actually now web services, that you call remotely (But not like COM or CORBA remotely) but more like REST or SOAP remotely, but at the end of the day they do the same darn thing. Along the way if anyone asks you about relational databases, give them a smug look, shake your head knowingly and walk off muttering something about an impedance mishmash and threaten to hibernate until they propel the conversation elsewhere.

    Of course, none of this is going to matter because the world will end tomorrow. Now if you'll excuse me, I need to pack my towel and go get some beer.

  137. One step at a time by Anonymous Coward · · Score: 0

    Try Visual PunchCard++

  138. leverage your old school skils by lophophore · · Score: 2, Insightful

    Leverage your old school skills, and learn mainframe assembler, too.

    Many of the people who knew how to do this are retiring, but the systems and software they built is still running, and requires maintenance. There is going to be a huge skill gap when the rest retire.

    --
    there are 3 kinds of people:
    * those who can count
    * those who can't
  139. C is still relevant by Anonymous Coward · · Score: 0

    C is still relevant today, but things have changed. This is a good start to see what the differences are between then and now: http://varnish-cache.org/wiki/ArchitectNotes
    Also, poll() and select() are _way_ out. Take a look at libev, http://software.schmorp.de/pkg/libev.html and use it. It's the easiest and fastest way to write anything that involves a main loop. I sure wish someone would hack glib to use this, it could perhaps improve overall Gnome performance a lot.

    Proper hashing has become some sort of science in itself, take a look at this: http://burtleburtle.net/bob/hash/doobs.html . I'm using a modified version of hashbig that operates on aligned pointers myself.

    Also, Parrot VM is an interesting project to keep on your watch list: http://parrot.org/ It's a very fast VM and speaks many languages, this is especially useful for code that changes more often and isn't performance-critical.

    strncpy and strncat evolved into strlcpy and strlcat: http://www.gratisoft.us/todd/papers/strlcpy.html . If you need to pick an encoding scheme you should use UTF-8. Maybe UTF-16 if you like wchars, but otherwise UTF-8 and nothing else.

    And finally, using C99 is ok now, C1X is under way.

  140. Charting a natural evolution: Obj-C by MurrayTodd · · Score: 1

    In my experience (which is as biased as everyone else here giving advice) your Fortran and COBOL are worthless, if not a little dangerous because the functional programming paradigm runs counter to object oriented programming, Model-View-Controller design patterns, etc. The assembly experience is, on the other hand, valuable because so few of these kids coming into the job market really understand the difference between a stack and a heap, understand what a pointer really is, etc.

    In other words, the degree by which your lower-level language experience can give you an inherently deeper understanding of what's going on in higher-level languages may be your saving grace.

    If I were to offer a programming language of choice for you, it would actually be Objective-C. (Thus, I would tell you to target iOS for learning your first platform.) It is the simplest superset of C you can find, and it has strong origins to the 1980's, and thus may seem the most familiar/comfortable to you. Given your description of your experience and background, you might be well suited to follow the (free) Stanford iPhone/iPod Touch development course that's available from the "iTunes U" section of the Apple iTunes Music Store. That's an undergrad level course aimed at developing Objective-C and getting started in that environment. And it's FREE.

    One last piece of advice to get your head around: make it your mission to write GOOD, ELEGANT code and not prolific code. If I were interviewing you for a job, hearing about hundreds-of-thousands of lines of code would give me the most hesitation. Less is more, and I would want a person who spent 80% of his time thinking about how he was going to solve a problem and 20% of the time doing the implementation. My own experience working with Fortran programmers (in the 90's) was that they rarely understood this, and often wrote GIGO.

    --
    Murray Todd Williams
  141. Re:Or learn C-flat by Zaphodox · · Score: 1

    Does it not depend entirely on how you have tuned the instrument? B# in a bizarre avente garde jazz tuning ("hey lets invent some new notes, after g... we could call them h and i. Oh shit! yeah lets decimalise the bastard!") is a significantly different tone to B# in a classically tuned instrument. Now if your talking indian and chinese instruments that opens up a whole world of weird takes on the concept of B#!

  142. just finished doing this by Uzik2 · · Score: 1

    again. Shame on you for losing them!
    Do a survey of the help wanted ads. The big contenders seem to be C++, Microsoft C#, or for Java. Pick one.

    --
    -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
  143. Programming has Changed... by NotNormal · · Score: 1

    Sounds like you've done a lot of procedural programming. Programming now requires a different mindset than you've probably used in the past. I would recommend the following books: Code Complete: A Practical Handbook of Software Construction is a good book to get you started thinking in a more object-oriented way. Design Patterns: Elements of Reusable Object-Oriented Software is a very practical guide and great shelf reference. These will probably be much more useful to you than being told to go learn x, y, z languages: since they will help you write GOOD code in x, y, z.

    --
    ~ Normality is merely the achievement of the mediocre...
  144. Ruby by Anonymous Coward · · Score: 0

    "...writing hundreds of thousands of lines of ALGOL, FORTRAN, COBOL, and Pascal programs"

    So, what, like the functional equivalent of 10 lines of Ruby?

  145. Re:Or learn C-flat by mdwh2 · · Score: 1

    And get off the citation needed nonsense. Around here, most people actually know what they're talking about.

    Citation needed?

    (sorry)

  146. Try Obyx - fast entry, modern. by mrthoughtful · · Score: 1

    Don't learn PHP or PERL
    There are far better alternatives - try eg Obyx ( http://www.obyx.org/ ) if you want to play with web applications.
    iPhone applications programming is also pretty easy, and brings you up to date with the modern world of OO, event-based processing, multiple threading etc. - But that's Objective-C / Objective-C++

    If you know C, then C++ is also a good start - it probably offers the richest programming environment there is.

    --
    This comment was written with the intention to opt out of advertising.
  147. Re:Or learn C-flat by Chysn · · Score: 1

    MIDI just calls them 0 to 127. It doesn't give a rat's ass what note is actually played. MIDI also uses a serial data stream, so notes can never be played at exactly the same time, but yet some scores call for "chords" to be played.

    --
    --I'm so big, my sig has its own sig.
    -- See?
  148. Well, you could do worse by aunt+edna · · Score: 1

    Those old languages were dealing with a different set of requirements than exists now -- Stock Control, Payroll, Accounts Pay/Receivable and so on. Mostly covered by SAP & the like nowadays, I think: anyway, development of essentially 'batch' programmimg has diminshed quite a bit.

    If you're more comfortable with the 'back office' (i.e non-gui) side and you favor 'serious' development work, I'd hazard a guess that Java is the way to go. Not any of those noble recent languages, Perl (not so recent) or Ruby or Python. Not C# because, well, who does enterprise stuff using Windows anyway? - plus MS will not be porting it to any other o/s in our lifetime.

    One thing about Java: it's a cinch to install. Eclipse is a v. good IDE & there are some 1st class video tutorials for it, where you'll also learn some not-bad Java. (http://eclipsetutorial.sourceforge.net/)
    If you go for Java, steer clear of the various frameworks out there until you're good at Java; do get a good book on Design Patterns, whatever you do, Java or not.

    One thing about C# -- it's a dog to install, as is SQL Server and the rest of the mongrel assortment of pieces you'll need.

    You'll need an rdbms, too: Oracle comes free for PC & it's not a cut-down version. Sybase do the same. As do Berkley, MySQL and just about anyone else. Sybase installs in about 5 minutes.

    If you end up learning Java & thinking of adopting some other serious language, you won't have lost out, because your knowledge of O-O will be valuable going forward.

    Java + Sybase + Eclipse -- smells good to me!

    Best of luck.

  149. Re:Get hired for what you know, then widen your sc by Anonymous Coward · · Score: 0

    Yeah, right.

    What's REALLY fun is when the HR people, who haven't removed their cranium from their rectum in recorded history, want a COBOL programmer who is under 30. "Yes, I see that you have 5 years experience(I lied downward by 10 years, I have 15+), but we're REALLY wanting to give a up and coming programmer a chance, do you know anybody with, maybe, 2 years experience?"
    "No, I'm the only COBOL programmer I know under the age of 50."
    "Oh, OK, thank you for your time.".

  150. write a game by i0wnzj005uck4 · · Score: 1

    I suggest writing a game. Even if you're not a gamer, cloning Tetris or Pac Man on modern hardware isn't trivial and can help you learn the ins and outs of multiple different aspects of the system, from graphics to sound to file IO. Also, if your plan is to target phones then I highly recommend the Corona SDK. It's in beta right now, so there are still odd issues with it from time to time, but it's a simple API with enough power for most small projects and you'd be able to target multiple phones in the end. Lua is an interesting language, but protects you from a lot of the more tricky bits of languages like C++. There's also PyGame. Python is (for me, someone in the animation industry), the most important language to learn, and it's powerful enough that I can't remember the last time I had to write C++ code.

    --
    - Cloud
  151. Do you really want to be a code-monkey? by WilliamTheBat · · Score: 1

    I found myself in a similar place recently, trying to relate my former programming prowess (nobody uses Forte anymore.. heck, nobody used it back when I used it!) into a nice comfy development job like I had back in 2000. I got some great advice from my friends though. When a company wants to hire code-monkeys, they either want someone fresh out of college who will work 80 hour weeks for beer and hot-pockets, or they want to go offshore to save money. But as someone with management experience in another field and good people skills and communication skills, I could make the kind of project manager who understands both the tech and the people. While It looks like I might end up doing something else entirely, this advice got me to think outside the box. As much as I love the mental stimulation of coding, it might not be the best career choice.

  152. Google Go! by Anonymous Coward · · Score: 0

    It seems like you were on the forefront of programming at one time, so it doesn't make sense for you to start now catching up on a mature language. I'm surprised I seem to be the first suggestion for Google Go!

  153. Path of least resistance by gwappo · · Score: 1

    I think your two issues are programming mindset (code today is structured and designed differently from code in the 80's - a lot of innovation is not in programming languages but in how programming is approached.)

    Work from your Pascal experience:
    - Learn Delphi, this will get you into Object Oriented languages while building off your Pascal experience - this gives you a strength to fall back on.
    - Using Delphi, write various GUI applications, this will move you from a procedural style of programming to todays event-driven style of programming.
    - Having mastered Delphi, move to C++; the two are similar enough to allow you to translate the concepts from Delphi into roughly equivalent C++.
    - Write GUI applications in C++ to see how modern platform APIs work (Qt, win32, wxWindows, dare I suggest MFC?)
    - You can doodle with C++ more advanced features (templates etc.) or decide not to bother, however following C++ you can move to "higher" languages like Java and C# if desired, or move toward dynamic languages like Python and Javascript.
    - Write a server-app in a few of those; don't bother with scaling any of it, but make sure the code elegantly handles any and all error conditions.

    Then you should be in the modern world.

  154. You'll have to junk your intuitions by Anonymous Coward · · Score: 0

    I did a similar thing a few years, and the hardest part wasn't learning languages, but putting many of my intuitions on the junkheap.

    I became a powerful programmer in the 80s, partly because I always "felt" the performance issues in code. Multiplies gave me a small headache, additions seemed light; I always knew how the bits were laid out in any program I wrote. All these intuitions shaped every line of code I wrote to be fast, memory-efficient, and self-contained.

    I stopped coding for a while, and came back and discovered that these same intuitions were just horribly problematic. Some were dead wrong: multiplication and addition now take the same amount of time, which is approximately zero for 95% of applications. Some were irrelevant: memory is so plentiful that as long as don't do anything stupid, it's infinite--nothing at all like the 48K limits I learned on. And I needed to develop a whole new set of intuitions around the web model of programming--meaning both the technical architecture, and a world where if there's library function you can think of, there's probably some open source toolkit that does it for you.

    The good news is not *all* of my intuitions had to be junked. Clean code is still clean; good design is still good design; users are still lovable monsters. And although it took me a few years, I got back up to speed.

  155. Re:Or learn C-flat by digitig · · Score: 1

    It depends in part on how the instrument is tuned, but it's not a strange avant-garde or Eastern thing. Early instruments in Western music were tuned to Pythagorean harmonies, with the notes in simple proportions: 1:2, 2:3, 5:4 and so on. That was great for playing in the key to which the instrument was tuned and closely related keys, but sounded terrible if somebody tried to play in a remote key. If somebody wanted a B# on their harpsichord then they'd get a C instead and it would sound out of tune. Round about the start of the 18th century people started tuning keyboards so that most of the notes were actually a little out of tune in whatever key one played, but not far out of tune in any of them. By the middle of the 19th century musicians had settled on equal temperament, which is based on ratios between notes of log2(12), in which every key is equally out of tune and B# == C. But that only applies to instruments with fixed pitches. Get a good player on a violin or a trombone, or a good singer, and they've no need to play most of the notes slightly out of tune (unless playing alongside an instrument that can't make the enharmonic distinction), so they will play the note that is completely in tune. If they are playing in F# major and the music calls for an accidental B#, the note they sound will not be the same one as they would sound if they were playing in D major and the music called for an accidental C natural. This is one reason string ensembles and brass bands can sound particularly harmonious: if they're good enough they will be playing natural harmonies, not equally tempered harmonies. And that's not down to how they've tuned their instruments, it's down to how they play them.

    --
    Quidnam Latine loqui modo coepi?
  156. A better question to ask by brokeninside · · Score: 1

    In general, how many software shops make as much money on sales/licensing as they do on support contracts?

    1. Re:A better question to ask by theshowmecanuck · · Score: 1

      This depends entirely on the size of the application being programmed. A shop creating consumer level products like say, a word processor or music player, will not make much, if any money selling support contracts; and even if a corporation buys a word processor for example, they generally don't pay for a support contract. A shop writing a database management system will make a considerable amount of money with support contracts. Billing system vendors (I am thinking telecom billing systems since that is what I have worked on the most) make most of their money from support and customization despite the high up front cost of the software itself. The question is, what is the ratio of consumer level software programs to corporate (read: requires support contracts)? My bet is that it is at least even; and if I had to choose -- I would bet the consumer side is larger.

      In other words, the idea that you can create a software project and count on making money by way of support contracts is grossly overblown. Especially by the OSS movement. While there are a lot of high quality OSS projects that are based on the 'paid support' paradigm, there are orders of magnitude more that die because that paradigm does not work for them. For example, look at all the abandoned or stalled projects on sourceforge where there has been no activity for months or years. If people can't make money from the project they work on in their spare time, they will usually end up doing something more productive/worthwhile to them like playing with their kids, or hanging out with friends.

      --
      -- I ignore anonymous replies to my comments and postings.
    2. Re:A better question to ask by Anonymous Coward · · Score: 0

      If people can't make money from the project they work on in their spare time, they will usually end up doing something more productive/worthwhile to them like playing with their kids, or hanging out with friends.

      Or watching pornos and beating off.

    3. Re:A better question to ask by digitig · · Score: 1

      What, are they still having to do that manually? The open source community is really letting the side down. After all, that's one application where users really would pay for support -- the right support. And for once, marketing would understand.

      --
      Quidnam Latine loqui modo coepi?
  157. Java: The Best Transition to OO... by taoboy · · Score: 1

    Having come from your world and making the same transition, albeit a little more graduated, I'd recommend Java as 1) the best language to transition into object-oriented programming, and 2)widely used.

    OO is really important to understand if you want to do GUI programming of any sort.

    Java is also very portable among the major hardware platforms.

  158. Enthusiasm by wonkavader · · Score: 1

    Agreed. However, I'd modify this. If the person really is looking at these systems and is interested, but hasn't started on his own, he should just give up and walk away.

    Good programmers don't learn in school or from books: they learn things in school and things from books, articles, etc. but they learn to really grasp the thing by working, and they work because they cannot stop themselves.

    OK, let's give the poster one more chance: Stop asking for help before starting work, grab an SDK, write a Hello World, expand it, break it, make a LOT of mistakes, read some stuff, solve some problems, THEN ask some questions, and do some more. They you'll either know you can do this stuff, or you'll know just how much you hate it and exactly why. Either is a fine conclusion.

    Real programmers program. Bad programmers see holes in their resumes and try to plug them. Don't be a bad programmer.

  159. Sorry, you're toast. by Anonymous Coward · · Score: 0

    The bitch of it is, once you step off the merry-go-round you get outdated quickly. "Back in the day" the technology and languages didn't really change very rapidly, and most coding was based on similar basic concepts regardless of language. And, most importantly, the coder was responsible for everything, top-to-bottom (eg: when writing a DOS app in 1988 you did EVERYTHING low-level: disk/file access, memory alloc/management, drawing on the screen in either text or graphics modes, and to do modem comms you wrote your own INT3 serial port handler, AT command parser, and XMODEM handler). Nowadays it's all over the place, and you must be a master of many disparate high-level concepts and technologies.
    And the tech world now moves so fast that if you cease to keep up with it as it comes, the initial hurdle is HUGE and daunting.
    The big lesson to be learned here is that if you want to be a programmer for the long-haul, you gotta keep at it. You simply CANNOT take some multiyear diversion into being a "freelance analyst and designer" (whatever the hell that is)... stepping off the merry-go-round is professional suicide and, unfortunately, you'll never regain the edge you once had.
    That said, an old-head programmer that's up-to-date in their technology can program circles around most of the under-30 set. There's simply no substitute for experience.

  160. Learn Hindi and Mandarin by Anonymous Coward · · Score: 0

    If you want to communicate with your fellow programmers, learning to speak their language is helpful. These days, your fellow programmers are in India and China. It will take a lot of work. These are not like the Romanic languages. On the upside, your job will probably go overseas before you hurt your brain too much.

  161. Source control systems by ka9dgx · · Score: 1

    Learn at least one source control system, such as Git or Mercurial. You'll need to be able to share your code with others, and these are the modern ways of doing so. Having a global undo is also very freeing in terms of being able to experiment.

    1. Re:Source control systems by aunt+edna · · Score: 1

      Good idea.

  162. Make an informed decision... by Anonymous Coward · · Score: 0

    ...and take a look at this:

    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

  163. check out computer user groups in your city by peter303 · · Score: 1

    We have a couple in our state devoted to the Java family of codes. And there are others for all-things-MicroSoft such as C# and NET. I hear ideas I am not exposed to at work.

    Many larger cities have a computer monthly newspaper. These user groups are often listed there or in the online versions.

  164. Iain by Anonymous Coward · · Score: 0

    Bruce Eckel's books are very good I think.
    Thinking in ... ( I think he's done c++, java and python and likely some more )

    There's a lot of rubbish talked about anything new, so I agree with some of the others that doing something practical will likely get you going, and don't discount your existing skills.
    The best way to learn something though is to get a job doing it, preferably with some other folk who can do it already, which could be tricky...

  165. I asked a similar question by atgaaa · · Score: 1

    Over 40, cs degree '81, assembly, cobol, big iron. "Retired" early 90s. I got back into the business several years ago.
    Don't know exactly what you want to do, but here is how I learned the modern industry.
    0) Read this http://catb.org/esr/faqs/smart-questions.html

    1) Learn/Use linux. This is what got me back into the business. I could have my own real operating system.
    2) Learn ip networking.
    3) Learn the bash shell, learn bash scripting.
    4) Install and experiment with apache and mysql.
    5) Learn C. C is the granddaddy of all modern programming languages. This is the best tutorial I have ever found http://www.howstuffworks.com/c.htm
    6) learn Google

    If you do these things you'll be able to talk-the-talk.
    The kids think C is old school, not thinking that nearly everything they execute today includes code written in C. I'm successful because I learned systems from the bottom up, starting with hardware and assembly languages, this is the old guy's edge. The young guys all started with a gui and worked their way down, not saying that is bad, just a different perspective.
    We have "production environment" skills, most of the kids grew up with "break it and fix it" on their own personal systems. Again, not a bad thing, but it can be a hard habit to break.
    I am not coding for a living, a few years ago I started working for a small hosting company. Working with the 20somethings is a blast, these are some sharp young folk, intelligent, hard working, creative and inquisitive.
    I was so excited in the early 2000s to find the state of the open source community. All the software, and documentation I had to beg, borrow, steal, back in the 80s is available free now. I sold my record collection, and invested in a garage sale pc and fast internet.
    I do work with windows, but not much. If you are looking for a big corporate, commercial, closed source, or proprietary, environment, I cannot help much. If you just want to get rich, don't start a job, start a business.
    I'm just an old geek, who wants to be stimulated, educated, and challenged. I am well paid. I have a side business in case I want to get rich.

  166. Languages by g0bshiTe · · Score: 1

    First decide what you are writing for, PC, web, or phone. From there decide the best language for what you wish to do. Perl, PHP and some JAVA interpreted code, not compiled (yes I know some JAVA is, but poster wasn't specific.) Not too much has changed since your glory days, save the dev environment handling most of your memory allocation and handling which should make your life easier. The tricks you learned still hold true, looping is still the same and in C++ or C you can still include your ASM should you wish, not sure if C# allows you to do this, I'm still learning the language. I have to say I love C# though, there is alot said about creating an app and not having to include 40 bajillion custom dll's with it. It just works with .NET installed that is the greatest thing. Hats off to MS for getting that one right. Something to consider would be what OS, different OS's will still operate in different ways, this should be taken into account as well. What it really boils down to is preferance, though the language you feel most comfortable in. C# is free from MS, Bloodshed is a free C++ compiler, there's always the Borland set of C++ tools. Of course PHP and Perl are both free. I would suggest staying away from Perl, I love the language but syntax and readability have since killed it for me once I saw how Python was to script in there's no contest there.

    --
    I am Bennett Haselton! I am Bennett Haselton!
  167. do you remember anything at all? by kike.corona · · Score: 1

    Really... do you remember all the details of coding from the 80's...??? I started coding 15 years ago in Quick Basic, and I really don't remember it at all... seems to me that you'll be starting pretty much from scratch here...

  168. Re:Or learn C-flat by DriveDog · · Score: 1

    Interesting post, thanks.

    As a former trombonist (tromboner?), I'd just like to point out that, depending on how one tunes one's instrument, it may also be necessary to adjust the pitch occasionally using the lips even with the trombone, otherwise sometimes a 1st position note will have to be played in (near, as all 7 are approximations until a particular note in a particular key is selected) 7th, 6th, etc. position to sharpen it a little. The alternative is to adjust the tuning so that when the slide's all the way in, the highest pitch adjustment to any note normally played in 1st position will be in tune, then adjust the slide to flatten every other 1st position note. I always thought that was a PITA, so used the same method of adjustment as other brass players. BTW, some of us avoid using the slide for vibrato, too, and not just those who also play crippled (non-slide) brass instruments. Somewhat similarly, fretted string instruments can be tuned to the flattest note to be played on each string, then bent to produce the slightly sharper notes as necessary to play in tune. I have never been good enough on guitar to mess with this much, but imagine it could work OK for long duration single notes, and short notes and chords get short shrift.

    For a nice example of synthesized Bach played in perfect tune, try Wendy Carlos' "Switched-On Bach 2000." Notice how much easier it is on the ear than when played on piano. My understanding is that some pipe organs have (had) provision for playing in perfect tune in more than one key. How? Extra keys on the keyboard? Anyone care to comment on that? I also understand that well-tuned pianos' strings for particular notes are not all tuned to exactly the same pitch, the resulting dissonance being why I don't care much for slow things played on piano.

    On topic: If you're really skilled at all the things you listed, then you know the fundamentals better than 95+% of the "modern" programmers out here. Just get comfortable with encapsulation and event-driven programming notions, then pick a project that interests you and Google for tutorials, reference, whatever you need to know to learn it. I absolutely disagree that one needs to learn C#. My advice is to avoid "managed" code environments. Black boxes for which you can't fix the bugs are still bad news. C# beats the poop out of VB (because it's not BASIC), but isn't normally run by browsers without executing ActiveXs or something. Just use ECMAScript, or Java if you can ask or require the browser to have a JVM enabled.

  169. PERL has a lowercase ERL by Anonymous Coward · · Score: 0

    Just FYI. I know, "practical extraction and report language" and all that, but you're allowed to lowercase it. perl.org certainly does. leaving it uppercase only risks people thinking you don't know what you're talking about.

  170. Languages AND design terminology by Anonymous Coward · · Score: 0

    It'll be fairly easy for you to pick up the new languages, but it is also important that you pick up the new concepts and terminology that are pervasive in the industry now. If you only used imperitive languages, object oriented design terminology will be foreign to you, but is nearly ubiquitous now. I work with several people who have failed to keep up with the times and we practically communicate in smoke signals. The inherent patterns and intentions in third party API's fly right over their head and they struggle for days to recognize the subleties.

    this is Slashdot. A hundred people on this board will tell you that object methodology and design sucks... and some of them may have very good points. Those are the smart ones who grok it enough to criticize it well. The rest are the like the luddites I work with. Don't listen to them.

    Check out the "Gang of Four" book (ask Google...) and browse it, then read short articles that reference it. Making sure you understand the pro's and con's of unit testing in modern OO languages. Understand how virtual machines and Just-In-Time compilers work, because they are in everything now, even C.

  171. Windows Message Loop by darkwing_bmf · · Score: 2, 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.

  172. objective-C/iOS is a good option by jpc1957 · · Score: 2, Interesting

    I had to re-enter the market as an a aging programmer, had a hell of a time. You have to have recent, relevant product to show. Worked with PHP for a year on my own, learning web and web services tech. PHP was a good environment for that learning, easy free tools, and very easy to understand, everything is very transparent. Gave me some 'product' to show others also. But now I'm in iOS/objective-C, have a few apps in the store. Objective-C is a little strange, would prefer C#, but no problems once you get going. You can develop for free for mac, or for $100 on the iPhone/iPad. You have an instant distribution mechanism if you want to sell on your own, and the skill base is very hot if you want to work for someone.

  173. Learning how to learn by drprofessor · · Score: 1

    You should get comfortable with object-oriented programming as a paradigm rather than worrying about which specific languages to learn. Of course you have to pick a language to learn it in (plenty of clean straight-forward implementations: Java, C#, Python etc.) but if it's the programming model that is foreign to you, focus on that. If you understand the concepts/fundamentals well, teaching yourself new languages should be easy. You never know what new language you'll have to work in or what new ones will be invented but learning how to effectively and quickly learn new languages is invaluable. This upcoming book looks worthwhile: http://www.amazon.com/Seven-Languages-Weeks-Pragmatic-Programming/dp/193435659X/ref=sr_1_1?ie=UTF8&s=books&qid=1280772277&sr=8-1

  174. How do you walk away for that long? by Anonymous Coward · · Score: 0

    I never understood this. I knew I wanted to do stuff with computers when I was six years old, mind you at a time before Intel had released the 4004. I was a monger for any information I could get my hands on about computers, and on the way I learned a lot about radios instead, always getting steered in that direction. I did my first commercial work at age 15, an inventory control system for a warehouse that was run by a family member. I learned whatever I could from the resources that were available. I taught myself FORTRAN and PL/I and FOCAL, and the few flavors of BASIC, essentially whatever machines I could get my hands on, and whatever books I could find.

    I started college early (very early) where I was advised that there was no future in computer programming (and I still want to find that advisor and cause him some harm.) So I got a degree in fine arts instead (and dabbled in electronic music which was also ignored, even frowned on at the time). I never stopped programming. I did a second college career a little later, after computers were a normal, acknowledged thing, and have worked in the field ever since.

    Here's the deal: I don't understand how the OP gets into the predicament he's in. There's not a day that goes by where I don't learn something or at least read something that keeps me up to date. The idea of *thirty years* passing where I manage to not stay up-to-date on whatever is going on in the field, just doesn't enter my realm of possibility. I can't imagine this. I go back to 8-inch floppies, card decks, chain printers, COBOL, paper tape, the earliest consumer microcomputers, etc., and it never occurred to me to stop for long enough for developments in technology to pass me by. Yeah, I've been on the odd vacation and so on, only to come back to find out that technology has moved (that's actually happened a few times). But 30 years? I'm not seeing that, or if it's possible, I'm not sure computer programming is the right thing for a person who can find himself in that position to be doing.

  175. No OOA, first [was Re:OOD, first] by lwriemen · · Score: 1

    If you don't do your analysis, your design's going to be flawed. OTOH, you jumped right into OOPL in the text without mentioning any OOD methods, so maybe you actually mean pseudo-OOD, first. >;->

  176. Re:Or learn C-flat by Anonymous Coward · · Score: 0

    Webmaster/It guy for a band that smokes pot would fit all three categories...

  177. Object Orientation and Use Cases are fine ... by crovira · · Score: 1

    ... as long as you remember the fundamental limitations of both.

    Object Orientation is missing any way of tracking Relationships (instantiated as Connections) which means that most of your code will be making up for that lacunae. (Its a step up from having to write yet another fucking block of code to take care of linked-lists or garbage collection, but its not much of a step.)

    Objects embedding other objects just means you got a database navigation problem, not its solution. Consider ALL relationships as fundamentally N:M. 1:1, 1:N, N;1 are just existential cases of N:M. (0->1 is object instantiation, 1->0 is garbage collection and both operations are executed in a context of the relationships the object participates in.)

    Think of a brick wall. Bricks are objects, mortar is a collective noun for the gritty stuff between the bricks, but another component of any brick wall is the position of one brick in relation to its neighbors.

    Relationships, and their instantiations as Connections, make the same pile of object bricks and mortar object instances into a pallet on a loading dock at Home Depot, a garden wall keeping dirt and flowers from the lawn, and the Cupola of the Piazza Duomo in Firenze.

    Use cases suffer from a simple but revealing flaw. I'll use an elevator as an example.

    You can make N many use cases all of which are 100% correct and none of which could be criticized in any way when you end up with everybody stranded on the roof because none of use cases for elevator doors included DOWN buttons.

    Another example is when you have everybody stuck on the ground floor because none of the floors have holes cut into them to let a cage move from one floor to another.

    Software architecture (and therefore all software built using it,) should be generative. Use cases are merely descriptive.

    Because all software merely refers to real world objects and processes it is all to easy to discover after spending time and money that you have committed the equivalent errors, which would simply not be possible in the real-world.

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
    1. Re:Object Orientation and Use Cases are fine ... by PhilipPeake · · Score: 1

      Wow! so here is still intelligent life in the programming world.

      This is exactly right. OO coding techniques, UML, Use Cases etc. are (potentially!) useful TOOLS.
      They are not the SOLUTION.

      There are far too many big companies that think that these will allow cheap (inexperienced/poor) programmers to generate acceptable quality applications/code.

      They may help, but the lack of experience and overall view and understanding of what they are trying to do (which you don't get from reading use cases) will bite in the end.

      ---------

      To the OP: What you learned with ALGOL (particularly if that included ALGOL68) and Pascal will stand you in good stead when using almost any of the currently used languages.

      Perl is a little different. You can use your current styles, but to get the most out of it will require breaking out of the mold.

      The basic principles of object oriented cod are relatively easy to understand.
      Thinking in OO style is difficult for someone from a functional language background, but not impossible.
      OO programmers that have never known anything else tend not to see how that distorts their view to make the problem fit the paradigm, and how that is not a good thing.

      Java is superficially easy, but has so many contortions to make reality match what they want to achieve in the language that it becomes somewhat hard to learn.

      C# is a Microsoft honey trap. Avoid.

  178. Fortran 90 by Anonymous Coward · · Score: 0

    How about learning Fortran90, it your used to 77 its a real joy to use (allocatable arrays!). Also it features lots of advanced 'modern' concepts, such as aspects of OO that you can dip into as you want to learn more. I'm not sure what it'll do for your job prospects though, I'm a mechanical engineer.

  179. Re:Or learn C-flat by JWSmythe · · Score: 1

        He only indicated that he was approaching 25 years. He didn't actually say (but implied) it was his job. :)

        I guess he could have "worked" in it for all that time. During the day, he could be an IT guy. Nights, he could have been playing it clubs. And on weekends he could have been doing landscaping. That doesn't allow for a lot of time for sleep, but hey, who needs sleep. :)

        I could say I've been seriously learning music since 1985, starting with middle school band and private lessons. I'm honest with anyone that asks that there's a bit of a gap between the mid 1990's to 2009. I won't go bragging I've been "in music" for 25 years though. With a bit more practice I may sound like I've never stopped playing though. :)

    --
    Serious? Seriousness is well above my pay grade.
  180. Something to be careful for by tonyt3 · · Score: 1

    Many people here refer to the Bosses and/or PR folks as complete a$$holes. If you go to an interview with that in mind, it will probably turn out to be true. If you go with the attitude that they just might want the best for their company, and you are trying to find ways to help the company as well, your success rate will go up. If you draw a bozo, just be polite and go somewhere else. They may know some programmers who are somewhat challenged socially as well. So try to convince them that you are a decent human being who happens to be a very good programmer. imho.

  181. PMP by BraksDad · · Score: 2, Insightful

    I transformed my skills into project management. It is certainly not for every old ptogrammer, but I found the transition easier than keeping up with the new development tools/languages.

    I took a 1 week class (actually 4 days M-T) followed by the PMI Cert Test on the Friday. If you have spent decades developing, you will have a good shot at passing the first time around. You may find it interesting and close enough to your experience for it to be useful. Being PMP coupled with experience and an interview suit should land you in a good spot.

    --
    Slowly waving my hand - "This is not the sig you are looking for."
  182. What is your real objective here? by Anonymous Coward · · Score: 0

    First of all, do you NEED to find a job in this field, or do you merely want to WORK WITH these technologies?

    If they former: a real "job" is probably a non-starter. So is most contracting.

    My experience is that employers are generally against hiring the voluntarily unemployed. The long term voluntarily/lifestyle unemployed probably have the toughest path, even more so than someone jobless due to incarceration. Many employers would rather know that you're someone with a record, than a responsible and solvent person who opted out. The point is, to have retired early or to not have worked in the field for years registers as a sort of protest vote. That's the politics of the situation.

    The first bit of advice I'd give Timothy is to educate yourself on what programming technology is used with what platform. Pick a platform and then research the language choices.

    Then use the summaries at Wikipedia to do a first-order cull of the language choices. Wikipedia is fantastic for a top level view of topics where there is no apparent logical answer from current "experts" to the question "where does X fit in?"

    Armed with THIS, you should be able to zero in on a few language choices and hedge your question more productively.

    As it stands, this question is so open ended that it's not possible to answer at present. In fact I would say if you can't reframe this question on your own using my recommendations, then you probably can't cope with the "DIY" driven present of SW development.

    If you just want to WORK with newer technologies, then you are more in luck. Consider developing and marketing your own product. Google the term "mISV", which stands for "micro-independent software vendor".

    Or, find and join an open source project. But you will have to meet the qualifications and vetting process that the project in question has in place.

  183. Just one language to know: C by Anonymous Coward · · Score: 0

    Learn C.

    C++ is just C with some extras. It's quite powerful but not always necessary.
    C# is just C with some crap for Windows GUIs. You can pick it up in a week if you are already proficient with C.

    Java is useless and nobody makes money with it these days. Seriously, you earn minimum wage writing Java applications because the work is outsourced to India. It is a tremendous chore to write Java code, which is why it is so unproductive. It's like C, but the compiled code is portable which is the ONLY benefit.

    PHP, HTML5, or PERL are all for website stuff and nobody should use it other than a webmaster. Don't bother. I know these and almost never use them.

  184. Java by Anonymous Coward · · Score: 0

    Don't use Swing/AWT, use SWT. Of course, I don't know if the Eclipse UI counts as "stellar" in your mind, so YMMV...

    1. Re:Java by Blakey+Rat · · Score: 1

      Don't use Swing/AWT, use SWT. Of course, I don't know if the Eclipse UI counts as "stellar" in your mind, so YMMV...

      The problem is that, because of Java's retarded "write once, run everywhere" philosophy, all Java UIs are lowest-common-denominator. I've yet to see a Java GUI that supports, for example, voice recognition in Windows or OS X. Or supports handwriting recognition in either OS. Or supports the built-in spell-checker in OS X. All of those are bog-standard OS features you simply do not get with Java UIs.

      (Also note that Firefox does *not* use native widgets, and supports all of the above-listed features. It's not technically impossible, the people writing the Java libraries simply don't care to go through the work.)

      And that's just the functionality. The appearance is always, always wrong. No matter how many times somebody assures me that the Java UI looks "like a native app" it invariably ignores OS appearance settings (default fonts, default colors, selection color, font zoom, etc.) Tabs are always wrong, despite being a standard OS widget in every OS... for some reason I've yet to see a Java app that uses the OS-style tabs.

      And no the Eclipse UI counts as "overly complex, goofy-looking, and unresponsive" in my mind. Most of that is poor design and not the widgets' fault, but even if the UI was well-designed, the widgets would still be inferior to OS widgets.

      The real problem, though, is that Java coders don't demand better. Like I said, nothing here is impossible to do-- Firefox gets 99% of the way there-- but the people writing Java GUI libraries simply do not care about getting it right. Either they're the uber-geeky coders who literally can't tell the difference between a good GUI and a bad one (my guess, since a lot of people are like you and claim Java UIs are passable), or they're simply lazy and doing the absolute bare minimum.

  185. There is no such code by Anonymous Coward · · Score: 0

    There is no such code in Java (1.4). I speak from bitter, bitter experience.

  186. OO's principles and then pick a language by renoX · · Score: 1

    IMHO as you only know 'classical' programming language you should learn Object Orientation to understand what this 'new fad' is about.
    I recommend the book 'Object-oriented Software Construction' by Bertrand Meyer which is very clear about what OO is and why we use it.
    Note that the examples are in Eiffel which is a language rarely used, but it's still interesting.

    Then 1) check the jobs offer to see which language gives interesting job.
    2) learn the language (easy (unless it's C++ or Perl): read a book, maybe contribute to a project) and the tools used with it: IDE, debuggger, profiler.
    3) learn the languages libraries: that's the hard/boring part and sorry I don't know how to help here.

    You're ready!

  187. Maybe you don't need to retrain that much.... by msmoriarty · · Score: 1

    The site I work for just posted an article on how IBM is looking to train the next generation of COBOL programmers:

    http://adtmag.com/blogs/watersworks/2010/07/ibm-mainframes-cobol-recruits.aspx

    (Read down past the laptop stuff in that article). Definitely not saying not to learn the new, just FYI that your earlier skills might have some marketability that you might not be aware of.

  188. Re:Or learn C-flat by Khyber · · Score: 1

    "I wonder what kind of job requires you to practice music, horticulture and computer science at the same time."

    Research where we can enhance the growth of plants by exposing them to 125hz or 250hz sound waves.

    Ah, but hey, You guys tend to focus on ONE thing, I sweep across the board.

    --
    Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
  189. Re:Or learn C-flat by Khyber · · Score: 1

    No, my musical research enhances plant growth by using classical music rich in 125 and 250hz tones to stimulate the calcium ions resopnsible for controlling the opening and closing of stomata.

    Yes, plants *LOVE* classical music. They hate rap and rock and metal of most types. Some jazz is fine.

    Seriously, you guys limit your thinking way too much.

    --
    Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
  190. Re:Or learn C-flat by JWSmythe · · Score: 1

    I just took a leisurely browse through your recent posts. I think I understand you now.

        You grow and smoke pot in large quantites. You restore antique cars that you can't find parts for. You work with high energy lasers, liquid mirrors, and power sources the size of large navy vessels. Beyond playing botanist, physicist, and military weapons engineer, you take the time to play classical music on your trombone for your plants, just a shade sharp on both B2 and B3.

        Rather than playing random pieces of music and trying to guess at what frequencies your plants like, wouldn't it be an awful lot easier to just play pure tones?

    user@linux $ play -n synth sine 125 sine 250

        It does kind of have the sound of an alien spaceship sitting idle though. How loud did you say it had to be?

        You could try this one..

    user@linux $ play -n synth sine 600 sine 970

        Played at 160dB, it's guaranteed to keep away bugs, girlfriends, and alien invaders.

    --
    Serious? Seriousness is well above my pay grade.
  191. My 10 cents by TiPros · · Score: 1

    I ditched COBOL years ago but I have been begged to accept to do jobs in COBOL. Think your COBOL skills are still worth $$$ if you care to use them. If what you're looking for is having fun again, then I would look into one of the .NET languages or Mono for linux (C#).

  192. Cookie Cutter Programmer by Anonymous Coward · · Score: 0

    I'm a very novice hobbyist, so unfortunately would fall into the cookie cutter programmer category if not worse. But one should always try to better themselves, correct?

    What would you suggest a cookie-cutter programmer do to improve upon his skills? Any more than just staying in the loop about languages and their advantages/disadvantages?

    Doing some reading about Java string concatenation, it seems it's just harder on memory and trash. But the fact that you should know ahead of time that this is an issue would seem to come from a lot of time spent "playing" with different functionality and testing time/memory usage.

    So is it all just constant testing/rewriting code or are there basic fundamentals to always look into? As stupid as this may sound, is there a place for collective knowledge about these types of issues and what to look out for?

    -A cowardly, anonymous noob trying to be more competent.

  193. Stick with what you have (COBOL) by pushf+popf · · Score: 1

    There's a ton of money to be made in legacy maintenance. And there's a ton of available work for companies that actually have money. Chances are that anybody who still has legacy COBOL apps from the 70's will be here long after you're retired. I know this because maintenance is about 80% of what I do.

    Sure, COBOL, SQL and batch jobs aren't glamorous or exciting, but I don't care because I stop by the client location around 10am and leave by 2pm, and make more money than when I was working 12 hours a day. When I want excitement, I go SCUBA diving and when I want to relax, I take a vacation. I took about 6 weeks of vacation last year

    Don't try to compete with recent grads by learning The New Hot Language. It's irrelevant and you'll never be able to stand out. Do all the old stuff you already know (COBOL, etc.). Few people learn it in school and fewer want to do it. This means you can select only the jobs that pay well and make you happy, set your own hours and actually have a life.

  194. XML by Anonymous Coward · · Score: 0

    Gotta start from XML if you missed that as well.