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?

Before trying to jump all in with a career change, I decided that I would start by learning web development as a hobby and see if it was something I could see myself doing as I got further along into it. I went at a slow and steady pace to start, doing just a few hours a week learning HTML, CSS, and JavaScript from some books I found on Amazon. I really took my time to try and fully understand the concepts as I went along. As I got deeper, it started to become overwhelming as I learned about all the other technologies involved in making a modern web application. You know basic HTML, CSS, and JavaScript? Ok, now you can start to learn a framework like Angular or React. Oh and if you want your site to actually do anything useful you need to learn backend development in something like PHP. And you will need to connect to a database so you need to learn about those. But should it be a SQL or NoSQL database? And to make anything you build visible you will need to learn how to host your site and set up a domain name. And you should probably learn how to use version control with Git while you’re at it for good measure.

While it seemed like a big hurdle to overcome, I maintained the attitude of the tortoise and kept slowly chugging along towards my goal. After about a year of self study I finally launched a full stack site that was live and out on the internet for all to see. It was a big milestone for me and I was definitely proud of it but instead of feeling like a rock star ready for any challenge, I realized that I had a pretty shaky foundation after learning so much about so many different technologies. I was able to scrap my site together but realized I hadn’t written a line of CSS in months. I still had to look up basic JavaScript syntax such as how to properly write a loop. My mind felt like a giant bucket and as I continued pouring in new information, someone was poking holes in the bottom and letting the older information leak out. I knew I needed to keep working and reviewing some of the older concepts I had learned.

Fast forward another year and I had come even further. I was feeling more comfortable writing JavaScript. I realized I had moved on to learning the Bootstrap library too quickly before being any good at CSS so I went back to that and learned about responsive design. I started hearing that PHP was a dying language and everyone was using Node for backend development so I learned that. Every month I felt like I was coming further along in my journey. I still wasn’t doing a crazy amount of work each week but I was extremely consistent and continued making progress towards each new goal. I had decided by this point that web development was what I wanted to do for my job and knew I needed to start the job search even though it was something I would probably never feel 100% ready for.

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.

Software Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store