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.
- 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.
- 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.
- 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…