Sonntag, 22. Januar 2012

Initial commit - the "succeed first - develop interest - learn on-the-fly"-approach


Hello there!
I am a self-taught programmer from Germany and really love programming. It gives me some feeling comparable to the one a gardener has when he has worked a lot on his plants and finally he can harvest the results of his work. The only difference is that I don't need to be on the field all day and everything happens much faster than waiting for plants to grow. Besides, the work rather challenges your brain than your muscles.

The benefit of the ability to code a bit are quite obvious, so I often feel the desire to share my skills and help others with them. But teaching programming on the fly is definitely not as easy as some might think. First of all, your apprentice must be willing to spend some time at least. Second, you will have to have a master plan on how you want to progress. I have made the experience that just because I started with learning java, this is not a good way to start with newbies who expect to be given a gentle introduction. Already setting up jdk with environment variables, and maybe eclipse and so on is far too much for the first day. And the first day is decisive for the first impression of the learner and whether he believes that he will be able to learn it or not. Therefore I believe a person who wants to become a part-time programmer has to start with the means that are already installed on his machine. But which means ARE installed on his machine?

Well, many pc-users out there are using M$ windoze. Unfortunately though, this os does not come along with any compilers or anything similar, so everytime I want to simply type in a "hello world" to deliver quick success to my prentice, the only possibility to do this is to use one of the two scripting interfaces windows features, namely batch and visual basic script (and maybe html, but I don't know whether this is a good idea to start with. I mean, maybe this will make our friend who wants to learn programming a bit confused since usually noobs cannot imagine that IE does something locally. In addition, ui/graphics programming is a far step further down the road. If you really want to program on hardware level, fency graphics will only prevent you from getting lower to the system. But I will keep this in mind for the next time)

Batch is fairly easy to get started with since there is so little to learn and everything seems to be kind of self-explanatory. But on the other hand batch is very limited. I would even say, it is very VERY limited. Already when you come to arithmetics, you will see that it is originally designed to perform some file system tasks, since you will need the switch "/a" in front of every mathematic assignment. And it is nothing that can be compared to any other modern programming language. You have no code blocks, no functions, no types, and you have GOTO. Except that, batch will serve perfectly well to introduce an absolute beginner to the main idea behind programming:
Tell the computer what you want within a limited set of commands and never expect him to do anything intelligent on his own.

To conclude, using batch has the advantages that it works out of the box and features almost everything you will want to do in the first coding lessons. That is hello world, importance of commenting and some simple calculation etc. without the trouble of compiling or installing interpreters.
Critics will say, that batch has nothing to do with programming (and I will agree with them) and will damage the style of the later programmer (and here I will disagree. In my opinion only the one who knows ugliness is able to become aestheticist ;-)

So far so good, that was my first blog post.
See you soon