Oh, Java hello, old friend. I started to get acquainted with Java when I was 16. I decided one day that I should know how to code, and at the time, all resources pointed towards Java as the standard. So I found a tutorial series on YouTube, and I was off to the races. It was fun learning java on my own, but I later realised when I took a Java class in high school how much of the fundamentals I wasn’t grasping on my own. Taking a structured course allowed me to add more structure to my code and learn the basics of more advanced object-oriented concepts like inheritance and polymorphism.
When I arrived at UNB, I was delighted to find that the introductory programming class was Java. I know Java, this will be a breeze. While I wouldn’t look back and call it a breeze, my previous experience helped me a lot. After my first two terms at school, I found myself finally feeling confident that I could say that I “knew Java”.
In my professional life, Java has been everywhere. At IBM I wrote tests using a Java framework. You can imagine that a mature company like IBM has developed some very good clean coding practices. Working with this code gave me my first exposure to design principles I had yet to learn about in school. It also forced me to adopt good behaviour for things like documentation and source control management, two topics that you can never really appreciate the need for in the classroom setting.
My exposure continued through various courses that leveraged Java such as CS2043 Software Engineering I, CS3383 Algorithm Design and Analysis, and SWE4403 Software Architecture and Design Patterns. These courses helped me gain an understanding of how to structure code efficiently. Things like reusability, maintainability, and performance began to be considerations I thought about when programming. Is this list going to be able to be traversed quick enough? Can I separate this complex function into different parts?
At The Learning Bar, I helped develop features and produce reports for a Java Enterprise Edition website. On top of working with the Java that I was familiar with, this experience allowed me to practice working with the Spring framework and an MVC design pattern. I also had the opportunity to be a large part of the development process at The Learning Bar allowing me the chance to be part of architectural discussions involving the integration of JReport embedded reporting software and the migration to an Angular front end. This position was a great learning opportunity to be part of development, starting at the requirements gathering, through planning, implementation, testing, aiding in deployment, and tackling bugs.
Today I look at Java as one of the sharpest tools in my kit. Sure Python is getting bigger day by day, and JavaScript always comes in handy, but when it comes down to it, Java is my strongest programming language.