I came to the software development community via a somewhat untraditional path. Though I did get my Bachelor’s degree in Management Information Systems, I did not get my first computer until I was a junior in high school (around 1998). Yet I still felt that I should major in computer engineering when I entered college. So when I walked into my dorm room for engineering majors with my Best Buy built PC with Windows ME installed and no NIC installed, to say I was a bit behind compared to my dorm mates is an understatement.
So after, some conversations with my school counselor, I decided to switch my major to Management Information Systems, which was a part of my university’s school of business. In hindsight, this decision helped me succeed in that there was not the prerequisite of being already comfortable with technology and at least an idea of how it works yet was able to introduce me to technology through broad, high level classes.
Fast forward, 4 years to of University and a couple of years of tier 1 tech support, I landed a job as a systems support analyst that allowed me to delve into full time software development. I was able to figure out what my company needed in regards to business requirements and, thanks in great deal to my degree in MIS, hack my way to look like I knew what I was doing. To this day, I think about the code I wrote and cringe. But i heard a quote from a podcast that really resonated with me, “If you haven’t looked back at old code and feel embarrassed, you haven’t been writing code long enough.”
Looking back, this is exactly how I feel. When I was hacking around my applications built from scratch, I thought to myself how good I am at writing software. And as I worked in company where I was really the only one that “knew” how to write code, no one could question me on the terrible code I was writing since my code fulfilled the requirements at the time. It did not matter that the application would not scale and did not pass the “bus” test.
I provided such value to the company that they asked me to relocate to the IT headquarters to sit with the other developers and IT staff. Naive as I was, I thought “Absolutely, now I can showcase my talents to people who actually will understand my coding wizardry.” It did not take long for me to see how wrong I was. It was one thing writing code and deploying it as I pleased, but now I had to show my code to others to get code reviewed. I will never forget the first code review I got back. The senior developer asked me if I was a “classically trained” engineer.
That phrase is burned into my memory now as the first time someone really showed me how little I knew. Although, it could have been phrased in a more inclusive way, I feel it did help me grow as it got me to ask questions instead of thinking I knew best. I also had the luck of working with some extremely talented senior developers that were kind and helped mentor me.
I decided to write this blog as a way to hopefully share my experience and help other less experienced / less “classically trained” developers to let them know they are not alone. I am planning on writing a follow up blog to give tips that helped me grow in my continuing software development career.