Everyone in this course has the potential to become a great software developer.

But it’s not just about learning to code. It’s about developing the right mindset.

Here are some things to keep in mind as you embark on your journey to becoming a software developer, and how to make the most of your time in this course.

Your journey starts today. We challenge you: Don’t think of yourself as a student, but as an apprentice.


Edit




Adopt the apprentice mindset

Edit

Today, shift from student to apprentice. Each assignment and each programming task is part of your software internship here. By the time you reach that job interview, you are presenting yourself not as a novice programmer that has done a couple of programming courses, but instead as a flourishing developer ready to make an impact.




Buddies bring support and open doors

Edit

Make every lecture count by connecting with your classmates. At the very least, you’re establishing friendships that will be a massive source of support throughout your studies and beyond. But without realising it, you’re also building your professional network. These are the people you’ll be working with in the future, and the people you’ll be able to turn to for advice and support. What’s more, many jobs aren’t advertised, with many roles filled through personal networks.




Embrace challenges with confidence

Edit

Of course it’s not easy. It’s not meant to be. The hurdles you will inevitably face are there to strengthen you, not block you. Approach each challenge with confidence, knowing that dedication and persistence builds the best developers. Without the challenges, you won’t grow and you’ll not feel the satisfaction of overcoming them.




Dive deeper by mastering a single language first

Edit

Delving into Java this year isn’t just about learning its syntax. We want to go beyond that by solving complex problems, building projects, and letting the language be our vehicle to learning powerful software design. This depth and understanding will be key for developing your confidence and competence as a developer and problem solver.




Transferable skills

Edit

Remember, the language is a tool, not the end goal. Each new language you subsequently learn will come easier as you’re not just coding, but you’re learning to solve problems, think critically, and apply concepts.




Thoughtful coding

Edit

Before you write a single line of code, come up with a strategy. Brainstorm your ideas and come up with a plan. Aim for code that is elegant, and don’t just think about functionality. Quality code takes thoughtfulness, which is a habit worth nurturing early on.




Grasp object-oriented programming (OOP) principles

Edit

Engaging with OOP in Java sets the stage for how you’ll understand and interact with many other languages. OOP’s principles (encapsulation, abstraction, inheritance, and polymorphism) are echoed across many other modern programming languages, not just Java. Understanding OOP will enhance your ability to design robust and maintainable software.




Build and showcase your projects with a portfolio

Edit

Your personal projects are the stepping stones towards a career. They reflect your passion, commitment, and learning journey. Use GitHub as your portfolio to show off your skills. Without previous work experience under your belt, your GitHub portfolio is often the first impression employers will have of your potential. Make it count.

Check out the following video to see just how easy it is to get started with GitHub:


By the way. Did you know that our course website is using GitHub Pages?




Consistent practice

Edit

Sharpen your skills through lots of practice. Find joy in tinkering with code, debugging, and improving the elegance of your code. This course provides you with the opportunity to practice your skills through regular programming tasks and assessments of varying complexity.




Show you’ll add value

Edit

When you go to that job interview, be ready to demonstrate how you are a proactive learner with problem-solving abilities. Make it clear that you don’t need hand-holding, even when you encounter a problem you haven’t seen before (which will happen often). You’re ready to contribute and add value rather than be a burden that requires constant supervision. You are there to make their life easier, not waste their time and money.

You’re not expected to know how to do everything required of you. In fact, they’re probably not expecting you to know how to do a lot of things they need. But what is expected, is that you can learn how to do things. It’s expected that you have developed the skills to encounter a problem, and devise a strategy to solve it. It’s expected that you can learn from your mistakes and improve. It’s expected that you can work with others and communicate effectively. It’s expected that you can work independently and take initiative. It’s expected that you can be trusted to get the job done.

This process is key. Through this process, what you’ve managed to learn (on your own) is what you’ll be able to contribute back to the team–especially if it’s something they don’t already have. You’re adding value.