この記事は、新人プログラマ応援_記事投稿キャンペーン向けに書かれたものです。
もともとは自身の頭の整理として書き始めたものですが、ちょうどいい内容かと思い、こちらのカテゴリで紹介させていただきました。
「できる」から「わかる」?
たとえばdocker
コマンドやdocker-compose
コマンドを普段使いこなしている開発者でも、
- イメージとコンテナの違いとは?
- ボリュームの種類とは?
というようなDockerに関する知識は知らなかったり1、そもそも
- ポートって何?
- コンテナ化されることで何が嬉しいのか?
みたいな基礎的・本質的な知識をおさえていないことはよくあるかと思います。
しかしそれでもコマンドは使えているし業務は行えている。
つまり、「できる」と「わかる」は完全に一致するわけではない、ということです。
「できる」ことから「わかる」ことを増やす
上記は決して良くないことや恥ずべきことではありません。
むしろエンジニアであれば、こういったタイプのスキルは無限に存在し、日々増えつづけています。
ただし「できる」で満足せず、その仕組みや背景を「わかる」ように調べたり考えたりすることは重要です。
完璧に理解することは難しいでしょうが、ちょっと調べたりする。その蓄積が、後々の自身のスキルマップの広がりになるはずです。
「わからない」から「できない」?
同様に、あるタスクを誰かから依頼されたときに「わからないのでできない」と感じることも多くあると思います。
わからないから、まずは「わかる」ためにキャッチアップに時間をかけたり、先輩にみっちり教えてもらうことを最初のステップに据える方もいるでしょう。
しかしググって見つけたページに書いてあるコマンドを実行したら、すんなり終わってしまったような経験は誰にでもあるはずです。とはいえ何故上手くいったのかは説明できない。
このように「わからない」と「できない」が一致しないことも確認できました。
「わからない」と上手に付き合う
だいたいの仕事は「わからない」ことが多いです。
だからでしょうか。「わからない」を上手に対処できるエンジニアは、総じて仕事も上手いです。とくにいろいろな仕事を任せられそうなオーラが出てきます(笑)
対処方法はさまざまで、上述のようにまずは手を動かしてみたり手本を探してみることもあれば、求められる質によっては誰かに頼ってみたり、それこそ公式ドキュメントを最初から読み込まなければいけないこともあります。
この記事の文脈で言えば、「わかる」必要があるのか、それとも「できる」ことが求められているのか、という点を考えて仕事に臨むのがよさそうですね。
まとめ
「できる」と「わかる」、そして「できない」と「わからない」を区別できるようになると、自身のスキル感も精度高く把握できるようになりますし、周りとのコミュニケーションもよりスムーズになり、仕事がやりやすくなるはずです。
ちなみに誰かに教える立場のエンジニアであれば、教える対象のエンジニアが「できる」だけなのか、それとも「わかる」状態でもあるのかを意識したり、「できる」ようになってほしいのか「わかる」ところまで期待しているのかを区別すると、説明のレベルも上手に調整できるはずです。
すこしずつ「できる」と「わかる」を増やしていければ良いですね。自分もひきつづき頑張ります。
-
ボリュームに関しては、"なんとなく”Dockerのファイル共有について語れるようになるという記事も書いたりしています。 ↩