What to expect from Java at CC
- tedmanln
- Jan 25, 2023
- 4 min read

Here I cover some interesting topics offered by a introductory programming course in community college. I also compare it to Unity's Jr Programmer course, and talk about my next plans!
From September - December of 2022, I took Java Programming 1 at Orange Coast College. It is the very first course you need to complete before you advance to any other programming courses.
Before this course, my background in coding consisted of learning C# through Unity's Jr. Programmer pathway. I had exposure to basic syntax, creating and defining variables, writing methods, control statements (if and else if statements), and limited exposure to loops (for loops, while loops, do while loops). This helped me prepare for the first few weeks of Java. I will say, there was a focus on String methods, like printing out words and sentences, locating specific characters, and manipulating them. This was a little tough, because the Unity course did not really have a need to work with Strings, but I was able to breeze through making if statements and working with booleans. That is until we reached the chapter on loops.
Earlier I said limited exposure, because while Unity's Jr. Programmer course had us utilize a few of them, I realized that the different types of loops and their purposes were not that clear to me. Sure, I understood that you use loops when you wanted to repeat something. But what would happen if you used a loop within a loop? Or, when should you use a for loop or a while loop or a do while loop? The Java course made us practice using nested loops (loop within a loop), and it really cemented my understanding of how loops operate.
Here is what I had to understand:
Use a for loop when you have a clear idea when the loop should end.
Use a while loop when you do not know when the loop will end.
Use a do while loop when you want to check the condition AFTER you perform the loop.
The next thing we covered were Arrays and ArrayLists, which is specific to Java (I believe in C#, they are just called "Lists"). Both are good tools to organize the same type of information in a list like format, but with Arrays, you have to go through a complicated set of steps if you need to add more items than you originally planned. It is also difficult to add in an item when you want to keep everything else in order. This is where ArrayLists come in handy, because it will automatically add more items and allow you to easily replace or insert values. However the syntax for ArrayLists is not so intuitive as Arrays. Another thing I learned was the usage of 2 dimensional Arrays, which allows you to store more items in a row and column type format.
All the while we were able to learn typical algorithms in solving these kinds of problems that contained adding the sum, finding the average, finding the max or minimum. For example, if you wanted to find the maximum of a list of numbers, you can set the first number as the maximum, and then use a loop to keep comparing it to the next value. If there was anything higher than the first number, that number would be the maximum. My professor called this the King of the Hill method.
The last few weeks of the course covered Object Oriented Programming (OOP) principles, like creating classes, inheritance, polymorphism, and encapsulation. These principles were mentioned in the second half of the Unity Jr. Programmer pathway. In that course, we covered principles of OOP and our final project included creating objects that inherited properties from a single class, but were changed in some small way, aka polymorphism. But taking the Java course made me realize that there was so much more to OOP. I had to understand the importance of the constructor, that instantiates all data fields belonging to a particular class. I worked with subclasses, that allowed me to create new variables and methods, and change the implementation of inherited methods through overriding. I also learned about interfaces, which allows you to define methods that you want to be a part of a specific class, methods that you would later write out.
I can't wait to incorporate more of these principles in my later classes. The class in the computer science track at OCC would be C++ 1, which I will be taking this Spring semester (then C++2, then Data Structures and Algorithms). I will also be taking Boolean Algebra and Linear Algebra. I figured learning Linear Algebra would be important if I want to work in video games. On the side, I was accepted into CodePath's Intro to Android Development!
Overall I think learning Java at the community college level is a great place to start your programming journey. There is a lot of problem solving to be learned within the textbook, in class assignments, and quizzes. Most of the time, my best way of solving the problem was grabbing a pen and paper, writing down the input, the output, and mapping out all the steps in between. Before you can code the problem, you need to be able to state it in clean English.
It made me realize that The Unity Jr Programmer pathway is kind of ambitious in trying to teach the engine and some programming basics. Some times I felt quite lost trying to use the engine, because I was getting bogged behind understanding the syntax for programming. I believe to be successful in working with Unity, you should spend half of the time practicing simple coding questions that don't deal with incorporating objects in a scene. You need to forget the engine and just focus on the basics: syntax, variables, methods, loops, control statements, arrays, and classess
Comments