Teaching programming – part 1: how I learned

A young person asked me recently: “Could you teach me how to write programs?”

Could I ever! I don’t know. Could I??

I’m old. I’m not so sure I’m a good example. The generations of my programming learning:

1. 1970′s — Poking around using BASIC on pre-PC microcomputers.

2. 1980′s — Writing a fair bit of software on my Timex ZX-18 using their BASIC.

3. 1980′s — Fortran 77 on PC and SunOS.

4. 1980′s — Writing a fair bit of software on PCs running DOS with Turbo Pascal.

5. late 1980′s — FTP, lots of ftp. Starting to use email. Writing Fortran apps on mini computers and using my PC as a VT-100 terminal with Kermit and a 1200 baud modem. Learned vi. Turbo C 1.0 (pre-ANSI standard).

6. 1990′s — Lots of Fortran 90 written under HP-UX and VMS. Starting to use C to interface with hardware.

7. 1990′s — CDROM based “Multimedia” projects. Silly aquarium games. Very painful under Windows 3.11.

8. 1990′s — WWW, the internet, HTML, cgi-bin scripts in Perl. Spending lots of time configuring web servers.

9. late 1990′s — The dot-com boom. All web, all the time. Microsoft ASP (classic: VBScript). Learned COM, ATL to enhance big MS technology web servers.

10. 2000′s — Big non-Microsoft web technologies. Linux, Java, Tomcat, other application servers.

11. 2000′s — Post dot-com: back to Microsoft with .NET! Love it. Back to client applications.

12. 2000′s — back to the web: ASP.NET. Love it.

13. 2000′s — set your way back machine: A huge project pulls me back to ATL/MFC/C++. Coding like it’s 1990 (Vista systems).

14. 2000′s — Computer game technology: classic C++, wicked algorithms, cool deep technology stacks like rendering pipelines, AI, terrain.

Looking back, what have I learned? A lot and especially that not all learning pain is gain.

I have growing respect for technologies that have evolved and stand the test of time. Looking down the list the Internet, client applications, and web-connected applications ebb and flow but feel like they will be around for awhile.

C++ is awesome. C#/.NET is way up there too. C# feels like C++ but someone has been in and tidied everything up. HTML has got to be one of the most ubiquitous formats on the planet.

Comments are closed.