It been 40 years since my first experience of programming as an undergraduate at Strathclyde University.
It was very different experience from today, to begin with programs were written on punched cards
prepared on punch card machine
with no delete, you punch the wrong character you discard the card and start again. Once you had typed your program it was handed over to the computer operations staff who would process the job and, depending on how busy the department was your output would be available on 132 char wide printout when completed. The last thing you wanted to see was a compilation error as you were back to punching a replacement for the card containing the error, back to computer operations then wait for printout. You certainly got into the discipline of ensuring that your syntax was correct first time. My first programming language was ALGOL68-R.
It quickly became apparent that the best way to get to grips with a language was to use it to solve a practical programming program, not just learning the syntax, data types etc. Only when trying to resolve a real world issue do you get to grips with a language. Even then, as a hobbyist, you can miss more efficient solutions.
Today, with so many cloud services providing Application Program Interfaces, API’s there is great scope for developing utilities and tools that can customize how you access and use these applications.
I don’t have an idea for the next great app but there are times when I catch myself thinking, “Wouldn’t it be good if……?”
Recently I have had more time to devote to programming, early last year I took an on-line course on Android Application writing, Begin Programming: Build Your First Mobile Game, and subsequently was involved in testing a revision of the course moving from the use of the Eclipse I.D.E. to Android Studio.
This has got me more active in programming again and I am now working on developing utilities to personalize the way some cloud based apps work for me, and who knows, if I find it useful perhaps other folks will too.