As a Part II software student, the information I can tell you about this degree is limited, having only been in this specialisation for less than one year. When you’re choosing specialisations, it’s definitely worth considering what you might get up to during the later parts of your degree. I recommend having a look through the UoA Engineering Course Viewer, reading through the different courses and electives each specialisation can take, and seeing which ones interest you. Similarly, check out the Final Year Project portal (the one linked is specifically for ECSE projects, but you can find the links for the other specs) where you can get an idea for some of the research projects you can get into as a Part IV student. That said, courses and projects are not representative of the actual work you’ll be doing in the industry as each specialisation. Don’t let it be the sole reason you choose a spec, but rather use this information to inform your decision. After all, you will be spending three years studying whatever spec you choose, so it’s good to have courses you’re at least slightly interested in.
But like I said, I’m only a Part II student, so what do I know? That is why I have asked Kimberley, a Part III software student, for help. You may recognise her as last year’s Part II software blogger. I asked her about her experiences as a Part III student, to hopefully give you a better understanding of what this specialisation might look like once you get further into the weeds of your degree. Here’s what she said:
(The answers have been edited for clarity and formatting.)
- What courses/electives did you pick and why?
In Part II, I took SOFTENG 282 (Software Engineering Theory) and SOFTENG 284 (Data Structures and Algorithms) mostly because I was not interested in doing the electrical papers and almost 99% of the cohort took them too. In my opinion, especially SOFTENG 284, is much more relevant and important as a software engineer as it covers the basics of data structures and algorithms.
In Part III, I took COMPSYS 302 (Design: Software Practice) rather than SOFTENG 306 (Software Engineering Design 2). They are essentially equivalent design courses, but I took COMPSYS 302 because some friends told me it was arguably better than the software course with one with machine learning neural network project and one on Android (that is taught by the person who used to teach SOFTENG 306) while SOFTENG 306 involved only JavaFX (like SOFTENG 206). Although do note that there was a glitch in the SSO system that allowed a bunch of software students to have their concessions automatically accepted, so I don’t expect many to be able to do the same next year. Since I did COMPSYS 302, I didn’t need to take SOFTENG 306 in semester 2, so I took 3 electives in semester 2, being COMPSCI 316 (Cyber Security), SOFTENG 310 (Software Evolution and Maintenance) and SOFTENG 364 (Networks and Security). Editor’s note: Kimberley’s other semester 1 elective was SOFTENG 370 (Operating Systems), which the majority of students take.
- Did your expectations of Part III differ from reality, and if so how?
Overall I think Part II and Part III software engineering are pretty similar, so nothing was really unexpected. The main difference I have found is that Part III is a lot more flexible in the way that a lot of the courses are project-based, usually meaning fewer lectures and more time for self-study. Although this also means that you often need to learn concepts in your own time that may not be covered in lectures. I also think that Part III really depends on the electives you pick. I think I managed to choose a good mix of easy and hard courses, so it hasn’t been too busy and reasonably manageable. Check out Kimberley’s post on day in the life of a software student here.
- How does Part III differ from Part I/II in terms of workload?
Nearing the end of the year now, I would say that Part III has been slightly more difficult and has a slightly larger workload than Part II. On the bright side, I think that by this stage of university, you often get more comfortable with the format of courses, and can better juggle projects, assignments and deadlines. So even though the workload is bigger, I think it is pretty manageable. Another pretty significant difference is that, especially since Part III is the penultimate year of the degree, there is more pressure to find internships as lots of companies only hire penultimate year students (especially the bigger companies in Australia etc). This means that there is some additional things to think about in Part III, balancing job applications and interviews alongside studies.
- What was the internship hunt like for you last year?
I think I was very fortunate last year because, despite the job market being pretty bad, I ended up receiving more than one offer from companies around Auckland. That being said, it was definitely not smooth sailing, and I definitely received a fair share of rejections first. The New Zealand internship season is mostly around this time of the year (semester 2 or nearing the end of the year), although I started looking for internships pretty early on in semester 1 too. If I were to give advice for finding internships as a Part II student, I would say that you definitely have to start applying early and to as many places as possible. Although it is also important to keep in mind why you are applying to certain companies as well. You should definitely do research on the company and how it relates to you personally when crafting you CV and cover letter. For me, I leveraged my interests to the jobs I was applying to, like how I initially studied health science and had a passion for healthcare, which helped me land interviews and offers from health focused companies. Check out Kimberley’s post about finding internships here.
- What was the biggest lesson you learned from your internship?
One of the biggest lessons I learnt was around team work and working in a real development environment. Software is actually a lot more collaborative than you would think – yes it involves being on your laptops for most the day, but there are also things like meetings, peer programming sessions and code reviews which make the whole process very people-oriented. Especially as an intern, you also are not expected to know everything right away, and asking questions is a lot better than struggling alone quietly. Another big thing I learnt was around quality assurance. Unlike university assignments, the code you push out has real value and impact. That made me really appreciate the responsibility that comes with being a software developer, and the importance of writing code that’s not just functional, but reliable for the people who end up using it.
- Are you still satisfied with your choice of Software?
I would say I am satisfied 🙋 Yes, there is still the fear of AI causing the reduction of entry-level jobs, but at the same time AI is also what makes software such an exciting field right now. I might not be completely in love with coding itself, but I really enjoy the problem solving side of it and collaborating with others.
A big thank you to Kimberley for taking time to share her experiences of part III for the blog! If you haven’t already, check out her excellent blog posts from last year, linked below:
welcome to software + introductions 🙂
software: a semester one review + tips >:) !!
a beginner’s guide to choosing your specialistion (and why I chose software)
software internships: navigating through a tough job market
software: a semester two review (feat. chiikawa)
A day in the life of a software engineering student, FAQs and goodbyes
(Photo by Cookie the Pom on Unsplash)