give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

Ask me anything! 伊藤さんに聞きたい12個の質問に本人が答えてみた(動画&テキストバージョン) #yochiyochirb

はじめに

2019年3月3日、よちよち.rbのみなさんに呼ばれて、「jnchito さんと!Ruby・Rails での『困った』を解消しよう会」を開催してもらいました。

yochiyochirb.doorkeeper.jp

これは、よちよち.rbのみなさんからいただいた質問に、僭越ながら僕が答えさせていただく、という勉強会です。
当日は約40人もの参加者が集まってくれました。みなさん、どうもありがとうございました🙏

f:id:JunichiIto:20190320052954j:plain:w350
「先生席」に座る伊藤さん(それにしてもホワイトボードの文字よ・・・)

勉強会では1時間半ぐらいかけてじっくりとみなさんの質問に回答したのですが、僕の回答をそこだけでクローズさせてしまうともったいないので、「ざっくりとまとめたショートバージョン」を動画とテキストで紹介します。

【もくじ】

動画バージョン

こちらは勉強会の開催後に自宅で収録したスクリーンキャスト(ほぼポッドキャスト?)です。
勉強会当日もだいたいこんな話をしゃべってたと思います。

時間は約29分で、再生速度を1.5倍から2.0倍ぐらいにしてさくっと聞くのがお勧めです。


jnchito さんと!Ruby・Rails での『困った』を解消しよう会(ショートバージョン) #yochiyochirb

ここから下はこの動画の内容をざっくりとテキストに変換したものです。

1. 毎日チェックしている情報はありますか?

  • Twitter(面白い情報を発信してくれる技術者を中心にフォロー)
  • はてなブックマーク(テクノロジーのカテゴリを中心にチェック)
  • Ruby Weekly(海外のRubyメルマガ)
  • RSS + Feedly(RubyやRailsの公式ブログなど)
あわせて読みたい

qiita.com

2. 60歳になったらどんな生活をしていたいですか?

  • 40歳を過ぎると3年後や5年後に元気に生きているかどうかも怪しいので、老後にやりたいと思ったことは今すぐやろうと考えている
  • プログラミングはそこそこできるようになったので、ギターをもうちょっとうまく弾けるようになりたい
  • お金やモノはあの世へは持って行けないので、「惜しい人を亡くした」「伊藤さん今までありがとう」といろんな人に言われて死にたい

3. Qiitaの記事はどういったときに書いてますか?

  • 困っていた問題が解決したとき
  • かつ、これは他の人も同じように困りそうだと思ったとき
  • かつ、ネット上に同じような記事がないとき
あわせて読みたい

qiita.com

4. メソッド名や変数名のコツはありますか?

  • メソッドの責務は原則としてひとつ。責務が適切に分割されていれば、いい名前が付けやすい
  • 「あれしてこれしてそれして・・・」といろんなタスクを束ねるメソッドは、その処理をうまく要約するスキルが必要
  • ネット記事をTwitterでシェアするとき、記事の要約や自分の感想を制限文字数内で書くようにすると、要約の練習になるかも
  • 英単語の語彙については、OSやSNS(Twitter、Facebook等)の言語設定を英語表示にすると、日常的にシステムでよく使われる英語が目に飛び込んできて、自然と英語が覚えられるのでオススメ
あわせて読みたい

qiita.com

5. Railsは便利機能が多すぎるから初心者にはお勧めしない、という意見についてどう思いますか?

  • どんなフレームワークも一長一短があるので、「初心者向けの完璧なフレームワーク」はない
  • RubyやRailsは情報やコミュニティが多いので、「いろんな人に頼りやすい」という点が大きなメリットだと思う
  • Railsは初心者にお勧めできるか、をYES/NOで答えるならYESだし、「他のフレームワークから始めます」という人がいても、それはそれでOK

6. スキルアップのためにやることをどう決めて、どう管理していますか?

  • 3年後や5年後の自分を想像して「こうなっていたい」「こうなりたくはない」という願望から、逆算で「そのギャップを埋めるために今すべきこと」「これからやっていくこと」を考えることが多い
  • プログラミング歴が浅い人は楽しみながらプログラミングを勉強するのが大事
  • その一方で、スキルアップのためのショートカットやスマートな勉強方法を求めすぎないようにすることも大事。
  • プログラミングの習得には時間がかかる。「数ヶ月、半年で月収○○万」みたいな広告は鵜呑みにしない方が良い
  • 「たったこれだけのことをするのに、なんでこんなに自分は時間がかかるんだ」とか「しょうもないエラーを解決するのに何時間も使ってしまった」みたいな泥臭い努力を延々と繰り返して、ようやくプログラミングのスキルは身に付くもの。僕だってそうだった。
あわせて読みたい


7. コードを書くのは好きですが、インフラ面とかには興味が沸きません。どうしたら意欲がわきますか?

  • もしチーム内にインフラ面を任せられる人がいるなら、そこまで無理に頑張らなくてもよいのでは
  • 苦手なことを伸ばすより、好きなことや得意なことを伸ばす方が良い
  • どうしてもやらなきゃいけない状況になったら、いやでも覚えていくので、それで大丈夫だと思う

8. 人事ですが業務効率化のために楽しくプログラミングを勉強しています。そういう人に対して何か注意点や目標の決め方はありますか?

  • 楽しいなら自分が楽しいと思える限り、プログラミングを続けるのがいいのではないか
  • 楽しくなくなったらそこでやめたらよい。趣味にしろ、仕事にしろ、プログラミングが苦痛になったら続ける意味がない

9. 大企業と少人数の企業では、エンジニアの働き方は変わってきますか?

  • 傾向として大企業の方が自由が利きにくい、ということはあると思うが、一概にそうとも言えない
  • 結局のところ「その企業による」としか言えないので、しっかりと自分が入りたい企業のことを調べるしかない

10. privateメソッドを直接呼び出すテストを書いても問題ありませんか?

  • privateメソッドはテストを書かないのが原則(publicメソッド経由で間接的にテストする)
  • どうしてもテストしたいときは「これはテストのためにpublicにした」というコメント付きでpublicメソッドに昇格させる
あわせて読みたい

highwide.hatenablog.com

11. オブジェクト指向やデザインパターンを今から勉強するにはどうするのが良いでしょうか?

  • Rubyで書かれたオブジェクト指向の本といえば、2019年時点では「オブジェクト指向設計実践ガイド」一択なので、まずはこれを読めばOK

  • デザインパターンは知っていればたまに役立つが、そこまで頻繁には使わないので、必要に応じて都度勉強すれば良いのでは
  • もし質問者の方がオブジェクト指向大好きっ子で、オブジェクト指向プログラミングを徹底追求したい!という強いモチベーションがあるのなら、Javaで書かれた本だって問題なく読めると思う
あわせて読みたい

blog.jnito.com

12. 外部連携APIのテストはどう書くのがベストですか?

  • WebmockやVCRなどを使って、モックでテストを書く
  • 本番環境にデプロイする前には、実際にAPIを叩いて、問題なく動作することを確認する(手動テスト)
  • APIの仕様が変わる際はメール等で通知が来るはずなので、見逃さないようにする
  • IP制限がかかっていて簡単にテストできない、仕様変更の通知も来ない、といった特殊な(というか不親切な)外部APIの場合は、「壊れたらすぐに直す」ぐらいのアプローチしかない

f:id:JunichiIto:20190320205506p:plain:w350
有名どころのAPIであれば、仕様が変わる前にこんなふうに通知が来るはず

勉強会で僕が回答した内容は以上です!

まとめ

というわけで、このエントリではよちよち.rbで開催された勉強会「jnchito さんと!Ruby・Rails での『困った』を解消しよう会」の内容をショートバージョンでお届けしました。

僕の回答なんかが役に立つのかどうかわかりませんが、みなさんの参考になるポイントがひとつでも見つかれば幸いです。

謝辞

素敵な勉強会を企画してくれた、よちよち.rbのゆかおさん(@yucao24hours)と南谷さん(@yuki3738)、どうもありがとうございました!

あわせて読みたい

当日参加してくれた方の参加レポートや感想ツイート(一部)です。みなさん、どうもありがとうございます!
chinatz.hatenablog.com

fuqda.hatenablog.com

haayaaa.hatenablog.com