This was the second in a three-part series on Java. I chose Java to work through second because it is statically typed. After working through so much VBA and Python, I found debugging could really be a hassle in ways that declaring your variables and initializing them to data types could address.
Object-oriented programming was, of course, something I already knew about. We also used it in the Python coursework. But crash-coursing my way through another start-to-finish series on another language was great because the concepts I had already been exploring were no longer so foreign. I had come to learn that in VBA I was pretty much just doing procedural programming even though it does support creating objects. Using objects is unavoidable, as workbooks and spreadsheets, etc. are objects, but object-oriented programming is a paradigm and not just a set of data types.
Working through inheritances and interfaces again was nice also, as the former had not been wholly unfamilar but the latter had. By this time I could tell software development was not going to be a simple endeavor, but I wanted it no less.