僕は自慢じゃないけどプログラミングが早い。システムを開発をする側から、システムを発注する側になったんだけど、成果物の完成度に満足がいかず、ほぼほぼ作り直しています。
本来、システム屋の方がスキルが高いハズなんだけど、間違いなく僕の方がスキルもスピードもあるので、開発会社はやり難いと思います。
でね、ちょっと思ったんだけど、プログラミングが早い、スキルがあるヒトとそうじゃないヒトって考え方から違うんです。
これからプログラミングを学びたいとか、爆速プログラマになりたいと思うならヒントになると思います。
プログラミングのスキル
プログラミングのスキルって何だと思いますか? はっきり言ってロジックをたくさん知っているってことより、処理のボトルネックになるトコの発見とバクを見つけられる能力なんです。
もちろん、プログラミング言語の知識を大切なんだけど、そんなのはプログラミングしていれば勝手に身につきます。それ以上に大切なスキルは上手くいかない理由を見つけるスキル。
プログラミングで飯を食おうと思うなら、必須のスキル。よくIT土方なんて言われるプログラマで長時間労働が当たり前の世界だけど、僕からしたら、ボトルネック、バグを見つけられないから時間がかかっているだけ。
日本の開発会社で働いているプログラマの多くは危機管理と言うか、バグの要因になりそうなこと、ボトルネックになる要因を見つける能力が低い。だから何度も同じ処理を作り直すことになり、長時間労働にハマっていくんです。
プログラミングのスキルで一番必要なのは、良くないことを見つける能力。
バグ対策部隊の経験
僕は約20年間、システム屋として飯を食べいてSES契約であちこちの現場を渡り歩いてきました。だいたい、火を吹いている現場に火消役として呼ばれることが多く、火消隊とか、バグ対と呼ばれる精鋭部隊。
ってか、人様の作ったプログラムの不具合点を見つけて正常に動くようにするのが仕事。カッコ良いことはなく、処理のボトルネック、バグになりそうなところを見つけて一つずつ、潰していく。
プログラミングって色々なロジック、組み方があるんだけど「これって処理的にヤバそう」ってところは、なんとなく分かるんです。
ロジカルに考えること
コレを言うと気を悪くするプログラマもいると思う。ブーメランで返ってくるかも知れないんだけど、バグを作り込むヒトって、ほとんど同じヒトなんです。
そして、そんなヒトはタイプ的に似ています。言葉にするのは難しいんだけど、ロジカルに考えられないヒト。間違ったロジックで考えるヒトなんです。
プログラミングの大半の時間は、バグ、ボトルネックになりそうな処理を見つけることなんだと思います。
プログラムを眺めながら、バグる可能性のあるところを見つけて、一つ一つ問題を切り分け、潰していく。上手く行かない原因は必ずある訳で、その原因を見つけるのが速いヒトがプログラミングのセンスがあるヒト。
ぶっちゃけ、しっかり考えられるヒトはバグが少ない。どんなに大きなプログラミングでも、しっかり論理的に考えられるヒトはプログラミングの破綻が少ない。
ロジカルに考えて、この場合はこうなるな、そうするとこの時は〜って考えることが、プログラマに一番必要なスキルだと思います。
言語の知識は必要
プログラミングの勉強って言うとプログラミング言語の知識をつけることだと思っているヒトが多いですよね。システム開発会社の人たちも、そうやって考えているヒトが多いのが現実です。
なので、言語が変わったらプログラミングが組めないなんてヒトもいるくらい。でも、しっかりロジカルに考えるスキルがあれば、プログラミング言語の違いなんてあまり気にする必要はありません。
僕のことで申し訳ないんですが、僕はC言語、C#、java、Ruby、PHP、VBなどなどどんな言語も仕事にしてきました。もちろん、言語毎にちょっとした違いはあるけど、どんな言語でも大概はプログラミング出来ます。
勘が良いなんて言われるけど、僕からしたら基本的にプログラミングの命令なんて、ほぼ共通している。ロジカルに考えて一つ一つ処理を見ていけば、何のことない。
もちろん、何も知らないとどんな命令があるかも分からないので、プログラミング言語知識は必要だと思います。でも言語の知識なんて、一つの言語を知っていれば、後は何となく置き換えて考えられるようになる。
それよりもロジカルに考えるスキルの方が絶対に必要。
プログラミングだけじゃない
ロジカルに考えることは、プログラミングだけじゃなく何にでも応用が出来ます。僕は今、システムの仕事をしながらも、色々なことを手伝っています。
で気づいたのは、仕事が出来るヒトってなんだかんだと言いながら、ロジカルに考えることが出来ています。
会社では色々な立場、仕事があるけどロジカルに考えられるヒトはドコでも、それなりに仕事が出来る。営業だろうが、事務だろうが、それは変わらない。
反対に考えられないヒトは、決められたことしか出来ず、他のことが出来ない。勘が良いなんて簡単に言われるけど、勘じゃなくて実はロジカルに考えられるかだと思います。
IT化なんて言われているけど、実はコンピュータを使うヒトがロジカルに考えられないと上手くいく訳がありません。
コンピュータを使いこなすためには、使う人間がロジカルに考えられないと破綻してしまいます。
もちろん勘も必要だけど、コレからの時代はロジカルに考えられるってのが基礎体力になるんです。
ロジカルに考える訓練にプログラミングは向いています。言語知識の前にロジカルに考える訓練をした方が遠回りに見えて最短でスキルを身につけることが出来る。
なんでも理由があるんですよ。プログラミングのスキルを身につけたいなら、論理的に考えてみてくださいね。
ではでは。
コメント