前提
現在、趣味でScalaを勉強しています。
Scalaに限ったことではないですが、新しい言語を学ぶにあたって実務で使わないプログラミング言語の実力をつけるためにどのような手順で学習を続ければ良いのか少々迷っています。Scalaを学んでいる理由・モチベーションとしては、現職のクライアントがだんだんと規模の大きい顧客が増えてきており、得意としているRails以外にも今後を見据えて新しい技術・大規模なシステム構築を見据えた技術を学んでみたいと思ったのが理由です。
そのため、スマホアプリや広告向けシステムを構築したいというよりはどちらかというとWebシステムの構築のために学んでいる・関数型プログラミングについて学んでみたいというのがモチベーションです。
業務で使っている技術
- Ruby(4年ほど)
実務でRailsを用いたWebアプリケーションをメインでやってきました。そのため基本的なWebの知識
- Javascript(Node.jsも含む, 3年ほど)
最近はフロントエンドではReact, Vue,サーバーサイドではNode.jsを3年ほど実務レベルでやってきております。
知りたいこと
Scalaの言語仕様を学んで後にそれで満足して、なんとなくわかったという状態にならないように継続的に勉強するための題材が知りたいです。
「こんなものを作ってみたら面白いのでは?」・「私はこれをやりました」のような体験談を聞かせていただきたいです。
Ruby, Javascriptについては頻繁に触る機会があったので個人のモチベーションに依存しない形で学習することができましたが、実務で使わない言語をどう伸ばしていくかということのヒントが欲しいです。
作ってみようかと思っているもの
- Railsで構築したアプリケーションをPlay Frameworkで作ってみる
これまでの技術スタックとの比較ができる・Webシステムの要件がわかっているので設計的なところで時間を短縮できる
- mp4を処理する簡単なアプリケーション
受託で扱っている案件のため非常に抽象的にしか説明ができないのですが、現在Railsで構築mp4のファイルを再生する動画システムをScalaで構築しようと思っています。
以上、簡単に考えているものですが、「退屈なことはpythonにやらせよう」であるように日常的に自分が楽をするようなシステム・プログラムを書くとモチベーション的に継続しそうな気がしているのでそういった観点でもアドバイスいただけると嬉しいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。