文系プログラマによるTIPSブログスマートフォン用の表示で見る文系プログラマによるTIPSブログ文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。仕事TwitterGooglePocket私は以前は暗記人間で、テストも暗記で乗り切ってしまうタイプでした。現在はほとんど暗記しません。今回は「暗記」をテーマに考えてみようともいます。会社で仕事をしていて成果を求められるとします。その成果を出すため、暗記によって成果を出すか、論理的思考によって成果を出すか、皆さんはどちらのタイプでしょうか。私は昔は暗記派で、今は完全に論理的思考によってアウトプットを出します。暗記はアウトプットの出力が速いが辛いししんどい暗記と論理的思考によるアウトプットの出力速度ですが、間違いなく暗記の方が速いです。暗記は論理的思考のように論理を展開する過程を全てふっ飛ばして、いきなり答えを出すからです。全ての過程を飛ばせる点が暗記の利点だと思います。暗記というのは非常にしんどいものです。ホリエモンのように苦もなく?暗記をできてしまう人もいますが、大抵の人にとって、物事を暗記する事はしんどい・辛い事です。暗記の対象が自分の興味のない事なら尚更しんどいですね。「社訓を丸暗記して毎日言わされる」なんて、苦行以外の何者でもありませんよね。暗記というのは量に限界があります。パソコンのHDDと同じように、人間の記憶の容量には限界があるので、これを記憶すれば裏でいつの間にか別の記憶が失われたりします。これは年齢が上がるにつれ、徐々に記憶量は減っていきます。論理的思考ですが、最初は暗記よりもずっとしんどいと思います。あるのが、「このタスクを期限までにこなさないといけない。これをやるためには◯◯さんに◯◯をいつまでに依頼して、◯◯が◯◯までできていないといけない。納品する事を考えるとお客さんに事前に◯日〜◯日の間にテスト環境で検証して貰わないといけない」といった感じのものです。最初のうちは「あれをするためにはこれをしないといけない」といった事が思いつきもしないので、上司から学んだり、少しづつ経験を積まないといけません。その経験値がある程度積み上がると、全く事前情報が無くとも自力で何とかできてしまったり、突発的なトラブルが発生しても対処できるようになります。暗記タイプはトラブルに弱いIT業界の例で例えると、例えば障害発生時にその差が顕著に現れます。しようどうしよう・・・・となりがちなのが暗記タイプの方です。IT業界では障害というのは大抵意図しないものが原因で起きるので、暗記のしようがなかったりして、暗記では対応が遅れたりする事があります。今まで見たこともないようなエラーが突然起きる事も結構あるので、突発的な事に大して暗記というのは力を発揮しにくいです。不正データを除外して復旧というように、順に追いかけて行って一つづつ原因を潰していきます。このフローを暗記しても完全ではありません。状況によってログが出力されなかったりして、原因を特定する過程が毎回異なったりするからです。averageがぶっ飛んでいたというように、論理的思考の場合は過程が異なっていても、結局答えにたどり着けます。暗記タイプは未知の事象に弱いIT業界の例で例えると、新規に自分の会社に派遣社員の方が来て開発環境を構築して貰う時に以下の質問を沢山されます。データベースの接続先とIDパスを教えて下さい新たな職場、新たな環境で仕事をするので、新たに環境設定を聞きたくなりますが、これでは論理的に思考できていません。教えるべきであると思いますが、教えてもらう相手が多忙で暫く手が離せない状況等に陥った場合、「教えて貰えなかったのでできませんでした」という残念な結果になるし、自分で見つけ出すことができないという結果が残ります。これを論理的思考で解決しようとすると、「データベースの設定は大抵database.confとかjdbc.propertiesとか、大体データベースに纏わるファイル名になっているからそれを探せばいい」「更に、環境毎に設定ファイルが分かれている事が一般的だから、恐らくdevelopフォルダの下にあるjdbc.propertiesに書いてあるのが接続先だな」等といった事は実は簡単に追う事ができます。これは暗記の力を必要とせずできる事です。大体共通点があります。手順を全てメモり、メモった事を実行する事に終始するという点です。コピペは暗記と関連があります。コピペは人間の頭に記憶する代わりに、メモ帳に記憶するのです。暗記する場所が変わっただけなのがコピペです。メモを取る事は非常に良い事だと思います。ここで問題なのはそのメモった手順の内容を理解しようとしない点です。内容を理解するためにメモるのではなく、次回コピペで済ませられるようにメモっているのです。大体こういったコピペ屋さんは暗記タイプで、メモったコマンドを実行してエラーが起きても対応できないし、今自分が実行しているコマンドが何なのかも把握していなかったりします。暗記をやめて人生が格段に楽になった私の場合は社会人になってから暫くは暗記に頼ろうと足掻いていました。IT業界はあまりにも覚える事が多く、あっという間に暗記という手法が打ち砕かれました。覚えてられないのです。そこで暗記する事をスッパリとやめ、論理的思考に頼るようにしました。すると覚えるべき事が非常に減り、突発的なトラブルが発生したとしても、大体何の材料もなく対処できるようになりました。論理的思考をするようになってからトラブルに強くなった点が最も良かった点だと思います。IT業界の大半はトラブルでできているので、トラブルを解決できるとストレスも減ります。ミーティング等の場でも突発的な無茶振りにも耐えられるようになります。これが暗記タイプだと、無茶ぶりされる内容を全部暗記しないといけないと思うと胃が痛くてキリキリしてしまいます。雑感こんな記事を書くと「じゃあ論理的思考はどうすれば身につくんだよ!」みたいな話になりますが、それは別サイトに色々書かれているので割愛します。書いてみると、linuxのコマンドのオプションを例に挙げると、よく「-fとか-vとか、オプション多すぎるだろ!どうやって覚えるんだよ!」という経験ありますよね。そこは「オプションが何の略なのか」を考えると暗記量を減らす事ができます。「-f」はforce=強制的で、「-v」はverbose=冗長、「-r」はrecurse=再帰的、というように大体何かの省略系になっています。オプションだけでなく、コマンド名にもそれは当てはまります。owner」、そのコマンドが何の略なのかを考えると、大体覚える必要はなくなります。githubやqiita等のオープンソースのソースコードを読む場合、開発者に教えて貰う事が難しいので、大体自分で全て把握する必要があります。「このコードはこのフレームワークが使われているのでここに環境設定がある」等と、自分で情報を探し出し、そのソースコードの設計思想等を紐解く必要があります。いったケースでは暗記はほとんど役に立たないので、論理的思考を元に自力で内容を紐解かないといけません。こんな感じで論理的思考で覚えるべき事を減らしていくと、生きていく、というか社会生活が格段に楽になると私は思っています。これは開発現場であるあるな出来事だと思います。目的が変わってきてますよね。「さよならChrome。週間)昔は業務系SIer、今はベンチャー企業でプログラムを書いています。INFILEを実行できるようにするmacのAutomatorでhomebrewのコマンドをFinderのサービスから実行できるようにするReactオススメ書籍React自体の基礎、AtomicDesignの適用、CSSの運用手法の歴史的な経緯とメリットデメリット、Reduxの基礎、redux-sagaによる非同期処理、サーバサイドレンダリング、テスト、lint、を学ぶ事ができます。単行本(ソフトカバー)この商品を含むブログを見るAngularオススメ書籍Angularを学ぶなら絶対以下がおすすめです!バインディング、ディレクティブ、パイプ、フォーム、コンポーネント、サービス、ルーティング、httpClientによる非同期httpリクエスト、テスト、angular-cli、を非常に丁寧な説明で網羅的に解説しています。大型本この商品を含むブログを見るSEOオススメ書籍SEOを学ぶなら絶対以下がおすすめです!クローラに対して何をどうすればサイトの巡回効率・速度を上げる事ができるのか、どういったマークアップをする事が標準仕様なのか。巷に溢れる業者による経験則に基づくオレオレSEO情報は一切無く、全てGoogle等のオフィシャルな情報に基づいて何をすべきか、どんな手段があるのかを解説されています。プログラマな私が業務で行った施策が多く書かれており、プログラマ寄りで高度な内容となっており、巷のビギナー向けの曖昧な情報集とは一線を画しています。Amazonアソシエイト・プログラムの参加者です。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。