Stumbling into Computer Science

Me trying to pick a project

Have you ever stopped to look back at where you started in your educational or career path and thought, “How did I get here and what’s next?” I know for myself as a computer science student I have often thought these questions for myself and at each step of this journey I am continually surprised…

It turns out that writing your own computer games is rather challenging when you know nothing about computer science aside from some of the basics. From that point on, I decided the best way to learn would be to enroll in the Post-Baccalaureate Program with Oregon State University. I chose this program mostly for the time flexibility since I still had to work that boring business job I already mentioned.

Throughout this program, I have been surprised by some of the challenges that I’ve faced (I’m looking at your Operating Systems), but also pleasantly surprised by some of the classes that have been a lot of fun (Cloud and Mobile, for example). Over the course of this program, I gained enough experience that I was able to switch from that boring business job to the role of a Software Engineer. Now for work, I primarily develop web applications using C#/.NET 6 and Angular. I have also used many other languages throughout this program such as Python, JavaScript, Go, C and I’m sure there are others I’ve forgotten.

Now that I’m approaching the end of this program, it’s time to pick a capstone project and I can honestly say that this has been a great source of stress for me. Of course I want this project to be awesome, but there are so many prompts where I feel like I haven’t learned enough about some of these topics yet.

As I mentioned before, I really got into Computer Science because of the idea of building a game. While I do think game development is cool still, I am also concerned about the level of difficulty for a two month project and so I’m leaning towards the projects listed below in order of preference.

  • Text-based Adventure Game
  • Escape Room Challenge
  • HTML 5 Tower Defense Game
  • Cloud-based Application for Fire Department 911 Risk Analysis
  • Dating app for animal adoption
  • Build an Emulator and Run Space Invaders ROM

The game projects are interesting to me because I think it would help me break into an interesting domain of computer science where computing and art come together. I’ve never been much of an artist myself, so I think that is the main source of my hesitation. However, after reading the announcement from the instructor about the way this course is graded, I am feeling much more confident that I can make something really cool.

As far as the web development options, I found the Fire Department Risk Analysis the most interesting because my dad is a retired Fire Fighter and so I have a lot of connections to that community. I also like the idea of working with external partners who have previously been standing where I am now.

I really hope to take away a few things from this experience. First, I want to be able to complete a project that I feel proud of. Second, I hope to challenge myself to learn something new. That could be a language, framework, or just another way of thinking about computer science problems. Finally, I hope to meet some other graduating students who may be interested in working on side projects together after graduation.

This course seems to be structured a lot like the real world in that the team is responsible for the implementation and we are held to agreed milestones and timelines with a customer. I really like that for the experiential learning aspect. I hope that I continue to learn more about the agile process, the SDLC, and working together in teams.

As part of a team, I tend to always fit into the role of researcher, boundary pusher, and sometimes leader. I will say that I mostly enjoy trying new things, finding ways to make the codebase cleaner, better, more maintainable, and simpler to reason about. Following that line of reasoning, I tend to do a lot of persuading which sometimes gets people to follow along with some of my ideas. This tends to have the side-effect of putting me in a leadership role. I will say that I can do leadership stuff, but I also don’t enjoy it as much. In my team, I would like to make sure that I leave room for someone else to take on that role if they choose.

I’ve worked in a few group projects during my time at OSU and I can honestly say that sometimes groups are a mixed bag. I’ve had groups that were awesome and we really had a lot of synergy. I’ve also been part of a group that was very dysfunctional with lack of communication, pretending to understand and then not delivering, and many other problems that led to having to split the team and complete individual projects.

In order to prevent those types of problems from infecting this team, I would like to promote a very open, friendly, and inviting environment where people should feel safe to ask questions, safe to setup ad-hoc meetings to go over something via video call, or even just ask for help when they need it. After all this is supposed to be a team! We can’t learn together if we don’t stumble together and pick each other back up. I would also like to encourage our team to create small and estimable tasks, frequent check-ins with code reviews, and a rock-solid communication plan so we can overcome problems quickly.

I know this term is going to be great and I can’t wait to get started building something fantastic!

Print Friendly, PDF & Email

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *