あまぎゃらす

だらだらしたいけど必要に迫られたら本気出す

私がRubyを使わない理由

お題「bundle exec について」

bundle execについてというお題を見つけたので書いてみる。

bundle execとは

こんな記事を読むくらいだから知っているだろうが、 rubyのgemを管理するコマンドです。 せっかくマニアックなお題なので、なぜ私がRubyを使わないかを説明します。

キャリア戦略上の理由

私がプログラミングを始めるだいぶ前からRailsが爆発的に流行していました。実務は知りませんがプログラミング入門の領域では猫も杓子もRailsと言った雰囲気で、入門教材のほとんどがRailsだったんじゃないかくらいの勢いがありました。(誇張です)

その段階でエンジニアになろうとした私は、プログラミング教育、プログラミング入門の領域でメジャーであったRubyJavaScriptは触らないことに決めました。

なぜなら、中途半端なRailsエンジニアが巷に溢れかえることが容易に想像できたからです。

学び始めて数年間は中途半端なエンジニアレベルでしかいられないでしょうから、たくさんいる中途半端なエンジニアになることは避けなければなりません。さもなくば転職活動がハードモードまっしぐらなので。

railsを触らなかった私が選んだ言語

言語の差に大した意味はない、という方もいますが、初学者にとってはやはり最初の言語は大きな影響を持つものです。

私は結果的にGoとPythonを勉強することにしました。

理由は以下です。

  • どちらもUSを始め海外では圧倒的に人気なのに日本での普及はイマイチ、つまりこれから流行すると予想できた
  • 可読性に対するアプローチがしっくりきた。始めてすぐにコードをスラスラ読めたのには驚いた。Rubyのコードは、なかなか読みこなすのが難しかった、というか今でもうまく読めない

まとめ

私は相性と将来性からGoとPythonを学んだけど結局書き方がしっくり来てたのが大きいかもしれません。ただ、同レベルのRailsエンジニアがゴロゴロいる言語に入門していく気は起きませんでした。

実はRailsが苦手です。あれを初心者に教えるなんてとんでもない、くらいには思っています。

マイお題なるシステムがあることを知ったので「正直嫌いなプログラミング言語フレームワーク・技術は?」という性格の悪いお題を立ててみました。よろしくお願いします。

まずはじめに……

RubyRailsに共通する重要な思想は、コードを書く人の楽しさ、幸福度を高めることです。これ自体は素晴らしい思想だと思います。正直尊敬しています。 ですが、私は嫌いな技術と問われると、ついRailsを上げてしまいます。

これは、Rails本体が悪いのではなく、Railsを取り巻く日本の環境に対して違和感を覚えているからです。

初心者にはRailsを教えよう

有り体にいってRubyRailsも独特の思想をもっています。鋭く尖っているといってもよいかもしれません。 Railsの思想について知らなければ、POSTDに和訳があるのでこれをよむとよいでしょう。

Railsの思想は他の言語にはないものであり、そのおかげで昔から今に至るまで独特の地位を築いています。 大きな流れではあるが、決して主流とまでは言えない、というのが個人的な感覚なのですが、それがなぜか日本ではデファクトスタンダードみたいに語られており、初心者向けプログラミングスクールは猫も杓子もRailsを教える、という現状になっています。

この現状がすごく嫌です。

Rails自体は良いフレームワークですが、初心者のうちに触れて一生触り続けるフレームワークではない、というのが率直な私の意見です。Railsのよさというのは多くのプログラミング技術にふれて改めてわかるものであり、どうしても他との比較というのはひつようではないかと考えてしまいます。

その機会を与えず、ただ盲目的にRailsだけ教えておけばよいみたいなスクールはよろしくない。そういった方を雇うところは雇うところで、Railsにだけ特化させて他の技術を触らせない、みたいな企業が現実に存在している。

その現実が嫌いです。

Railsは悪くないけどRailsに対する対応が嫌いという話でした。

お題「正直嫌いなプログラミング言語・フレームワーク・技術は?」

エンジニアは業務時間外でも勉強するべきなのか、とかいう愚問について

エンジニアは業務時間外でも勉強するべきなのかという記事が世間を賑わわせていますが、これについて思うところがあったので、筆を取りました。

今回の論点2つ

  • 業務時間外にコードを書くことは勉強なのか?
  • なぜエンジニアだけが勉強必須みたいな扱いなのか(エンジニアじゃなくたって業務時間外に学ぶことは必要ではないのか?)

業務時間外にコードを書くことは勉強なのか?

私は、業務時間外に「勉強」したことはありません。業務時間外にコードを書いたことがないという意味ではなく、業務時間外に「勉強」という言葉で表される行動をしたことがない、ということです。

そもそも「勉強」とは?

勉強という言葉は(Google先生曰く)「勉めて強いる」と書くことからもわかるように無理やり何かに努力して励むことです。 この定義で見た時に勉強しているエンジニアなんてそう多くないんじゃないかな、というのが正直な私の考えです。

エンジニアという職種につく人々は技術に関わることが好きな人が多く、いわゆる「勉強」をわざわざしている人は少ないのではないかな、と。 それはつまり、コード書いたり技術触ったりしているけどそれは好きでやっているのであって、無理をしているわけでも努力をしているわけでもないということです。

学びと勉強

  • 学び:真似するが語源でひとの真似をして何かに習熟すること
  • 勉強:勉めて強いると書くように、むりやり自分を鼓舞して嫌々ながら努力すること

とまあ、極端に書きましたがこんなニュアンスの違いがあります。

この記事で言われる勉強するエンジニアや勉強しないエンジニアは、好きでないことを仕事にしてしまった不幸な人ではないかな

見出しに書いたままなんですが、週末にコードを書くか書かないかが勉強する、しないという選択になっている時点で、この仕事好きじゃないんじゃないか、と考えてしまいます。 好きじゃなくても仕事はやらなきゃならないわけですが、好きこそものの上手なれ的に好き好んでいろいろ技術触っている人にはまあ、勝てないでしょうね。

業務時間外に勉強したくないエンジニアが業務時間外に勉強したところで好き好んでコード書いているエンジニアに追いつけるのか?

この記事では、業務時間外で勉強したほうがいいことあるよ、と言いたそうですが、心の赴くままに学んでいるエンジニアといやいや勉強しているエンジニアを比較して、前者に追いつけるとは思えません。 とはいえ、学ばないと生きていけないので学ぶわけですが……

なぜエンジニアだけが勉強必須みたいな語り口なのか

これすごく疑問です。余暇時間も学び続けられる人のほうが強いのはごく当たり前のことですし、学ぶ時間が少ない人の職が危なくなるのもごく当たり前の事のように思えます。 とすればそもそもこの記事、なんでエンジニアに限定する必要があったのだろうか、というのが疑問になります。

エンジニアには学ぶ文化が強くある文、むしろ学ばない非エンジニアの方がはるかに社会問題になり得る可能性をはらんでいませんか。数年で職業がひとつ消える、みたいな時代に生きていて、愛舞時間を取らないというのはとてつもないリスクであるように思えてなりません。

エンジニアは常に勉強が必要で大変ね、などと思っている人は気を引き締めたほうが良い。

昨今の予測を例に出すまでもなく、将来的に雇用や職業が激変することは目に見えています。 いま努力したことが無駄になる可能性がないとは言いませんが、いま努力していないことが特になる可能性はほぼないかと存じます。

まとめ

  • エンジニアに限らず学んだほうがいい。
  • 好きこそももの上手なれ。

大学9年生・職歴なしだった私が「エンジニアになる」という「選択をした」のが25歳。実力と実績を作るだけで人生は楽になる

さて、今回の記事では私が「エンジニアを目指す」という「選択」をした「年齢」を記していきます。

大学9年目の春、私はエンジニアになることを選択した

大学9年生です、というと大学ってそんなに長くいられるの?という質問が帰ってきます。所属することは可能です。私の大学の場合は12年まで在籍できます。

その時私は何度目かの新卒就活をしていました。今から考えると馬鹿らしいのですが、真面目に新卒として就活するつもりでいました。 若さを武器になんの能力もないボンボンを青田買するのが新卒就活だとするなら、25歳の私はすでに能力を求められる歳になっていました。

その当時の私には誇れる経験も能力も殆ど無く、まさに無。志や思考さえまだまだ未成熟でした。

無からの脱却

このままじゃあ埒が明かないなと考えた結果、私は、先を読むことにしました。「先」と言っても私に読めるのは、同年代(といっても年下)が見えないけれどさっしのいい大人には見えている程度の現在なのですが……。

有り体に言えば、私は、エンジニアとして実力を身に付ければ、人生楽になるんじゃね? という事実に唐突に気が付きました。

エンジニアになるという人生戦略

適性さえあれば「エンジニア・プログラマになる」というのは、現在の日本において非常に有力な選択肢です。

理由は簡単で

  • 労働者の絶対数が不足している
  • 実力を示すことが簡単
  • 実績を作ることが簡単
  • 独学で学び易い
  • インターンレベルなら未経験の受け入れ先がいくらでもある

こんなところでしょうか。

半年間プログラミングやったら職にありつけた

新卒就活を諦めて4ヶ月ほどプログラミングに打ち込んでいたらインターンにありつけました。 2ヶ月インターンやっていたら別の会社から正社員の職をいただきました。 半年エンジニアに取り組んでいたら、転職での不自由がかなり少なくなりました。

職にありつくために大切なもの

実績と実力です。今のところの私の経験からはこれが大切。もちろん、特定の企業に入りたいとかじゃなくて、ある程度選り好みした条件で程々の企業に転職できる条件です。

能力さえあれば、仕事を見つけるなんて簡単なんだと最近わかってきました。常に能力を身につけるべく努力していきたいと爪を研いでいるのが26歳の私です。

今週のお題

特別お題「『選択』と『年齢』」

Sponsored by SK-II

転職活動中に出会ったエンジニアを大切にしない企業

転職活動中に一社、社員を大切にしない企業だなと憤って帰ってきた企業様があります。企業が社員を大切にしないなんてよくあることだという方があるかもしれません。しかしその企業様は、社員を大切にすることをアピールしており、組織について自慢げに話していたため、ひどい欺瞞だと思って憤ってしまいました。

「自社で育ててRailsしか使えないエンジニアがいるので、Rails以外では開発しません」

この言葉がエンジニアをないがしろにする言葉である、という私の意見に賛同しない方はおそらく多くいるでしょう。しかし個人的にこの言葉は許しがたいものに思えました。

私がなぜ憤っているか

エンジニアとしての成長機会を奪っておきながら、さも、社員のことを思っている、みたいな偽善っぷりにイラっときました。

前提となる私の立場

様々な技術に触れる触れることでエンジニアとしての能力が高まっていくと考えています。一つの技術に集中することは大切ですが、それは、他の技術との比較の上でなすべきこと、というのが私の立場です。

このような考え方に基づくなら、今までと違う言語やフレームワークに触れるというのは、大切な成長の機会と捉えられます。この企業のエンジニアは成長の機会を奪われている、というのが私の立場からの感想です。

自社で育てたエンジニアをRailsしかできない人にしておいて、社員を大切にすると言えるのか

人材としての価値は需給バランスで決まるわけです。それで、日本においてRailsエンジニアは多く、(個人的見解ですが)Railsエンジニアの増加ほどにはRails採用企業は増えていないように見えます。

この日本において、現職でエンジニアになって数年間Railsだけをやってきました、と言う人材の価値は転職市場においてかなり低くなることが容易に想像がつきます。なぜなら、より優秀なRailsエンジニアが巷にたくさんいるからです。

それなのに、自社で育てたエンジニアにRails以外教えないと言うのは社員をないがしろにしている気がしてなりません。

エンジニアがQiita以外で個人技術ブログ始めるならはてなブログがおすすめ

だらけたエンジニアブロガーのあまぎです。エンジニアがQiita以外で個人技術ブログ始めるならはてなブログがいいなーと思ったので筆を取りました。ちなみに一般的にはてブと略すとはてなブックマークのことを指すので略称が面倒くさいです。

ブログを書くということについて

エンジニアは技術ブログ書いたり勉強会出たりして情報発信するのが大切らしいです。情報発信すればするほど自分の実績にもなりますし、技術自体にも詳しくなります。そんな話を聞いてエンジニアとしてブログはじめたいな=と思ったら、はてなブログがおすすめです。ちなみに日本語情報しか発信しない前提で話してます。

なぜはてなブログ

Markdown記法使えるから

以上!

もうちょっと解説

エンジニアの方ならMarkdownご存知ですよね? QiitaとかGitHubとかで使えるあれです。

はてなブログはなんとMarkdownに対応しています。他の無料サービスだとTumblrなんかも対応しているっぽいです。日本国内に限れば、はてなブログはかなり影響力が高いので、Markdownで書けるとめっちゃ楽です。

他のサービスと同じくMarkdown使えると超はかどります。

for i in range(100):
    if i == 15:
        print('FizzBuzz')
    elif i == 3:
        print('Fizz')
    elif i == 5:
        print('Buzz')
    else:
        print(string(i))

こんな風にコードも書けます。ハイライトはされないみたいです。

そもそもなんでQiita以外で書くの? Qiitaじゃダメ?

Qiitaだと、自分の名を売るって感じじゃなくなるからです。AdSenseとかも貼れないしね。

なんで独自ブログ作んないの?

準備面倒くさいじゃん。独自ドメインとって何らかのCMS入れてカスタマイズしてってのも本格的にやるならありです。ただ、面倒くさいので私ははてなブログにしました。・

まとめ

はてなブログおすすめです。