I like to explain myself as an extremely passionate programmer and learner. I strive off of learning something new or working on and developing my skills. Whether it's a Unity project, Web project, or just simply taking a course to learn a new programming language, I am always doing something that furthers me as both a programmer and a student. From an early age of 12, I had fallen in love with designing and developing my own systems and games. That love hasn't died for 8 years now and with the detailed knowledge on skills ranging everywhere from Genetic Algorithm Implementation to Database design, I have my true passion for learning to thank for that.
With VR becoming increasingly useful and prominent in the professional setting, VR was something I've wanted to have a chance to develop with for years. After creating a budget and formal proposal, The Ohio State University has given me the chance, through a grant, to get the gear necessary to start developing in VR.
As for the outdoors part, the Mountaineers Club at OSU has become a large part of my life over the past year and a half. Joining this club has allowed me to travel across the country, numerous times, to experience the outdoors like never before. Teaching me a respect for the outdoors and the beauty that comes along with it, I wanted to focus the VR experience on trying to capture the true essence of the outdoors as accurately as I could.
As a fan of data representation, especially when the data pertains to my personal life, I wanted to create an aggregation of data on a few variables in my life. As well as my passion for data representation, I also wanted to get an even deeper knowledge of web development, along with firebase database organization.
After being introduced to Firebase with the Google Calendar Clone, I got the opportunity to delve even deeper into understanding optimal database design. By using Firebase, in the future sometime, it would be quite simple to write a program to read and output the database to excel and quickly covert them to simpler forms of data representation. I was also able to, through Firebase, integrate an authentication system where only registered users can access the stat tracker, that way no one but I can change my own logged data.
The largest catalyst for the beginning of this project was my desire to learn more web development. As I've worked with HTML and CSS in the past, I had never integrated websites with Javascript to add any true functionality. At the time, I was getting busier and needed to start keeping track of all that was going on. This, along with always loving the interface and functionality of Google Calendar, I decided that a Google Calendar Clone was the perfect starting project to truly learn all that I could.
After spending nearly a month learning the inner workings of Javascript in Web Development, I ended up with a Google Calendar Clone with a few features that I'm pretty proud of. While not being as beautifully designed as Google Calendar, I ended up learning a lot more about database design and implementation than I had originally thought.
Being an avid computer and technology lover, naturally I was going to get into the idea of Machine Learning and AI eventually. After spending christmas break reading, watching, and learning about the specific usage and functionality of various machine learning algorithms, I decided to attempt to create one from scratch within Unity using C#.
For anyone even remotely knowledgeable in machine learning programming, you're probably wondering why I didn't use the programming language built for data processing, Numpy with Python. Well, for one, I saw this as a chance to learn more about C# and really learn the differentiating factors between programming languages like Python or C#. I also wanted to not only create it, but have a better visual representation of the neural network through Unity's interface.
I started by creating a simpler genetic algorithm. By having the program create generation after generation and weed out the lower fitness (how well the cell does) cells, it only takes a couple generations to achieve pretty successful cells. To test this, I created a simple course where cells would need to weave between multiple walls. The cells that made it further through the course would get higher fitness levels and therefore, have a higher chance of having their "genetics" being passed down to the next generation.
I then moved on to a more complex machine learning algorithm known as back-propogation. This method uses matrix math and error adjusting to travel back through a neural network and change the weights and biases as it travels back. While being more complex, this method can result in much more accurate results. To complete these calculations optimally, a Matrix data representation was necessary. As I was creating this all from scratch, I used this opportunity to create a Matrix data representation filled with methods for addition, subtraction, multiplication, and many other operations.
What all can I really say about the background of a Euchre game? My family, friends and I all love Euchre and as there were no simple Euchre games on the app store, I decided to make my own.
As I was coming straight off of my Space Shooter project, the simple graphics and animations involved in a Euchre game were a great bonus. The best thing about this project, however, was the fact that 90% of the creation of the game was coding of the game system and round orders. Designing and implementing the classes involved in controlling the game, turns, and rounds was something that pushed me to really get a better mindset of proper class design.
After a dozen half-done games, I wanted to commit to getting something closer to full completion. I wanted to get a taste of the entire game development process from start to finish. I went through a lot of ideas but the one thing that stuck out to me was the idea of just a classic space shooter. It was much simpler than some huge open world rpg but allowed for plenty of creativity and customization in powers and enemies/bosses.
The programming end of things for this project turned out to be much simpler than many of my other projects. However, what I learned about planning out and organizing a full game, I felt, was much more valuable. From designing each enemy and attack, to thinking up new bosses and special powers, this space shooter stretched my creativity more than anything else before. This increased creativity contributed greatly not only to new features and capabilities in my later projects, but also to finding new ways to do things I hadn't been able to before.
May 2019 - Present
C# (80%), Javascript, HTML + CSS
Focused on C# with the ASP.NET MVC framework, working both front-end and back-end development while implementing new features within the main Web Application.
A current Junior, working towards a major in Computer Science Engineering and a minor in Entrepreneurship, OSU has helped me refine the many years of programming that I came into school with. From writing cleaner code to learning valuable cooperation and teamwork skills, formal schooling has helped branch the connection between the skills I've learned on my own and their professional applications.
Nearly all of the knowledge and skills that I've gained have come from numerous YouTube videos, google searches, books, and plain experimentation. I personally believe that formal coursework can help teach the foundations, but all of that is useless without putting the time in outside of the classroom. I owe 99% of what I know today to 8 years of personal discovery and experimentation.
Udemy.com has been my newfound home for learning the past 3 years. As an owner of 14 courses and having finished courses on MySQL, Python, Web Development, Blender, Augmented Reality in Unity, and Java, I've easily put in over 200 hours of learning from some of the best teachers. Udemy has become my main resource for learning anything new as it adds more structure than YouTube or Google.