10 June 2019

#021 - Why did the Java Developer need glasses?

Because he couldn't C#.

A geeky Dad joke found on Reddit. I learned Java at university - though we mostly coded Java Applets, which is no longer a thing.

I understand the growing concern over Java due to the exploitive nature of the core library and the lagging updates that desktop users face when prompted to update Java. I am also uncomfortable that Oracle have full monopoly over Java, much like MySQL. I guess I do support the free web and the changing landscape of open source technologies. Instead of MySQL, I use MariaDB and I will shortly develop side projects using MongoDB.

Last year, I considered returning back to Java, but with Google keen to push developers to use Kotlin over Java, I may miss out on Java. Mind you, it would be good to expose myself to the general syntax of Java and understand how the Java communicates with the I/O streams when transferring data back and forth. It may come in handy from an InfoSec perspective. As a learner developer, it would be good to get a head-start in Kotlin, before hard-core developers transition from Java to Kotlin in the software development realm.

My simplistic understanding of Kotlin is that there is less code and it's an open source language. I'm guessing there will be different keywords that are reserved and there will be separate libraries that are either essential or supplementary.

At the time of writing, I am still heavily digesting C#. I am learning the head-scratching stuff like inheritance. Again, I am using Treehouse to watch a slightly older collection of C# videos. Interestingly, Treehouse released a new video series to C# basics, which I recently finished watching.

I hope the whole C# track is redone, as I find the project bamboozling - even though the underlying principles make sense. Unfortunately, the course project doesn't come across as intuitive - despite the simple game logic of a Tower Defense game. I think Treehouse developed the C# and its video game material on Unity before abandoning VR/AR as a whole.

Meanwhile, I have been watching YouTube videos on C#. I also have access to several eBooks on C# including:

Pro C# 7, 8th Ed. - Andrew Troelsen and Philip Japikse
C# 7 Quick Syntax Reference, 2nd Ed - Mikael Olsson
Head First C#, 3rd Ed - Andrew Stellman and Jennifer Greene

In all honesty, the main hurdle is overcoming one's understanding of the 4 Object-Orientated Programming Principles:

Encapsulation
Inheritance
Polymorphism
Abstraction

Strangely, I never learned this at university, so this is new to me. It makes you wonder if degrees are overrated pieces of paper. Either that, or one needs to go to a more renowned university for taught courses. Anyhow, I am happy with the diverse access of learning material that I have in 2019 (compared with my university days) and I am still determined to complete this C# track, which will take me through to the end of this month.

I am hopeful that I can start exploring C# projects on GitHub, or even start tinkering with my own projects using Unity. As much as I want to belly-flop into the deep of the pool, I wish to fully digest the fundamental basics of OOP. Knowing the core principles will help me with future projects and solidify my understanding and approach to algorithms and design patterns.

~Richard