Software Perspectives: Insights from a Lecturer!

Contents

Opening

Nasser Giacaman

After four posts, it looks like I’ve written quite a bit. Hopefully, some of it has been useful, and maybe some parts not so much… But hey, if you’re getting tired of hearing from me (which I’m sure some of you might be), don’t worry!

Diving right into our Q&A session, I’m absolutely delighted to introduce our special guest today, who is not only a beloved figure but also an exceptional lecturer. The Director of Software Engineering at UoA himself, the one and only, Nasser!

Q & A

What motivated you to pursue a degree in Software Engineering?

Out of school, I was something of a paradox. The beauty of art captivated me – its openness and creativity was very appealing. But, at the same time, I always felt more comfortable in the dependable world of rules governing mathematics and physics. Enter Software Engineering – a perfect blend of art and science. When I first experienced programming in Part I of Engineering, it felt like I was in a foreign country without any understanding of the language. It was definitely confusing and felt like a massive mess of symbols that didn’t make any sense. But at the same time, there was this feeling of being able to create cool things and solve problems. 

One of my earliest programming projects was implementing the “Breakout” game. That might sound simple compared to technologies like augmented and virtual reality or AI, but back then, it was quite a challenge (for me at least)! There was a ball with velocity bouncing off walls and a paddle, using angles of reflection. It was then I realised how beautifully software engineering intertwined the creativity of art and the rigour of physics and math. Funnily enough, when I think of Software Engineering now, I don’t really see maths and physics being as dominant as it initially was. So, even if you hate maths and physics, don’t rule out Software Engineering. 

An additional motivation was the newness of the field. I was part of the third cohort of students entering the Software Engineering degree (2002 if you really must know). The possibility to innovate in a flourishing field was very attractive.

What factors might make Software Engineering an appealing choice for someone? On the other hand, what aspects could lead someone to opt for Computer Science instead?

There’s a lot of overlap between the two.

Consider Software Engineering if you enjoy problem-solving and creating functional things. If you enjoyed playing with lego or jigsaw puzzles, then you will likely enjoy building complex systems piece by piece, and seeing things come together. Software Engineering is about following processes, working in teams, dealing with real-life constraints and users. It’s about finding solutions (to problems) that work, not necessarily solutions that are perfect theoretically. If you enjoy the blend of creativity and practicality, Software Engineering is your gig.

On the other hand, if the idea of diving deep into the theoretical aspects and abstract concepts of computing sets your heart buzzing, Computer Science may just be your path. It’s great for anyone that loves algorithms, enjoys understanding the nitty-gritty of how things work, and isn’t afraid to take the rabbit-hole of theory. Think Einstein hairdos rather than corporate glamour.

What aspects of lecturing do you find most rewarding, and conversely, what have you found challenging?

Teaching is often rewarding. I relish that “aha!” moment on a student’s face when a previously complex concept finally makes sense, or when their code finally works as expected (imagine a victory dance with less rhythm and more exuberance).

The challenges, well, they’re a mixed bag. Keeping everyone engaged and motivated can be tough, especially when “Netflix and chill” is a seemingly better alternative. Historically, grading assessments was another – I’ve seen handwriting that could very well be classified as an ancient language! Fortunately, these days, we’re pretty much fully digital. 

Teaching Software Engineering material can be a bit like trying to nail jelly to a wall. Technology is constantly evolving, and what was relevant yesterday might be obsolete today. Keeping up with the pace can be exhausting, and admittedly all the teaching, research and administrative duties consume time and energy that makes it tough to keep up.

Do you have any advice on maintaining a healthy work-life balance while studying?

Work-life balance is often elusive, but magical when you manage to score it.

First, remember one thing: You’re not a robot. Taking breaks is not wasted time – it’s recharge time! Like a car, you also need refuelling.

Second, prioritise. Learn to recognise what’s urgent, what’s important, and what’s neither.

Third, sleep. Yes, you might feel like a superhero on those five cups of caffeine, but trust me, sleep is not for the weak. It’s for the smart.

Software Engineering is loads of fun. Enjoy your journey, make friends, build amazing things. No one comes to uni to learn anything (that’s what YouTube is for). You come to uni to make friends, and this is probably the best opportunity you will have your entire life to develop lifelong friendships (and/or romances)!

Considering the pace at which technology evolves, how do you prepare students for a field where tools and languages can change so quickly?

Welcome to the world of tech, where today’s hot topic is tomorrow’s legacy system!

Here’s a little secret: It’s not about the tools and languages. It’s about learning to adapt and solve problems. While we might learn specific coding languages along the way, the emphasis is always on the principles and concepts behind them.

With Software Engineering, you will need to continuously learn new tools and technologies. Even after you graduate, learning doesn’t stop. If anything, it speeds up! So it’s important to emphasise lifelong learning.

The other important consideration is focusing on project-based learning. By simulating real-world scenarios, this helps develop hands-on experience in adapting to new requirements like they will experience in industry.

What are some tips or advice you have for upcoming Software students? 

Here’s the secret:

  1. Programming is difficult when you’re not interested. Find projects that get you excited, even if they seem very difficult. Remember, the hardest task carries the greatest learning potential, and also the greatest rewards.
  2. Embrace the art of “Googling”. Knowing how to find and apply information by yourself is key.
  3. Don’t just read code – write it yourself, then rewrite it again, and again, and yet again. Repetition is HUGE in helping you understand and develop your programming skills since every time you reattempt a problem, you’ll end up doing it slightly differently each time.
  4. Find a community, since being surrounded by like-minded people who are learning, struggling and succeeding alongside you is priceless. Plus, you might make some friends who can explain that elusive error message at 1am.
  5. Lastly, don’t forget to enjoy your journey! You’re on an exciting adventure filled with eureka moments, brain-twisting software bugs, and the occasional desire to throw your laptop out the window.

Massive thanks to Nasser for generously sharing his invaluable insights and experiences with us during this piece! His genuine enthusiasm for teaching and nurturing a tight-knit community is undeniable. I believe I can confidently speak on behalf of all of Software, that Nasser has undoubtedly been a highlight of the degree!

I hope you found this piece enjoyable!
 Ka kite anō!

– Victor

Leave a Reply

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