I think the most important thing we can teach our boys is how to talk to girls.
The most important thing we can teach our girls is how to not be distracted by boys.
If you're a guy reading this, you probably relate to the first one. If you have a teenage daughter, you probably relate to the second.
As for programming... well... by the time they're out of college, there won't be any programming jobs left in the western world (ooooh... there's a flame challenge right there).
... but you'll always need someone to look after systems (unless it all goes remote off-shore). So buy them an Apache book, disguise it with stories of cowboys and indians (to keep the girls interest (sheesh)) and maybe they'll have a future.
Alternatively, get them into a proper job like law or medicine. The world will always need doctors, and doctors are only human, so the world will always need lawyers.
My interest in programming started around 1982 (I was 14) in the UK. There was a magazine called "Electronics & Computing Monthly" that I used to get for free from a family friend. They had a series called "Building BASIC" which taught BASIC from first principles. Every day after school I would walk to the local WH Smiths and play with the ZX81 they had on display.
In '83 my mum bought me a ZX Spectrum. I had a notebook full of programs I'd written and I couldn't wait to try them out. Oh my God, they were so slow. I remember this one game I'd written that used a laser gun effect by drawing concentric circles starting large (close to the viewer) and getting smaller as they went away. I imagined the sequence taking 1/4 second to draw.... it took about 1 second per circle for the big ones! Still, it was fun to learn about such things.
In the back of the ZX Spectrum manual was an ASCII chart/instruction set dump. Strange terms like EB-extended and DD-extended. No idea what they meant. Then Electronics & Computing Monthly
started a series on Z80 programming. I was hooked. I bought the HiSoft assembler and dove straight into it (at 15 yrs old). All of a sudden those slow BASIC functions became ultra-fast. I was hooked.
The next year, at 16, I bought an Atari 800XL. Wanted a C64, but that was more expensive. I bought the Atari Assembler/Editor cartridge and starting writing 6502. I couldn't have written more than 100 lines of Atari BASIC in the 3 years I owned that machine.
In 1986 I bought an Atari ST (wanted an Amiga500, but it was more expensive). It came with a book (the title of which I can't remember) but it covered 68000 assembly. Oh my God! So many registers, instructions and addressing modes. First order of business was buying HiSoft's Atari ST assembler "DevpacST" (Andy Pennel, the author of DevPac for the ZX Spectrum and Atari ST now works on developer tools at Microsoft, I think). It didn't take me long to learn 68000 and pretty soon I had software sprites flying around on the screen. Big fun.
In '87 I started University, which gave me my first introduction to UNIX. All the Computer Science machines were UNIX. Over time we did 'C', and I got into UNIX systems programming, sockets, networking, etc. In '88 I used my first X Window System machine on a Digital DECStation 3100 and was appauled by the size of the binaries.
One summer vacation I bought a Tandy TRS80 (I think) which had a 6809. Just for fun I learned it and wrote a few little programs.
My work since I graduated (1990) has been mainly networking embedded systems. It has been mostly 'C', occaisionally C++, a couple of times a little 68K, and when I have managed to swing it, a little micontroller work in assembly (just because I love doing things the hard way).
A couple of years ago I discovered the Gameboy Advance development group GBADEV and for the first time in a long time the childhood itch to program a new platform really hit hard. I bought a FLASH cart, downloaded the GCC port for the ARM, bought the ARM book and taught myself ARM assembly and got to work on a couple of projects.
The GBA is really quite retro. It's pretty much impossible for a solo developer to write anything really interesting for the PC. The bar is just too high, with art especially. The GBA, being a relatively trivial system allows hobbyists to get to a level on par with professionals... or at least to be able to see the bar from where they're standing.
Programming is what I do for a living. It's my job, and as such it doesn't give me the pleasure it used to. Protocols and systems programming isn't fun. Send a message from A to B, do shit, send a reply. Nothing visual. It has its challenges, especially making things scale and be performant within the constraints of the protocol and/or the system, but really... yawn... been there, done that, and I can do it again and again (which is why God invented 30yr mortgages). I dabbled with Wind
Let's face it kids today are not going to write a video game to be proud of today like they could back in the Apple/64/Atari day.
I don't think that's true. Buy them a Gameboy Advance, a FLASH cartridge and download Dragon Basic. They can advance onto GCC (or even ARM assembly for time-critical code) over time.
The GBA has C64-era (Amiga maybe) graphics (sprites, rotation, scrolling) and programming for it can be very rewarding (press LEFT, the blob moves left). Dragon Basic is apparently very capable for beginners.
The most important thing we can teach our girls is how to not be distracted by boys.
If you're a guy reading this, you probably relate to the first one. If you have a teenage daughter, you probably relate to the second.
As for programming... well... by the time they're out of college, there won't be any programming jobs left in the western world (ooooh... there's a flame challenge right there).
Alternatively, get them into a proper job like law or medicine. The world will always need doctors, and doctors are only human, so the world will always need lawyers.
Grumpy.
In the back of the ZX Spectrum manual was an ASCII chart/instruction set dump. Strange terms like EB-extended and DD-extended. No idea what they meant. Then Electronics & Computing Monthly started a series on Z80 programming. I was hooked. I bought the HiSoft assembler and dove straight into it (at 15 yrs old). All of a sudden those slow BASIC functions became ultra-fast. I was hooked.
The next year, at 16, I bought an Atari 800XL. Wanted a C64, but that was more expensive. I bought the Atari Assembler/Editor cartridge and starting writing 6502. I couldn't have written more than 100 lines of Atari BASIC in the 3 years I owned that machine.
In 1986 I bought an Atari ST (wanted an Amiga500, but it was more expensive). It came with a book (the title of which I can't remember) but it covered 68000 assembly. Oh my God! So many registers, instructions and addressing modes. First order of business was buying HiSoft's Atari ST assembler "DevpacST" (Andy Pennel, the author of DevPac for the ZX Spectrum and Atari ST now works on developer tools at Microsoft, I think). It didn't take me long to learn 68000 and pretty soon I had software sprites flying around on the screen. Big fun.
In '87 I started University, which gave me my first introduction to UNIX. All the Computer Science machines were UNIX. Over time we did 'C', and I got into UNIX systems programming, sockets, networking, etc. In '88 I used my first X Window System machine on a Digital DECStation 3100 and was appauled by the size of the binaries.
One summer vacation I bought a Tandy TRS80 (I think) which had a 6809. Just for fun I learned it and wrote a few little programs.
My work since I graduated (1990) has been mainly networking embedded systems. It has been mostly 'C', occaisionally C++, a couple of times a little 68K, and when I have managed to swing it, a little micontroller work in assembly (just because I love doing things the hard way).
A couple of years ago I discovered the Gameboy Advance development group GBADEV and for the first time in a long time the childhood itch to program a new platform really hit hard. I bought a FLASH cart, downloaded the GCC port for the ARM, bought the ARM book and taught myself ARM assembly and got to work on a couple of projects.
The GBA is really quite retro. It's pretty much impossible for a solo developer to write anything really interesting for the PC. The bar is just too high, with art especially. The GBA, being a relatively trivial system allows hobbyists to get to a level on par with professionals... or at least to be able to see the bar from where they're standing.
Programming is what I do for a living. It's my job, and as such it doesn't give me the pleasure it used to. Protocols and systems programming isn't fun. Send a message from A to B, do shit, send a reply. Nothing visual. It has its challenges, especially making things scale and be performant within the constraints of the protocol and/or the system, but really... yawn... been there, done that, and I can do it again and again (which is why God invented 30yr mortgages). I dabbled with Wind
I don't think that's true. Buy them a Gameboy Advance, a FLASH cartridge and download Dragon Basic. They can advance onto GCC (or even ARM assembly for time-critical code) over time.
The GBA has C64-era (Amiga maybe) graphics (sprites, rotation, scrolling) and programming for it can be very rewarding (press LEFT, the blob moves left). Dragon Basic is apparently very capable for beginners.
Grumpy.
GBADEV
I wrote a clone of this fantastic game for the Gameboy Advance.
Check it out at GBADev
Grumpy.