2010年12月。
なんやかんやありまして、退職から9ヶ月で次の働き口を見つけた俺。
新しい仕事はWEBプログラマー。
つい5か月くらい前まで、つまり2010年7月の時点では、「WEBデザイン」をやりたいと考えていたのにね、デザイナーじゃなくてプログラマー。
だが、3か月の職業訓練のおかげで、「デザインには才能が必要!」ということに気づけた。
正確には、気づくまでに1か月を要さなかったわけだが・・・
まぁ、なんにせよ、「WEBにかかわるお仕事」に就けたのだから、当初の目的は果たされたというべきか。
しかし、浮かれてはいけない。採用が決まっていたものの、この時点で、自分のプログラミングスキルはほぼゼロ。
初出社までにある程度の知識を詰め込んでおくのが重要課題だった。
今回は、未経験からプログラマーを目指すなら、こういう勉強方法がいいんじゃないか、というお話、というかご提案?(笑)
千里の道も○○から。
プログラマーというお仕事に就くわけだから、当然「プログラミング言語」を学ばなければならない。
プログラミング言語、つまり、コンピュータにさせたい動作の「命令」を、まるで「言語」のようにした一連の文字たち。
この言語を勉強するための方法は、インターネットや、WEB系スクール、書籍など、たくさんある。
どの勉強方法でも、最初にやることは、そのプログラムを動かすための開発環境の整備だと思っている。
僕が勉強していたPHPだったら、自分のパソコンで動かせるようにするための準備。
XAMP入れたりするとかね。
そして、開発環境の整備を終えてから、さぁ、実際にプログラムを書いてみよう!となる。
で、まぁ一番最初にプログラミングするときに、だいたいお決まりの「アレ」がある。
それは・・・
初カキコ…ども…
俺みたいな30手前で未経験からプログラマになる男子、他に、いますかって、そんなにいねーか、はは
今日のハロワでの会話
「あの企業はブラック」とか「もう面接の回数二桁」とか
ま、それが普通ですわな
かたや俺は自宅でPCにXAMPをインストールして、呟くんすわ
Hello wolrd.
映ってる?それ、プログラムで動かしてるんだからね。
好きなサイトは オモコロ
尊敬する人間 井深大(ソニータイマーはNO)
なんつってる間に大晦日っすよ(笑) あ~あ、未経験、中途採用の辛いとこね、これ
そう、「Hello World.を画面に表示させてみよう」である。(長かった)
・・・。
エントリの書き出しから、すでに900字近くを費やしているのだが、何が言いたいかというと、
初出社を一週間後に控えた俺。
このときのプログラマとしてのスキルは、まだHello World.を表示させることが関の山だった、ということだ。
はっきり言って超やばい。
入社を一週間後に控えて、まだ画面に文字を映すことしかできないって、やべーとしか言いようがない。
ヤバイよヤバいよ!
出社まであと1週間、年末年始は教科書を読みあさっていた。
そりゃぁもう。目に穴が空くほど(痛そう)
・・・だが、知識もスキルもほとんど身につかなかった。
やべぇ。
いくら未経験、初心者とはいえ、このままじゃ、3日でクビコースかもしれんぞ・・・。
本を読んで読んで、読みまくって、そんな状況にも拘わらず、まだ「なんでこの文字の羅列でぱそこんがうごくのだろう・・?」というようなふわふわした状態だった。
画面には相変わらず「HelloWorld.」が表示されていた。
なぜHelloWorld. から先にすすめないのか。
あんなに一生懸命勉強?したはず?なのに?「ぷろぐらみんぐ言語」が、まったく脳みそに染み込む気配がない。
なぜだ!!??
考えた末に、辿り着いた答えがある。
「読みあさった」だけで、あまり手を動かしていなかったからだ。
そして、何をしたいのか、というゴールが見えていなかったからだ。
プログラムを通じて何をしたいのか、どういうものを作りたいか、全然決めてない。
そこにある知識を、無目的にむさぼるだけでは、自分のものにならないということに、ようやく気付いたのだ。
これはどういうことか?
たとえば、料理でも図工でも、なんでもいい。
- 道具と材料はそろいました。でも、何を作ればいいのか分からない。
という状況と、
- 道具と材料はありません。でも、「作りたいもの」は分かっています。
この二つの状況のうち、最後まで何かを成し遂げられる可能性があるのはどちらか。
間違いなく後者だ。
いくら、道具と材料がそろっても、最終的に何を作りたいのかがわからなければ、「何か」を作り出すことすらできない。
明確な「最後」、作りたいものを作る、完成させるという目標に向けての一歩が踏み出せないのだ。
これは、プログラミングでも同じことが言える。
プログラムというのは、コンピューターを使って、何かやりたいことを実現するための手段なんだ。
やみくもに方法だけ取り入れても、それが身につくわけない。
作りたいものが、「ゴールが設定」されていれば、そこに向かって歩き始めることが出来る。
材料がない、道具がないなら、ますは揃えることから始められる。
レシピがあっても、ねぇ。
作りたいものは決まっている。そして、材料と道具とレシピもある。
でも、完成図を思い描くだけでは、いつまでたっても料理は完成しない。
当たり前だ。
絵に描いた餅しかり、頭の中で何回作ったとしても、レシピの中の料理は作らなければ食べれない。
実際に手を動かして、材料を切ったり、煮たり、焼いたり、とにかく手を動かして作り始めないと、いつまでたっても料理は出来上がらない。
プログラミング言語もおんなじ。
コンピュータにねらいの動作をさせるためのツールなのだから、実際に組んでいかないと、目的のものは出来上がらない。
そして、実際に手を動かさないと分からないこともある。
もういちど料理にたとえようか?なんでもいいけど、じゃあ、包丁を使った野菜の皮むきとか、どうだろうか。
いくら本で勉強したところで、実際に包丁を握らないと、力の入れ方、皮むきをする方向、野菜の持ち方、ということを学ぶことが出来ない。
産業用のロボットだって、「ティーチング」という、実際の動作を記録して再生するという作業が必要になるというじゃないか。
ましてや人間、同じ動作を毎回できるわけじゃない。
経験して覚えるしかないんだ。
そして、初出社の日を迎えた。
はたして、少しでもプログラムのスキルは身についたのか・・・?
つづく。