EPAMにはまだそのような専門家はほとんどいませんが、ニーズは高まっています。Scalaプロジェクトが増えています。 私たちはサンクトペテルブルクにScala研究所を開設し、そこでゼロから開発者を教えています。 そこに到達する方法、誰がEPAMでScalaをマスターし、どのようなプロジェクトを行っているか-カットされています。
EPAMでScalaを学ぶ方法
初心者開発者
EPAMでScala開発者の需要が増加し始めたとき、サンクトペテルブルクのオフィスに技術を教える研究所を開設しました。 Core Javaの夜間コースを修了した初心者は、そこに着くことができます。 彼らがJavaを学び続けた後、誰かがScalaの研究室を選びます。
実験室での授業は、就業日ごとに4か月間開催されます。 すでにScala開発者の2つのグループをリリースしており、そのほとんどがこの技術を使用するプロジェクトに取り組んでいます。
コースでは、エンタープライズ開発のScalaに焦点を当てています。 学生はチームで働くことを学びます-コミュニケーションを構築し、共通のコードスタイルを維持します。 教師は、実績のあるツールやライブラリについて話し、コードの保守を容易にするためにコードレビューを行います。
テクノロジーを使用するプロジェクトが増えているため、12月からコースを1回限りではなく恒久的にする予定です。 毎月2〜3人を研究所からScalaプロジェクトに送りたいと思っています。
経験豊富な開発者
EPAMでScalaコースを受講する必要はありません。希望する場合は、自分で言語を学習し、Scalaプロジェクトに切り替えることができます。経験豊富な開発者が必要になることがよくあります。 基本的に、Scalaは、ウェブアプリケーションを作成し、ビッグデータを使用したい、または使用したいジャビストによって開発されています。 Java8に精通しているLombokは、ラムダが何であるかを理解し、不変データ構造の使用に慣れているため、Scalaはコードを記述するより便利な方法のように思われます。
一部の開発者は、機能的なアプローチを使用するためにScalaを学び始めています。 言語を習得した誰かが、Javaプログラミング手法への新しいアプローチを発見します。
Scalaはどこで使用しますか
私たちはビッグデータとバイオインフォマティクスに関連するプロジェクトでScalaを使用しています。 以下に例を示します。
- 人工知能システムを訓練するためのアプリケーションの開発 。 ニュースサイトを分析するシステムを含む。 人工知能システムが論理的な結論を構築し、パーソナライズされた情報を提供する方法を学習するには、大量のテストデータでシステムをトレーニングする必要があります。 テストデータは関心領域ごとにグループ化され、AIシステムにはますます多くのテストデータセットが必要になります。 ここで、関連付けはメタ情報の助けを借りて支援します-このように、必要なセットをより速く、より正確にグループ化し、見つけることができます。 EPAMで開発中のシステムでは、テストデータブロックの形成、メタ情報の追加が可能になるため、人工知能システムの学習速度が向上します。 プロジェクトチームは既にソリューションアーキテクチャを開発し、実装を開始しています。
- 生物医学データの効率的なストレージのためのData Lakeの開発 。 医薬品を発明するために、生物医学企業は研究中に受け取った大量のデータを分析する必要があります。 多くの場合、問題に直面します。目的の形式のデータを抽出するのは簡単ではなく、さまざまな形式でさまざまな場所に保存されます。 EPAMで開発されているソリューションは、大規模なバイオメディカル企業のこの問題を解決することができます。 Data Lakeは現在プロトタイプの段階にあります。 このプロジェクトでは、Scalaと最新バージョンのSparkを使用しています。
- 医学研究の結果を記録するソリューションの開発 。 このアプリケーションは大規模な研究室向けに開発されており、研究後にテストレポートの最終結果を作成できます。 がんマーカーを特定するための遺伝子検査について話している。 プロジェクトは半年にわたって実稼働環境で正常に機能しており、現在、チームはレポートツール、テンプレートなどを改善しています。
- 病気の発症または合併のリスクを評価するシステムの作成 。 さまざまなEMR(電子医療記録)システムと統合します。 さまざまな病気を発症または合併するリスクについて話している。 リスクは、最大の製薬会社のEMRシステムにある臨床データに基づいて計算されます。 さまざまなインストールオプション(大規模なデータセンターからローカルコンピューターまで)をサポートし、エンドユーザーの要件を満たすため(アプリケーションは既にいくつかの国で展開されています)、アプリケーションは可能な限り構成可能になっています。 プロジェクトのScalaツールのうち、Akka、Akka HTTP、Akka Streams、およびAkka FSMが使用されます。 チームは、ソリューションのアーキテクチャを改善し、新しい機能を追加する予定です。
- 医学研究報告からデータを蓄積するソリューションの開発 。 がんの検査、遺伝の研究、生殖、細胞診などを実施する企業向けのアプリケーション。 このソリューションは、研究の有効性を分析し、ビジネス開発の有望な領域を識別することができる統計的およびグラフィカルなツールを提供します。 このプロジェクトでは、Scala、Akka、Riak、ElasticSearch、AngularJS、TypeScript、LESS、およびHighchartsを使用しています。
何を読んで見るか
Scalaを自分で学習できるように、いくつかの本とコースをお勧めします。
- Scalaをゼロから学習するために私たちのところに来た人は誰でも、Courtrara: Functional Programming Principles in Scala and Functional Program Design in ScalaでMartin Oderskyの言語の作成者からのコースをご覧になることをお勧めします。
- Martin Oderskyの著書 『Scalaでのプログラミング』 。 現在、第3版がリリースされており、最初の版のみが無料で入手できます。
- せっかちな人のための本Scala 。
- Scalaの詳細 。
- 手順と参考資料は、Scalaの公式Webサイトにあります。
Scalaでプロジェクトを勉強して実行したい場合は、 コースと空室に関する情報をお楽しみに。