10 05 2006

Alot of people often wonder what language to begin with and most people usually suggest C++ because that's what the big dogs use. And everyone wants to hang with the big dogs. Others suggest "simpler" languages like C#, Python or Java. These language although friendlier are actually not much better for the ultimate beginner.

They are languages to use after bad habits have been learned. Thus I suggest that Every pure beginner start with QuickBasic or Assembly. This may seem strange, listing those two languages in the same sentence but I will show why it is not so.

Armed with the boon of Retrospective Foresight many people say this or that language is bad because it instills bad programming habits. This is not true. By human nature any language that is chosen as first will have bad programming habits as a part of it. This is because creating misconceptions and then reordering them with experience is an essential part of learning.

Misconceptions exist because the schema, the set of knowledge which the person contains on a certain subject (here programmaing) is entirely underdveloped. To function, as the brain is wont to do, certain assumptions and groupings will be made, erronous and not truly correct connections that are only available because the schema for a topic is so devoidly underdeveloped. There is not enough for the brain to work with to create an accurate understanding or picture of it all. This can only be rectified with knowledge and experience.

QuickBasic is a good enviroment to learn "programming thinking" because it is among the most forgiving languages out there and it is limiting in just the right way to forestall the grevious misconceptions that attempting to learn a language as C# first would create. It as well is equipped with everything required to pick up and go with virtually nonexistant fuss. Many high level language constructs – those that a beginner should be exposed to anyway – are there. You can start with graphics right away and there exist a large amount of resources to get you started. This is the path suggested for one who wishes to become a high level techniques programmer. Visual Basic is no good but I suppose Darkbasic might be okay as it follows in the same vein as QuickBasic.

Assembly is suggested as an alternative because of its authoratarian nature, you must be specific and accurate or you will die. In fact programming in assembly is virtually the same as writing a formal proof in an axiomatic system, which any mathematician will tell you, anyone can do without thought (once the basics are understood ofcourse). One is forced to learn the workings of the machine and become close to the machine. There is less room than most languages for the development of grevious misconceptions due to the explicit and tight nature of it all. This is suggested for those who wish to go the low level or engine programmer path. After Quickbasic learning a language like OCaml would be suggested. Some say Haskell is good as well but I know nothing of it.

Disclaimer: The above are only opinion and are not to be taken as fact.




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: