dunbarx wrote:trying your hand at making small pointless apps... YOU CAN ONLY LEARN BY DOING. Period.
Craig
Good insight as always Craig
Though learning is not the only thing. First you need to decide if you want to learn it in the first place. There are a lot of different programming platforms and programming languages. Java, Visual Basic, Cocoa, iOS, Android, Lisp, Scheme, Flash, Python, Scratch, Mathematica, etc, etc, etc. So which one should you choose, which one will you dedicate months if not years of your life to?
Sometimes small things persuade in one direction or the other. Reading the book Hackers and Painters by Paul Graham I stumbled on this sentence
Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.
That one sentence got me to study Lisp for several months.
Sometimes you choose a certain platform or a certain programming language because you see a YouTube tutorial that inspires you and wets your appetite, or you like the way the author explains things.
On other occasions you abandon a platform because the people at the forum are stiff philistines. (I'm not talking about this forum. Here I have been met with help and kindness).
In my mind the important factors are the quality of: The platform itself (the user friendliness, simplicity, etc) , the forum (people's attitude, friendliness, knowledge, and tolerance to others of different opinion), the learning resources (good explanation, good examples).
There is a silent notion that things get better as the time progresses. That is not so in programming. Many old ideas are far superior then the "modern and popular" solutions. The most popular programming platforms today are based on Java, C#, Objective-C, Swift, .... For me they are all one and the same paradigm, dinosaurs that will crumble under their own weight. They are Roman numerals of today and we deserve something better. HyperCard was ahead of its time when it came in 80s and still is. I think that the future belongs to a programming platform that shares HyperCard's paradigm*.
As you say the best way of learning is learning by doing. I have no other opinion there. (However there is also a question of learning in what order, with what insight and with what motivation.)
(*HyperCard isn't the only good idea though. How many of you have heard of a programming language called Self from 1980s? (See Self and Self: Whys and Wherefores" on YouTube ) It was the first classless object oriented language. Instead of classes cloning of objects was used, thus eliminating the need for the classes altogether. HyperCard used this idea in its design. There are wonderful ideas in Mathematica, that are far ahead of its time.)