LoginSignup
68
50

More than 5 years have passed since last update.

【fukuoka.ex】学生エンジニアがElixirに興味を持ったきっかけと初心者にオススメの勉強法

Last updated at Posted at 2018-08-25

Elixir(エリクサー)って何?

Elixirは並行処理の機能や関数型といった特徴を持つ、Erlangの仮想マシン (BEAM) 上で動作するコンピュータプログラミング言語 by Wiki

ググれば色々と詳しく出てくるので、ザックリとメリットを述べると

  • 関数型言語のメリットを享受できる一方でスクリプト言語のようなシンプルな言語仕様
  • 「膨大なデータやアクセスの高速処理」と「高い開発効率」を両立できる
  • Railsの開発者が作ったWebフレームワークPhoenix(フェニックス)が優秀
  • ハードウェアの性能に比例した高速化が実現できる!

Discordなどの大規模サービスでも実際に使われているとか!

もうちょっと専門的に知りたい人はこちらとかオススメ
Elixir for Rubyists | カヤックエンジニアブログ

なんで興味を持ったか

1. これから台頭しそう

2020年以降SI案件が激減することが予想され、特に地方ではIT企業の取り巻く環境は厳しくなると考えられます。
そうでなくとも、エンジニアが足りない現状の割には取得データ量はどんどん増えていきます。
そうなると既存の水平/垂直スケールアップでは追い付かず、もっと根本的な効率化が必須となっていきます。
その一つの解決策として上記のようなメリットを持ったElixirが注目されています。

学生エンジニア目線からすると、Ruby(Rails)やPythonのような既に発展した言語だけだと先輩エンジニアに勝てないので、「若い(しかも時間がある)」という優位性を活かしてこれから発展していく言語を触っておくのも重要と思います。

もっと詳しく知りたい方はこちらとかオススメ
【part.1】福岡のElixirコミュニティ fukuoka.exをどんな人がやってるか聞いてきた

2. fukuoka.exコミュニティの優しさ

私が住んでいる福岡では fukuoka.ex というElixirコミュニティが最近盛り上がっています!
fukuoka.ex ~福岡Elixirコミュニティ~

これに加えて、piacereさんというfukuoka.exのドンがいて、その方がとても優しくて素敵なのも魅力です!
fukuoka.ex公式サイト

3. 入門記事が面白かった

僕がとりあえず触ったのは「Excelから関数型言語マスター」シリーズ(全5回)
Excelから関数型言語マスター1回目:行の「並べ替え」と「絞り込み」

まずはこれを触ってみることをオススメします!
シェルスクリプト好きな人はパイプ記法にハマると思います笑

私はこれでElixir楽しい!となりました笑

とりあえず何やればいい?

「へぇ面白そうじゃんElixir。やってやんよ・・・(ニヤリ)」という人は以下をオススメ笑

入門記事やってみる

Twitterでつぶやく

まずはpiacereさんフォローしてみると面白いと思います!
@piacere | twitter

#fukuokaexのハッシュタグをつけてElixirに関することをつぶやくと、どこからともなくアルケミスト(Elixirエンジニア)がやってきてリプしてくれるという噂が・・・?(実体験w)

もくもく会への参加(福岡など)

fukuoka.exでは月1回程度もくもく会が開催されています。「Elixir触ったことない、なんならプログラミング初心者なんだけど・・・」って人でも優しく受け入れてくれるらしいです!w
もくもく会

開催日を知るにはfukuoka.ex公式サイトfukuoka.ex connpass公式ページをチェックしておくといいかと!

コメントがあったので追記

fukuoka.ex connpass公式ページに登録しておくと、告知と同時に案内メールが送信されるようです

ちょっと面白い勉強法

個人的に面白いかなと思う勉強

HackerRankやってみる

HackerRankというプログラミングの問題を解いてオンラインジャッジしてくれるサイトがあります。
色々ジャンルがあるのですがFunctional Programmingというジャンルで関数型に特化した問題がたくさんあります。なんとElixir使えます!「とりあえず文法覚えたし手を動かしてみるか!」って人にオススメ

標準入出力意外と見つからなかったので置いときますね(もっといい書き方ありそう)

aとbを標準入力から受け取って和を返す

defmodule Solution do
  a = IO.gets("") |> String.trim() |> String.to_integer
  b = IO.gets("") |> String.trim() |> String.to_integer
  IO.puts(a+b)
end

Elixirやろうぜ!

コミュニティの温かさもあって、単純にエンジニアコミュニティとしてもオススメです!
僕もちまちまElixir書いていこうかなと思います!

目指せ上級アルケミスト!

※アルケミスト=Elixirエンジニアの通称

68
50
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
68
50