見出し画像

【30日目】未経験者の第一言語と進路について(Ruby on Rails or PHP?)

 今日は技術勉強は朝活のみとなってしまいましたが、その分人と関われ、情報が収集できました。

 また、この間【アウトプットポリシー】を作ったばかりなのですが、採用的な観点を加味すれば修正が必要なことも気づきました。

 とはいえ、今日の投稿は言語選択についてです。思ったときに書いておきたいと思います。

【結論はRuby on Rails】

 選んだ理由は下記のとおりです。

・WEBページを作るより、物事の仕組にかかわりたい。ネットデブリを量産する仕事もいやだ。
 =>バックエンド言語であること。

・早急に学習を進め、まずは現場に参画したい
 =>学習コストが低いといわれる、Ruby, PHP, Pythonなど

・とりあえず動くものを作りやすい = 物を作りながら学習しやすい
 =>Ruby, PHPといったフレームワークが強力らしい言語
※もちろん、ロジックの理解がおろそかになるリスクがあるので、意図的にその辺を補完する必要があると思います。

・フロントエンドについて学習する時間はとれないが、多少なりとも理解するために触れるきっかけが欲しい/その知識がなくてもポートフォリオでフロント部分をいじる必要がある
 =>フロント部分のサポートがあるフルスタックの言語である、Rails, Laravel
※最近名前をよく見かけたVue.jsとの連携もしやすいらしい。Djangoはこの辺のサポートがなく、初心者独学には結構大変らしい。

・Ruby? or PHP?
=>ここからは結構偏った情報に基づいて選択したかもしれませんが、下記のような雑多で一部は主観的な情報に基づいて、独断と偏見に基づいてRuby on Railsを選択しました。

1 複数のBest Backend Technologies 2019に乗っている
https://ordergroup.co/en/blog/best-backend-technologies-2019/
https://learnworthy.net/best-backend-technologies-to-use-in-2019/
※ちなみに、Rubyの世界的な人気は近年急速に落ちてきてはいるようです。
ここについては後述します。

2 作成者が日本人であり、日本語情報が多い。
 例えば、QiitaではRails関連の投稿は28,000件以上。一方Laravelは7,000件程度。
 teratailでの質問もRailsは1万件近い一方、Laravelは3,000件程度に留まります。
 独学で身に着けるには、コミュニティが広いほうが有利かと考えました。

3 WEB系スタートアップにブームがあった = 保守・運用の仕事は少なくともある
 私は後記の理由で、WEB系エンジニアを目指しています。
 一方で、現在は新規開発案件は減ってきており、2020年以降はそれが加速する可能性もあるとのことです。
 また、未経験者の参画できる仕事は多分保守系だと思うのですが、スタートアップブームの際にRubyの選択が国内では多かったことを考えると、その手の企業の保守案件というのは比較的多いことが予測でき、今後の転職活動(私は2020年1月からの稼働を希望しています)に有利になると考えました。
 とはいえ、もちろんPHPも同じような傾向はあると思いますが。

4 見た目が美しい = 可読性の高さ
 ちょっと見てみた感じの読みやすさがRubyのほうが上。
 これは趣味とかではなくて、素人が勉強するにおいて、ただでさえわからないコードを読み解く時間を限りなく削減することが有利と判断しました。

5 PHPはどうも嫌われているらしい
 => 規約の強く厳格な言語であるRailsという選択

 なぜかは知りませんが、WEB系では特にPHPは立場が低いと聞きました。そこでPHPについて調べてみると、こんな記事にたどり着きました

「PHP言語はなぜ嫌われてしまうのか https://note.mu/shimakaze_soft/n/n03992e2e8c22」

 なるほどという感じでしたが、初期の設計思想がもともとプログラミング言語ではないために体型だっておらず、一貫性がない言語デザインであるとか、初心者が学びやすいがゆえに低品質なコードが大量に作られてしまったこと、言語の規約や性質が緩く技術者の技量が出やすく初心者のコードが低品質になりやすいなどの理由によって嫌われてしまうことがわかりました。

 私はもちろん低能技術者なので、最初にPHPをつかうことで品質の悪さが露悪し、へんなレッテルをはられるのは良くないと感じたので、厳格な言語を選びたいと思います。

6 Pythonの学習が楽になるらしい
 これは噂程度でよく知らないのですが、機械学習やデータ分析に使われているというPythonはRubyをやっておくと学習コストを大きく下げられるようです。

7 Web系業界に入り込みやすいらしい => 目指すキャリアパスについて
 賛否両論ある方のようではありますが、勝俣健太さん(https://twitter.com/poly_soft)の動画などではRubyを第一言語とすることを推奨しており、WEB系への就職が比較的しやすいとのことです。

 しかしながら反対勢力も多く、研修の充実した大手SIerへの就職を推奨している方々もいるようですし、私もその研修はとてもいいなと思うほか、携われる事業の社会的影響力の高さなどを考えると、SIerも魅力的なのだろうと思います。
 フリーランスは幻想で強者の理論という意見も多数見かけました。ここについては、あらゆる情報をうのみにするべきではないと感じていますし、そもそも私はフリーランスには興味がありません。

 では、私の目的に即して両意見を天秤にかけた時に、果たしてどちらがよさそうかということです。

 私には、チームに帰属しながら企業貢献と自己成長を両立して、「自分の努力=>チームに貢献=>自分に返ってくる=>また努力」というサイクルを作り、常に向上心をもって生活したいという願望があります。
 つまり、SIer or WEB系という構図に当てはめれば、巨大システムの一部として働いて巨額で影響力の高い目標のために生きるよりは、マイクロであっても何か社会貢献できると思われる良質なサービスに携わりながら、自分が一緒に働きたいと思えるような方々と、その会社やチームのために努力をして貢献して、1対1の人間関係を大切にしながら生きていきたいという気持ちが強いです。
 これは今の「政令指定都市の地方公務員」、という巨大組織での働き方を経て感じたことの裏返しでもあります。
 であれば、WEB業界のほうが、目指すべき道としては近いのかなと。

 また、SIerについては、東京オリンピックブームや金融、官公庁系のシステム開発が完了してくるという点から大手6社以外の競争力が衰えてくる可能性が想定されるようなので、今から未経験では入れる会社の選択肢では、ちょっと将来が不安である点もあります。
 35歳SIerからWEB系スタートアップに移れるイメージが湧きません。

==================================
 以上のことから、私のような志向を持つ人間にとっては、初期言語としてはRuby on Railsが一番生かせるのではないかと思いました。
 一方で、SIerを目指している方などであれば、LaravelPHP(や多分JS?)のほうがいいと思います。

 またフロントエンドを目指されている方にとっては全く参考にならない情報だったとは思います。

 以上です。(noteってインデントどやってつけるんだろう)

この記事が気に入ったらサポートをしてみませんか?