The first computer I saw was a RCA 601 in 1966. To earn money for college, I took a job as a 3rd shift computer operator for New Jersey Bell telephone company. The 3rd shift manager (my boss) showed me the console, about the size of two desks put together and then the actual computer. What he actually pointed at was two rows of tape drives that were in front of the computer.
That first night he showed me how to enter instructions into the computer. "All instructions to the computer are entered in numbers from 0 to 17, such as 0,1,2,..7,10..17. So notice that there is no 8 nor 9." As a math major, I answered "Oh, octal". He answered "not so smart for a college kid are you, I said 'All instructions to the computer are entered in number from 0 to 17...' ". At that point I said "Thank you". It never got better.
If that was my only experience with computers, I'm sure my life would have been different. But the previous year Saint Peter's college received a donated computer, a vacuum tube General Precision LGP30, and the next semester, I enrolled in the one and only college computer course. The LGP30 had 16 instructions, and a memory of 4096 32 bit words. The memory was a drum disk and had 64 cylinders and 64 memory locations per cylinder . When you did a branch (goto now), you selected the cylinder and memory location to branch to. It was a hex machine and all input/output was either to paper tape or to a 10cps typewriter(console). The typewriter had a 2-color ribbon so you could print in black or red. All programs started at '0000' ( after searching on google and finding the wikipedia information, I think boot loader used the 1st cylinder, and the program started at '0100' ). My final project for the course took 100+ hours and could be done with Perl in about 15-20 minutes now.
IBM hired me after graduating college, and I spent the next 6 months learning to program the IBM S/360 mainframe models. It was just wonderful to program in assembler language and be able to list your program on paper. Punched cards was a major step-up from paper tape.
On my first project, I was back on 3rd shift as part of a project called "Large Core Storage" that was needed by NASA for the space program in the US. LCS was a separate 1MBytes of storage that could be added to the S/360. It was the size of a normal bedroom. During IBM, I entered the US Army Reserve and after my 6 months of active duty I could continue my IBM career as a part-time Reservist for the next 5.5 years. I said a lot of "Thank you"s in the Army.
I worked at IBM until 1981, when I left to get away from computers. My last project at IBM took 2 years on 3rd shift (to get enough computer time) and I was the lead programmer. The project was canceled because "...it was too good". The project was to improve the process of configuring a network. At that time it took 4-5 months to configure a network with more than 1,000 nodes. My team was able to improve that to 4-5 days. So when it was canceled, I said "Thank you" and left to find a new life away from computers and 3rd shift activities.
I started a printing business and soon needed a computer to develop quotes. I chose an Z80 based system with 64KB of memory and 2 floppy drive(360KB each). Pretty soon, I was doing more with the computer than with the original business. In 1986, I was asked by a state government agency to develop a data base for automating the state's court systems (about 500 courts). I had written a data base in machine language previously, so I wasn't too worried about writing it in 'C'.
At the end of the development stage, there would be a competition between IBM, another fortune 100 company and us. The winner would get the contract to automate the state's court system. It took about 6 months to develop a working prototype, and we entered the competition. I actually spent a week within the court we were to automate, and designed the data base and reporting tools to mimic the court process. The single biggest problem was the court calendar, which I designed so that as each court item was entered it was saved in the data base in correct date/time order. Printing the court calendar was simply to list the data base for that specific day, week or month. I installed a 4-user Altos Z80 based computer with 208KB of memory, 20MB disk and 4 Wyse terminals. For printing, I used a laser printer for 10ppm (after warm-up) printing, which was critical to win the contest.
When the contest was over, we won. The other 2 competitors printed the court calendar over night because of the sorting required, while we could produce and reproduce the daily court calendar in under 5 minutes. Upon our success, I was brought into a very, very large conference room and told, “...we never expected you to win, so we're starting over and will have another contest in a year...” I sadly said “Thank you” and went on my way.
By 1987, I had become an IBM business partner with the hopes of re-entering the court contest with IBM instead of competing against IBM. Unfortunately there was not another court contest.
In 1991 with the announcement of the RS/6000, we had a law office package that IBM salesmen could sell with the cost-effective RS/6000. They were pretty good times again.
Perl found me in 1996, when for a project for a fortune 100 pharmaceutical company, I had to interface a RS/6000 to an IBM S/370-390 mainframe. I was told by the client to use Perl. I wasn't impressed with Perl, but it did the job.
But in 1997, IBM wanted the business partners to get involved with the Internet, and I used Perl to write cgi scripts on ever more powerful Risc computers and Perl started to evolve. By 2003, it was my preferred software language.
Now I use Perl all the time, and my hats off to all Perl developers and PM members. But when someone tells me to use CPAN modules, because they are the experts. I simple say “Thank you”.