By Yolanda Davis, Senior Software Engineer at AdvancED
The first and last time I cried over a computer was the fall of 1996. It was towards the end of the semester during my junior year at the University of Maryland and I was a recent Computer Science convert, who had dashed away from Mechanical Engineering in search of better fortune. Even though I had a passion for computers, I didn’t even know a whole degree program existed for them. I spent much of my childhood tinkering with computers, attending computer camp, and writing countless infinite loops in BASIC that sprayed “Hi Mom” over the black and white monitor; but I had always believed that programming was simply a tool used by engineers to get their “real work” done. It wasn’t until I found myself complaining to a good friend on how miserable I was as an ME that he suggested that I try his major, Computer Science, since, in his words “You like computers right? Why don’t you try that? Plus it’s way easier than engineering”. Those words were like music to my ears and the next day I found myself apologizing to my engineering advisor and hugging my new CS advisor as I signed up for this new world in computing. My friend’s statement of “easier” was quickly proven very wrong.
I found myself toiling many nights in computer labs, sitting in study groups and playing catch-up to my younger counterparts who started off in college as Computer Science majors. Apparently they already knew it existed. It was on one of those long evenings, when sleep was a mere privilege and not a requirement that I had broken down. My final semester project, written in C++, had decided that the only way it would run successfully was if there were strategically placed debug statements printing in the code. To even the casual programmer these were completely unnecessary statements that were allowed to print out a basic comment such as “Line 1”. However they needed to be in the code at certain places in order for it to run successfully. If they were removed, the program crashed. My program was already 36 hours late and time was creeping towards the final deadline of 48 hours, after which I would receive an F in the course. Now most would think, ok were your grades were so in the weeds that by missing this project you’d get an F? Not at all! I wasn’t the best student, but I definitely wasn’t failing. However Maryland had this AMAZING policy at the time that all projects needed to be turned in. Otherwise you received automatic failure for the class. Easier than engineering, you say?
So there I sat, looking at a program that refused to work without printing countless lines of unnecessary debug, exhausted, confused and defeated. I began to cry not only for what I believed was my imminent doom of receiving the first failing grade of my life, but also for the fact that I wanted so badly to be successful in this new found career! Even though I felt conquered by this particular project I didn’t want it predicting the projection of my life. Computer Science was the one thing that made sense to me; I absolutely loved programming plus my career path was very clear as opposed to Mechanical Engineering which had many roads of possibility, all of which I wasn’t keen on following. Even in my moment of despair I was still passionate about the ability to create in this medium. And despite my tears I knew that this is where I needed to be and where I wanted my life to go.
Finally I decided to give myself 3 minutes to cry. Then I wiped my tears and vowed that as much as I love programming the box is not worth the tears I shed. I realized that I needed to take control of my destiny and fight for my passions as supposed to succumbing to the system and falling through the cracks. I saved my program marched down to the CS department and showed my professor my dilemma. After my program worked its way up the tenured faculty food chain, it reached the dean, who after reviewing my code in depth decided he had no clue why those print statements couldn’t just be removed. I was allowed to submit my program as operational, a mere hours away from the deadline. And never again was I to cry about code. Never again did I look at these boxes we call computers and think that it was something I couldn’t control. And from that day on I realized that the power of my passion and determination was more than enough to take me over those low moments and to motivate me past things that seemed like insurmountable obstacles. On that day it was a lesson that helped me to never settle for anything less than what I am passionate about. That lesson translated to a larger lesson for navigating my career.
Fast forward 12 years where I find myself working successfully as a consultant, yet facing new roadblocks in my progress. Budget cuts and a shrinking marketplace for Java based projects in Maryland forced my company to place me on a project that had all the promises of upward mobility towards management, yet contained none of the areas which I was extremely passionate about. For the last few years I started to feel behind the times in terms of technology and even though I voiced my concerns to management there was no real effort to provide the training or the project opportunities that I needed to be successful. I knew I was reaching a crossroads.
The need to conquer code seemed long forgotten; at this point I had participated on many successful projects and delivered countless applications and enhancements over the years. But now the battleground had shifted from fighting for my degree to fighting for the direction of my career. Would I follow the current and coast towards a potential place in management while leaving my passion to code behind? Or should I go against the grain, fearlessly navigate the waters, and fight to work in the areas that I fell in love with so long ago? My decision was made when reading an article about Spring Framework and Hibernate. It was 2008 and I had never heard of either yet it was a mainstay in the Java world. I felt just as behind as I did with that program back in college. However instead of shrinking back and accepting that my time had passed, I decided that my time had actually come.
2013 has arrived and I am still living out one of the best decisions I’ve ever made. The choice to step out to find a simple developer position was risky and to some of my colleagues was crazy considering the poor job market. It was seen as a huge risk especially since I a lot of my skills were lagging behind other candidates. But once I showed my passion for code, my determination to be successful and my willingness to learn I was able to attract a company that wanted to invest in me as much as I wanted to invest in myself. When one company dropped the ball I was more than happy to allow another one to pick up and run with it. And now 5 years later I am happier than ever doing the thing that I cried about over 17 years ago.
My mantra then as it is now is to never settle for any “box”, any person or anything that stands in the way between you and your goals, your dreams and your aspirations. Don’t blindly follow a path just because there’s a perception of what you should do next. If it takes you against the current or drives you towards the wind take the chance. The great news is it’s your career! Do with it what YOU WILL. Allow nothing to stand in your way of your passion. Never settle for anything less than that.