The New Hacker Generation

Back in the days of yore, those of us of a certain (golden) age started our lives in computers with an ancient beige box which typically came pre-installed with BASIC. The old-school programming orientated environment gave many of us our first taste of programming, logic and an interest in our binary guzzling circuit-laden friends. Jono Bacon and Stuart ‘Aq’ Langridge explore this golden age of computing and how it arguably produced a generation of hackers and whether we should and could try and do the same with modern computers.
Of course, we are just the very start of the conversation, but what do you think? Was the BASIC-era a real inspiration for you to get involved in computers? Do you think that we should try and re-create it? Should we put programming more up-front in the eyes of kids? Or, are we trying to over-complicate computers and confuse kids? Share your thoughts below in the shot comments…
63 Comments to “The New Hacker Generation”
Leave a Reply



Minutiae of pronunciation fail.
Jono: “System 76 Laymuer”
It’s fucking Lemur, dude. Lee-mer. http://en.wikipedia.org/wiki/Lemur.
In a related note…cookbook is pronounced “cuk-buk”.
…but it’s spelled “luxury-yacht”
That’d be “Kewkbewk” in Lanky, reyt?
I would love this kind of PDF and I am 24 years old
Maybe I even would be able to start prototyping the kind of open source software I would like to see in Ubuntu (or any GNU/Linux) as a user and designer…
I wrote loads of programs on my BBC Micro, but don’t do much at home these days. I spend my working life writing software with C# and Oracle PL/SQL. I’d like to get my kids into programming, but seem to lack the time. I’ve done a few bits with Python and that would probably be my first choice as it’s easy to get into. I looked at this book as a starter
http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/
I’d be interested in seeing any tutorials that take you from simple programs to doing basic GUI and web work.
I quite like the idea of including a quick-start python programming manual with Linux distributions.
Using Ubuntu as the example, we could have simple example programs and supporting documentation in /usr/share/example-content/create-ubuntu-applications or something.
Starting to get (young) people interested in programming is a worthwhile effort! Although not my personal favourite, but Python is a good choice as a first language these days.
What got me interested in software-development was computer-graphics. One can do wonderful things with graphics visualizing algorithms and their runtime-behaviour. It was and still is the most exciting domain in IT, imho. It’s adoption-scope is very broad… games, simulation, UIs etc.
Best regards …
MacSlow
My experience of graphics is that it’s quite hard to get into, though? You need to be thinking about OpenGL and vector normals to a surface and that sort of thing, and you’ll always come up short against the latest games which makes you feel amateurish? Would you disagree?
The key for me was having an easy “in”, and in the key thing you care about as a kid – games, and maximum exposure. I started off with two things:
To a smaller degree, there was also the Dragon 32 I inherited from my father, but the same really applies: Access to source is vital, and focus on games is vital. Start off fiddling some variables in an existing game to make the explosions bigger, and go from there.
And as a kid, you want to show off – so you need to guarantee the ability to show what you do to your friends. In the DOS days, every bugger had QBASIC, so that actually had great reach. Web plugins like Silverlight or Flash have great reach. Hell, even mods for existing games (UnrealScript is very simple & easy) is something kids can get into, albeit a little older. Cross-platform is key though – gotta make sure the tools and output work on Windows as long as a kid’s friends are likely to be on Windows.
Actually, AFAIK, Microsoft have a kids’ programming platform similar to The Games Factory & its ilk, for Xbox, called Kodu – perhaps a cross-platform clone of something like Kodu would be a great way to get kids, even young kids, thinking like programmers and producing output they can share straight away.
Interesting: I never really thought about it that way. Maybe instead of just providing easier access to tools, we need to provide a better way for kids to show off their work? Ideas?
Packaging. The problem is all in the packaging. Making little programs is fun and easy, sharing your work is much more difficult because of the complexity in packaging. If your program relies on any non-default libraries, or relies on a specific OS/distribution’s specific design, packaging becomes a nearly insurmountable hurdle for new/young developers. No one wants to go through all the trouble of writing a deb from scratch, then modifying it for different versions of Ubuntu and/or Debian. Then if you want to share with a friend using Fedora you have to make an rpm. And what about Windows installers? Different architectures?
What we need is a social-networking style site where individuals can upload their code (written in python or whatever) and all the compiling and packaging will be done automagically. I might suggest a Facebook app, but I think a different paradigm is in order; perhaps something more Picasa like.
I think it goes further then that. If you have tried to customize anything in windows or a Mac it remains what it was built for. Basic was wonderful yes, however I remember running litstep on win9x and being able to setup what I wanted. It starts by introducing them to what is out there at a young age. High-school computer classes and on. Start small and get their feet wet with customization and they will do the rest.
Someone need to invent an IDE program for beginning programs that has achievements like Xbox Live and Four Square. I can imagine a twitter feed with a post like – @technoviking got the Async code base badge.
Oooh, good idea. I wonder if we could distill programming topics down to a badge-like system…
I think that sounds like a great idea. This kind of immediate reward can be a great incentive to continue. Also, if it’s possible to view other achievements it can really help one see what needs to be achieved still.
I would highly recommend the creation of such a system for a programming environment.
On the topic of books to teach kids to program, take a look at “Snake Wrangling for Kids.” It is a CC licensed book to teach kids Python programming, and it focuses on the types of programming exercises a kid is most likely to find interesting.
http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/
People talking about 8-bit machines and programming in BASIC are probably like me, around 40 yo.
I got my first computer when I was 9, in 1981. It was a weird Sanyo. I then went through a bunch of machines, including Amstrad CPC, Commodore, Apple II, MSX, Thomson, the IBM PC (not even an XT), Sinclair ZX and Oric, Atari (ah the joy of soldering RAM chips on top of the existing ones on the motherboard and then soldering some pins directly to the MMU to finally get a MB of RAM inside that ST, and screwing low resolution video sync at the same time!) etc… Either mine or friends. At one point I had 4 machines in my bedroom (now I have more in my whole house, sad…).
One thing that got me through it was that such a differentiator with my parents. They were clueless about that stuff, I knew how to make it do things, clever, useful or just plain stupid. They did not. A shrink may tell you more about why it was such a driver, at least for me.
Today our kids are there with computers as part of their lives. They look at me weirdly when I get a console or open a machine to do stuff inside. My daughter is 8 and barely knows about CDs and DVDs but is quickly forgetting them for iPods and memory sticks plugged into her boombox. My son is 4 and knows nothing about 12cm plastic disks. His movies, cartoons and stuff are “inside the TV”, my MythTV system, in fact.
So, how does using a computer make them different from their parents?
I couldn’t agree more. My parents and most of my peers were clueless about computers in those days. Being the local “expert” was a big driver for me to keep learning.
I think that the hacker mentality has grown beyond the realm of simple programming and stamp kits. 3D printing, modular electronics and modern languages are removing the divide between art and technology and we are moving to a new digital renaissance.
The capability for cheap home manufacturing of electronic and mechanical parts is just around the corner, and what we have is more like the radio-ham explosion than the cyber-explosion of the 80’s
The speed of development for this sort of technology means that young hackers of tomorrow will have these tools as standard, and we need to be raising the bar in terms of open education.
We need good online, open, free courses in basic electronics, programming, mechanical design, and all of the open tools that are out there.
I think the skills we need to teach the younger generation are more varied than we were taught at their age. We need to not only provide technical know-how on a wider variety of subjects, but also instill the concept of open source, open knowledge, and open education to ensure that the transfer of skills continues onto the next generation.
Agreed: but I would say that what should underline all of that is that it should be fun.
I’ve been trying to get my 18 year old brother-in-law Steven coding for 8 years now. The kid is super sharp, straight A’s, Honors classes but he (and I believe a large portion of his generation) lacks passion for learning anything outside of what’s in a text book or “fun”. Unless it’s an academic requirement, a strategy for World of Warcraft or a new app for his iPhone he doesn’t care nor does he put any extra effort into learning anything new or trying something.
For his Honors Science class he recently took part in a robotics competition and was genuinely excited about robotics as a career for weeks. “There it is!” I thought… that SPARK of creativity and passion. But, when I offered to teach him programming and buying robotics kits for him to learn with, the spark died. He lost interest, didn’t care anymore. Yeah, he’s just a kid but from my experiences and what I know of my peers, all of us came into technology with an insatiable hunger to learn and hack around with stuff. I”m just not seeing that anymore. There’s a lazy contentment that someone else will do the work for them.
I’m know I’m sounding like the Grumpy Old Man (at age 31 no less) but this upcoming generation would rather watch Facebook & Twitter status updates instead of show initiative & drive. 60 Minutes did a great piece on all of this called “The Millenials” which just made me cringe. But my children aren’t going to be allowed to just maintain the status quo & watch Spongebob. I’m going to give them every opportunity and encouragement to succeed. And I’m really proud to say that my 4 year old actually knows how to code some Actionscript to make his name appear on screen.
While I don’t have a kid yet, so am by definition coming from a position of less experience, I do believe that we can find the right spark for many kids. I think we can sell coding in one of two ways:
or…
Maybe a lot of this is about the language (human, not programming)…?
Jono, you should put the PDF of that programming guide on the default desktop of Ubuntu. Another way to get it out there.
I think we should include it in example-content for sure.
When my mates and I started getting into programming around the age of 13/14 (this was on Windows ‘98), it was all for the purpose of making our own games. Tools of choice included RPGMaker 2000 (a tile-based game designer with a form-based scripting engine, available at the time as a semi-legal free translation from the japanese version) and DarkBasic. In typical geek style, we’d each try and do the coolest stuff with the tools we had, show them off to each other, and learn from them.
This initial push is what led us on to learn other languages, and a few of us eventually to become full on developers.
Interestingly enough, when I was at uni one of my lecturers told us about when his kids asked for games for their family computer, he told them they could play games if they wrote them themselves. They ended up as pro developers too.
I didn’t actually finish that with any sort of conclusion. I guess that what I’m alluding to is that if we want to get kids interested in programming, we should provide them with some sort of simple games creation utility. And I don’t mean Quickly with a PyGame template, although that might be a good next step. It needs to be simpler than that (think GUI-based) to draw in people who might not think about programming in the first place.
That is a good point. Quickly needs a GUI front-end; a wizard-type interface, perhaps. Shouldn’t be too hard to do…
While I agree with you that a Quickly Wizard might be a good idea, that’s not really what I meant. What I mean is that with Quickly, at the end of the day you’re still writing your code in Python. With programs like RPG Maker, you didn’t have to write the code as such, you picked a function from a list (e.g. “set variable”, “move object”, “display message”) and entered the parameters into a form. It didn’t actually feel like programming as a first step, but at the end of the day you ended up with a page of code, and you could tell what you’d done to generate each line. From there, it was easy to move on to actually writing the lines yourself.
http://linkpot.net/revolves/ Has some screenshots of the interface.
Without wishing to de-rail the discussion, I am not sure if it does need a GUI in this context. I know there have been plans to build a GUI project creation dialog for quickly, but I think a lot of opportunistic devs like command line tools under the premise that the commands are simple (good examples of this are quickly and django).
That looks like a pretty nifty tool. I never really got into playing games, so I have never tried to create one. But, I can see the value in a tool like that.
I first got into computers because they enabled me to do things I couldn’t do otherwise. I skipped all the early computers mainly because the command line seemed very cryptic and uninteresting, but when my Dad brought home a machine with Windows 95, I was hooked. With just a few clicks on easily understood labels I could do all sorts of things I couldn’t do before. I even ran cat-5 cable through my parents house and built a server out of an old computer and downloaded copy of Red Hat Linux. I felt empowered.
I didn’t get into programming until years later, though. I thought programming was all about low-level commands and could only be done by the very educated and talented. Finally, I took an introductory C++ course in college. My Dad got a hold of a copy of MS Visual Studio. Almost immediately I was hooked. There were wizards to get me started on a project, and a manual built into the IDE. In just one click of an icon my program compiled and ran. Once more, I was able to do things with my computer which I had never been able to do before. I felt empowered.
The GUI made all the difference.
If we want to attract young people to software hacking, and specifically hacking with/on Ubuntu, we need a good tool with a simple GUI. Something that reduces creating a skeleton, compiling, packaging and distributing to a few clicks. I think Quickly is a good place to start. Maybe another tool would be better, though?
I think a point and click game creation tool with some simple scripting (possibly a subset of Python) would be incredible. Sounds like an awesome Quickly app to write.
Given the fast pass of technology, I think the main thing is to ensure that the core fundamentals of programming are passed on for example: recursion, data structures, pointer arithmetic. In a language agnostic accessible way rather than say learn a particular language. For example http://projecteuler.net/ but for the less mathematically inclined. Then as they mature they can be introduced to more “advanced”/explicit content such as data structures and introduce more “formal” languages like python, java, c…
Personally, I think once a person is Standard Grade/O-Level/GCSE level the best way to learn a programming language is to open up a text-editor that supports syntax highlighting, a terminal and learn how to construct the raw data structures that one normally finds in the standard libraries such as trees, heaps, stacks, queues, linked lists and so on. After one is comfortable with the language move onto an IDE: one should learn the language not the IDE. IDEs are just tools.
This leads naturally into the question of developer resources. How can we make programming more accessible to those using the languages. I find that even though the information regarding languages i.e.\ API and examples, are probably going to be in /usr/share/doc or other resource that is not accessible to new comers and quite possible fragmented accross the computer and internet. Maybe an idea for a shot…
I admire how in Mac OS X there is a /Developer that provides a single central location (via symlinks mainly) as to where users can locate various developer resources such as SDK docs, code examples, all cultivated from the existing software. When compared to other unix distros the information is already there i.e.\ man pages, info pages manuals; but it is not easily accessible. I think that a lot of people do not realise is that all the information exists within the computer its just accessing it.
I think that (a /Developer) can be used in conjunction with a pdf that highlights the power of programming together with some basic puzzles that can be achieved with some basic knowledge of programming i.e.\ “The Art of Programming 101: How to rock the Towers of Hanoi”
I got started in BASIC programming on our Commodore VIC-20 (with 5K of RAM! not 5MB, K!!) in 1984 or so, when I was 14. I loved writing little programs, even if they did nothing useful. It used a tape drive for storage. PRESS PLAY ON TAPE – those were the days…
A couple of years later we upgraded to the Commodore 64. I continued programming in BASIC, and we eventually got a word processor for it, which was slow but far better than using a typewriter, so yes, people did use word processors on the C64
One of my fondest early computer memories was going into an electronics shop where a C64 was on display, and a customer asked a staff member about it. The staff member said it wouldn’t do anything unless he inserted a game cartridge. Then they both went off and I wrote a little BASIC program to make a man dance on the screen (remember all those graphic characters on the keyboard?) People were staring with their jaws open. I just shrugged and smiled…
I never had a commodore64 (it was a little before my time) I had the nintendo64 and the sega megadrive. They didnt require any programming. I would argue the opposite of you guys I think because computers are handed to kids at such an early age they are exposed to programming very quickly. The problem is at the moment programming is concidered hard. So I think if we just say no programming isnt hard in python/ruby, then I think we could get some younger people getting invloved.
I got my first computer when I was 11 and I fixed it a few times but didnt know what programming was but I was conceptually aware of it in a way.
I think there is that generation of people that would like to get into programming, but don’t know where to start.
I’ve been programming for 3 – 4 years on my University course and I have to be blunt in saying I was lucky selecting a course that I loved, I had done no programming before other than HTML scripting and a little actionscript for flash.
And you guys are suggesting programming guides for Ubuntu (which is a great idea, don’t get me wrong) but when I was younger I didn’t even know linux existed. The only time I learnt about it (and began my obsession with it) was when I started university and was told to give it ago. My point is Linux and Programming (in my mind anyway) is still a very much hand in hand relationship in that is you are aware of Linux, you are probably aware of programming (to some extent whether you program or not).
My point being, that it would be great to reach Windows Users that are that subset and they would probably love the a.) Installing a new OS b.) Programming for the first time c.) being able to do something they’ve wanted too for ages.
The only step after that is to promote open source projects that suite peoples programming abilities or help them start a new project (Programming on a project on your own can get a little boring at times). Thats when you could do with light introductions to code versioning etc.
I could go on about a number of topics about this but thats my thoughts on everything so far.
Love the intro booklet, but think the market of linux users isn’t the most effective place to aim it.
I’ve tried to learn to code a few times before with limited success, but there have been several stumbling blocks.
First of all, the basic elements I remember reading about seemed so distant from what I actually wanted to achieve. So, that’s how I form a loop. Fantastic. It’d be nice if it could be related to me in a way so I could see why I would want to loop something. I understand there’s countless reasons, but a few carefully explained examples, both unrelated to code and in real program terms, would have been great.
Then there was trying to determine what I wanted to achieve. Sometimes there’s something I know I want, such as a box that spits out a random quote from a database. I know what needs to be done to make that work, even if it’s more like scripting. Other times it is a case of trying to figure out how to think about a problem so I can find a way to use programming to solve it.
Saying one can code just about anything is all well and good, but I think we need to find a way to teach (young) people how to think about problems and to understand where programming fits in with this thinking.
I would still like to learn how to code, but on a practical level I have so little idea where to start. Help me, oh great community!
I started programming in school with punch cards, and we only got one chance per day at trying to get the Fortran program to compile. It was still quite exciting at the time to get a wide print out off the line printer with your results.
I’m not sure that a PDF would be the right way to distribute the “booklet”. I think a web site would work much better. Ubuntu could still have a link to the web site in Firefox. You can update the content as required, and it could have forums where the kids could exchange ideas and encourage each other. The social aspect would help keep them interested.
When I first got a PC there was a community of people sharing “free software” source code with each other, although we didn’t call it that, and I don’t think the GPL existed then (we didn’t know anything about copyrights either). You just copied your source code onto a floppy disk, put it in an envelope, and mailed it in. Each month you would get a printed news letter with the contributed source code in it. If yours was accepted, you got the glory of seeing your name in print.
I think that kids would want something similar (although obviously updated for the Internet age). They would want the chance to show off their own hacks and achievements to others. If it was categorised by age group it would mean that the 9 year olds wouldn’t be humiliated by the abilities of the 14 year olds.
For me, Linux put the fun back into programming that was lost from the MS DOS (and C64, and CP/M and UCSD P-System) days. There was a long dry spell for programming as fun while MS Windows was pretty much the only game in town because the barriers to doing anything interesting with tools like Visual Studio became so much higher.
Kids need to have immediate satisfaction without having to climb huge hurdles first. I think a beginner needs to be able to see some results within the first 30 seconds of starting, even if it’s only to see their name printed. I don’t think a “kids IDE” is the right answer because then they need to learn the IDE to do anything. What they need to get started is a simple command line that still lets them do something interesting. Perhaps this could be packaged as one of the games in Ubuntu?
I’m replying to myself here, but I’d like to distill the previous comment down to something more useful. I think what you are looking for is something simple that is practical for you to do with minimal effort and without continuing maintenance. Any sort of “social network web site” fails that concept immediately.
I’d suggest having a few web pages (instead of a PDF file). You can load a web page directly from disk without a web server. The web page makes it easy to add external links to additional sources.
The web page(s) could offer half a dozen examples of programming with increasing levels of difficulty. I would suggest using Python, because it gives immediate results (without compiling, etc). The first could be a a simple “hello world” program. Another could pop up a TkInter (or GTK) window with an “OK” button. Another could play a sound, etc. The whole thing could be followed up with links to existing web sites which provide more information. I think the concept you are looking for is just to let people know that this sort of thing is even there to begin with.
I haven’t used Quickly yet, but one of the examples may use that to show how easy it is to get started with a simple GUI program.
The big question of course is how people will know that this is even there to begin with. They need a nice big link that gets installed on the desktop that they can click on. If they’re not interested, they can just delete the link. If they are, they can try the examples and then follow them up on the Internet links you would provide.
With regards to awesome, easy programming, I think one of the best examples of this done well is Blitz3d, BlitzMax and Blitz BASIC, the latter of which was first popular on the Amiga and the former two are quite new. They’re all done by Mark Sibly, who in my view is a genius at keeping things simple. Countless games, including Worms, had their start with Blitz. It’s a great environment for beginners. (Oh, and don’t let the name fool you: all the newer ones are compiled languages).
It isn’t free, unfortunately, but it’s really interesting to examine. There are a lot of things it does well. The most important for me (Blitz was my first “real” programming language) was that successful indie developers actually use it, it’s fast and it’s flexible; it didn’t feel like I was driving a tricycle.
I haven’t used it properly in a while, because I moved to Ubuntu and the Linux version of BlitzMax is a tad strange. I have also never seen anything else quite like it.
Python is close, but I think Blitz was always particularly neat to work with because it’s very self-contained. It’s distributed with piles of gadgets that immediately work since they target just the one programming ecosystem.
Even out of the box it’s all good to go for a full-fledged project, so one can dive right into it without ever thinking about libraries and linking and build scripts and all that garble.
Finally, that garble I mentioned is REALLY important. It’s arguably the most complicated thing in programming and the biggest turn-off in our crazy world of Makefiles and autoconf. I’ll bet you didn’t need to think about any of those things when you programmed on the C64.
You can have a programming language that reads minds, but as long as a beginner finds himself referred to this when he wants to use a particular library, it isn’t helping: http://sources.redhat.com/automake/automake.html
My first computer was a shitty compaq that came with windows 98. I had used 95 in a friends house and my cousin had dial-up and a website for her trad group. Right now out second computer is broke so in my house we are using the computer from 1998 with XP. Luckily I have a macbook I got before I went to college about 3 years ago now. It was really then I ‘’started” into programming, altho it was more dipping into everything as oppossed to learning anything as I had little time and decided not to do computers in college wherease I am going to do a hDip/Msc in computer science now, its a funny life.
Many people still feel they are annoying and geeky.
I wasnt around back then but people like you two (sounds bad) were still a minority, most people did not program.
If people are interested in programming then will have the internet and find it out. They wont use the manual – they will call the friend who they usually do.
Well I think its hard to get people interested in programming these days. The people that are doing programming in college don’t even like it.
They are just doing it because they “have to”. Im not sure why this is but I think maybe they see that kind of stuff as uncool. :/
Programming is not something you go into if you dont want to do it.
They will drop out soon enough or fail.
My two cents:
Use a website instead of a PDF, but an autogenerated PDF-isation of the site would be great for offline use.
Introduce command line and basics of programming in Python or Ruby – loops, conditionals, etc.
This must be done, as someone mentioned above, in the context of why these bits are useful. Perhaps build a simple game, showing off variables, arrays, conditionals and loops along the way. Variables for monsters, arrays for lives, conditionals for differing behaviour, and loops for the game loop or a triple-hit or something.
Something akin to what AppleScript/Automator gives you on MacOSX, where you get a little code but a lot of support to control apps on the system: e.g. Aq’s example of tweeting what he’s listening to in a Rhythmbox plugin was excellent (even if it did depend on Lucid). Little snippets of how to control/query the apps they use are great.
I agree with the need to support Windows but have bugger all idea of how to show off all these linux apps and scripting from there. Perhaps making it really easy to run a VM would be a start – most desktop PCs these days (and in the future) won’t have too much trouble running a VM with Ubuntu Netbook Remix in it.
Great idea guys. Keep up the great work.
I’m sat here surrounded by computers that I use to make a living, and my first ever machine – an Acorn BBC B which I used to write graphics programs in assembler with. That is how I learnt to program. How do you get kids interested? I wish I knew, I’ve singularly failed with four of my own. They all think it’s too difficult and would much rather be the recipient of code rather than the creator of it.
As to a language to introduce them to, it would have to be a web creation tool as that is where the future is (imho), so perhaps something like PHP which is cross platform and has an enormous amount of documentation and support.
Just my two pennies worth.
I started in the early 80’s with an Australian Computer called a Dick Smith Wizzard. This was a very basic computer, that had a basic interpreter.
My brother was studying to be a Programmer, so he already had some computer experience, albeit IBM mainframe.
But this was my first experience of a computer and by the end of Chirstmas Day we had it playing Jingle Bells.
After writing a few games, like text Blackjack and then typing in some Apple II Basic games. I was hooked.
My next computer was a Commodore 64, and I remember typing in all the listings from Commodore International and Your Commodore. This was the only way to get your computer to do things (todo lists, keep track of money, etc.) which there was no commercial alternative
We don’t have that experience anymore. Although magazines like Linux Format and Linux Magazine go someway to teach you to programme, if you want a program to do something there are generally many downloadable programs to use. It is just too easy not to do it yourself.
BTW, I used the GEOS Wordprocessor on that Commodore 64 to write all my reports for my Computer Science degree and also wrote basic “c” programs on an ANSI C compiler. I never got a PC until I started working.
One of the things that I totally miss from the early days of Computing is the manuals. When you got Dos 6.0 you got a book, that basically told you how to do a lot of the things that were needed, now you need to search on the screen, and it seems like it misses something. I don’t think a lot of people read them anymore, or know how to find the proper manuals. Most of it now is help files, and not like a structured Manual, more of a piecemeal. This is a big change that effects hacking. No longer is it easy to read and become a power user. One thing that I see lacking in the Open Source Community is in the Manual. You can find answers piecemeal, but there is generally no structured place to really get into the depths of the system. There is no place to explain the depths of how the commands work, much like the manuals of old.
“People talking about 8-bit machines and programming in BASIC are probably like me, around 40 yo.” I’m 25 and fondly remember BASIC and Gorillas. I read a magazine called “321 Contact” (later just Contact) as a kid which had the code for a simple BASIC game in each issue. I used Windows 3.1 as a kid but remember learning DOS commands and had a great kids’ book on computing principles. I was just breaking out of AOL into the web in the early 90s, I learned HTML around ‘95, and I’ve been a professional web developer since high school. Today I still love the terminal, I do a lot in a Unix terminal that could be done in a GUI instead.
I definitely think some people either have the programmer gene or they don’t, but I do wonder if kids today have the exposure to basic programming. But why not? I sought out programming, I read the BASIC page in 321 Contact instead of skipping it, and any kid today can Google “Learn Python” and get started.
Out of interest, about the pic for this shot – is that a very young Aq I see? ;o)
I think coming from computers now-a-days the point is having sys admin skills. I have been using computers for 5 years more or less and I don’t really have the need to write little programs like Jono said with the Comm-64. I find that I spend more of my time getting things to work rather then trying to write something to play mp3’s.
I guess the thing then is to level up the task you’re attempting to achieve. Don’t try to get kids in by saying “Hey, wanna learn how to decode and play MP3s?” because, as you say, they’ll rightly respond “My ipod does that, I don’t care”. If, instead, you say “Wanna learn how to update Twitter and Facebook when you mark your current playing song with 3 or more stars, and have the Music Store recommend similar artists?” then they might be interested. Or perhaps something to do with associating songs with photos or whatever.
It’s that level of scripting, where you’re taking advantage of the libraries and APIs available on the system that might get them hooked in the first place – then they can start writing actual apps of their own.
I’m 34, about 6 months older then aq, and I was a science geek as a child. I learned to program at uni with FORTRAN trying to weigh the universe (ya rly).
So not everyone of our generation started with c64 basic, and similarly kids today will still find their way to programming especially given the easy access to free as in beer tools, tutorials and real code to learn from on the internet, just another thing free software has given us!
Although I have always used computers throughout my life (my first was the spectrum 128K at home and the BBC micro at school) I have to admit that it was actually ms that gave me my first taste of command line computing. I hated win 3.1 that was on my first pc, to the point that I disabled it from the startup and worked primarily in dos. Although I had several years away from the terminal whilst I ran a pc exclusively on xp, I found that my experience on dos made the transition to Linux less painful.
I am not a programmer, however using the command line from a young age allowed me to approach some basic programming challenges without apprehension. This is true of many of my school mates (I’m 30). However my worry is that the only people that will now be using the command line and programming at an early age will be those who are really into computing. The worry is that the tide may turn again and Linux will get the ‘exclusively for geeks’ reputation all over again, this may well put off a lot of newbies.
I recently read “Structure and Interpretation of Computer Programs” to learn a bit of scheme. This is a first year book at MIT. In the introduction it had this:
“People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.”
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html#%_chap_1
If I’d read that as a kid I’d have been hooked straight away! A programming introduction has to be about about hooking people into the subject. Once you’re on the inside of the programming world it can be very exciting. There is a real adrenalin rush seeing your running code function correctly.
Surely I’m not the only one who gets a buzz from programming.
Hi, Jono Hi Stuart again…. Hi Community…
As many others I (too) did start with Commodore64 and (q)B.A.S.I.C as well… But for me it is a liitle bit more like…. I have to tell you that I am NOW with about 30 years now enrolled into a tech university cs bsc in my whole life. And there I am surrounded with 18-15 year olds who IN FACT love programming deeply! They are doing phantastic jobs…
I would tend to think it is a question of the type of person you are. ARE you a GEEK, NERD or something like that by nature? If yes, then you’ll admire your freedom (not just within cs)
If not, you are tending to live your “normal” life and share it with others …
Do you know “TURTLE” by M.I.T It is a wonderful programming application too, which is nowadays widely used within the OLPC project on the “sugar” platform inside the XO’ computers
correction: 18 – 25 years old (mostly)
When I was in school there was a policy that you could only play games you wrote yourself. A fair few of us learned to write games. Now there’s motivation
I’m now 42 so it was back in the Apple IIe and C64 days.
You guys just skipped over Scratch but it is the bees knees for kids getting started with programming. It is accessible and gender inclusive. It allows kids to focus on logic with no bother about syntax. Couple this with the Scratch website, and you have a place for kids to share their work and learn from what others have done. If a kids likes something that someone else has produced they can download, inspect the code and build on it. Their approach of imagine, share, learn really is what happens.
The only actual experience I have with Scratch is that my daughter didn’t get it at all. Possibly the fault is not in the tool, there, of course, but also I am not all that convinced that a thing actually designed for kids is the right way to go. Do you think that Scratch really works? I’d be interested to hear other people’s experiences of it: do we have any IT teachers or programming parents who’ve tried it?
I’ve used Scratch with students ranging from grade 6-9 very successfully and I definitely believe that this is a very good way to go. I’ve used it with grade 11’s as an intro to programming and they find it challenging, fun and quite complex programs can be developed. It has the main constructs, variables and a method for alerting or passing values to and from modules using the broadcast command. I like the fact that the product that students produce is easy to embed into a web page to share. The way that MIT have structured their site supports openness and sharing also. It supports a very FOSSy way of working for students.
To get started I would recommend that you Download and print the Scratch Cards (http://info.scratch.mit.edu/Support/Scratch_Cards) Watch this video (http://www.youtube.com/watch?v=jxDw-t3XWd0&feature=player_embedded)
We run a Scratch Day event and our next one is approaching in May. I continue to get feedback from last year. For example, very recently a female grade 8 student said, to a teacher running the neighbouring school’s orientation program, “I can’t wait to do IT at High School, I want to be a Google Engineer”. This was repeated to me as being a direct consequence of the 09 Scratch event and the exposure that we had provided. I have lots of these sorts of examples being repeated to me. (http://limestonecoast-scratchers.wikispaces.com/)
I have no doubt that this is an excellent path to follow and if you want to get kids, even older kids, excited about programming then this option should be examined carefully.
For those interested, here’s where to get started with scratch. I’m downloading and stilling now. It’s not in the Ubuntu universe archive but is packaged for Ubuntu.
http://info.scratch.mit.edu/Support/Get_Started
An even more important link for me getting started are the videos showing it in action.
http://info.scratch.mit.edu/Support/Videos
[...] little while back, Aq and I did a Shot Of Jaq shot about how back in the good ol’ days computers used to make programming more accessible to kids. The basic gist of the shot was that when you bought a Commodore 64 or Spectrum, access to the [...]