The Journey to Developer
Why I chose to become a Software Engineer
Ever since I was young I have always been interested in technology and problem solving. Math and science were my strong suits while writing felt like pulling teeth. My mom was an electrical engineer with an analytical and logical mindset that it seemed had been passed on to me. I remember playing with my Lego MindStorms set as a kid where I would build a small vehicle and could then upload a program written in a visual programming language. While there was no actual coding going on, the fundamental concepts were there as I logically planned what would happen in different scenarios and how my robot car would respond to different events.
Years later as a freshman in college I would take an engineering course where we used LabVIEW to build solutions for different problems and assignments. It was surprising how similar this was to the Lego programming I had done all those years ago as a little kid- there was no actual coding, just visually dragging different elements around and assigning values or functions to them. Again, even though it did not involve classic programming, the thought and precision required to accomplish your tasks was deep and LabVIEW can be used to solve some seriously complex problems faced by professional engineers. Before you know it, the simple shapes and lines that you move around can transform into a highly orchestrated system of logical precision.
There is one day that stands out to me in particular as I went through this course. I was sitting in my room working on a LabVIEW project that was taking me a while to solve. The program was supposed to take in a set of inputs, perform some calculations based on what was entered, and spit out a result. I would solve the problem on pen and paper first to see what the answer should be and then click the little green Run button and see what result the program would give. Each time it gave the wrong answer, I would go back inside the guts of the program and tweak something and try to see what was going wrong. Sometimes it was immediately obvious what the issue was while other times took more thought and exploration to figure out. Even though it was a slow process, each time the program failed to give me the result I was expecting I learned something about what had gone wrong. The program was not doing anything wrong, I was doing something wrong. Each failure was a tiny lesson that helped me learn how I needed to communicate instructions to this machine in order to get it to do what I wanted.
Finally, after countless failures and iterations of my program, I clicked the green button and it spit out the result that I was expecting. The rush I felt was indescribable and I literally jumped out of my seat in celebration. Never in all of my years of school had I ever felt that kind of satisfaction and accomplishment from an assignment. It wasn’t just that I had gotten it to work- it was that I understood why it worked. From the outside, just putting in a few values and getting another value as an output is not very impressive. But understanding what was going on behind the scenes, what was happening inside the mysterious black box, was an amazing feeling.
I would continue experimenting with programming in other courses throughout college. The main one where I was really challenged and learned the most (but also enjoyed the most!) had us making desktop applications with Visual Basic in the .NET framework. This is where I really cut my teeth learning true object oriented programming and just remember the constant ebb and flow of feeling overwhelmed by the sheer scope and complexity of different concepts and then feeling like a programming genius once I grasped what we were working on- just to start the process over once we moved on to the next topic! Just like that one assignment I struggled through in LabVIEW, I truly enjoyed working on this. We had a final project at the end of the semester that we each would have to present and explain in front of the class. I remember the night before the presentation was the only time in my entire college career that I ever pulled an all-nighter for school- and it wasn’t because I had to! My project was finished and working fine but I had this internal desire to keep tweaking it, to keep improving it and expanding features. I felt determined to make this the best student project our professor had ever seen and nothing was going to stand in my way.
The idea of me putting that level of effort into writing a paper or studying for an exam seemed laughable to me. I had never enjoyed school (most people who know me would actually say I hated it) but something about programming didn’t feel like work to me. Even though it was challenging, I had this intrinsic interest and motivation to do it. As much as I enjoyed programming, I was not actually majoring in computer science and never really considered software development as a job. I ended up majoring in Business IT which was a mix of business courses along with programming, networking, and database courses.
After graduating, I ended up working as a business analyst for KPMG where our team would help clients build websites and applications. Working closely with the developers and designers on our team, I got an inside look at how software is built in a professional environment. The work the developers did seemed interesting to me but also out of reach since the technologies they used were different than what I had learned in school. After switching gears and later going to work for Amazon in one of their fulfillment centers, I moved into an IT support position with them. This was more hands on and I had a lot of new skills to learn but it still wasn’t quite right for me. It was at this point that I realized what I wanted was to learn and use a hard technical skill. This is when programming and software development started to creep back into my mind and I thought back to the enjoyment I had in those college classes. What if I could actually do that as a career?
Just as I was gearing up to start the job search, I stumbled upon a golden opportunity offered by Amazon which is where I find myself now. Their unique Career Choice program will pay for employees to pursue a degree or certification in select fields that are in demand, knowing that they will use these new skills to leave Amazon and start a new career somewhere else. I had researched this program before and did not see anything that was a good fit but it was perfect timing as they had just added a course from Flatiron School that was an online, eight month boot camp in Software Engineering specifically geared towards web development.
As I looked at the course overview and syllabus it seemed like something that was made just for me. I had already covered a lot of the topics that would be taught but there were definitely new skills I would learn and it seemed like the perfect way to absolutely cement what I had already gone over. I made the decision to apply, got accepted, and as of writing this I am now a few weeks into the course. It has been a great experience so far and I am finding that excitement from my old college programming classes as I attack each new assignment. This seems like just the boost that I need to push me to the next tier and build the belief that I can do this at a professional level. I still have the majority of the course left to go through but I can’t wait to experience it and to see what waits for me after I graduate.