はじめに
自分の会社では毎週土曜日に勉強会開催しているんですが、ちょいちょい「スクールに通ってました」という方がいらっしゃっています。相談所と銘打っているので、大抵は何か課題があったりして困り事を抱えているという感じです。 よく会話の流れで
「でも、自分で作ろうと思うとうまくいかないんですよね」
という話になるのですが、私は結構当たり前だと思っています。この話は
「そういう人いっぱいいるし、それはあなたにセンスがないわけではない。諦めないで!」
と言いたい為の文章です。
宣伝で出ている言葉と実態の差について
「一ヶ月でプロのスキルを」とか、「数十時間で身につける」みたいな言葉が結構出てきますが、「皆がそうなる」とは言っていないので、それが頂点のごく一部の人を指しているのか、習いに行けば皆そうなるのかは伏せられています。多分多くの既にプログラマーになった方は納得してくれると思うのですが「そんなのはいたとしても超センスあるごく一部か、技術以外の部分が多分に占めている方法だ」と思っているはずです。
カリキュラムを真似しただけで即作れるのではない
通り一遍のカリキュラムを真似しただけで何かが動いたという状況は、真似している時点で「体験」の域を出ていないと思います(スキューバダイビングなどの体験とか、乗馬体験などをイメージしてくれれば良いと思います。それっぽいことをやれたけれど、本当のそれではない、ということです)。 本当の目標は教本を写すことではなくて、自分が必要とする動作を自分で考えて作らなければいけません。それには下記2点くらいが必要になってきます。
- 根底の理解の獲得(フレームワークは往々にしてこれを阻むことがある)この辺でチラッと書いてます。参考までに。
- うまく動かない時の対応(デバッグ・検索の能力)
ちなみにカリキュラムを真似するだけであれば、わざわざスクールに行かなくてもWEB上の入門文書や書籍を真似することでも得られる価値は高いです。まずそこからやるだけでもかなり違うはずですよ。個人的には自分でやれそうなことを少しやってみる方をオススメします。
要するに
まだ作れなくても大丈夫。大丈夫だから、継続してスキルアップに励んでみてください。今諦めてしまうのはもったいないんです。お金と時間と脳みそを使った分が回収できるのはここからです。忘れてしまわないうちに、次のアクションを始めてください。悲しいかな短期的に覚えたことはすぐに忘れてしまうので、忘れてしまう前に次をやるのがベストです。
もしもどうしても辛くてしんどいのであれば、ひょっとしたら性格と合わないなどがあるかもしれないので、そこで離脱もありかもしれませんが、宣伝文句や他者との比較でガッカリしてやめる必要などありません。
次のステップまでのオススメの進め方
最初は真似してても良いと思います。真似から得られる全体像を大切にしてほしいです。そして「今動くもの」が一つ手に入るのは大きいのです。
動くものができたらちょっぴりだけ改造してみましょう。きっと簡単には動かない。でも、そこで得られる経験はとても大切です。なぜなら、プログラミングするのならそれをずっと続けるはずだからです。例えば下記のようなことをやってみるのどうでしょう。
- 表示されるものを何か変えてみる。「表示される内容によって文字の大きさや色を変えてみる」とかちょっとしたことでも良い。
- 一個だけ表示していたものを沢山表示してみるとか。
- DBのカラムを追加してみる(DBの変更して、フォームに追加したりViewを変更したりする。色々やらなきゃいけないことがわかってくる)。エラーにもたくさん出会うはず。
ここで獲得しなければいけないのは、おそらくそれまでに獲得できていない下記です。
- うまく動かない時のデバッグの仕方、有用なツールを知る
- 検索して問題解決するコツを掴む
うまくできたら「やったー!」って喜んで良いんです。この達成感で高揚する人は多分向いてます。今は時間かかるかもしれませんが、コツを掴むとどんどん動かせるようになれますよ。
どこかのコードをコピペしても良いです。ただし、コピペしたものがどういう動作なのかは頑張って読みましょう。わからないことは調べましょう。大事なのは暗記することではないので、コードを理解するように努めてください。コピペスキルが物凄く高い人が最初の頃センスあるように見えて、実はセンスが無い
というのはあるあるなんです。
成長のイメージ
不安だと思うので、多くの人の伸び方をちょっと書いておきます。
- 最初全然成長しない。してても気づかない。
- いきなり開眼したように一気に伸びる(ここに一ヶ月二ヶ月の真似だけで到達するのは稀だから頑張って!というのがこのエントリの主旨です)。
- また停滞する(ただこの間も作り続けたり学習したりすること)
- いきなり一気に伸びる(それまでとは違う新たな概念や哲学を獲得すると伸びる場合が多い)
- 以下繰り返し
最初の頃のアンチパターン
相談所で出会うアンチパターン書いときます。だいたいこういう感じだとまずそこを直してもらったりします。
- 「エラーメッセージを読まない」英語だからって怖がって閉じる人。沢山います。エラーメッセージは解決方法を教えてくれる大事な情報なので、頑張って読んでください。
- 「ツールを使おうとしない」
- 無料のエディタでも色分けしてくれたり(これが結構エラー発見に役立つ)、入力中に補完してくれたり、つまらないミスを防いでくれる機能があります。これで時間を無駄にしないようにしましょう。
- Chromeの開発者ツールを活用すると、思ったような出力がブラウザに出ているかを確認するのにとても有用です。特にHTML/CSS/JavaScriptでうまくいかないときはお世話になること必至です。
- gitを使わないのは損です。ちょっとだけ改造したりした時に「うわーどうしても動かないー。しかも前の状態に戻せないー(><)」ということがよくあるので、簡単なgitの機能を知っているととても有利です(注: gitがそこそこ難しいとかうまく使えないケースもあるので、難しそうならとりあえずディレクトリ全部コピーとかも最初は良いかもしれません)。
- 「MacなのにVagrantとか仮想環境を入れる」Macを使っている人はVagrantなど仮想環境を入れなくても十分な環境があるので、無理して入れなくて大丈夫です。むしろ入れることで問題の解決がしにくくなって辛くなっている人の方が多く見受けられます。あれはWindows環境の人を救済したり、コンテンツの内容を合わせるためだと思うので忘れても良いと思います(真似しているところが使っているとそのままやっている人が結構多くて、
いきなり動かなくて治し方がわからない
とかなっているの、もったいないです)。
さいごに
個人的には、最初のとっかかりからプロになるまでをずっと見ていくことを生業にできたら良いなと思っています。でも、現実は人それぞれ成長の仕方が違ったり期間やかけられる時間が違ったり、育成する側の手間暇も違うのでとても難しいです(経営としてもうまく折りあえて、そこまでガッツリやれる方法があったら知りたい)。
少しずつ理想の形が探れれば良いなと思っています。
あと、どうしても困った人がいたらほぼ毎週土曜日の渋谷で開催し続けている(もうすぐまる三年です)プログラミング相談所に来てくれれば、私や弊社のメンバーが相談に乗りますよ。
年末年始、やるぞ!と思っている人、ぜひ諦めずにステップアップしてみてくださいー。