こんにちは、おしうみです。
実は9月末でプログラミングコースの担当者を降りて、10月からはプログラミングの仕事に専念しています。
9月に京都オフィスと大阪オフィスでプログラミング脳講座たるものを開催したので、その内容を共有したいと思います!
日常で使えるプログラミング脳
日常で使えるプログラミングの考え方には、以下の4つが挙げられます。
- 効率化
- 論理的思考力
- 検索力
- 問題解決能力
本当は情報感度も入れたかったのですが、スライドを作った時点で忘れていたので、割愛します。笑
効率化
プログラミングは常に効率化を図っています。
例えば、社内の誰かの仕事が楽になるように、システム内のコードをいじります。
例えば、開発が簡単になるように、新しいツールを取り入れます。
面倒くせーーって思ったことは全部効率化してしまうんです!
だってやりたくないんですもん。
これからもずっと面倒なことをやらないといけないと考えると吐きそう。
だから、今ちょっと時間をかけて、面倒なことを効率化してしまいます。
一般的な面倒くせーの悩みは検索することで解決できます。
検索力
検索力は、うまくキーワードを入れて自分が欲しかった情報をすぐに手に入れることを差しますが、ここでは、
とりあえず検索してほしい!!!!
っていうことだけ伝えたいです。
さっきの効率化でもそうですけど、面倒だと思って調べたらすぐに解決できることって結構多いんです。
しかし、検索する人は少ない・・・。
それは、そもそもそれを面倒くせえと思わないからだそうで、、、
面倒くさいことを、そういうものだと受け入れないで、これ効率化できないかな・・・?と疑問に思ってほしい!!
検索したら、時間短縮できるよっていうのを図に示しました。
検索しない人は、同じタスクを同じように行なっています。
もしかしたら同じことを繰り返して、コツを掴んで、若干仕事が早くなるかもしれませんが、まあそんな感じです。
検索する人は新しいやり方を学んだり、仕事がより簡単になるツールを見つけたりして、仕事が劇的に早くなります。ただ、検索する時間がかかるので、最初はちょいと時間がかかりますが・・・。
そして、検索をすることは問題解決能力にも繋がります!
検索することで、問題解決のためのアプローチが増えます!
検索はいいことばっかりですねえー
論理的思考力
論理的思考力を自分の考えで定義してみると、
「始まりと終わりが設定されているときに、その間の過程を漏れなく推察できる能力」
だと思います。
例えば、「生卵」で始まり「目玉焼き」で終わったら、その間に何が入るでしょうか?
答えは「焼く」です。
深掘りするともっとあるかもしれません。「ガスに火をつける」「フライパンを持つ」「キッチンタイマーをセットする」などなど。
プログラミングには、「関数」というものがあります。
関数は、何か値を投入したら、期待した値が出てくるように設計されたものです。
例えば、税込の値段を計算するaddTax関数があるとします。
addTaxに税抜の値段を投入したら、必ず税込の値段が返って来ます。
このaddTaxの中身は何やねん・・・!
これが論理的思考力です。
まあ、addTaxの場合は超単純で、投入された値×1.08をするだけなんですけどね。
論理的思考力も実は問題解決能力を高めるのに貢献します。
問題解決って、必ず「問題」というスタート地点があって、「解決」っていうゴールがありますよね。
その道筋をもれなく推察することができれば、100%問題解決できます。その推察した道を辿れば良いので。
ただ、社会や人間は複雑すぎるので、完全に推察することは不可能です。
なので、解決するまでの道のりを他の誰よりも具体的に推察できれば、問題解決ができる可能性はグンと高まります!
問題解決
最後に問題解決能力についてお話しします。
プログラミングを仕事にしていて一番身につくのは問題解決能力ではないかと思います。
発生する「問題」に対して、プログラマーたちはどういう考えを持っているのかをまとめてみました。
(俺はこんなこと思ってないぞ!っていうプログラマー・エンジニアの方いらっしゃったらごめんなさい)
システム内にバグがあると、焦ります。
めちゃくちゃ焦ります。
システムがダウンしたらどうしよう!!!焦ります。
社内や、社会に置き換えてみると、問題を認知したら、「やべ!この会社終わっちまうぞ!」「日本社会が滅亡するぞ!」なんてことになります。
バグが出たら必ずバグを治します。
そんな感じで、社内で問題が発生したら発生源を突き止めて、必ず解決します。
(この辺は人それぞれ)
問題を解決するためには、これまでお話ししてきたように、検索力や論理的思考力があると解決する可能性がかなり上がります!
それと共に身につけた方が良い考え方は「自分で解決できなかったら他の人を頼る」ことです。
「あー、自分には解決できなさそうだし・・・」
「ここ、俺の領域じゃないからまあいっか」
って考えるのではなく、
・「自分には解決できないから、あの人に相談してみよう!」
・「自分の領域じゃないから、担当の人に報告してみよう!」
って考えるのがベストかなーと思います。
だって、問題は必ず解決しないといけないという精神のもとで成り立ってるんですもの。
これまでの復習を一つのスライドにまとめてみました。
最近はプログラミングはビジネスの教養であると言われ始めています。
スティーブ・ジョブズも「この国の全ての人が、プログラミングができるようにならなければいけない。
一定の方法で物事の考え方を学べるからね」と言っているように、プログラミングを学ぶべき理由は考え方が学べるからなんです。
僕もまだまだ半人前ですが、半人前でもできる限りの情報発信していきたいなーと思います。
最後までお読みいただきありがとうございました!