Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

How Can an Old-School Coder Regain His Chops?

timothy posted more than 3 years ago | from the just-eat-the-brain-of-someone-younger dept.

Education 565

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

cancel ×

565 comments

C-sharp (4, Informative)

Ethanol-fueled (1125189) | more than 3 years ago | (#33104574)

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.

Re:C-sharp (3, Funny)

WGFCrafty (1062506) | more than 3 years ago | (#33104614)

Don't forget to B#.

Re:C-sharp (0)

Anonymous Coward | more than 3 years ago | (#33104988)

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

Re:C-sharp (0, Offtopic)

Simon Brooke (45012) | more than 3 years ago | (#33105052)

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

Re:C-sharp (0)

Anonymous Coward | more than 3 years ago | (#33105074)

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.

Or learn C-flat (-1, Redundant)

Anonymous Coward | more than 3 years ago | (#33104620)

otherwise known as B.

Re:Or learn C-flat (0)

Anonymous Coward | more than 3 years ago | (#33104916)

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.

Re:C-sharp (3, Interesting)

dskzero (960168) | more than 3 years ago | (#33104634)

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.

Re:C-sharp (0, Troll)

binarylarry (1338699) | more than 3 years ago | (#33104674)

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.

Re:C-sharp (1)

gatzby3jr (809590) | more than 3 years ago | (#33104706)

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.

Re:C-sharp (0, Troll)

binarylarry (1338699) | more than 3 years ago | (#33104732)

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?

Re:C-sharp (5, Interesting)

alexmipego (903944) | more than 3 years ago | (#33104898)

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.

Re:C-sharp (0)

Anonymous Coward | more than 3 years ago | (#33104716)

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

Re:C-sharp (-1, Troll)

binarylarry (1338699) | more than 3 years ago | (#33104766)

It's also terrible, FYI.

Re:C-sharp (0)

Anonymous Coward | more than 3 years ago | (#33105032)

They ported Tomboy out of C# and called it gnote

Re:C-sharp (-1, Troll)

Pinhedd (1661735) | more than 3 years ago | (#33104728)

C# was designed to clean up Java. It's not perfect but it's been under ultra heavy development for the better part of a decade and has come very far in that time. It does a lot of things natively that Java does not.

Re:C-sharp (-1, Troll)

binarylarry (1338699) | more than 3 years ago | (#33104750)

C# does have some nice features, although they threw in all kinds of retardation along with those niceties.

Re:C-sharp (1)

PmanAce (1679902) | more than 3 years ago | (#33104832)

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!

Re:C-sharp (1)

Ethanol-fueled (1125189) | more than 3 years ago | (#33104872)

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.

Re:C-sharp (1)

outZider (165286) | more than 3 years ago | (#33104718)

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.

FORTRAN, COBOL etc. (1)

Roger W Moore (538166) | more than 3 years ago | (#33104950)

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.

Re:C-sharp (-1, Offtopic)

pieisgood (841871) | more than 3 years ago | (#33104998)

I just lost.

Re:C-sharp (-1, Troll)

kikito (971480) | more than 3 years ago | (#33105102)

Your cries for attention are self-evident.

Work backward (5, Insightful)

p3bf (459005) | more than 3 years ago | (#33104592)

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.

Re:Work backward (1, Interesting)

Dan East (318230) | more than 3 years ago | (#33104818)

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

+1: "Just figure out what you want to do" (1)

kale77in (703316) | more than 3 years ago | (#33104894)

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. :)

OOD, first (0)

Anonymous Coward | more than 3 years ago | (#33104596)

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.

Mailing lists (5, Insightful)

gatzby3jr (809590) | more than 3 years ago | (#33104598)

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.

stupid idea but.. (1)

muphin (842524) | more than 3 years ago | (#33104606)

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

Re:stupid idea but.. (1)

WGFCrafty (1062506) | more than 3 years ago | (#33104656)

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.

Re:stupid idea but.. (2, Informative)

Ethanol-fueled (1125189) | more than 3 years ago | (#33104730)

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.

Easy (5, Interesting)

camcorder (759720) | more than 3 years ago | (#33104610)

Pet project.

Never touched C# (0, Troll)

earthforce_1 (454968) | more than 3 years ago | (#33104616)

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.

Re:Never touched C# (1)

commodore64_love (1445365) | more than 3 years ago | (#33104684)

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

Re:Never touched C# (0, Troll)

binarylarry (1338699) | more than 3 years ago | (#33104802)

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.

Re:Never touched C# (0, Troll)

V!NCENT (1105021) | more than 3 years ago | (#33104848)

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)

Old person syndrome (5, Insightful)

girlintraining (1395911) | more than 3 years ago | (#33104618)

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.

I second that (5, Insightful)

Dan East (318230) | more than 3 years ago | (#33104968)

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.

don't bother (-1)

Anonymous Coward | more than 3 years ago | (#33104640)

PERL is dead, other than admins using it as glue replacing shell scripts. PHP is shit, Java require 5+ year experience at entry level, HTML (hahahahhaha). If you're only using windows at home, stick to that, you'll be way out of your depth elsewhere. That means VB and .NET. You should run over SQL syntax and learn relational database techniques as a minimum. Compared to assembler and the memory limitations, you're into for an easy ride.

TIP: Forget IT, it's worse than the 80s, anyone can become a programmer these days, and it shows. Choose another career if you want to do it for a living.

Re:don't bother (2, Insightful)

cskrat (921721) | more than 3 years ago | (#33105050)

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.

Why bother? (0, Flamebait)

spiffmastercow (1001386) | more than 3 years ago | (#33104650)

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.

Stay Retired. (5, Insightful)

Nikkos (544004) | more than 3 years ago | (#33104654)

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.

Re:Stay Retired. (4, Insightful)

commodore64_love (1445365) | more than 3 years ago | (#33104720)

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

Re:Stay Retired. (1)

backwardMechanic (959818) | more than 3 years ago | (#33104900)

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.

Re:Stay Retired. (1)

oldhack (1037484) | more than 3 years ago | (#33105088)

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

Re:Stay Retired. (2, Insightful)

swrider (854292) | more than 3 years ago | (#33104990)

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.

F/OSS! (5, Informative)

comrade k (787383) | more than 3 years ago | (#33104660)

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.

Don't (5, Insightful)

kryptKnight (698857) | more than 3 years ago | (#33104662)

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

Re:Don't (4, Insightful)

Burnhard (1031106) | more than 3 years ago | (#33104680)

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.

Re:Don't (2, Insightful)

keeboo (724305) | more than 3 years ago | (#33104828)

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

Re:Don't (4, Insightful)

fruitbane (454488) | more than 3 years ago | (#33104724)

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.

Re:Don't (1, Interesting)

Anonymous Coward | more than 3 years ago | (#33104942)

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.

Re:Don't (0)

Anonymous Coward | more than 3 years ago | (#33104758)

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

Re:Don't (5, Informative)

drolli (522659) | more than 3 years ago | (#33104928)

Parent is definitively right.

This guy knows *COBOL* and he thinks for career reasons about new languages? As fas as i understood that COBOL coders are right now (or in a few years) worth their weight in gold; I hold a phd in physics, programmed in nearly all "post-c" languages, (and some non post-c languages) and i was thinking about learning COBOL to earn money.

I mean it could be that he got some offers by now.... (maybe posting to ./ was just a way of applying for a job?).

Re:Don't (0)

Anonymous Coward | more than 3 years ago | (#33105072)

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

Re:Don't (0, Troll)

syousef (465911) | more than 3 years ago | (#33104938)

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.

Language is language (2, Insightful)

commodore64_love (1445365) | more than 3 years ago | (#33104664)

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.

learn python (2, Insightful)

dr_leviathan (653441) | more than 3 years ago | (#33104666)

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/ [python.org]

Re:learn python (1)

maXXwell (172246) | more than 3 years ago | (#33105094)

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 [tiobe.com] . 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.

Visual Basic (-1, Offtopic)

Anonymous Coward | more than 3 years ago | (#33104682)

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.

You should start out with Visual Basic .NET. It has two important features that the other languages lack:

* Image Enhance
* Creating a GUI app that can track an "IP address" features

(If you get either of these references, jump head first into any of those languages. You're still sharp. If not... I'll get off of your lawn right now)

If you don't mind doing the drills... (0)

Anonymous Coward | more than 3 years ago | (#33104686)

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

Perl (-1, Troll)

Webz (210489) | more than 3 years ago | (#33104692)

Learning to write the word Perl instead of PERL would go a long way in adding to your credibility.

Be sure to check out JAVA, PYTHON, RUBY, and LUA...

drop everything (0)

Anonymous Coward | more than 3 years ago | (#33104698)

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

Just dig in and do it (1)

Improv (2467) | more than 3 years ago | (#33104714)

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!

Re:Just dig in and do it (0)

Anonymous Coward | more than 3 years ago | (#33104904)

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.

Embedded (0)

Anonymous Coward | more than 3 years ago | (#33104756)

Go embedded.... I'm new to the industry (4 years post-college), and write nothing but straight C; Makes it easy.

Hundreds of thousands? Are you SURE? (1, Insightful)

mmaddox (155681) | more than 3 years ago | (#33104764)

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.

Re:Hundreds of thousands? Are you SURE? (-1, Troll)

Anonymous Coward | more than 3 years ago | (#33104908)

Mod parent up. OP is a cunt.

Re:Hundreds of thousands? Are you SURE? (0)

Anonymous Coward | more than 3 years ago | (#33104996)

No!!! Mod the grandparent down as Flamebait! :D

Re:Hundreds of thousands? Are you SURE? (0)

Anonymous Coward | more than 3 years ago | (#33105026)

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.

Re:Hundreds of thousands? Are you SURE? (0)

Anonymous Coward | more than 3 years ago | (#33105048)

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.

Re:Hundreds of thousands? Are you SURE? (1, Informative)

Anonymous Coward | more than 3 years ago | (#33105108)

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.

Anything at all (1)

JumpingBull (551722) | more than 3 years ago | (#33104772)

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

Why would you want to? (1)

fkx (453233) | more than 3 years ago | (#33104780)

Why would you want to?

Be the Boss and get the children (under 30) to write the code.

Duh (0)

Anonymous Coward | more than 3 years ago | (#33104784)

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

I'd start with php (1)

yeshuawatso (1774190) | more than 3 years ago | (#33104796)

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.

Don't (4, Insightful)

clinko (232501) | more than 3 years ago | (#33104808)

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"

Go back to school — a little, anyway (1)

bhetrick (1812392) | more than 3 years ago | (#33104812)

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.

Missing one important detail (1)

AlXtreme (223728) | more than 3 years ago | (#33104868)

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.

By starting to code again, ... maybe? (1)

Qbertino (265505) | more than 3 years ago | (#33104876)

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 [ubuntu.com] 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.

FORTRAN and COBOL makes you money (5, Interesting)

MagikSlinger (259969) | more than 3 years ago | (#33104882)

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 [computerweekly.com]

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 [infogoal.com] .

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.

Complicated Answer (0)

Anonymous Coward | more than 3 years ago | (#33104890)

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.

Java and C# (1, Insightful)

Confused (34234) | more than 3 years ago | (#33104914)

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.

O'Reilly books are a good start (1)

kevmeister (979231) | more than 3 years ago | (#33104930)

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.

It's about Objects. (1)

CFD339 (795926) | more than 3 years ago | (#33104932)

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.

How Can an Old-School Coder Regain His Chops? (1)

omar.sahal (687649) | more than 3 years ago | (#33104972)

Eric Steven Raymond [catb.org] in his how to be a hacker is a good start, some [af.mil] say a Real Programmer Can Write in Any Language.

I see this a lot (1)

MichaelSmith (789609) | more than 3 years ago | (#33105004)

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.

Consider an Alternative Career Path... (2, Insightful)

qazwart (261667) | more than 3 years ago | (#33105018)

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.

LAMP and jQuery GUI stuff (2, Insightful)

yayoubetcha (893774) | more than 3 years ago | (#33105020)

Interesting. I was in a similar situation. I entered the workfarce in 1980 as grunt, and left it in 2001, as a V&V Architect for a microprocessor company. I was heavy into C and x86, i960, ia64, and other assembly languages. I did BIOS, firmware, etc,, but I had done the higher level languages too in the mid-80's. Now I work, by choice, about 16-20 hours, 3 weeks a month, for about 9 months a year. I'm a real slacker now. I now do LAMP work. Easy to learn. Easy to get work. I have taken two clients in the past three years from obscurity on the Web to top-rank for their market. I have been rewarded, because of the successful work performed with as much additional work as I want. Sure, it's on third the income as it was when I left in 2001, but it's still six figures. So, I would recommend LAMP and jQuery (for GUI). It's worked for me, and is perfect for a semi-retired (I prefer the term balanced-life employment). BTW, I thought I would miss the excitement of running a team, and the first power-on of a new processor, or server. I am glad I achieved my professional goals, but I like the balance of work and recreation (foreign travel, mountain biking, Nordic skiing, rock climbing, etc.) much, much more.

Pascal (1)

sznupi (719324) | more than 3 years ago | (#33105034)

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.

Online courses, community colleges, short courses (1)

davidwr (791652) | more than 3 years ago | (#33105038)

And of course books and videos.

I sincerely hope this reply didn't tell you anything you didn't already know.

Linux (1)

jonsmirl (114798) | more than 3 years ago | (#33105044)

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.

Here's what I did (1)

Jorl17 (1716772) | more than 3 years ago | (#33105058)

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.

odd question, really (1)

Eil (82413) | more than 3 years ago | (#33105060)

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.

The language doesn't matter (1)

SoftwareArtist (1472499) | more than 3 years ago | (#33105078)

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.

Learn HTML, JavaScript the CSS, then HTTP POST,GET (0)

Anonymous Coward | more than 3 years ago | (#33105080)

That's my advice. HTTP POST, GET is a bit like 3270

OOP (0)

Anonymous Coward | more than 3 years ago | (#33105086)

Learn Object-Oriented Programming

Try Android development (1)

Paul Fernhout (109597) | more than 3 years ago | (#33105096)

http://www.android.com/ [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. :-)

Find your muse (1)

electronicpanopticon (1868776) | more than 3 years ago | (#33105110)

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.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...