こんにちは、こやぷよ(@coyapuyo)です。
転職活動の末期に、僕は気がついたことがあります。
それは「体系的に学ぶことの威力」についてです。
社会人として学校を出てからというもの、
僕はほとんどまともに頭を使わないで生きてきました。
何となくの流れで流されるままにやってきたし、
頭を使うような面倒なことも避けてきたのです。
PCによって手書きの文字を書かなくなり、
メモもデジタルで取るようになり、覚えていないことは検索に聞く、
頭を使わなくなる一方です。
結果、とんでもなくおバカさんになっていた
学生時代は、いわゆる「お勉強」の成績は悪い方ではありませんでした。
あくまでも学校のお勉強だけであり、
アドリブが効くとか頭の回転が早いとか頭がキレる、
みたいな本当の意味での頭の良さは全くなかったのですけどね・・・。
が、社会人を10年やって
気がつけばお勉強でもとんでもないおバカさんに。
学生時代に勉強したことはほとんど忘れてしまっています。
極めつけに、やらかしてしまったのは、
「仕事を終わらせることに追われて、技術的に何も勉強しなかった」
という勉強週間の消失です。
勉強してなくても分かっていなくても何となくごまかしてきた
これは、単純に勉強する時間が取れなかっただけではありません。
僕の仕事である最近のITプログラマーの世界では、
「よく分かっていなくても何となく動くものが作れて」しまいます。
社会に出てからは求めらるスキルは人それぞれであり、
もはや学校のように事細かに手取り足取り教えてはくれません。
コストをかけて新人を鍛えている余裕のある企業も少ないでしょう。
当然ながら自分に必要なものを自分で能動的に身に着けていく必要があります。
僕は学校のようにカリキュラムが組まれていれば、
それなりに学ぶことが出来ると思います。
しかし、決まった教科書もなく、お膳立てもなく、何もない荒野でその分野の分母がどれくらいでその中のどこから学んだらよいのか、それが分からない中学習していく力が僕にはなかったのです。
そして致命的に問題だったのは、
僕は、分からないことを質問するのが怖くて恥ずかしくて、
この愚を犯してしまったまま歳をとってしまったことです。
(周りにも専門家は少ないし、みんな忙しそうという環境の影響もあるにはあったのですが・・・と言い訳してみる。)
人に聞かないまま、
それがどのような意味を持つのか雰囲気でしか分かっていないまま、
既存のモノで似たような処理をしているところを参考にして作る。
ネットでググりながら作る。
統合開発環境が候補に上げてくるメソッドを使う。
大昔、C言語で初めてプログラムを習ったときなら、
何も見ないで標準関数が言えて書けて引数も分かっていたのに、
今は覚えなくても何となく書けるようになってしまった。
流れを察して「なるほどね」なんて言いながら作るなんてむしろ天才っぽくていいじゃないか、なんて思ったりもしてたぐらいです。
が、結局のところ良く分かっていないだけだったんですよね。
いわゆるコピペプログラマ的な状態に仕上がっていました。
そのせいで長い間やっていているにも関わらず、
何となくしかコードが書けない体になってしまいました。
すでに大枠の作りが出来ているところならイザ知らず、
フルスクラッチのゼロからでは何も作れないオジサンの完成です。
資格や勉強なんかより実践で使えることが大事?
加えて、僕は次のような考えを持っていました。
「世の中、資格がないととか、資格を取りまくって形や肩書にこだわる人がまだ多いけれど、そんなものは関係ない。
資格の知識なんて現場では役に立たないことも多い。
大事なのは実践しているかどうかであって、現場でやっていれば慣れることは出来る。
さらに言えば、勉強もせずに現場で「なるほどね」とか言いながらその場で身につけるがカッコいいし、クールだ。
そして僕にはそれが出来る」
・・・みたいな感じです。
そこはかとなくイタイ感じがしてきますが、事実そう思っていました。
完全に間違っているわけではないと今でも思いますが、
少し意味をはき違えていたのだと思います。
この言説の本筋は、形骸化した資格原理主義の部分を否定するものであって、当然ながら「勉強しなくても良い」というものでは全くなかったのです。
そして、この言説は一部の頭のキレる人、
瞬発力、行動力、回転力、アドリブ力のある人に相応しいものであって、僕のような人間には向かない考え方だったのです。
10年近くたってからようやくそのことに気が付きました。
基礎が分かっていないと応用は決して出来ない
基礎のところで分かっていない概念を放置していると、
その上に何を乗せたところで後々ほころびが生じます。
僕も既存を参考にしたりネットで都度調べてやってきましたが、
ネットで調べた知識は、基本的には断片的な傾向があります。
体系的かつ俯瞰的に知識を得るのが難しいと感じます。
技術的なところで言えば、
やはり技術書に叶うものはありません。
それを痛感しています。
書籍はやはり体系的に纏まっています。
これが最大の強みだと思います。
少し専門的な話になってしまいますが、
僕は大学時代にC言語の体系的知識はあったし、
Cの応用+入社時の研修でJavaも教えて貰ったので何となく使うことが出来ていました。
しかし、ちょっと複雑なデザインパターンの話や、
Web系のフレームワーク、DB周りの話になったとたんに
実は自分はほとんど何も分かっていなかったのです。
分かっていないことを分かっていませんでした。
いや、分かっていなかったことを認めらくなかっただけかもしれません。
結果的に、C言語やJavaの応用とありもしないセンスだけで渡り歩ける範囲を気が付かないウチに超えていたのです。
IT計技術の進歩は早いです。
10年前に習ったC言語の知識だけでいつまでも戦えるとなんていうことがある訳ないのも当然の話です。
ちょっと脱線しましたが、ここで言いたいのは、つまり・・・
「センスでどうにかなったり応用が出来るのは、
基礎がしっかりしているものだけだ」ということです。
全く基礎もなしに応用できる人がいたらそれは単に本物の天才です。
すっと応用とセンスでいけると思っていたのに、
知らない間にちょっと隣の別の領域に踏み込んでいることにある意味気がつかなかったんです。
別の領域に踏み込むときには、新たに基礎固めが必要になります。
これは間違いないと思います。
別にIT関係に限った話ではありません。
一般にある~スクールとか、~セミナーとか、
前述の通り少し存在意義を疑っていたところもあったんですが、
とても大切だと転職活動終盤になってからようやく理解しました。
もちろん、体系的に学ぶよりも直観的かつ実践的に学習した方が効果を発揮する天才タイプも存在します。
天才タイプが歩いたあとに「体系」が出来るんだろうと思いますし、
本当の意味では体系的に学ぶよりも、荒野を歩いて体系を作れる人材が強いのは言うまでもありません。
ですが、やはりこれは天才の所業だと僕は思います。
僕のような天才でもなんでもない愚か者は、
愚直に体系的に学習していくのが良いんでしょう、きっと。
ちなみに、僕はこれを気に、「schoo」という学習サイトを使い始めました。
「schoo」を使っていると、体系的に勉強するってやっぱり身に着くなぁと感じます。
続けられるかどうかはモチベーションの話として別問題ですが、
学習効果としては闇雲にやるよりは高いと思いますね。
さあ、皆さんは体系的に学習していますか?
ではでは。