一応LIFULLアドベントカレンダーの中にありますが、ほぼプライベートの話です…w
この間、知り合いが次のような「何を調べればいいかわからない」という状況をSNSでコメントしていました。これは、私自身でも、特に初心者の間や、慣れない分野で実装しているときに陥る症状でした。他の人もそうなんじゃないかと思います。
〇〇を実装したいとき、どういう設計をするのがいいんだろう。こういう話題は検索できないので、何を手がかりにすればいいかわからない
私がプログラミングを始めたのは大学の研究室で、大学の研究室で先輩が急に「C言語で数値計算してgnuplotで描画するより、PythonでやるほうがCOOLらしいぜ!」っていう謎の布教を受けて、いろいろ本を買ったりして一緒に学んでたのがきっかけです。ただ情報科学ではないため、一般的な用語もあまり知らずに就職後にもいろいろ苦労しました。
この状態に陥ったとき、「自分でいい方法を検索する or 考える」ことの他に、今の私なら当時の私(や知り合い)に「自分が学びたい分野について、質問する場を探そう!」ということをおすすめします。これはもしかすると何かを独学するときには広く適用できることかもしれません。
質問する場の探し方
気軽に質問したいなら、WEB上の質問サイトを使うといいでしょう。もし迷うなら「自分が学びたい分野が一番盛り上がってるとこ」にするといいと思います。
もう少し深く学びたいなら、プログラミング言語やフレームワークのコミュニティを探すと良いでしょう。
- Start Python Club: (けっこう前の話ですが)発表も面白くて親切にしていただいた記憶があります
また、コミュニティによっては、SlackやDiscordなどで質問を受け付けてるところがあります。
質問するとき気をつけること
エリック・レイモンドの「賢い質問のしかた」を読もう!…と言いたいのですが、別にハッカー(※超すごいプログラマーの意味)になりたいわけでもないと、この長文に気後れすると思います。
「新卒1年目に使ったエンジニア質問テンプレート」をまず参考にすると良いです。
(1) 実現したいこと
(2) 実現するために自分が試した内容とその結果
(3) 調べた内容や資料
(4) 原因だと思われそうな箇所
このテンプレートはエラーのデバッグの質問なので、最初に挙げた設計の話では違うかもしれません(具体的に言うと(4)はいらないかも)。それでも、多分上記のサイトで、
- 自分の書いた〇〇のコードに重複が多いように感じていて、もっといい設計があるんじゃないかと思っている
- 具体的なコードの例
- Webサイトで検索して、これらのサイトまでは見つけたが、いい方法が思いつかない
みたいなことを聞けば、解決に一気に近づくし、今後の同様な問題のときに、どんなワードで検索すればいいかわかるようになると思います。
最後に
プログラミングやエンジニアリングはけっこう楽しいので、うまく活用して楽しんでください。
弊社(LIFULL)の人間へ: GitHub Discussionsの「エンジニアいつでも相談」をご活用して頂ければ、弊社の教えたがりのエンジニア達が熱心にクソ長文の回答を送ってくれることでしょう。
(追記)
つらいときはNeko Hackerのこの曲を聞いてがんばりましょう1。
Thank you Qiita, teratail, stack overflow
Thank you Qiita, teratail, stack overflow
-
素晴らしい歌詞ですが、現代のソフトウェアエンジニアなら大抵ソースコードをgit管理していて、大事そうなやつ間違って消しちゃった後の実際の行動は「
git rebase
しようとしてコミットログをぶっ壊し、更に別の問題(コミットログ復旧)にぶち当たる」じゃないかと思ってしまいます。その点だけ残念です。あと結婚おめでとうございます ↩