Tuesday, April 30, 2019

Software Engineering and Computer Science Major - A Retrospective

I'm almost at the end of a Software Engineering and Computer Science double major at my college. I'm a month away, but I don't have any classes this quarter (just finishing up a Senior Project) so I feel qualified to have an opinion on the whole... thing. I'm not exactly sure what I'm going to write about yet, but I do know that I can't possibly be as thorough as I should be.

I started this blog on Monday, October 19, 2015. I was sitting in my Discrete and Combinatoric mathematics class. I should have been paying attention (even though paying attention to this particular processor didn't really help much), but instead I made a blog. I wanted to have a place to write about things I discovered through trial and error. Would it be a one stop shop for all things technical? No. But I hoped to write about things that were undocumented so that it would help somebody in an edge case Google search.

Anyway, I was excited when I started learning things in college. Coming from high school, I didn't know what to expect. I didn't learn a whole lot of computer stuff in high school. I knew how to program and I could make magic happen. But in this program, I was able to make magic happen better. Using data structures, algorithms, design patterns, etc.

When I was looking for a college, I wanted one that made a distinction between Software Engineering and Computer Science. This was important because I wanted to be a Software Engineer. In my mind, Software Engineering was the application (development) of applications. Since I wanted to go into the consumer market, this was my primary goal. I was mostly right, what I neglected to think about was how much software project management there would be. Computer Scientists are still mostly theoretical and do not have to learn the project management stuff we had to learn.

If I had to choose the most important class I took over my four years, I'd say it's the design pattern class. I already knew that reusability was critical to good design, but learning better and easier ways to do it was a great experience. Learning it in Java was a good idea as well, since in my opinion Java is a great archetype of object oriented languages. It's not the best language, but it's great to teach with.

I do wish the curriculum focused more on development on things we'd actually be using in industry. Sure, they offer a Web Development course, but until very recently it wasn't required. Web development is growing quickly in popularity because it's an easy and cost effective way to make cross-platform applications that are based in the cloud. It (or something similar) should have been required long before I was admitted here.

But that's the short story. Overall, I'm happy with the education I got. It landed me a nice job in a big city that pays well. There were some very good parts and very bad parts, but overall, it worked. It worked pretty well.

No comments:

Post a Comment