I've been programming ever since I met and fell in love with a UNIX box in 1995, on the 5th floor of the engineering department of the University of Manitoba.
I was in my first year engineering and everyone was hogging the PC's on the ground floor. So I made my way up to the 5th floor where I was warned not to go because those machine are big and ugly and they dont have disk drives, not to mention any local hard drives at all. Welcome to the wonderful world of UNIX. Met her (UNIX) and fell in love with her. Simple and elegant!
Thus began my adventure in programming.
I had always admired those who could design websites. I asked a friend and he said web designing was a piece of cake. So, I decided to try the cake. Those days, in 1995, web designing was not done on fancy software's like Dreamweaver or Frontpage but in Notepad on Windows 3.11 (at home) or Textpad on the Sun Solaris. Every student is given some disk space and that was where my first web page was hosted. I cant really remember the URL but it was something like http://people.umanitoba.ca/~umgomez0
Then I had to learn a programming language. At that time everyone was into Fortran but a forward looking mechanical engineering professor told me to learn C instead. That was the best advice I ever got. I did learn some Fortran eventually, just so that I could understand all the Fortran programs that were lying around. But I stuck with C (being the only one out of 60 students in my Thermofluids class to hand in my computer assignment in C while the rest of the class handed in an identical Fortran program) and eventually picked up C++, then followed Java when it was first released but I couldnt keep up with the changes in the languages (I followed Java until it was version 1.5.1 then I left).
I also learned Visual Basic 3, courtesy of a good friend and mentor, Larissa Singh. She was so good with VB, she could write a program with her eyes closed. She introduced me to GUI programming. I also dabbled in HTML and web designs.
I aced the Assembly Language class that I had to take in my third year of engineering. I finally knew what the darn computer was doing in the background with all those registers and 1's and 0's. It was fun. This led me to focus more on robotics as it was the only subject that involved some programming. Finite element was then just n elective. It was fun but not as computationally intensive as robotics.
As I started my working life, I didnt get to dabble with programming as much as I would love to. Although I was working for a software company, I was more into the engineering portion of it. All software development was done in the US. I did learn some APDL (Ansys parametric development language) and PCL (Patran Command Language) along the way to help me script my anlaysis but they were not full fledged languages. It was during these years that I stumbled onto Python, in my search for a simpler and yet elegant programming language.
I also stayed in touch with Visual Basic and learned Php to make my web sites more interactive. Thank God for Php. Perl is horrible. Php runs circles around Perl which is so clunky and cumbersome. Php is so easy to learn, elegant and powerful.
But despite all these languages, I am still comfortable programming in C or C++. I admit, it took me around 4 months of reading and re-reading the section on pointers before I finally understood what it was all about. It was an AHA experience to finally see the light behind it. I dont get many AHA experiences in life but this was one of them.
Last week, at the nudge of a colleague, I am back into C++. I downloaded the Bloodshed C/C++ compiler and Bruce Eckel's wonderful book, Thinking in C++ (free of the web), and I'm back in business. C++ allows me to put forth my ideas easily and elegantly. I now create ilttle programs that help me in my engineering work.
Unlike Python, I dont have to bring up IDLE and then bring up the Python program. With C++, once the program is written, all I have to do is double click it anytime to use it. I prefer it this way. Easier.
I guess after all this searching, I am finally back to C++.