Tuesday, April 9, 2013

Answers and The Way Back Machine ...


First, a couple of clarifications - answering questions from some of the comments/questions I have received on earlier postings:

  1. How did they get a room full of errors without anyone noticing?  Well, long story short, the CEO from the acquired company was aware of the errors being generated, but he was more concerned about selling us on the new system vs cleaning up the mess and holding the outside firm responsible for the mess that had been created.  I give a lot of credit to the individual that finally broke the silence and showed me the room.
  2. Are small businesses really at risk from crackers?  Let’s say you’re a small business.  You run a Windows network to connect your employees - let’s say you have 3 or 4 employees and yourself.  You store your customer information, contracts, payments, bids on your network.  Do you store copies of payment information - actual checks, credit card numbers (storing credit card information is a no-no)?  Do you have tax-id’s of your business or companies you do business with?  Do you store social security numbers along with names and addresses?  Do you store any medical/mental information on our staff or your clients?  Do you regularly patch your Windows server, your workstations?  Do you run anti-virus, anti-malware software?  Do you scan incoming emails for viruses and does your solution also scan attachments?  My bet is that you’re like thousands upon thousands of other small businesses that are not patching and taking security seriously.  Crackers scan the internet for easy targets - once they get your IP address, it’s off to the races.  They’ll steal anything you have and look for anything they can sell.  You won’t know until they steal the identify of you, your employees, your clients or drain your bank account.

Another question that I’ve received from several readers - how did I get started, what did I do to make this a career.  So, let’s hop in to the way, way back machine and see what got me to where I am today.  (A little luck, a lot of hard work and some great mentors along the way.)

I touched my first computer keyboard when I was the ripe old age of 12.  It was a teletype terminal, in a closet at my middle school, hooked up to a DEC PDP-1170 at the local community college.  (And with that, I’ve just dated myself.)  For those of you that aren’t in the know - a teletype terminal was a keyboard attached to a printer.  There was no computer screen.  When you typed, it was printed on greenbar paper and then the system response would follow.  I was very curious about what this machine was and what it could do.

One of my teachers was kind enough to get me an account.on the system.  Now the really nice thing was each account had access to BASIC and Fortran.  There was also a Star Trek game loaded on the system.  It would print out a grid on the paper showing where you were and where the Klingon battle cruiser was located.  You then fed commands into the computer to move your ship and to fire on the Klingon’s.  The program was written in either BASIC or Fortran and you were also allowed to print out the program listing.  And that was, as they say, all she wrote!

I printed out the computer program and poured through it to understand how it worked.  Now, back then there was no structure to the program.  Both the BASIC and Fortran languages at that time were crude and ugly, but they worked.  Variable names were 1 character long and you moved through the program with GOTO statements.  But as a 12 year old - it was something new and shiny and it grabbed my attention.  I spent quite a bit of free time poring through the code and figuring out how to reprogram the game.  I ended up learning BASIC on my own - and now that I think about it, the game had to have been written in BASIC, because I was making changes to the game before I formally took the Fortran programming class.

Through High School, I ended up taking the formal Fortran programming class.  I learned quite a bit from the instructors on how to write code that used the least resources from the system as possible.  Remember, back then, you were lucky if you had 64K of RAM available.  And if you really want a hard laugh, the Fortran class forced you to use punch cards to create your programs.  Yes, punch cards.  If you don’t know what they are - do a search on the internet and have a good laugh.

When I was 16 years old, my dad ended up purchasing an IBM 5110 computer for his office.  He needed someone that could work on the programs that had been created to track the clients and produce mailing labels and invoice his clients.  And that became my first real programming job!  The IBM 5110 was advanced for it’s time.  If memory serves me correct it had a grand total of 64K RAM and relied on two 10” floppy disks - 1 floppy to store the program and then you could swap disks in the second drive for the data that was needed by the program.  The computer was the size of a 2 drawer file cabinet and it had a small 5” screen and keyboard built in to the top of the cabinet.  Now, I also worked at a fast food joint during high school.  But it was computers that had grabbed my attention.  

When I left for college, I got a job at the local computer store to do delivery and setup.  So, for a couple of hours each afternoon, I delivered computers to local businesses, performed setup and would also pick-up equipment that needed to come back to the shop to be repaired.  The benefit to working for this computer store is that they had access to the first IBM luggable computer - the size of a sewing machine.  The owner of the store actually allowed me to use one and take it to my dorm room.  My instructors let me use the compilers on the IBM luggable - PASCAL - to compile my programs and produce the necessary assignments.  Joy of joys, for the most part, I didn’t have to go down to the computer lab.

Formally, between college and high school, I learned 3 languages: FORTRAN, Pascal and Assembler.  Over the years, I have learned additional languages and scripting languages on my own - BASIC, Visual BASIC, dBase, Clipper, Java, JavaScript, C, C++, and Ruby on Rails.  On top of that, I’ve also learned HTML and CSS to develop web applications.  There are probably a few other languages that I’ve learned - but you get the point.  I’ve learned way more languages on my own, then sitting in a classroom.

Out of college - I got my first job, selling and installing IBM PC’s and teaching courses on Lotus 1-2-3 and dBase III for an IBM VAR/VAD.  This was just as PC’s were really starting to take off - if I remember correctly, the opening price for an IBM PC with a couple of floppy drives was in excess of $5,000.  And the monitors were green screen - all text, no graphics capabilities.

It took me a couple of years to get my first full time job as a programmer - and from there I’ve moved up through various companies as a developer and then managing developers.  So, what were the secrets along the way?

  1. I’ve never stopped learning - I’ve purchased dozens upon dozens of books on programming, management, database architecture and other technical subjects.
  2. I’ve  always been comfortable asking questions - why are we doing it this way, what would happen if we chose to do it this way, how does that impact the results?
  3. I’ve had the pleasure of meeting excellent mentors along the way - people that took me under their wings and showed me how to code better or how to be a leader vs a manager.
  4. When my boss asked if there was anyone who wanted a “special assignment”, I always volunteered.
  5. Even when I became a manager and no longer coded during my day job, I’ve found ways to continue programming outside of work.  Sometimes as a volunteer - other times, creating small utility programs that I need.

So, that’s how I got into software development.  I truly love what it is that I do and enjoy the creative side of making software.  I’ve learned thru the years - whether it be at some of the smaller companies I’ve been associated with, or the larger organizations with offices on multiple continents.

On my next blog entry, I’ll talk about the toughest thing that I had to learn along the way.

If you'd like more information on my background: LinkedIn Profile

No comments:

Post a Comment