Programming for New Programmers - An Exploration
This is a collection point for some ideas I've been having with regard to getting people into programming. It draws from the One Laptop Per Child project, the Computer Programming 4 Everyone project, and just general Python advocacy.
The idea is that normal people, typical people, non-programming people, do not enjoy programming just for the sake a programming. Those of us who do, enjoy solving often abstract problems and learning obscure points of computer science. We will never convert the majority of people to the kind of programmers we are, but by lacking a fundamental understanding, a basic literacy with computers, they are handing control of their world over to those who do.
But what would I do with Python?
To get them involved, we must realize that programming, for them, is not an end but a means to doing something that is important to them. Towards that goal, let's collect a list of ProjectsForLearning that might interesting them.
Where would I find what I need to do that?
Next, they need to have at hand the raw materials, the building blocks with which to construct their solution. The Python language itself is only part of this -- the standard library, and the world of third-party modules are key as well. And there must also be available a rich selection of data, such as icons, audio samples, cartographic templates, caloric reference tables and the periodic chart of elements. This LearningRepertoire of building blocks needs to be easy to find, easy to install, well documented (for new-programmers) and free of licensing hassles.
What do I need to know to get started?
Last, in teaching them we need to provide a ConceptualRoadmap of programming, essentially a list of ideas they need to know, the order in which they might learn it and where they can gain the knowledge.