Hello everyone,
As mentioned in the introductory article of this blog, I’m here to transparently share details about my current studies.
At the moment of writing (January 2024), my focus is on two main topics:
- Learning Scala Programming Language;
- Mastering the Spark Framework. I want to clarify that when I mention learning Spark, I’m not referring to just understanding the DataFrame API, as many often do when they say they’re learning Spark. My goal is to gain a comprehensive understanding of this extensive framework.
Now, let me share the motivations driving my focus on these two subjects.
Regarding Spark, the motivations are fairly straightforward. Knowing Spark is crucial for any Data Engineer. It serves as a prerequisite for those venturing into the data domain. However, I’ve noticed that many people only scratch the surface of Spark, particularly with the DataFrame API, and believe they’ve mastered it. The paradox is that knowing the DataFrame API might suffice for about 90% of applications. Still, aspiring to be a thorough Data Engineer, I cannot settle for a superficial understanding of Spark. While I acknowledge that Data Engineering involves more than just Spark, it’s a solid starting point in my opinion.
As for Scala, the motivations are slightly different. Scala is a niche programming language, and investing time in it might not be the most lucrative option for me right now. However, I’ve chosen to dedicate time to it for a couple of reasons:
- I found an excellent Scala teacher, Daniel Ciocîrlan, a Software Engineer behind RockTheJvm, a learning platform where he writes articles on JVM languages and offers paid courses on various JVM topics, predominantly Scala and related subjects (Spark, Akka, Zio, Cats, Flink, etc.). The courses I’m currently taking are from this platform. He’s just brilliant and clear in his explaination and he was able to transmit me his great passion for Scala.
- I genuinely enjoy working with Scala.
- Having an additional tool in my toolbox is always beneficial.
- Learning Scala isn’t just about memorizing its syntax; it’s about adapting to a new way of approaching software development. Scala stands out, widely known for its effectiveness in Functional Programming, which offers an alternative to the traditional Object-Oriented Programming. Having Functional Programming in your skill set isn’t a disadvantage; it’s a practical advantage.
Learning Scala is a bit tough, to be honest. They say it’s not the easiest language, and I agree—it’s a bit challenging. Also, I don’t use Scala at work, so I only practice in my free time, which isn’t a whole lot and most probably it’s likely insufficient. But, you know what, I’m still sticking to my plan of learning it, at least for now.
In two of the next blog posts (not necessarily the next two), I’m gonna dive into what I’m picking up about Scala and Spark and I’ll also try to share what’s inside the courses.