For my STEP signature project, I designed an application using equipment and licenses. I developed an app using the newer coding language created by Apple, Swift (2014), using the IDE Xcode created for developing iOS apps.
The main change I underwent throughout completion of the project was learning how to program a graphical user interface (GUI) and learning that it is not where I see my career going. Although I’ve been programming for many years, I’ve always done small command-line programs that completed different simple tasks. The closest thing I had ever done to creating a user interface was creating html websites. Although I enjoyed creating this app and learning the new language Swift, I realized that this isn’t the type of work I want to do in the future. There are many specialized fields that a programmer or software engineer can go into, and I learned throughout this that I do not want to do higher level programming, but would rather work on things at a lower level. I completed this project while I was at an internship with Intel working on firmware validation, and I found that I preferred the lower-level C code and thought it was more enjoyable to creating an application with high-level Swift.
Throughout completion of my STEP project, I realized that I struggle with programming graphical user interfaces (GUIs). I’ve programmed a small calculator in Java before starting on my STEP project, but I only created the logic, not the appearance. When I originally started programming the app, I thought I would struggle with the language the most, but as I kept working, I realized that picking up the new language was simple, but when it came to the UI, I had no idea where to start, despite the templates available. I followed tutorials having to pause every few minutes and even now, I feel like I don’t truly understand how the connections were made between the controller and the view. I ended up running through the tutorial multiple times to try and grasp what I was doing instead of just how to do it. In an attempt to push myself and learn how to program an application without a guide, I tried to modify the app created at the end of the tutorial to have a small change that I preferred, but struggled with build error after build error. I ended up having to look up a multitude of tutorials to then figure out how to make the changes that I thought were simple. Of all the things I have programmed, creating this incredibly simple app was the hardest. Not only did I struggle to grasp it, I felt frustrated that the final product I produced could not be as perfect and as new and creative as I had imagined.
This change is valuable to my life because it opened my eyes into what I want to go into. Although creating this app did not make me realize that I want to go into application development, it did show me where my strengths and weaknesses lie as a programmer and what I get joy out of working with. For the longest time I thought I wanted to go into higher level programming because it is easier for you to see your progress and final result, but I have come to realize that my passion for C throughout my coursework and my enjoyment of computer networking classes could be a more suitable career for me to pursue. Although it may be harder to see progress, it is what I am more passionate about.