Learning Journal Summary (8/12/25)

Looking back on HW1 from early in the semester, it is clear to me how much progress I have made as a programmer. At that time, I would approach problems with a more try-it-and-see method, often resorting to guessing over planning. Now, I to revisit HW1 today and I would first break down the problem to smaller, testably sized pieces, write unit tests up front, and design in object-oriented principles from the outset. I would also employ better nomenclature, consistent formatting, and look ahead to issues down the line with respect to scalability as opposed to just “making it work.”

HW1 and Project 02 – Development of Skills Reflective:

When I look back on my code from HW1 and my code from Project 02, it is like night and day.

In HW1, my programs were working but didn’t properly separate concerns, and I occasionally re-wrote code that I should have reused. My comments were few, and error messages were rudimentary at best.

In Project 02, I applied proper OOP design, implemented Room database integration, followed consistent naming and formatting standards, and wrote more modular, maintainable code. I also incorporated ViewModels and Adapters in Android, which showed I could work with more advanced frameworks and design patterns.

Two Victories:

Successfully completing Project 02 – This was my toughest project to date in this class. It involved handling multiple files, dealing with a database, and handling UI/UX issues within Android Studio. Putting all that together was a huge achievement and gave me confidence that I can address real-world software projects.

Getting comfortable with GitHub and Git – Version control was scary to me at the beginning of the semester. Now, I am comfortable building branches, combining changes, and working with commits without fear of messing everything up. This has already helped me become more organized and better equipped for collaborative projects.

Areas of Improvement:

Object-Oriented Programming (OOP) – Now, I am confident in constructing abstract classes, implementing interfaces, and extending classes efficiently. I am able to realize the advantages of OOP in organizing code and reusing it.

Debugging and Problem Solving – My debugging skills have enhanced considerably. I no longer haphazardly modify code, but instead, utilize breakpoints, log statements, and controlled testing to pinpoint problems. Database Integration – I discovered how to link Android applications to room databases, implement DAO interfaces, and leverage queries efficiently. This broadened my expertise to full-stack mobile development realms. In general, this semester forced me out of my comfort zone, yet it also transformed me into a far more confident and proficient developer. Now, I am better equipped to tackle projects with a better plan, a better command of Java concepts, and a better capability to debug and optimize my projects.

Leave a Comment

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