From my first introduction to programming to the passion projects I lead today I have loved programming. Every time I get stuck on a difficult problem, scour the web for an answer and then somehow, someway find the perfect code to solve the problem I get a huge rush. This is why I code. Below are the various technologies I have experience with and how they fit into my journey through computer science.
The first programming class I took at the University of Florida was based in Java and was meant to teach programming principles. When learning to program, I was always assigned to a random partner because pair programming is the new standard for rapid program development. Alternating being driver and navigator, I learned both how to write Java code quickly and how to scan for errors in syntax and logic.
Without mentioning all the minor syntax we learned such as loops, string manipulation, and mathematical operators, I was introduced to encapsulation, abstraction, inheritance and polymorphism. From the beginning these object orientation principles were stressed and are now a concrete part of my code design to ensure my programs are secure and efficient. I also learned how to create UML diagrams in order to clearly plan out programs and keep everyone on the same page when working on the same application.
This class also gave a brief introduction to certain advanced data types such as stacks and queues. We used these structures to create a storefront that sold CDs being sold first in first out (queue) and DVDs being sold last in first out (stack). Moving forward I will be working with Java Servlets at Menten IBM Solutions in Germany during the summer of 2018.
After having completed my course on Java, the next focus was C++. Since we were already taught most principles of object orientation, in this class we went over them again and added onto them with more principles unique to C++.
The biggest difference was the need to use pointers and references, which were previously done automatically by the Java compiler, to manipulate data in C++. Pointers and references were vital in Data Structures to manipulate and store data efficiently in a variety of different ways.
C++ is my strongest programming language because of data structures. Creating various advanced data types from Chained Dynamic Array-Based Lists to Binary Trees that can be traversed using binary search to Heaps that are capable of k-way merges, has given me the background to be able to create any advanced data type from scratch using only the bare bones components of the language.
My latest project involved using Angular for the front end as a part of the MEAN.js technology stack. This allowed my team to utilize templating and avoid having to reuse code. It also supercharged the appearance of the site with premade components and extended HTML vocabulary.
I enjoy developing the front end of websites because of how beautifully the entire projects come together. Although I am not a front end programmer, a background in front end development is essential when overseeing an entire project to keep everyone on the same page and understand the intricate flow between the front and back end of the website.
The start of back end development for we was during the creation of the UF Sigma Beta Rho Website. PHP allowed me to create certain files for headers, footers, navbars, etc. and easily reuse the code. This simplified the project and allowed for much cleaner code.
- A signup/login system with JSON encrypted passwords
- Dynamic loading of products from a MySQL database
- An addon section to add personalized messages to the coconuts for an extra fee
- A shopping cart application, shipping calculation by consuming the EasyPost API, and payment processing by consuming the Stripe API (all API dependencies were installed via Composer)
Next I was recruited based on my experience to be the director for the web development team in charge of making the website for the 2018 Engineers Week at the University of Florida. On top of being the director of the project, I built the signup process, QR code generation, admin creation and admin login functionality for the site in PHP. Each person that signed up for E-Week was kept track via a primary key which was utilized when consuming the QR Code API. These QR codes are accessed in the website by attendees and the code was used as entrance tickets to events. At each event that the QR code was shown and the primary key kept track of. This allowed us to update the user automatically in the database, changing a boolean value associated with that event to true. This allowed us to provide statistics on attendance at each event (such as what majors and years were most likely to attend and overall attendance.)