Junior Programmer: Apply object-oriented principles


In the last milestone, you extended your Unity knowledge by working with data structures (managers and singletons) and data persistence (between scenes, between games). For your final milestone, you’ll look at one of the most applicable concepts in general programming – object-oriented design. Object-oriented programming allows you to better organize and reuse code throughout your projects and explains many design choices you must make with Unity. While this milestone doesn’t have a final project, this is the point at which you should start working on your game for the showcase. This milestone will mark the end of the programming-based Unity curriculum, but you are welcome to continue learning. Unity Learn provides many other “focus areas,” like effects/graphics, VR, and AR.


After completing this milestone, you should be able to demonstrate the following skills:

  • Understand basic optimization and associated tools.
    • Identify non-performant areas of a program.
    • Use built-in tools (Unity Profiler) to find areas of code that need to be optimized.
  • Understand the basics of object-oriented programming.
    • Explain each “pillar” of object-oriented programming.
    • Identify appropriate situations to use inheritance, polymorphism, and encapsulation.
    • Use object-oriented techniques to improve the design of a program.

Learning Objectives

3A-AP-17Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
3B-AP-11Evaluate algorithms in terms of their efficiency, correctness, and clarity.
3B-AP-14Construct solutions to problems using student-created components, such as procedures, modules, and/or objects.
3B-AP-22Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).
3B-AP-23Evaluate key qualities of a program through a process such as a code review.


As usual, you will use the Unity Learn platform for your learning materials. For the final milestone, you need to work through the “Apply object-oriented principles” mission (the last mission in the Junior Programmer pathway). Again, like the last milestone, this is a fairly short mission, but it will expose you to many different concepts, so it may take longer than they predict on their website. You will work through the different “pillars” of object-oriented programming (Inheritance, Polymorphism, Encapsulation) and also get to work with performance (Unity’s built-in performance profiler).


Again, because this is such a short lesson, you should complete all tutorials within the mission.

And so, this ends your time working through the curriculum. Hopefully you learned something and are inspired to start work on your submission for the showcase. Best of luck!