Software Development Meme

John tagged me in a software development meme - a sort of a game where you tell stuff about yourself and then pass on to other people. My moral values tell me it's not a chain letter so I guess it's OK to post :) Besides, it's fun and I'd be curious to learn more about others in the blogosphere.

How old were you when you started programming?

16.

How did you get started in programming?

My parents got me a book about BASIC and I got hooked up immediately. I only got a computer years later, so I was writing my first programs on paper (poor kid) and imagining how I'd be typing them in on a new shiny gray keyboard with loud clicking sounds... (people start having tears here). I stayed late in school computer class after classes and wrote code. What surprises me is that I guess today I'm no less fascinated by programming as back then...

I wonder if I still can get my first program right:

10 PRINT "What is your name?"
20 INPUT A$
30 PRINT "Hello " & A$

I wonder if it "compiles".

What was your first language?

GWBASIC. It had an awesome IDE, boasting install size of about 40K, xcopy deployment, 100% keyboard support, lightning-fast responsiveness and an ultra-modern REPL loop similar to F# Interactive. Moreover it stored the entire program in memory - not every IDE can afford that nowadays.

What was the first real program you wrote?

There is a belief that every young russian-speaking programmer enthusiast HAS TO implement his/her own clone of Norton Commander and his/her clone of Tetris. This is if you're wondering where all those Volkov Commanders, Dos Navigators and FARs come from.

Of course, I was no exception to that rule:

DiskGuide

Introducing Disk Guide - a file manager for Windows 95, written during 1998-1999 using VB5! If you're adventurous enough, you can give it a spin: https://www.osenkov.com/projects/diskguide/DiskGuide.rar - believe it or not, I'm still using it pretty regularly, after almost 10 years. It has a couple of gotchas (e.g. it chooses to bypass Recycle Bin when deleting files, so be careful), but I haven't seen any major bugs in it during the last several years. There are a lot of "features" though, so be warned (it's not a bug, it's a feature!).

And here's the obligatory Tetris (VB6):

Tetris

Which reminds me. We had a hallway conversation with a colleague recently who is a developer on VB IDE team - he had asserted to be able to implement Tetris from scratch in 15 minutes. So we took a recent build of Visual Studio, a stopwatch - and of course it took him longer than 15 minutes. It took him whole 35 minutes.

What languages have you used since you started programming?

GWBASIC, LOGO, QuickBasic, TurboBasic (yeah!!!), VBDOS 4.0, VB5, VB6, TurboPascal, Borland Pascal, C++ (just enough to form a strong opinion about this language), VB.NET 7.0, Haskell (my world goes upside down), Prolog (I thought my world went upside down with Haskell??!), VHDL, ... drumroll... C# 1.0 (here it goes baby!!!) , C# 1.1, C# 2.0, VB 8, C# 3.0 and lately some C# 4.0 and VB 10.

What was your first professional programming gig?

Ehmm... what is a gig? *goes-to-look-up* Ohh, I see.

I wrote a dynamic geometry educational software package in VB6. Some pretty serious stuff: https://dg.osenkov.com

If you knew then what you know now, would you have started programming?

Hell yeah.

If there is one thing you learned along the way that you would tell new developers, what would it be?

People, please strive to write clean code - learn, learn, learn - always seek ways to improve, rewrite and refactor your code - be perfectionist about the code. It's the journey that's important, not the destination.

What’s the most fun you’ve ever had... programming?

Definitely implementing the dynamic geometry project - first feeling of control over your code, first results, first rewarding successes and implemented features - that was fun. By the way I shipped it, I can't believe it.

Over to you

I herewith tag Mr. Campbell, Mr. McNamara, Mr. Carpenter, Mr. Maino and Mr. Smith.