ITservice雄飛です。
疲れ果て、UPして数日後に記事にしてますw。
先ず、お題の通り。
プログラミングって何?
何するの?どんな世界なの?
そんな事を中心に話しています。
プログラミングに必要な知識として、
・文章に対する常識的な読解力、記述力
・英語力(プログラミング言語はそもそも英語形式)
・論理的思考能力(物事を順序正しく整理整頓して語れるか)
この三つは必須だと思っています(私個人は)。
次にあった方が良いものとして、
・疑い力(何故それがそうなるのか、という観察力にも似た力)
今動いているものでも、別のコードを弄ると、
そこが動かなくなることが、普通にあります。
そんな時、常に物事を疑い、疑問を持つことは重要になってきます。
(但し、疑心暗鬼や猜疑心とは全然違う)
・アルゴリズム(流れ図やフローチャート等の構築力)
動作手順書とでも言うべき、一連の動きを、
手順にまとめて図解で示す力です。
例えば、
始め!
ここから ずっと 繰り返し
もし スペースキー 押された?
ここから
ウインドウ を 生成
ウインドウ に 図を 表示
もし ここまで
でなければ
ここから
もし ウインドウ がある?
ここから
ウインドウを 消去
もし ここまで
もし ここまで
もし エスケープキー 押した?
ここから
繰り返し 終了
もし ここまで
繰り返し ここまで
「始め!」でアプリが立ち上がり、ループ処理が行われ、
スペースキーが押された時に、図を表示するウインドウを出す、
架空のプログラムのアルゴリズムを書いてみました。
端的に示すと、「この様な思考が出来るか?」と言う事です。
書籍やWebからコピーして組むだけなら、問題ないでしょうが、
一から組む場合は、必須でしょう。
・精神的な耐性(色々な意味で)
PCに起こる、障害やそれに伴う苦労に耐えられるか?
メモリが足らない、CPUが遅い、処理に時間が掛かる、
処理が間違っていて動かない、動かない原因が解らない。
そんな時、イライラキーキー、する事なく、落ち着いて考えられるか?
そんな能力になります。
ある意味、デバッグやテスト、開発でも、必須に近い能力でしょう。
・たゆまぬ努力心
ある意味必須です。
常に努力し続けられるか?
この一点につきます。
コンピュータの世界は日進月歩どころか、分針秒歩の世界だと、
私は個人的に思っています。
その様な中に置いて、努力をしないのは、
プログラマとして死に等しいと思っています。
今の時代、数百近い開発言語があり、それが年毎に優劣が変わり、
場合によっては、使っている言語が廃れてしまう事もある。
その場合、乗り換えも考えないといけない。
乗り換えなくても、改あh津言語のバージョンアップに対応しないといけない。
その意味では、正に努力の放棄は致命的でもあります。
・忍耐力、我慢力
ここは、図と幾分ズレてしまいましたが。
要は、原因不明や、重い処理、思い通りの処理が走らない時、
忍耐強く調べ、デバックや開発を続けられるか>に尽きます。
本気でやる場合なら、これはもはや必須でしょう。
・文系理系を問わず、なんかなロジックでも、
諦めずに構築/読解出来るか?
これは、難しい処理を読めるか、という単純な意味では無く、
・難しい事を簡潔に判り易く書けるか?
・難しい事を難しく書いて、難読化させていないか?
・その様な難読なコードでも、簡潔化して脳内で図示出来るか?
に尽きます。
仕事で組む上では、必須かもしれない、ある意味。
この様な感じでしょうか?
いきなり、全てを得るのは不可能ですし、
それをいきなりしてしまったら、脳が壊れてしまいかねない(心理的に)。
と、思います。
少しずつ、じっくり得ていけばいい話だと思います。
それでは。