About

I am a Software Engineer living in Kansas City, Missouri. I have been programming since the age of 13, when I first learned LOGO

; draws a square with sides 100 units long 
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90

I soon graduated to Apple BASIC

10 TEXT:HOME
20 ?"HELLO WORLD"

followed by QBasic

 10 REM A PROGRAM TO PRINT SUM OF TWO NUMBERS
20 CLS
30 A=17
40 B=12
50 C=A+B
60 PRINT "FIRST NUMBER IS";A
70 PRINT "SECOND NUMBER IS";B
80 PRINT "SUM OF TWO NUMBERS IS";C
90 END

Turbo Pascal

program WriteName;
var     
  i    : Integer;        {variable to be used for looping}
  Name : String;         {declares the variable Name as a string}
begin
  Write('Please tell me your name: ');
  ReadLn(Name);          {ReadLn returns the string entered by the user}
  for i := 1 to 100 do 
  begin
    WriteLn('Hello ', Name)
  end
end.

and then

  • UCSD Pascal
  • FORTRAN
  • COBOL
  • C
  • C++

I then learned about a wonderful little program called Hypercard which led me straight to my current love of interface/web design. Along THAT path I learned:

  • HTML
  • DHTML
  • Javascript
  • CSS
  • ASP Classic
  • ASP.NET
  • PERL
  • PHP
  • jQuery

and a host of other libraries/languages. Alnog the way I have learned a few simple yet powerful insights.

  1. All languages are the same language: No matter what language you code in, FOR loops are FOR loops, IF statements are IF statements, and declarations are declarations. All major languages have the same basic concepts and structures, the implementation might be different, the syntax might change, the line delimiters might be different, but they do the exact same thing. If you know how to code at an abstract level, developing with the intent of the function/program in mind, then you can do the same thing in different languages just as easily, you just might have to look up the exact syntax for the language you are working with. All developers should start out on the older, less powerful languages, maybe a BASIC, or a Pascal compiler, and then after understanding better just how programing languages work at the actual functional level, only then move on to the languages that let you cut corners, use helpers, and code quicker. If you don’t, the first time your IDE doesn’t offer typeahead, or use-hinting, you won’t have any idea how to advance. Also, learn to be a notepad coder, anybody who is given access to only the apache error log, and vi should be able to repair a bug in a web application. If they can’t do it without a full-fledged IDE, then they don’t really know how to program, they’re just drag-n-drop developers. Additionally, those developers who can’t write without an IDE often seem much less able to take a problem not previously covered in a textbook and developing a solution, or writing something new purely from scratch.
  2. Take a design course for pity’s sake. There is an absolute wealth of developers out there who can write stunningly beautiful, exqusite code, the kind of code that would make Vint Cerf cry, but can’t design a usable UI to save their skin. I have seem abominations that while perfectly usable form a code point of view, still threatened to make my retinas bleed. No one is asking developers to be certified in Photoshop, or have the Pantone color book memorized, but make some effort to have a usable and at least not painfult to view interface.
  3. Keep learning. Yes, I know, all programming was perfected when Python was released in 1989. I understand that nothing better has been or ever will be written, but how about just learning a little about those other interlopers that have come along. You never know, some day someone might ask you to write a web site in (heaven forbid) PHP…