Summarizing a Summer of Learning
Tags: webdev, learn, serverless, rails
Published: 2022-08-08 23:29:00

This summer has flown by. I've been relaxing and having fun with friends, but most importantly I've been learning. Between university courses, boot camps, and side projects I've been learning more skills then I can keep track of in my head. I wanted to summarize everything I've learned this summer along with things I've started learning so that I can reflect, and so that I can share it with you. 

#### Azure Serverless Functions

This summer I participated in Bit Project's [**Serverless Camp**](https://www.bitproject.org/serverless), an 8-week program where I learned how to use [Azure Serverless Functions](https://docs.microsoft.com/en-us/azure/developer/javascript/how-to/develop-serverless-apps) using Node. Along with serverless functions, I learned how to use other Azure services such as their [Face API](https://azure.microsoft.com/en-us/services/cognitive-services/face/) for facial recognition, [Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/), and [CosmosDB](https://docs.microsoft.com/en-us/azure/cosmos-db/introduction). The assignments in the camp were all done through small practical projects, which helped give a sense of how these tools could be applied to full web applications. While I unfortunately was not able to submit a project due to other commitments, this camp was an incredibly valuable learning experience, and I can't wait to apply what I've learned to future projects.

#### Object-Oriented Programming in C++

As part of finishing my degree requirements, I took an online class on object-oriented programming in C++. Having focused more on web development in the past couple of years, it was a nice refresher to go back to fundamentals. Not to say it was easy. I had been happy to forget all about pointers after I had finished learning C which came around to bite me. I also struggled with file streams since I had been spoiled with Python's much simpler method of parsing and managing files. I did manage to get through all of it though, culminating in a simple menu-based calculator that you can check out [here](https://github.com/ColeHorvat/OOP-Calculator). While I can't say I'd be excited to use C++ again, this was still a good experience, even just to brush up on object-oriented design patterns.

#### Network Security

The second computer science course that I finished this summer was on network security. This class was much more theoretical than the object-oriented class, and we never wrote any code. It was instead based more around research, covering topics such as: the different kinds of cyber attacks, firewall configuration, cryptography and encryption, web protocols, biometrics, IoT security, and more. 

#### Algorithm Design & Analysis

The final computer science course I did this summer was on algorithms. Like the network security class, this class was mostly theoretical, and had very little coding. The course covered basic concepts like big-O notation, stacks and queues, and sorting, but it also covered more advanced topics like Dijkstra's algorithm, flow networks, graphs, and more. While I would've liked to get more coding experience with the algorithms discussed in the course, working through the different algorithms and data structures on paper helped me to better understand how they work. This was a very valuable course both for reviewing my basics and learning more advanced concepts in data structures and algorithms.
<br/>

### What's Next

As we know, in this field, learning never stops. These are some of the things I've started learning now!

#### Ruby on Rails

Recently, I've been starting to learn the web framework Ruby on Rails. Particularly, I just finished following the [Ruby on Rails course by Free Code Camp](https://www.youtube.com/watch?v=fmyvWz5TUWg). While I'm still a relative beginner in the framework, so far it's been one of the most intuitive tools I've ever learned. I can see why so many people say it's one the best web frameworks for productivity. I can't wait to learn more and start building projects using it!

#### Godot Engine

While I normally use [Unity](https://unity.com/) for game development, their dwindling support for game development tools and questionable business decisions have made me search for different options. I could switch to Unreal, but I prefer to make 2D games or simple 3D games, which doesn't really fit. Therefore, I've been learning [Godot Engine](https://godotengine.org/). There's been some growing pains, but so far I like the features and workflow. I'm also very excited about the features coming with Godot 4, which should make Godot more of a competitor with Unity in 3D game development. I can't wait to learn more and pull this out at my next game jam.
</br>
</br>

Overall, this summer was a great learning experience. I'm proud of the amount learning that I've done, and the path that I'm going on now. It's important that even after finishing school, a boot camp, or a course, that we keep growing our skills. Now if you'll excuse me, I need to go back to studying for my exams. 🥲🥲🥲

This post is also available to read on my [website](https://www.colehorvat.com/posts/summarizing-a-summer-of-learning)!