Yo! Semester Two! Let’s go!
Kia ora everyone,
We’re back! And we’re stronger than ever. Everyone pretty much knows everyone now, and we’re looking forward to what should be an even better semester than last semester. I hope that you all had a good break. We’re currently at the end of Week 5 in Semester Two. The last few weeks have been pretty busy – I’ve barely had any time to vlog but I’ve tried my best and the video above is what I have been able to put together so far. Have a watch if you’re too lazy to read.
So, if you’re a Part I student reading this, you are probably thinking about your specialisation more now. There’s no need to worry too much about it right now, as there’s still plenty of time to decide. However now is a good time to start talking to Part II, III and IV students about their specialisations and also attend any events that the Faculty of Engineering organises to give you some background information to help your decision. You’re more than welcome to contact me on Facebook and ask me questions, I’m always happy to have a conversation. Don’t forget to check out the other blogs as well!
The first few weeks of this semester have been quite full-on. There have been a lot of assignments but I quite enjoy doing most of them because they feel more about actually creating/making stuff rather than just a lot of theory. There has been times when I have had bugs and have been a bit stressed about them (especially in SOFTENG 206), but I just keep telling myself to try and figure things out and eventually I find my way around them. I feel like the more debugging I do, the more I am becoming a stronger coder.
Software Engineering Students Association (SESA)
Before I talk a bit more about the courses in Semester Two, I should first tell you a bit about SESA. Honestly having the opportunity to join SESA is one of the best things about being in software. SESA holds a lot of events to help you with your CV, interview skills, algorithms and pretty much any employment-related stuff you can think of. They also have a lot of other chill events like “Cardboard Nights”, where you pretty much just play games and eat pizza, as well as movie nights. If you do decide to do software, I definitely recommend joining!
Here’s a funky video our class rep Edward Zhang made of the most recent Cardboard Night. Unfortunately I couldn’t go because I do tutoring on Mondays 🙁
SOFTENG 206 – Software Engineering Design 1: This is probably my favourite course right now (although there are times when I find it frustrating, which is usually just because of my own code and not because of the course itself). This is, in my opinion, the most important course you take in Part II. As you’ve probably heard from a lot of people already, design is the most important aspect of engineering. Regardless of your specialisation, design always involves a lot of things including thinking about your client’s needs/wants, using/creating good documentation, following a good development process, etc. As you can see, it’s pretty important that we have design courses that try to resemble what being an engineer in real life is like. So SOFTENG 206 is our version of that. It’s pretty fun, because while each assignment has its requirements outlined, they still leave a lot up to your own imagination, so there’s freedom for you to design your application in such a way that you think is best for the client. The first part of the course focuses on learning BASH commands for Linux. Using Linux is awesome for a number of reasons, my favourite being that you can do so much from command line. In our second assignment we had to combine our Java skills which we gained from SOFTENG 251 (Semester One), and our BASH skills. Each assignment is intended to lead up to our big design project for this course. This year for our project we will be creating a maths learning tool which helps users learn Māori numbers using voice recognition. I’m pretty excited for this, I think it will be quite an interesting project! We also have to do this in pairs so that should be fun too.
- SOFTENG 254 – Quality Assurance: This course is mainly about using good methods to build robust and defect-free software. So far we have learned a lot about software testing. The assignments are quite reasonable, and I find the labs quite helpful. I don’t really find the content that interesting at the moment but I feel like it will get more interesting as we start learning about other topics such as development processes, modelling and version control.
- SOFTENG 211 – Software Engineering Theory: This course is basically a continuation of SOFTENG 250 last semester. I think this is the most difficult course this semester, possibly even this year (at least for me). Most of this course is about discrete mathematics and proofs, and it really takes a lot of thinking. The assignments are very hard and they take me a while to figure out 🙁 . I think I will be studying like crazy for the test and exam. It is very satisfying once you finally understand a concept though, and that is probably the beautiful thing about this course.
- ENGGEN 204 – Managing Design and Communication: It’s alright.
How We Stay Motivated
One thing I tell people who really want to do software engineering but are scared of dealing with bugs all the time, is don’t be! Because one thing I have learned right now is with every bug you get, you will find a way around it. Yes it may be hard, but every bug you get makes you a stronger software engineer. And yes, there have been days where I have felt so down because I can’t get something to work. But I just keep at it and eventually I end up finally making some progress. We all have days like this. But we keep telling each other not to worry and that everything is going to be figured out eventually. If you are in Part I and you do find aspects of MATLAB or C hard, don’t let that put you off – it does not mean you are bad at coding. Remember, C is actually not the easiest language to deal with. If you find some things in ENGGEN 131 difficult, but you do enjoy them, then do not let bugs put you off!
Should You Start Considering Software Engineering as a Specialisation Candidate?
So as you get later into the semester you will want to start narrowing down the options on the table. But which specialisations should be on the table to start with? Ideally, all of them if you want to be open-minded. However if you are not sure about putting software on the table, here are some good reasons to consider it:
- The people are great. As I say every time, this isn’t a cohort, this is a family. We’re all very close and it definitely makes uni a lot more enjoyable.
- Good career outlook. This is true for engineering in general anyway, but I thought I should mention that the careers in software do look pretty interesting regardless of the company, and most software companies are growing pretty fast and have a very good work culture. They are very interested in adapting the latest technologies (as software engineering is still quite a new profession), so that’s another plus.
- Coding is fun. There’s no real explanation I can really give you here. If you enjoy coding then you’ll know what I mean.
How Do You Know if Software Engineering is the Wrong Choice?
To be honest I’m one of those people who thinks that anyone can do software engineering if they put the work in. I know that some people might disagree with this and say “oh, you need to be good at x, y and z etc etc etc”. But I mean look at me, I came into software engineering knowing almost nothing and I’m doing fine. So the only reasons I can think of to not do software is:
- if you don’t like working hard
- if you don’t like a challenge
…but as you are probably thinking by now, if you felt like this at all in the first place you probably wouldn’t be interested in engineering anyway.
Hope you enjoyed this post, see you next time 🙂