こんにちは、teratail運営チームの髙橋です!
前回の投稿からだいぶ日が経ってしまっていますね。頑張って投稿頻度上げたいのですが。。。
いろいろな業務を任せていただけていることもあってブログの投稿を疎かにしてしまっていました。すみません。。
なんて言い訳はさておいて、
今回は、筆者が配属してから経験した「エンジニアの困りごと」について簡単にお話をしていけたらと思います!
今回のターゲット
- いろいろな困ったを抱えているエンジニアの方
- これからエンジニアを目指していく絶賛お勉強中の方
役には立たないかもしれないですが、ムダにはならない内容となっているかと思いますので、お時間がお許しであればこのまま読み進めてみてくださいませ!
今回のお話
さてようやく本題です。
筆者がレバレジーズ株式会社へ入社してから半年が、
teratailチームへ配属となってから3か月が経過しようとしています。
開発タスクとしてバグの修正や社内外から要望のあったものを実装してきていますが、なんとも困る現象が頻発しているわけです。
明確な解決策を思いついてすぐに解決できることもあれば、それだけで半日をむだにすることもあります。
そしておそらく、私だけでなく多くのエンジニアの方はここでつまずいた経験があるかと思います。
それは、
「具体化と抽象化」
です。
???
「読者:おいおい、なんだよそれ。そんなこと感じたことねえぞ。」
と、おっしゃる方はよほど優秀な方か、筆者が言わんとすることがまだピンと来ていないのでしょう。(煽りではありません、、、すみません)
もう少し詳細にしてみましょう。
たとえば、
「あ〜、なんて検索すればいいかわからん!!」
とか、
「質問したいけど、うまく状況を説明できねえ、なんだこれ!!」
トカ、
「他の職種の方と機能の話するとき理解してもらえるように話すとどうしても長々と説明しちゃう。。。」
とかとか、、、
俗にいう、うまく言語化できない問題ですね。
筆者と同様に、上記のような経験をしたことがある方はいると思います。
とくに2個目の例は、teratailで質問しようと思ったけどできなかった、なんて方に当てはまっているのでは。
そうなんです。これらの原因は「具体化と抽象化」がしっかりとできていなかったからだったのです。
もっと詳細に
いきなりですが、
「南を向いたときの西にあたる方向」向いて(確か『舟を編む / 著:三浦しをん』でこんな例示されていた気が。。。)なんて具体的にいちいち説明せずとも、「右」向いてと言えばすみますよね。
この時の、
「南を向いた時の西にあたる方向」は「右」という言葉をより具体的に説明しています。親が子どもに「お箸を持つ方の手」なんて教えるのも「右」を具体的に説明していることの1つですね。また、「右」はこれら「右」に当たる要素を集約して抽象化したものになっているわけです。
「南を向いた時の西にあたる方向」、「お箸を持つ方の手」=>「右」
。。。はい
これが「具体化と抽象化」なわけです。要は、「名前(抽)」と「名前の説明(具)」みたいなことです。 普段から意識せずとも活用できているものではありますが、いざ専門性が高い話をしようとした時、先に挙げた例のように「具体化と抽象化」をうまく往復できなくなるのです。
こう見ると意外と単純なことだし、意識するまでもないように見えるんですけどね。笑
専門的なフレーズになるとそうもいかなくなります。
業務中にこんなことが
開発タスク中に 「クエリビルダー」の記法で少しつまずきました。
というより、
「クエリビルダー」というフレーズとその内容が、結びついた認識となっていなかったために、具体的な検索をしてヒットする「クエリビルダー」をスルーしてたんですよね。
いや、スルーしていたというより、それが正解だと思って試してみようとも思わなかったんですけど。。あとリファレンスって難しそうな印象があって適当に読んだりしてました。w
「DBを操作するsql文をcakephpで書きたい」=>「?」
上に倣うとこんな感じですかね。
左辺がわかっても右辺を知らないので、リファレンスのクエリビルダがヒットしてもなかなか解にたどり着けませんでした。
どちらかを知っていれば良いわけでもないんですよね。
「DB操作できるやつ、使ったことないけど」=>「クエリビルダー」
くらいの認識があったらなんか世界変わってそうでしたね。
結局、筆者は先輩に確認することになりました。
読者へ伝えたいこと
ここまで、筆者の困っていた(困っている)ことのお話でした。
筆者同様に駆け出しエンジニアの方は、同じように専門的な具体化と抽象化の往復に苦労をしていると思います。
とくに開発でわからないことがあったときには、すぐにわからないことを文字起こしすることが大事だと思います。文字に起こすと自己解決しやすくなったり、自己解決できなくても検索しやすくなります。
それでも解決できなければそれを先輩やteratailに尋ねてみてください。
わからないことを文字起こしすること
と書きましたが、個人的にはラバーダックがおすすめです。
そして解決した時には、そのときの状況や専門的なフレーズの概要や、調べている最中に見つけた知らなかったことをふりかえりやすくしておくと、今後の具体化と抽象化の作業に活かせるので併せておすすめです。
はい。
これで今回のお話おしまい!
終わりに
今回は、筆者が困っていることをアウトプットする会になりましたw
開発ベースでの「困った」のお話以外にも、みなさまが日頃から感じるような「困った」や「悩み」もあると思います。
そんなお抱えごとへの手助けを、teratailとして少しでもできたらいいなと思っております。
- 勉強会参加したいけど初回のハードルが高いなあ、どうしよう
- みんなどんなIDE使ってるんだろ、生の意見交換できる環境があればなあ
- 仕事が大変で私生活がぁ
などなど、 どんな粒度で、どんな方向性でも大丈夫です!
みなさまの「困った」や「悩み」をお聞かせください!
コメントやteratailのご意見投稿フォームからのご意見をお待ちしています!
参考になる本
『舟を編む』
三浦しをんさんの小説です。辞書作りのお話なので、言葉の命名方法や具体と抽象を繰り返している内容になっています。面白いです。
『具体と抽象』
具体化と抽象化の本です。今回のお話の大半を占めています。笑
『リータブルコード』
エンジニア向けの読みやすいコードの書き方バイブルみたいなものです。