Here's how I learned to program, inspired by this tweet from Marco Arment:
I started off by typing in programs from Atari computer magazine BASIC program listings and then tried changing the code to get a feel for how things worked.
I then moved on to learning from books. One of my favorites was Dr. C. Wacko's miracle guide to designing and programming your own Atari computer arcade games.
During this time I also wrote BASIC programs on paper, mostly because I wasn't always allowed to use the computer (since it was hooked up to our only TV at the time). Plus, I didn't have a way to actually save programs I wrote (a tape drive would come later), so I had to write them down to remember them.
I have a binder of stuff from this time period and it's full of programs I wrote (hand-written and printouts) and even has a rejection letter I got for the first program I submitted to a magazine!
As I began to bump into the limits of BASIC, I moved on to other languages such as Pascal and C and other computers such as the Atari ST, which had a graphical user interface similar to the Mac.
On the Atari ST I learned about event-driven programming and window management. I even made some money on an Atari ST program (JumpSTART app launcher) I wrote in Pascal, my first earnings as a programmer. I actually made of Xojo implementation of JumpStart for the 2018 Just Code Challenge and also made the original Pascal source code available on GitHub.
The fun of programming, especially with BASIC, back in the 80s was hard to beat. I was thrilled when I found about Xojo (then Realbasic) back in 2001 and these days, I think Xojo is the closest thing you can get that brings the fun back to programming. Xojo is a modern, full-blown IDE with a structured, object-oriented and thoroughly modern language. But its syntax will give you just a whiff of BASIC that will bring back fond memories.
Xojo lets you create apps quickly in a fun, fast environment that runs on whatever computer you prefer: Windows, Mac or Linux. And Xojo lets you make whatever types of apps you want: Desktop (Mac/Windows/Linux/Raspberry Pi), web or mobile (iOS, with Android in development). Xojo even lets you make text-based console apps if you want to totally relive old-school user interfaces.
Those early days are often fondly remembered, but not everything from back then was great. For example, I'd rather not go back to a world where 64K of RAM was considered a lot and I had to worry about every byte.
But if you miss those early days when programming was easy and fun, you need to take Xojo for a spin. Xojo is free to use so download it and try it for yourself. There's also a free book to help get you started. You only need to purchase a license when you decide you want to build your own apps to distribute to others. And I guarantee a Xojo license starts at less than what the tape drive for my Atari 400 cost back in 1984!
Single Responsibility Principle (or SRP) is one of the most important concepts in software development. The main idea of this concept is: all pieces of software must have only a single responsibility.