Achieving Your Childhood Dreams

In a future post I will explain the unstoppable course but I couldn’t wait to get these thoughts to words and in a post. I have been asked to watch this video called “Really Achieving Your Childhood Dreams” by Randy Pausch. This video features a professor who is dying and giving his last lecture. I highly recommend you view this lecture if you have time. In this lecture he talks about childhood dreams, achieving them and the lessons learned along the way. As a reflection of the video I wanted to reflect on my childhood dreams and see where I am and how things have changed over time.

Childhood dreams, I can remember being asked a similar question when I was in first grade. In fact, the question may have been more like “What do I want to be when I grow up?”. Most kids had a simple response but I had a few thoughts, actually voiced them and here they are:

  • Pitching in the MLB
  • Being a Chemist or Computer Programmer
  • I wanted to be married and have a family
  • I wanted to work for one company my whole career

Pitching in the MLB
Well, what kid who loves baseball the way I do wouldn’t want to be in the big league some day. I know this isn’t achieved or at least in the way I originally planned. I am not in the MLB, I have not been in the MLB and at age 34 I don’t see any MLB team wanting a pitcher with a torn labrum who doesn’t throw all that hard. I have never given up the dream, though. I don’t think that the dream is really a loss either. I have been a pitcher, in fact I pitch, play second base and anywhere else my team needs me (which has covered every position at one time or another). I have played for 10 years as an adult (18 total) and although I don’t get paid to play I can’t imagine the dream having worked out any better. Every summer I get to gear up and take the field and regardless of the results of the game I have fun and come back as often as they will have me.

The dream started as wanting to play for the Cleveland Indians and be on the mound as the starting pitcher much like my idle Greg Swindell. I didn’t care if it was for one game or just one pitch. I wanted to work my way there and be able to be a part of the team I cheered on every year. This dream never left me into my high school and college days. In fact, a little known fact about me, I actually tried out for the Cleveland Indians at an open tryout at Tri-C sometime before I finished college. I wanted to try out for outfield, infield and pitcher but they said that I had to pick one. Well, Pitching it is… I waited almost an hour or two before they would see me throw and when they did I threw maybe a couple dozen pitches. The goal was to impress them enough to let me possibly throw live BP to some hitters later in the day. As it turned out I didn’t even make it that far, I don’t believe anyone did that day. The coach told me my fastball didn’t break 80 and they really needed me to throw closer to 90 to really be in consideration. He said I had good control and a decent curve but just didn’t throw hard enough.

A few years later I was at a St. Patrick’s day party at my sister’s house and happened to hear a conversation about baseball. The conversation turned into playing baseball and not just softball, but actual hardball. A friend’s husband was coachingplaying on an amateur team in the area and didn’t have enough pitchers for their upcoming season. I was like “I PLAY and I CAN PITCH!”. After a couple practices and meeting the rest of the team I was in. In fact to this day I remember playing a game at Gilmore Academy in Mayfield and throwing an awesome game (one hitter, complete game if memory serves me right) and just enjoying every moment and every pitch. Every time i take the mound the world around me stops, it’s me and the catcher and all I have going through my head is how to throw the next pitch. I can’t explain this feeling but it is the best thing in the world to me and always has been.

In the following season the team I played for had been dissolved due to not enough guys coming back. I had a tryout with one team but due to my age was cut from the team. You see back then the league only allowed 3 people of age 25-27 and I was considered 26 and I would have made 4 on that team so I was the odd man out. I thought my time had passed until right before the season I received a call from another team that definitely had the room and wanted me to play with them. I’ve been on the team ever since…

In my second season in the league I was diagnosed with a torn labrum in my throwing shoulder that the doctors didn’t want to operate on. Instead, they said I should rehab it. I went to physical therapy for 6 months and was able to play that year. I hurt the shoulder again 2 years later and again did 6 months of therapy. Now after a third stint I have finally got the message. If I want to play, I have to work for it. I cannot take the winter off and expect to be better, faster and be able to throw harder because I rested. Instead, I have to work for every throw, every pitch and only when I quit will I have to quit.

This dream wasn’t about the MLB as much as it was doing something I love and doing whatever it took to make it. I may not be in the MLB but I still pitch every year, I still play ever year and I hope I never have to stop.

Being a Chemist or a Computer Programmer
Growing up I really looked up to my siblings. Now I am sure that many of us have older brothers and sisters but in my case the age difference is 12.5 years and up. I am by far the baby of the family. By the time I have memories of my childhood my brother was in high school and my sisters were in college. All I ever wanted to be was one of them. I wanted to be just like them and do the things that they did and be as great as they were. You see I smile when I say this but I am the dumb one in the family. My High school GPA was only around a 3.5 where all of my siblings were higher, 3.75 and higher. My mother also made the point of saying that she never expected that she would have 4 smart kids so I knew I was the dumb one right there. 🙂

By the time I hit first grade my eldest sister was a chemist for a university in the area and my brother was playing with computers nonstop. I thought they were both the coolest things you could do with your life as I knew I would one day need a job and have to work and so why not do something as cool as they were doing. At the time I didn’t care which it was or who I followed I just knew they were cool and had the right idea. They seemed happy and they loved what they did and they let me into their worlds just enough to get the sparks going for me too.

As I grew up my desire to follow my siblings never stopped. My brother became a great programmer writing code for a startup in the early 90’s and my sister continued her research in chemistry. The only question that plagued me was which direction was right for me. What could I do with my life that I would enjoy and want to do day in and day out for the rest of my life as my “job”. By the time I was in high school I had very little computer skills and still no idea about a “job” but I did know I couldn’t be held back from anything if I put my mind to it.

The summer before my senior year of high school would answer the question for me. You see where in previous years I held jobs as a stock person, first for a costume shop and then for a toy store. I was given an opportunity to work with my Brother and Brother-in-law at a local startup for the summer. I was going to do odd office jobs, help organize the office, clean up and maybe help ship the software. It was only supposed to be for the summer and it wasn’t supposed to be anything other than being an office lackey. Well, day 3 or so I had cleaned the office, shredded all the paper, and did most of what they thought would take me the summer to complete. Running out of office work meant they wanted to give me something else to do so I received a QA book and told to run the tests within the book.

QA? Tests? huh… I didn’t know anything about software development or testing. I definitely didn’t know anything about the software the company made and had no clue where to start. I went back to the desk they gave me and the computer they gave me and opened the book. It started with something like “login to the system using …”. OK, Login to what? I needed help. Rather than give up and realize I was in way over my head I decided to ask a couple of the developers including my brother for help. A couple days later I returned the book to the VP of development. He asked me if I gave up and I instead said, “No, I’m done!”. Puzzled I showed him the test results in the back and where I took notes on certain things and he just smiled and thus began my career as a OfficeQA intern.

Today I have worked my way through the software development life cycle experiencing much of what it has to offer. I have been a QA analyst, a tech support analyst, product manager, developer, consultant and proudly refer to myself today as a programmer. I may not be the smartest, the most knowledgeable or the best but I also am not done learning. Even early in my career when I was told I would never make it as a programmer, and yes this really happened, I just used those words to further fuel my passion. I didn’t become a programmer because someone told me I couldn’t or because my brother was one. I became a programmer because I like to create things through my code and apply skills from so many fields that it is just the perfect fit of everything I like and I would do it even if I wasn’t getting paid for it. I am just also happy to collect the nice check that comes with it.

In life we want to follow those we admire but we always find truths about ourselves and our passions in that following. We may lead a similar path but it is always important that we lead our path.

I wanted to be married and have a family
Picture this, a 7 year old kid is asked what he wants to be when he grows up and he says a husband and father. Who says that?!? I don’t know why I was thinking this way, why I wanted to do this but I knew in addition to professions that I wanted to grow up and get married and have kids. I attribute this to the families I saw around me that had a father and how great of a man all dads have always seemed to be. You see growing up my dad left my mother before I was born, so he wasn’t there. I saw the man a half dozen times or so throughout my life. My mother never really bad mouthed him to me when I was growing up. I heard the kind of father he was before he left and how great he was right before he left. I thought why be great only to leave. I want to be a father who is great all the time. I want to teach my kids everything I know. I want to make them responsible, independent and pray that they are the healthiest, smartest kids that ever lived. I wanted to learn what it was like to have something I didn’t have and be someone for which my role models were external to me.

At 20 years old I was blessed with a wife and a daughter. At 22 my son was born. I was young and scared beyond belief that my dream had become a reality. I wasn’t fully prepared, it wasn’t perfectly planned and yet there they were. I had a family relying on me to provide not only monetary support but the kind of support a dad brings to the family. I have never in my life been more proud to set a goal and achieve a goal such as this than I am every day I wake up and see my beautiful kids growing up each day. Everything I have done and will do is so they can live a better life and be whatever they want to be when they grow up. If I contribute nothing else to this world I want to give these kids and everyone else willing the wisdom and experience I can share.

I wanted to work for one company my whole career
As a kid, I wanted to work for one company. I didn’t know or care which company but I knew it would only be one. I wanted to start as young as possible and be the guy who in 30 years is revered for his service and loyalty to the company and the cause. I always wanted the mutually loyalty and respect of a company to repay me for my contributions. I saw this as one of the coolest things a person could do with their life. Think about it, you’re 42 years old and celebrating 20 years working for the same company. Possibly in that time working your way up the corporate ladder and being a stock holder and someone everyone liked and admired. For some reason I thought that was going to be me.

Under this premise I started my career with that in mind. When I got my first internship I thought I would never leave the company. I figured I would be taken care of and my pay and benefits would be the same or greater than other workers as I moved up the ladder based on my loyalty and my contributions being the same or greater. I thought this is how the system worked and everyone worked in this fashion.

What I have since learned is opportunity. You see, I was never the highest paid, not even across workers at my level with much less time with the company. I was never revered or anyone of any importance and knew I was scene as replaceable. At first I was challenged to prove the company wrong in this and become the vision of what I saw all those years ago. I worked more hours, worked more projects and tried to find as many ways as possible to contribute to show my true value. I was gauging my success by my pay compared to others, the amount of stock I owned compared to others and feeling miserable when I lost every time… What I learned was opportunity. Opportunity to grow and share and be something I never knew I always wanted.

I left my first company in search of new skills and new opportunity. I left the second to take a leadership role and begin to grow and then found a position as a director where I was the leader, the mentor, the teacher. All of this brought me to two realizations, I was never going to find that magic company that thought the way I did and more importantly I wanted to teach… Me, the shy, introverted, can’t get in front of an audience and give a speech as a kid wanted to constantly get in front of people and teach.

When the revelation hit me that I wanted to teach, that I loved teaching and that I wanted this to be my full time job and nothing else mattered. I had already taught technical classes for several years and knew I liked it but never considered it for a full time position. I didn’t care as much about the salary, the stock, the reverence. I wanted to teach and tell the stories that I could to the people who would listen and hope I could impact them the way some of the teachersmentors I have had did for me. I don’t want fame and fortune, I want knowledge and an audience to share it with.

It was about 2 years ago from when I am writing this that I started making the move to teaching. I started by applying for professor positions with local universities in hopes that someone would see the passion and determination and give me a chance. I had some great conversations with those universities but to no avail of a full time position. They wanted me to get a PHD. Hm… PHD, I’d love to, how do you get paid for doing that again? oh, wait you really don’t or at least not make anything like I made at the time. OK… hm…

It was at that point that I started to really look at PHD programs and what I could do to get the degree so that I could do something that I felt already prepared to dive into head on. By the time 2015 rolled around I decided that I would start seriously exploring opportunities and that I would also inform my current employer of this desire. In the process of doing this I stumbled, by way of a friend, upon the Software Craftsmanship Guild and a very unique opportunity. They needed a .NET instructor for a full-time position, I wanted to teach full time, sounded perfect right, wrong… I turned it down the first time… I was scared and trying to rationalize that following this desire was selfish and putting my family at risk, the company was being acquired and it was bad timing and blah blah blah.

Ever hear that voice in your head do this to you? Yeah, it had me convinced that given all the information I had I was making a good decision. A few weeks later I felt awful and stupid for giving up the chance to do what I knew I wanted to do. I decided if I felt this awful about the decision to not pursue the position that to make it right I needed to go all in and find another opportunity. That next day I told my boss my intentions and although I didn’t expect to be fired (I wasn’t), I certainly didn’t expect the genuine support I received from him, his boss, and the CEO of the company and many others. I told them I wanted to pursue teaching and if that meant a PHD I was going to find a program but otherwise was going to begin searching for positions as a professor and review PHD possibilities to increase my chances.

DISCLAIMER: To be fair, my boss when I did this was and is still one of my best friends. The company I worked for knew I had a succession plan and they supported the plan and didn’t feel my departure would jeopardize anything since I planned for it so well. that’s why I felt I could talk to them, I covered all the bases.

Today I am 6 months into that position I passed on. As it turned out they were still looking for instructors and apparently I didn’t burn any bridges and now they are the Software Guild. I work with the most amazing group of software developers I have ever worked with and the cool thing is they are all as passionate about teaching as I am.

How does this relate to being the loyal, revered worker for that single company? Well, I am 16 years into a career, not just a job. I am constantly working to become a great mentor to many more developers than work at just one company. I may not have only worked for one company but I know the work I do as a developermentorinstructor makes the difference I was really after. I am part of the community and trying to give back, that’s a much better prize.

What I learned from this reflection
I learned that first, I was one messed up little kid… I didn’t have nearly the cool dreams that Randy Pausch did in his talk.

I also learned that our dreams, our goals and even who we are is constantly evolving. We never completely change but our understanding of what we once knew or once wanted changes with time, with experience. I have forever been in search of what I was meant to be and what I was meant to do in this world. If someone told my 7 year old self that I would want to be a teacher and have my own classroom I would have laughed at the thought. Today I am honored to have the opportunity to teach the apprentices I work with. I humbled by the house, the wife and kids I have. I am grateful for every pitch I can throw. I am determined to continue to learn and become the greatest computer programmer I can and now ready to give that knowledge back to anyone wanting to learn the skills.

Never take you eyes off the prize, just focus on what’s really important…

“Life is a game, play for fun not to win”

New to Git… What is git?

Git is a source control management system, hence http://git-scm.com. By source this actually refers to any file of any type. We can add any file that we want to the system and begin tracking modifications to that file. As we create other related files we can add those to the system as well. This means that we can organize a group of files together and track them as a whole. From the perspective of a developer we can think of this as our source files for a project we are coding. For instance, in a C# project this would be all the .cs files. Now this grouping of files actually has a special name as well, a repository. Let’s review:

git – source control management software that tracks the modifications to one or more files

source – a file that we wish to track modifications through the software

repository – a group of files organized into a single set and tracked together as one group.

So how does git work? Well, let’s think about this in terms of the computer we are on and the file system that the computer has. A computer has a file system and consists of files and folders. Those files and folders are created to provide a desired structure so that we can easily find files that we are searching for. Git uses this structure for its repositories. A repository is really nothing more than a folder with files and other folders that we wish to track within the repository. Although, only the files are really being tracked for modifications, the repository can contain subfolders as well. A repository exists locally then and can be thought of as being on the machine we are working on. Therefore any modifications we make would be done locally on the computer we are working on.

So wait… we are going to work with everything locally? but what about portability to other machines, collaborating with other developers or just saving a copy to a central location so that if our machine’s hard drive is lost we don’t lose all our changes. Git solves this too… Git has the concept of a remote repository as well. A remote is a location that we intend to copy our changes to periodically. This could be another server within the network, an online host (such as GitHub or Bitbucket) or really any other directory that we want to copy the local repository. Our only interaction with this remote will be to copy (push) changes and retrieve (pull) changes from the remote. The remote itself will be a repository but one we won’t directly modify. Instead we work locally and push those changes that way.

Let’s take a look at a possible structure here.

Let’s start with a _repos folder. This folder will not be a git repository but instead be the folder that we create all our other repositories in. This way if we need work in more than one repository at a time we can differentiate between them using separate folders within this folder. For instance:

+ _repos
|-+ project1
|-+ project2

In this example we have two projects. Each directory, project1 and project2, are both git repositories. They are different repositories tracking files for two completely different projects. If we need to start working on another project we would just create another directory. The important thing is that we not put a repository within the folder of another repository (this is something more advanced and if we are just starting out, it is best to avoid). So we would never put project2 folder inside of project1. All the repos would go inside the _repos folder.

Once we get the folder structure of git we have a good base level knowledge to get setup and get git going with the basic commands… something I will save for another post.