I've finished Martin Odersky's Scala Course. I've built a few small play2.0 apps. I've used Scala to solve ~20 Project Euler problems, and I'm fiddling around with parsers and scalaz. However, all the Scala positions I've found are looking for engineers with experience using Scala in production. How can I make that jump? Are there any opportunities out there for junior engineers who are proficient in Scala?
Scala School
31–40 of 77 posts
Re: Scala School
#32If you guys really into Scala, I really recommend trying Finagle ( https://github.com/twitter/finagle ). It was also created by Twitter. It was a lightweight HTTP server and client for Scala. It's my favorite. With just a "single" line of code, you can create an HTTP server in Scala. I usually combine it with Rogue ( https://github.com/foursquare/rogue ), an "ORM"-like for MongoDB. I used Finagle and Rogue to build a…
As someone getting into scala, where can I find the list of top available libs? For clojure I just browsed github, but I feel there probably is some resource out there I'm missing.
Re: Scala School
#33I've finished Martin Odersky's Scala Course. I've built a few small play2.0 apps. I've used Scala to solve ~20 Project Euler problems, and I'm fiddling around with parsers and scalaz. However, all the Scala positions I've found are looking for engineers with experience using Scala in production. How can I make that jump? Are there any opportunities out there for junior engineers who are proficient in Scala?
Re: Scala School
#34Few other great learning resources for Scala: - a "JSFiddle" like editor for Scala: http://scalakata.com - Interactive tours: http://scalatutorials.com/tour , http://www.scala-tour.com , http://www.simplyscala.com - Learn Scala in X minutes: http://learnxinyminutes.com/docs/scala/ - Typesafe Activator: http://www.typesafe.com/activator - Official docs of course: http://docs.scala-lang.org/
Scala Notebooks, which can be classified as a learning resource https://github.com/n8han/scala-notebook/ - It is an in-work conversion of iPython notebooks using d3 instead of matplotlib.
Another great analysis resource is Saddle, a scala data munging library (analogous to pandas, around the 0.8 revision). http://saddle.github.io/
Re: Scala School
#35I've finished Martin Odersky's Scala Course. I've built a few small play2.0 apps. I've used Scala to solve ~20 Project Euler problems, and I'm fiddling around with parsers and scalaz. However, all the Scala positions I've found are looking for engineers with experience using Scala in production. How can I make that jump? Are there any opportunities out there for junior engineers who are proficient in Scala?
Re: Scala School
#36I've been interested in venturing into Scala but have not found a good resource for getting a development environment setup. Should I be using an IDE or will sbt/Sublime be sufficient?
Ensime in Sublime is kinda pointless I think since it only updates on file change. The REPL and SBT integration is nice.
I use Sublime for quick examples in Scala, or as a VIM alternative for larger projects (as opposed to my main editor like with Ruby).
For most of my Scala work I use IntelliJ though. The lack of half-decent theming in Eclipse and Preferences/Settings being all over the place really puts me off ScalaIDE personally.
Going from Zero to Code in IntelliJ and SBT (on OSX) is pretty trivial. Given a command-line "Hello World" with a traditional Maven layout:
First, install IntelliJ, navigate to "Plugins" under preferences and install the Scala plugin.
Now make sure you have Homebrew installed (http://brew.sh)
$ brew update
$ brew install sbt --devel # currently 0.13.0-RC5
$ cd ~/src/
$ mkdir hello-world
$ cd hello-world
$ mkdir project
$ echo "sbt.version=0.13.0-RC5" | tee project/build.properties
$ cat compile
> gen-idea
> run
And there you go. It could be simpler if we were having a LOC competition, but this is actually very close to the exact setup I use for projects day in and day out, including getting a jump on the next version of SBT and best-practicey stuff like setting the SBT version in build.properties.If this were a Play app, you might have a "project/plugins.sbt" that looked something like this (to get a jump on the upcoming Scala 2.10 version of Play, that integrates with SBT 0.13.x):
// Comment to get more information during initialization
logLevel := Level.Warn
resolvers := Seq("Maven Central" at "http://repo1.maven.org/maven2/",
"Typesafe Snapshots" at "http://repo.typesafe.com/typesafe/snapshots/",
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases/",
"Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.0-M2")
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")
This just adds a few more common resolvers you might use for dependencies, and locks you to the latest Play milestone snapshot. You can pretty much otherwise copy/paste files/folders from a sample Play app, like you might see with the Typesafe Activator for example.Good luck!
Re: Scala School
#37Earlier quoted context omitted.
It's easy to forget the value of delivering functionality immediately. It's all too easy to spend a long time on an elegant design that doesn't actually serve business needs. I like to follow an agile approach where if something can't deliver value in 2 weeks then it's not worth doing (or, more likely, needs to be split into smaller pieces). That's plenty of time to learn enough Scala to be more productive than you w…
Learning a new programming language is an intellectual, exploratory endeavor, even if it might result in adopting that language for future programming projects. Writing software professionally is a pragmatic engineering job constrained by non-intellectual considerations such as customer expectations (and lack of knowledge thereof) and limited availability of resources (time, money, skills, etc.). Suggesting that both…
Re: Scala School
#38I've been interested in venturing into Scala but have not found a good resource for getting a development environment setup. Should I be using an IDE or will sbt/Sublime be sufficient?
However, If that is not a requirement for you, you should really be using the Scala IDE (Eclipse plugin), it has great autocompletion, refactoring, and more.
I have to say I also started with Scala IDE because, when starting with a completely new language, I tend to just install the default IDE so that I don't have to fight two battles in the beginning but can concentrate fully on the language. Otherwise, you'll loose interest / give up even faster.
Re: Scala School
#39I've been interested in venturing into Scala but have not found a good resource for getting a development environment setup. Should I be using an IDE or will sbt/Sublime be sufficient?
You'll level up much faster with an IDE (IMO). Ensime in Sublime is kinda pointless I think since it only updates on file change. The REPL and SBT integration is nice. I use Sublime for quick examples in Scala, or as a VIM alternative for larger projects (as opposed to my main editor like with Ruby). For most of my Scala work I use IntelliJ though. The lack of half-decent theming in Eclipse and Preferences/Settings b…
Re: Scala School
#40I've been interested in venturing into Scala but have not found a good resource for getting a development environment setup. Should I be using an IDE or will sbt/Sublime be sufficient?
You'll level up much faster with an IDE (IMO). Ensime in Sublime is kinda pointless I think since it only updates on file change. The REPL and SBT integration is nice. I use Sublime for quick examples in Scala, or as a VIM alternative for larger projects (as opposed to my main editor like with Ruby). For most of my Scala work I use IntelliJ though. The lack of half-decent theming in Eclipse and Preferences/Settings b…
(just remember "brew doctor" first).
Also for non-maccies: http://www.scala-sbt.org/0.13.0/docs/Getting-Started/Setup.h... (it would be nice to discuss the red hat and debian distro families in that Setup page, it looks like you can't currently "apt-get sbt"