A lot of people wanting to learn programming today on their own time (not in school, for a job, etc.) seem to have a hard time with it. The Internet often provides distractions that many of us didn't have in the GoodOldDays when we started learning to code. This page serves to collect ideas on what we can do to help people take advantage of the Internet in learning instead of being held back by it.
Most of the ideas below have been proposed and then fizzled out due to lack of interest. Feel free to try to revive them if you like them and feel up to it.
Program-writing group (for lack of a better term)
I would like to propose starting an informal group of people interested in learning more about new ideas and methods in programming. The scope of the group would specifically exclude any kinds of programming done only for the enjoyment of programming; rather, the focus would be on the fun of creating actual useful or entertaining software. I don't mean to dictate with this how FHP members should live their lives, but just to help people with similar goals find a focused environment that can help them achieve those goals.
I think this group could be run with a model where a group member proposes a subject and all members then work on programs related to that subject for some time period. This could include individual and group projects. I see such a group as providing a partial solution for the problem that many new programmers today seem to have where they have no goals of software that they want to create, and so they have no motivation to learn anything new. Not only does a group like this provide ideas in the something like the "imposed from above" way that instructors of programming courses usually do, but it also adds peer pressure to go through with a project, along with the fun of working on the same thing with a group of others.
Please comment profusely. -- AdamChlipala
I'm not sure that will work because nobody, except few rare coders, seems really interested in doing anything else than chatting. That also applies pretty well to me since I'm finding pretty hard to generate motivation to program after a day of work.
But anyway, I'm proposing the IRC Bot writing group! Writing IRC bots is easy enough that even the laziest coder can get one done in few hours
If anyone is interrested, please append your name after mine: FrancoisDenisGonthier
What people in the channel now think/want doesn't particularly matter. If we have a good idea, we can attract new people on its strength alone. And, of course, like this web site, the IRC channel need not be the center of any particular project. -- AdamChlipala
You are right. I didn't really want the IRC channel to be the center of my idea. I proposed IRC bots without thinking about it. I know that's not very imaginative but it's better than proposing nothing at all. If anyone got a nice and not too time consuming software project idea, I'll join it. -- FDG
I think enough people like the idea that it is appropriate to switch discussion to ProgrammingGroup, while trying to keep it organized somewhat. -- AdamChlipala
The term "Program Writing Group" reminds me of the time when I was part of a Fiction Writing Group. The members submitted their writing to the group for review, critique and comments. Perhaps a "similar" approach could be adopted for coders to submit their codes for comments and suggestions for improvement. As coders, we each have our own software project ideas and it would be good to get some kind of "peer review" of the work we have done or get some ideas on how to solve certain programming problems. What do you think?
-- Yeoh HS
Group coding sessions
Discussed on its own page, GroupCodingSessions
Interest groups
Creating our own groups for various subjects, such as specific programming languages, seems to be a wasteful duplication of effort. Most programming language communities already have freenode IRC channels and corresponding web resources. It would be better for us to direct people towards these groups and perhaps collaborate with them in some way.
One thing that we could do (with existing channels or not) is organize regular IRC meetings for people learning the same stuff from the same online sources, to get help from experts on the subject and just socialize with people in the same situation. It could be really swell if we had some sort of program to let multiple people edit source code and compile/run it in real time. These meetings could involve collaboratively writing some programs, with people taking turns in the driver's seat.
"Contests" and long-term activities
Then there are the "everyone writes a certain type of program and we eventually compare them against each other" sorts of things. Some favorites in the past have been:
- Writing programs to play games against each other, like Checkers and Othello
- Writing games with a certain theme or of a certain type
The most important elements here seem to be:
- Allowing constant feedback about the progress of creating the programs
- Encouraging people to socialize along the way
- Having a realistic, reachable final goal
This reminds me of the "Iron Coder" competition that DavidSnider (I think -- he doesn't have his nick on OldTpuMembers, but it was EvilTech) and I had back in the GoodOldDays, where neither of us knew what we were going to code beforehand, and were given four hours to off and write it. I have never had that kind of rush while programming before or since. Let's do that again. =] -- JeremyPenner
That sounds good, but I think it's important to have some long-term software development activities, too, if we're going to do this. Short sprints inevitably can't go into too much depth, and they probably do nothing to teach any sort of "software engineering" type knowledge. -- AdamChlipala
It does have a certain appeal in terms of having a "fun factor" though. -- GianPerrone
Shall we decide beforehand if we are using purely OS-independant languages, or shall we have different categories for people who prefer their Macintoy to their Windows box? This could get a little difficult. -- Stilldo
Silly question, Mr. Stilldo. Any languages worth doing for this are going to be cross-platform - I don't believe there are any languages that are not portable that would be useful for this. I hope I'm not wrong here, now I've stuck my neck out so far! -- IainMcCoy
Worthy or not, there are more than enough programming languages allowing to produce cross-platform apps that we need not to care about the the languages until something is organized for group-coding. -- FrancoisDenisGonthier
While it's cool to be called Mr, dont bother. Im just plain stilldo. I suppose it wouldnt matter so much as it appears on the surface, as most people use windows in any case (voluntarily or otherwise), and it would only create a small problemo for us maccies until we get a windows eulator. Pity they cost so much
-- Stilldo
Actually, most of our target audience uses some free UNIX. -- AdamChlipala
Does Darwin count as a free UNIX? -- DavidStill (The Artist Formerly Known As Stilldo)
I'd say it does. It's based on UNIX, and it's free. -- FrancoisDenisGonthier
