Ubuntu QA:
BlogBrainstormPackage status
Log in
Ubuntu QA
Glade Interface Designer
Idea sandbox Idea sandbox
Popular ideas Popular ideas
Ideas in development Ideas in development
Implemented ideas Implemented ideas

Contributor qwerty800 on Glade Interface Designer

"Basic" for the new and old Generation  
Written by rofthorax the 16 Aug 09 at 21:53. New
Basically a package of easy to read and modify programs for the new generation, with all the necessary libraries and languages to do easy first time coding on Ubuntu, and a upgrade path for learning where novices can progress to do more complex development.

See this is something that was lost in the days of yor and I think it's something that dropped off when disk-based operating systems were introduced and people were more able to buy packages than make them. Back with the old 80s computers, all the features of the system were accessible so that one could tweak sound, graphics, and so forth, and read other peoples code and add to it. I miss that..

But I'm not talking Scratch or something you'd try on your 8 year old. I'm talking real C, C++ programming, real debugger, real GUI development, but just the essentials, no magic cookie code, simple interfaces, and source code to any elaborate libraries made to simplify the coding process. So that once one progresses to the point that they want to do something more complex, they can read the libraries to make modifications and add on to the design.

BTW, I have a CS degree, but I myself can't really figure out where to start, and giving me access the tools is really not an answer. If you want people to contribute to open source development, you have to give them step stools, not ladders.

I'm talking to Mark Shuttleworth, remember what you said about standing on the shoulders of others.. Remember, to do that, you have to learn to climb, and where does one start?

BTW, I was one of the first few to motivate Ton Roosendal in the development of blender, I told him it would be the atomic bomb. He was seriously considering open sourcing it at the beginning, but he chose to develop it from the basic source it was into something people can use, just be seeing how inspired we were by his package. Also, he started out a abstract artist, he was not first a programmer.. He learned to be a programmer by experimenting with computer graphics (on Amiga's first and then moved onto SGI's later). BTW, if you look into old blender mailist/forum archives you will find my name plastered all over them.. I made the "submarine" tutorial. I have a number of tutorials for blender on youtube (just youtube search for "rofthorax").

[....]
31
votes
up equal down
Solution #1: C, C++, abstracted simplified API for GUI and device access, code examples
Written by rofthorax the 16 Aug 09 at 21:53.
This is more a learning exercise in programming, than a new package. Basically, a "jungle gym" for beginning coders and a reference for those who are in transition (maybe someone who has some dusty knowledge, but need a spring board to "hop onto" and get coding solutions).

It's my personal belief that the best coders are not those who can, but those with the ideas who have the drive to make their own solutions.

With this package, the focus would be to provide the tools,
simple examples of real code, then build up to something like a mp3 player, video tool, sound tool, maybe even an example of a simple synthesizer, a painting tool, a simple computer simulator, circuit board simulation, and so on.. So one can determine which direction suits their particular interests.

Now I don't expect someone to go to college after such developments, to be programmers, but at the very least it will help to make people familar of what the process is like, and possibly to develop problem solving abilities which programming is really good for.

If you need any help in coming up with the learning materials for this. I can help.. My email address is rofthorax at gmail dot com.

PS-
I myself started with Basic on something like a PDP-11 (I think it was a time-sharing system).. Remember those printer terminals? Then moved to a VIC-20, C64, and learned basic on Atari 800XL's, Tandy Trs-80s, IBM XT's, Tandy CoCo's, Ti994a's, Time sinclairs, etc. Then C in college on MIPS based Ultrix machines, then AIX, Sun Unix, IRIX, now I use Linux, thanks to Ubuntu. But I lost a lot on GUI IDE's, and I left college before Java became a learning language. My interest is in materializing ideas, the quickest ways possible without the complexities of hiearchical object oriented elaborations or and unintelligible jibberish commands and #defines.. Something simple like PHP, that compiles and has a collection of commands that abstract powerful libraries or water down powerful libraries into simple subsets. You know, something you'd trust a 14 year old kid to pick up and start coding with.

Some libraries I would imagine give a young person access to really interesting features like a second SLI graphics card as a CUDA processor to experiment with SIMD processing. That could lead to an interest in learning Calculus and Linear Algebra, especially if coming in from a 3D computer graphics slant.

Or the ability to do video projection onto 3D shapes. Sound filters, and examples in C. Ways to make custom Ladspa plugins. Example code for making 3D multiplayer video games (start with something simple like a 2D Star-Trek game, then a RPG, then multiplayer RPG, then examples of other kinds of games that have realworld benefits like crowd simulation (used in architecture to determine liveable spaces), robots and AI..

I'm sure there are some computer teachers out there who would love to contribute to such a project. I know some here who have a camp every year (Los Alamos, NM) to involve children in super computer projects, called the "super computer challenge".
54
votes
up equal down
Solution #2: Community-based code training and mentoring
Written by cheesehead the 17 Aug 09 at 00:20.
Ubuntu needs a community-based code training team that offers the following services:

- Themed workshops (interactive). Use real bugs, real code, real issues to train students. We already do this with packaging and other #ubuntu-classroom presentations.

- Mentoring. One-on-one or in a group. Help students find their path in the Ubuntu universe, the right teams, the right tools, helpful advice when they hit roadblocks. Many Ubuntu teams already do this with new members.

There are already plenty of online tutorial and other self-service tools to learn the basic nuts-and-bolts of C, C++, and other programming languages.

To really mentor new students, to pique their interest in cool stuff, you need the human touch.
12
votes
up equal down
Solution #3: Promote learning Python
Written by scavenger the 7 Sep 09 at 06:48.
I'd have liked learning Python first over learning C++ first, as it is a more novice-friendly language (making 'something cool' took quite while in C/C++).

The standard Python libraries are much more intuitive than any 'jungle gym' one you might make with C++, and doing real GUI development is a kind of breeze with PyGTK.

C/C++ is a very powerful tool, and I think because of that not very suitable as a first step.

See the 5 comments or propose a solution (latest comment the 24 Aug 09 at 10:10) >>