Coding in semi-retirement / retirement - which language to learn?

Retirement for me is about 10 or so years away (depending if a company will want me to stay around that long), and I am thinking about becoming proficient in a coding language between now and then…something I can learn at night and over the weekends and use in my semi-retired / retired years to bring in extra income.

When I was younger, I used to be able to program in BASIC, Pascal, COBOL, and Database III++. It was not my major in college but I took these kinds of courses and my professor offered me an internship for the summer to do programming but I had other plans (boy, I wish I had taken that offer!).

So, looking ahead, what coding language would be good to learn to prepare me for doing this in about 10 years time? And, what would be the best way to learn it now AND potentially at some point start to do it part time? And, how to learn? I would prefer to do online courses or read books rather than go to a class since I do have my current full-time job.

Is this even a viable option?

Thanks!

It depends on what platform you want to program in.

The easiest way to earn extra income today is through iOS or Android programming, and the languages are obviously Swift or Kotlin/Java. I like Stanford’s iOS courses. But there are tons of learning resources out there.

If you like graphics, then programming in Unity with Javascript or C# (or Unreal with C#). Graphics are fun but really time intensive. Udemy has some great courses (I love Penny de Byl). You can publish through gaming platforms like Steam.

Node.js (server side javascript) lets you do programming for Alexa or Google Home, but I don’t think it’s easy to make money there yet.

You can also use Node.js on a website, but I think most people prefer php (server side programming is not my forte). A lot of people make serious money if they come up with a good website, either through ads or affiliate links, or selling something. You would need javascript for the browser side of things. I like javascript. It’s everywhere, and you can do ‘quick and dirty’ prototyping, or you can structure your code nicely, but it’s up to you.

It’s practical if you put in the time. You have to love it and have discipline.

I personally love Safari Books Online, which gives me access to a large selection of the latest technical books and videos. You can download the code, and you can copy/paste as you code along, unlike a video. It suits my learning style the best. I like scanning and jumping around in a book.

1 Like

Thanks for taking the time to respond to my question.

Is your advice relevant to programming for others rather than trying to develop an app or website for myself?

Professional Developer here. Many people have a talent for tinkering, but very few seem to develop into high quality coders. I will argue if you’re working on your own, without input from other developers (or a teacher/marker if taking a course), you will miss out on valuable feedback about your strengths and weaknesses that would lead you to becoming more proficient.

A great majority of programs/apps that get developed boil down to data management apps. They use some sort of nice front end to gather data from the user, and store in intelligently into some form of database for later extraction or reporting. To do this sort of app on your own, you need a lot of skills which are normally provided by an entire team in a corporate environment. Corporately, you have people like project managers, UI specialists, graphic artists/designers, database designers/admins, front end web developers, back end/server (business logic) software developers, testing specialists, deployment specialists, devops/build/tools specialists, customer support agents, and on and on. Each of these people brings a set of skills. You can theoretically master them all yourself, but whew, that’s a lot of work.

As for which language to learn, I doubt there is just one, unfortunately. But if you want to start somewhere, probably the most useful would be something on the web front end. JavaScript is kinda gross, and allows really bad habits, but all the tooling is basically free. There are specializations of JavaScript, like TypeScript or CoffeeScript (and I’m sure others) that allow for better software practices. Tied to JavaScript is NodeJS and the whole Electron infrastructure (desktop apps.)

Personally I prefer an object oriented strongly typed language. My language of choice is Java. It runs in a virtual machine, which means it’s portable to many (most/all) platforms… so I am not locked into any particular platform. It’s still evolving, so it’s not aging out… I think reports call it the most used language in corporate development. The tools are freely available (Eclipse and AdoptOpenJDK and Maven/Gradle.) It can create server back ends and client front ends.

If you want the most powerful up and coming language for system level coding… look into Rust. It’s ugly to my eyes, but seems to be growing in popularity. It was invented by Mozilla and is being used in Firefox. It has all the library infrastructure (cargo) and a growing body of developer who claim to love it. It is C/C++ but with some modern safety built in.

No matter what, you’ll probably want to learn about databases and database design. Get a free relational database (I recommend Postgres, but there are many, MariaDB, MySQL, SQLite and all the NoSQL databases.) This will require to learn some SQL to use them usefully. And most especially, learn about stored queries so you don’t start developing software that is easy to exploit.

On that final point… no matter what language you learn… if you intend it to be accessible by someone online, then PLEASE learn techniques for SECURE SOFTWARE DESIGN so you don’t make the current epidemic of insecure apps even worse.

2 Likes

Programming for others, as in getting a job, no. It’s going to be tough to land a job with no education or experience, especially if you’re older. If you’re talking about freelancing gigs, you’re competing with poor hungry young programmers from India and similar places. Totally not worth it. What do you have in mind?

Well, this is what I am trying to figure out. I’m NOT looking to be hired by a company. More like a side hustle. A bit disappointed but can definitely understand it would not be feasible to do freelancing gigs because of the competition with those in India. Sigh. Then not sure which direction to go.

I would like to take classes with input from teachers to develop a skill/language that could make me money to supplement my retirement income. I’m not looking to learn this strictly on my own and not get feedback.

Are you a Windows Weekly / Paul Thurrott follower? He is doing a nice step-by-step series of creating the Windows Notepad in VisualBasic.net at the moment. It is only for Premium members, but you can view 3 premium articles a month for free. https://thurrott.com/

When VisualBasic isn’t the language you want to end up at, the series is a good step into modern programming tools and the basics of object orientated programming, using something you already know (BASIC) as a basis.

What exactly do you want to create? Each platform has its own languages, libraries and objects. Then there are the platform independent languages, such as HTML5/JavaScript (shudder) or Java (shudder). Or you can look at something like Swift (iOS/MacOS) or Visual C# and .Net (Windows/Linux/MacOS/Android/iOS).

At the end of the day, you need to work out what you want to achieve and on what platform/platforms.

There are plenty of good online tutorials out there, especially if you already understand the basics of programming.

I was a programmer in the 80s and 90s (about 2 dozen different languages/dialects over that time) and some web development in 2008/9 (PHP/HTML5/JavaScript). This year I just downloaded Visual Studio and started learning Visual C#, for fun, and ran up a program to replicate an old cost tracking system at work, written in Access 2003. It was a fun exercise and I quickly got the hang of it with a couple of quick tutorials, even though it was the first time I’d used .Net and Visual C#. But I had a good grounding in secure programming, relational databases etc.

The other thing is that it is a moving target. Swift and Kotlin didn’t exist 10 years ago and HTML5 was just becoming “fashionable”, now HTML5 is old hat and the standards are moving on. If you pick the wrong language, you are a legacy programmer, who will be maintaining “old” systems.

To be honest, COBOL would probably be a good bet, the old COBOL programmers are already retiring and there are still millions of lines of active code out there and the young, cheap programmers don’t know anything about it, it is beneath them.

2 Likes

Yeah, who knows what will be in demand in 10 years? We’re all constantly learning new languages and new techniques.

Very true about COBOL too if he wanted an actual job. It’s hard to find COBOL programmers. Also ColdFusion. The only self-taught programmers I’ve ever worked with were ColdFusion since there’s so few who choose that path.

1 Like

Speaking of fast moving targets, in 2005, I went to a Telecom conference (I was working in that industry), and one of the workshops was on how to integrate GPS in a phone. I remember thinking even if we somehow all started using portable phones, who in the world would accept a GPS tracking their every movement? I thought the very concept was doomed to failure. And 5 years later, I was programming both.

2 Likes

Thanks everyone. To be clear, I am just wanting to learn a language that could provide me some income in retirement as well as something to do. While it’s hard to predict what language would be in demand in 10, let’s focus on the now.

If you were to pick a programming language now which you could do at some as a side gig, what would it e?

/me shivers. I learned COBOL (COmmon Business Oriented Language) in university. It’s easy enough to learn, so long as you speak English because a sample line might be:
ADD TRSAMT TO RUNTOT GIVING RUNTOT.
It’s very wordy and structured and it was designed for punched cards, so it has some specific rules about where things have to be on the [virtual] card.

The issue with learning it now is that it is also tied to specific platforms, generally, all of them mainframe and most of them IBM. I doubt you would get very far without that experience, but if they’re desperate enough, who knows.

2 Likes

Well, I used to LOVE Delphi when the Visual/RAD (Rapid Application Development) approach was big. Microsoft kind of dominated it with Visual BASIC, but of course BASIC is shunned by a lot of people… who wants to be branded with Beginner ('s All-purpose Symbolic Instruction Code.)

Anyway Delphi is still sort of around, it’s now sold by Embarcedero. It’s expensive AF if you buy from them though :frowning:

There is a Delphi “clone” that is FOSS. It’s called Lazarus.
https://www.lazarus-ide.org/

So the issue is that it is Object Pascal. Pascal was originally designed by Wirth as teaching language. It is therefor very strict. This annoys a lot of developers. (I learned to program in university on its bigger brother Modula-2, so I feel that being overly strict is not a bad thing for learners, and if you drop it later, no harm no foul.)

On the other hand, Lazarus can make stand-alone executables. It has a visual designer. It runs on all the platforms. If you want to make self-contained programs for customers, I think it might be a good place to start.

I learned to use COBOL on mainframes back in the early 1980s, and became fascinated by all the optional extra words and punctuation in the language reference manual, which meant it was possible to create programs that looked like written English but compiled successfully. I had a half-serious theory that it was actually an early attempt to do away with computer programmers, in that it was possible to conceive of a very formally structured system specification document being written by systems analysts, then put through a compiler to produce executable code. It wouldn’t have a very good structure, but it would have allowed managers to believe that they understood computer programs. :wink:

I loved Delphi too. I wrote a couple of shareware apps in it, one of which was my only commercial sale to a big corporation (they bought the source code too). I was pretty proud of that one.

I couldn’t get my company to use it though, so we continued on with VB and SQL Server backends for most in house apps. I also did a couple of cool apps in Visual FoxPro (which was a really cool app development platform). Then they decided to go with PowerBuilder as a corporate standard…hated that one.

These days I’m taking a dive into Flutter / Dart to try and do some cross-platform mobile apps. It’s still early days for Flutter, but Google does seem to be advancing the platform quite a bit. We’ll see…

I coded for 10 years in DEC COBOL, they dropped the punched card restrictions, which made it a much more friendly language.

I loved writing COBOL, you entered reams of code, so you actually felt like you had achieved something. I like programming in C#, PHP etc. but the same feeling of achievement is missing, somehow.

Not exactly. It was designed to do away with programmers. The idea was that business people should be able to write their own programs, because it was so simple…

1 Like

So is COBOL still a viable programming language? I’m in business and I did learn it in college. Perhaps that is the one I should look at?

Mainly in big conglomerates and banks, where large, older systems are still in use and it costs too much to convert them to more modern platforms.

Although MicroFocus still maintains and enhances COBOL for use on PCs and Intel servers, for example.

1 Like

So maybe it’s not a long term bet, i.e learning COBOL?

Yes and no.

It would probably be the easiest for you to re-learn and there are lucrative contracts to be had, if you can find them. But it is mainly maintenance and enhancements of existing systems. That will probably be longer term contracts and working under stricter conditions (real analysis, design and testing, before a new piece of code is released into production).

On the other hand, something like Kotlin/Java (Android and corporate websites) or Swift (macOS and iOS) are more modern, allows for quick-and-dirty development and “dabbling”. You will quickly see new results to changes and you will have more freedom on what you can do. But the learning curve will be steeper, as you will have to learn about object orientated programming, which is a big paradigm shift from the procedural programming you learnt. Once you grasp the concepts, it is fun, but if you can’t grasp the concepts quickly it is a struggle and can be frustrating, until it does click.

Then there is the current argument, of whether it should be PWA (progressive web apps, with an (optional) back end in Java/PHP and the front end in HTML5 and JavaScript, or will we stay with apps for the specific platform?

COBOL is the easy big money, if you can find a gig. The others are more flexible, but also more volatile and you have more competition for the jobs.

1 Like