### 岡本さんが以前namedになろうというお話をされてましたが、自分は特に趣味や特技がないので、どうしたらnamedになれるのかなと思いました。特徴がない人はどうしたらnamedになれるでしょうか。 ``` 筋トレしましょう!! 人によって筋肉の付き方は違うし、それぞれ特徴があります! それは生まれ持ったものだったり、自分の精神だったりが影響します。 名前は覚えてもらえなくても、あっあの僧帽筋の人ね!あのハムストリングスおばけの人ね!!って覚えられます! どうしても筋トレ以外がいいならいいなら、やっぱり人と違うことかなぁ。 未経験の転職なら、UI/UXにこだわって、MVPで作れば、十分輝けるかと! 例えば、参加する勉強会はRubyなどWeb系以外でも、デザインとかVRとかでもいろいろ参加してみると、 他の人と違った思想がもてるかも???(Railsを使って動くもの作ってみた。って人はありふれてるので!) ``` ### 自分はSES で働いています。働きながら勉強すべきか、辞めて勉強すべきか迷ってます。現職はオペレーター業務で手順書に沿って作業という感じで、実機には触れられませんしITスキルも必要ない仕事です。異動も出来ず精神的に辛くて辞めたいと会社に言ってみましたが、人手が足りないので少なくとも6月までは辞められないと言われました。ただ一般的には働きながら勉強する方がいいというし、これからの景気も悪くなりそうで、辞めるの少し怖いです。入ったばかりなのでWebで内定をすぐに取るのも無理そうです。岡本さんもsier系の会社いたということで質問してみました。内容的に人物特定されると思いますが…よろしくお願いします! ``` いつまでにWeb系の会社でエンジニアになりたいと思っていますか? また、それはなぜですか? ゴールを決めてから、そのために必要な手順を考えるのがいいかなと思います🤔 あと、必ずしも転職したからと言って、全ての仕事が自分がやりたいことであるとは限らないかなぁと思ってます。 特に小さなスタートアップだと、簡単な作業やコードを書く以外のことをする時間が多いこともあるのかと思ってます。 個人的にそんなときは、自分を異世界転生したキャラクターと思って、何かしら能力値を上げたり、 ユニークスキルを得るための修行だ。と思って楽しんでますw ってことで、ゴール・期限を決めて逆算して動いていこう!ってことと、 今の職場でも得られるスキルはたくさんあると思うので(戦闘職じゃなくて生産職かもだけど)、 どんどんスキルを得ていこう!って思います! ``` ### 将来どういったポジションに付きたいですか(SIerでいうとプロジェクトリーダーみたいな感じで、それのwebエンジニアバージョンの答えが欲しいです) ``` 毎日幸せに楽しく生きれればokです! ポジションってのが現職では分かれてなくて、 基本みんなフルスタックでないとやってけないので、フルスタックエンジニアですかね! ``` ### 自分は今はモチベーションがあるのですが、毎日キャッチアップを続けていくのが今後ずっとできるのかと不安に思ってます。岡本さんは何をモチベーションにキャッチアップをしてますか ``` うーーん。現実的な回答になっちゃうんですが、 キャッチアップを続けないと、会社の成長についていけない。だから成果がでない。お金もらえない。 だからキャッチアップするって感じですかね?? 社内でキャッチアップする必要性が薄れてきときがあれば、 外に目を向けると、すごいエンジニアがいくらでもいて自分の市場価値が低いなぁ。って思うので、 モチベになります! ``` ### 技術を身につけた先に、その技術を使って何か成し遂げたいことはありますか ``` いまは、会社が成し遂げたいことがあってそのために技術を身につけている。 という、成し遂げたいことが始めに来てるのですが、 もっと色んな技術を身につけられたら…… そのときに成し遂げたいことが実現できる技術を得るために、今の技術を使いたいです! 技術で成し遂げられることって時代とともにどんどん変わるかなぁと思ってるので! プライベートな話なら、自分のジムを持って、ジム内でエンジニアリングの仕事したいです! ``` ### フリーランスになりたいと思いますか ``` いろいろめんどくさいのでいい会社があれば正社員がいいですが、なければフリーランスでもいいかなとは思ってます! ``` ### ある程度技術が身に付いたら今の会社を辞めて転職しようと思ってますか ``` 技術が身につけば辞めようとは思ってないですが、 他の会社でやりたい事があれば転職すると思います! ``` ### コントローラでパラメーターを受け取る時、privateメソッドにparamsをセットして引数で呼び出していますが、これは直接paramsを受け取ると改ざんの恐れがあるからと認識していますがあっていますか?あっているとしたら具体的にどうやって改ざんをするのか見たいです。 ``` 例えばこんなUserクラスがあって、 User - id - name - email - role - created_at - updated_at roleがgeneralかadminを持つとすると、 Userの新規登録画面では、 nameとemailだけを入力させると思います。 他の情報は、ユーザーが任意に決めるものではなくこちらが決めるので。 ただ、画面にはなくても、画面操作ではなく別途でHTTPリクエストをすると(rubyならnet/httpとか) roleをadminとしてPOSTすることはできます。 StrongParameterで、 どの情報だけを受け取ることを許可すると指定してれば、roleが送られてこようと無視しますが、 送られてきた情報すべて使ってUserをCREATEする処理を書いていると、 だれでもAdminのUserを作れてしまします。 そうなると色んな情報見れたり操作できたり、、、やばいっすねw ``` ### Attributesがよくわかりません。どういった場面で使用すると便利なのでしょうか? ``` ActiveRecord::Attributesや、ActiveModel::Attributesのことですかね? これらはModelに属性をもたせるときに使います!型を指定したり、初期値を指定したりもできます! DBのカラムにはないけど、属性を持ちたいってときがメインですかね? やったことないですが、型を変えたり初期値を変えたりも! ActiveModelはDBと関連がないので、属性を持たせたければ必ず使います! ``` ### オブジェクト指向とは?噛み砕いてわかりやすく解説してもらえると嬉しいです。 ``` 簡単に言うと、「処理」と「情報」をもった「クラス」に分けること。です! どのように分けるか、設計するかは「SOLIDの原則」というものがあります! 自分も理解はあまり深くないですが、よくレビューで言われます😅 これが参考になるかと! https://postd.cc/solid-principles-every-developer-should-know/ ``` ### インスタンスメソッドとクラスメソッドの違いをどのような場面で使い分けるのか詳しく教えてください。 ``` インスタンスメソッドは、インスタンスが持つメソッド。インスタンスから呼び出す。 クラスメソッドは、クラスが持つメソッド。クラスから呼び出す。 ので、 どちらが持つ処理なのか考えるといいと思います。 例えばユーザーの名前を取得したいとき。 ユーザーの名前という情報を持っているのは、Userクラスではなく、Userクラスのインスタンスですよね? Userクラスが持っているnameって情報を得たいのではなく、 Userクラスのインスタンスが持ってるnameって情報を得たいはず。 user = User.new(name: 'macho') user.name だからインスタンスメソッドになります! ``` ### railsをAPIとして使用するとはどういうことかイメージがつきにくいので解説お願いします。 ``` ざっくりいうと、 HTTPリクエストが来たらレスポンスボディに HTMLを返すのではなく、JSONを返すということです! Railsで何でもやるんじゃなくて、 リクエストを受けたら、指定されたリソースに特定の操作をして、特定のリソースを返す。 だけって感じです ``` ### モジュールの使い方を教えてください。 ``` namespaceを区切るためにつかったり、 共通処理を切り出してincludeしたり(Mixin) ってのが主な用途かと思います。 必要になれば使うでいいと思うのですが、 ある程度大きなサービスだと必要になってくるかもですね。 Railsだと、ActiveSupport::Concernなどがメジャーな使い方かと。 こうゆうときは、実際にある程度大きなサービスのコードを読むのが一番だと思います! https://github.com/tootsuite/mastodon/tree/master/app/models/concerns ``` ### model、helper、decoratorへのメソッド定義の使い分けを教えてください! ``` 基本はmodelに関する処理はmodelに書く。。 表示に関するロジックはdecoratorに切り分ける。 表示に関するロジックのうち、modelに関係しないものはhelper。 って感じです! 基本的には、MVC。Viewに関するロジックをModelとは分離したいので!。 helperに書いちゃうとスコープがグローバルになっちゃうので、可能ならdecoratorの方が望ましいです。 ``` ### 実装のやり方すら検討つかない場合、どうしたらいいのでしょうか。この実装どうしたらできますか、はあまりにも丸投げだし、考え方もわからないと質問すらできなくて悩みます。 ``` わかります。。 基本的には質問はした方がいいと思ってます。 自分で時間決めてわからなければ、質問、せめて進捗の報告がないと、チームに影響がでてしまうので。 ただ相手の時間を奪いすぎることが申し訳ないのもわかるので、 質問してなにがわからないか明確になれば自力でやってみるのもいいかもですね。 実装のやり方すら検討つかない人と、実装できる人。これは必要な情報があるかないかの差だと思ってます。 あまりにも情報がないと、何がわからないかわからない状態になることも。 そうゆうときは、分かっていること、分かってない理解してないこと、必要なこと、 などを1つずつ書き出して整理すると、何をするべきか見えてくることが多いと思います。 あまりにも遠い道のりすぎて無意識に避けてただけで、本当は1つずつ理解していけば前にすすめる道があったり。 1つずつ進むことが1番の近道かと! ただ仕事では、進捗管理も大事です! ``` ### リモートだとどれくらいつまったら質問しようか、結構タイミング考えてしまうので時間がかかります。リモート勉強のコツとかありますか。 ``` うーーん。リモートでもオフラインと同じタイミングでzoomなどで質問するのがいいかなぁとは思うのですが、 質問内容を言語化できてないと質問しにくいですよね。 やってること、わからないこと、調べたこと、などをどこかにメモを取って整理しながら作業すると、言語かもしやすいかなぁとは思います! ``` ### 世間一般的には内定もらってから、仕事を辞めた方がいいという声が多いですが、未経験からエンジアになるためには1000時間がかかるし、働きながらだと1年程かかる計算です。未経験エンジニア転職でも、仕事しながら勉強して内定もらってから辞めた方がいいですか。それとも辞めて勉強に専念した方がいいでしょうか。本人の意思というのが1番ですが、自分はどちらも踏み切れなくて、困ってます。 ``` 未経験からエンジアになるためには1000時間がかかるってのは世間的に言われてることですかね? 仮にそうで、働きながら1年かかるとして、もっと早く転職したい理由があるとすると、、、 もう少し段階を分けてみるのはどうですか? 例えば、いきなり正社員ではなくインターンやアルバイトで入ってみるなど。 それか1000時間かからない工夫をするか。 世間一般的には内定もらってから、仕事を辞めた方がいいという声が多いってのは、人の人生に対して、 無責任なことは言えないからかなぁと思います。 お金あるなら辞めてもいいんじゃ?とも思うけど、それで就職先見つからなければ責任とれないし。 結局は決めるのは自分ですが、 自分なら悩んだとき、決めてスッキリする方を選びます!悩み続けるよりも! ``` ### 仕事しながら勉強しているので辛いなと思いますが、仕事や勉強で辛い時どうしてますか。 ``` 筋トレしたらHappyになれるので筋トレします! それか寝たらスッキリします! 時間がないって話なら、時間を作るし焦らずやります! エンジニアやっていくなら、仕事しながら勉強するのが日常になると思うので、楽しめるようになるか一旦はエンジニアになるけどそれを活かして別のキャリアに進むのもありかなぁ。 ``` ### 女子でも筋肉あった方がいいですか。最近おなかが出てきて筋トレとかした方がいいかなと思ってます。 ``` もちろん!!! 筋トレが日課になれば、消費カロリーが格段に上がるので、今までよりも食べても太りにくいですよ!!! ぼくはいまボディビルに出るために減量中ですが、3,500kcalから徐々に減らして、いま2,800kcal近く摂ってます!3ヶ月で10kg落ちました! ``` ### 君はどんな願いでソウルジェムを輝かせるのかい? ``` 今期忙しくてまどマギ見てないなぁ。。。 何も見れてない。。。 メイドインアビスの映画は見ました!! ``` ### 岡本さんの考える初級者、中級者、上級者ってどんな人ですか? ``` うーーん。 あえてわけるなら、 初級者 → ドキュメントは読んだ。理解できた。 中級者 → ドキュメントや文献を読み込んだ。様々な意図を理解し、どう技術を使うかも考えられる。 上級者 → 何年も実践し様々な知見がある って感じですかね?? ``` ### 筋トレしたら何が変わりましたか? ``` 筋肉。 周りの見る目。 精神。 たとえば、最近でいうと、他人と比較することがなくなったことかな? 他人との比較なんてあんまり意味なくて、過去の自分よりも成長してることに目を向けると幸せだなぁと。 毎日少しずつやった努力が少しずつ成果が出ていれば幸せ。 他人はまあ、自分が天狗にならないようにってために見るぐらいかも。 ``` ### エンジニアになろうと思ったきっかけが知りたいです! ``` ぼく、変化がないことが嫌いなんです。 だからどんな仕事でも、単調作業し続けるってよりどんどん改善したり新たな価値を創ったりが好きで。 できること増やしていこうとしたら自然と行き着いたみたいな? ``` ### 細い人が筋トレを始めるなら、まず脂肪をつけるべきでしょうか? ``` まず脂肪をつけるというより、筋力を上げることを優先したほうがいいと言われてます。 筋力を上げるというのは、重いものを挙げるってことです!これは男女問わず! わかりやすく言えば、マシンのスペックをあげるような作業です。 どんな便利なツールを使おうと、スペックを上げないと使いこなせなかったりスペック高いほど生産性が上がったり。小手先の技術を身につけるよりも筋力を上げることは、今後の効果に大きく影響します! そして筋力を上げるためには、適切なトレーニングと適切な食事と適切な睡眠が最も重要です。 脂肪をつける必要性はないのですが、筋肉が肥大するほどのオーバカロリーと、パワーが出る程度の食事を摂ることで筋力アップの効率は上がるので、まずはじめにダイエットよりは食べて筋力を上げるのがいいと思います。