Wow. Just like that, I’ve finished my first undergraduate class in software engineering. These concepts that seemed so convoluted and complicated four months ago are actually forming a part of my toolkit, believe it or not. So what have I learned? On the surface, it just looks like I can make a website. And that’s cool; everyone needs a website. HTML, CSS, Javascript, Meteor…all that tech-stack knowledge is awesome as well. But there’s so much more that I’ve learned. And it’s not just the specifics of where to put curly braces or which operator to call.
The easiest place to see the results of your software engineering skills is to see your code run correctly. But sometimes you just need to get your head outside the console and look around at all the other things you’re accomplishing. When starting my software engineering course, I thought that I would learn a new coding language (JavaScript) and figure out how to make websites. That’s because I was only expecting to see the things that I could build at the end of the class. After four months, however, the real gains are becoming more apparent. I’ve accumulated experience in critical problem solving when working on timed programming challenges, team leadership/membership through group projects, and networking skills by learning to present myself as a software professional and work with others to accomplish tasks (in a pandemic, no less!). These are the actual skills that software engineering has given me.
To the layman, software engineering just sounds like building software. A civil engineer builds bridges, so a software engineer builds computer programs, right? Yes, that is true…but there’s more to it. Just as a civil engineer has to learn ethics, teamwork, networking, and project management, so does a engineer for software. And I have learned (or started to learn) the basics of those concepts in my software engineering course. I realized that, just like the tech stacks we use to make our products, software engineering is a stack of skills that form who you are as a code developer. If you have the coding skills, but not the ethics, you’re just a hacker. If you’ve got the IDEs and project platforms, but not the management skills, you’re a lone wolf (and you won’t get much done!). Software engineering is about appreciating all the aspects that go into programming and working on improving each one.
Am I a fully-fledged software engineer now? By no means. I don’t know if anyone is. We are always learning, aren’t we? But what software engineering (and my class in particular) has taught me is that there is so much more to being a well-rounded software professional. I was stuck in the singular channel of “code and console”, and then the doors to all these new concepts got kicked open for me. Now, it’s just up to me to walk through and keep exploring each avenue, getting better and better every day. Keep calm and code on!