コレは何?
Twitterで「#駆け出しエンジニアと繋がりたい」というハッシュタグを見かけました。
このハッシュタグの件数が意外と多い。
私が10年以上前に駆け出しエンジニアとして歩み始めた頃と比べたら、色々便利なプログラミングツールや環境が整っていますが、教育環境という面ではあまり進歩していない部分があります。例えば「3ヶ月で学習して成果を出せるか」という妙な試練を未だに課している点です。
そういった環境で駆け出したエンジニアが悩んでいること、例えば「自分にはプログラミングの才能がないのでは?」「プログラミング漬けになるぐらい勉強しているのに成果が出ない」とかの悩みのヒントとなればと思い自分の考えを綴っています。
「3ヶ月」では大抵の人は無理です
未経験の人でも3ヶ月だけ入れてみて、「使えない」と判断されたら切られる開発会社のシステムがあります。あれって何を見ているのでしょう?3ヶ月で何を判断されているのでしょうか?色々な面を判断されていると思いますがこういったことを判断されています。
- プログラム言語をある程度習得できる飲み込みの速さ
- 何がわからないのか言語化できる
- プレッシャーに強いか
- 素行が良いか
何を判断しているかというと「この人は学校の優等生か?」というものです。3ヶ月である程度プログラムを書けるようになる人は極稀だと思ったほうが良いです。
学校の勉強ができた人向けです。
プログラム言語習得は概念が日常とかけ離れている部分が多いので脳が受け付けないのです。例えば「A=1」は日常生活では「Aと1は等しい」を意味しますがプログラムの世界では「Aに1の値を代入する」という意味になります。最初のこの部分でも初心者狩りが発生します。(この点ではR言語の「A <- 1」という表し方は画期的だと思います)
3ヶ月で契約を切られたあなたへ
3ヶ月で契約を切られたあなたに言っておきたい。
「3ヶ月でプログラミングのセンスが有るか無いかはわからない」
短い期間ではセンスを計ることはできません。飲み込みが早いかどうかぐらいです。
「君はセンスがない」と言われたら、それは嘘だと思ったほうが良いです。
飲み込みが遅くても悩んでいるなら、長期的には問題はありません。
一つの言語を覚えると他の言語にもすぐに適応できるようになります。
その人が適性があるのかは判断できるのは2年後ぐらいです。
ダークホース的戦略
プログラミングを習得できなかった、いや「習得できないと思っている」あなたに戦略を提案をします。ちなみに「ダークホース的戦略」の名前はDark Horse『好きなことだけで生きる人』が成功する時代という本から丸パクリです。「正規の学習法を無視した自分にあった学習戦略を組むことが大事なんだ」ということを力説していて、プログラミング学習にも適応できる内容でした。
-
独学を行う。
基本的にプログラム言語は独学です。誰から教わることはあまりありません。また人から教わることがプレッシャーにもなります。 -
学習期限を1年以上とする
この戦略は長期的な戦略なので自ずと1年以上になります。えっ?もっと早くできないか?できません。これは学校の勉強ができなかったあなた向けです。(自分も含め) -
金銭的な余裕を確保する。
期限は1年ですし、プログラミングの本は高いので金銭的な余裕がないといけません。完全な書籍は存在しませんので何冊も買う必要があります。金銭的な余裕によりプレッシャーもありません。 -
最初は毎日サンプルコードを写経する(上限3つまで)
こういう反論が来ますよね。「何も考えずサンプルコードを打つことは意味がない」と。本人が考えていなくても脳が学習しています。脳がニューラルネットワークをゆっくり構築しています。脳が基礎のベースを組んでいるので待ちましょう。理解はあとからやってきます。
最初は打ったものが動くという感動を体験してほしいです。同じように打ってみたけどエラーになる状態になるなら儲けものです。その問題を解決できるとプログラムを少し理解できるようになります。
一番ダメな状態は本人がプログラミングの作業が苦痛に思い写経をやめてしまうことです。脳の構築作業がストップして最後には消えてなくなります。
それを回避するために**「毎日のサンプルコードの写経は必ず1つは行い、最大3つまで」**とします。焦って無茶なノルマを課してはいけません。無茶なノルマを課して投げ出す自分を責めてはいけません。 その戦略は何度も失敗しているでしょ?
ちなみに写経と言っても紙に書くほうではなく、エディタにキーボードで打ち込む方です。念の為。
参考文献:ジェームズ・クリアー式 複利で伸びる1つの習慣 -
プログラム資格試験の合格を目標にしない
合格してもサービス・ソフトが作れることを証明するものではないので。プログラム資格試験は会社から「取れ」と強制されてから受けるものです。例外として例えばCISCOが主催しているCCNAなどは価値があります。合格するとネットワークの基本がわかるレベルになっているので有意義です。
またITの資格を持ち過ぎな人って,結構暇な...おっと誰かが来たようだ。 -
アプリを10個作ってみる。
どんなものでもいいので作ってみましょう。画期的なものじゃなく、どこにでもあるようなものです。体重を記録するアプリでもいいです。全然、思いつかない場合は「これをコピペしたらソフトが動く」というソースコードを写経してみましょう。
写経とアプリづくりを通してプログラミングのブレイクスルーが訪れます。
ブレイクスルーが訪れた後に自分がプログラミングの適性があるかわかると思います。プログラミングの基本が分かれば、あとは想像力の高さが物を言う世界が待っています。
何を言いたいのかわからなくなったので、ここで終わります。
少しでも役に立ったらいいなー。