portrait picture


balancing software engineering & infosec

Learning Scala - Week 2: Coursera And Scala Related Tools

posted on Oct. 4, 2013, 7:08 p.m. in software engineering, newbies, scala

I am a bit late with my week two summary but let's do it anyway. Week three will be ready on Sunday. I stopped attending the Coursera class. I fought against the tools and I even managed to actually learn some Scala.

Why did I stop the course? Well, first it is absolutely not the way how I can effectively learn a new language. It just doesn't work for me. Second, I was a bit disappointed by it. I will still watch the video instructions to know if I am right about it but currently I feel like there is some part of Scala, some part of functional programming in every weeks lectures and at the end of the day, without any prior knowledge, you know nothing about both of them. Maybe it is also just my first impression and I'm wrong.

Some people argued that I should still complete it to get the certificate. First: I do not really care about it. I do not need papers, or PDFs, to show me what I can do. Second: It will not be accepted by any university as prove that I am able to do something or learned it. And I think most, if not all, potential employers and clients also do not care about a piece of paper from an online course, especially if I can just demonstrate the skills.

The tools are still a bit strange, especially sbt and Eclipse. This is not directly Scala related since I thing I can just ignore both for now. Life is pretty easy right now. python foo.py, go run foo.py, node foo.js. One file. You can have this with Scala, too. You have the usual Java-ish stuff kit compile and than run. You have the same Java-ish stuff with specifying the classes. If you ever worked with Java you know how it will be working with Scala. Beside that you also get some nice things like an interactive shell.

Working with Scala, right now, after the first tutorials is not really spectacular. I only made it through the basics to get an understanding of the syntax, parts of the library and some best practices. I think the "real fun" starts after I got through those things. It doesn't make a big difference for me if I am writing Scala or Go for example. I believe line count is about the same.

What made me chuckle is the fact that using MutableList threw a style warning that I should not use it. I'm not sure what the Coursera system used to check the code style and quality. But throwing an error for using something from the standard library is just hilarious if you ask me. "Hey - I know the people who wrote the language gave you this tool. But I think you should not use it. Because reasons (actually: mutability). Nah, they surely do not just make it unavailable or throw an error if you use it directly or warn you for using it. Thats my job. You really should not use it."

Sadly I did not get as much done as I expected till last Sunday. But this week was a bit more productive - update will be ready on Sunday.