仕事でプログラミングをしていると、「自分にも出来るかな?」「俺もやってみようかな?」と聞かれることがよくあります。
そういう時、私は「出来るんじゃない?」と必ず答えます。
勉強すれば出来るから嘘ではありません。
でも挫折する方が多いです。参考書を購入してちょこちょこと読んでそれで終わってしまう。
挫折した理由を聞くとたいてい
「どこから勉強してよいか分からない。」
「覚えることが多すぎてとっつきにくい。」
など、実際に作るところまでいっていない、または手を動かしていないようです。
業務で使うから強制的に覚える以外、趣味やちょっと覚えたいという程度だと、よほど意思が強くないとなかなか続かないのかも知れません。
私も会社でアプリを作るのでmacを買ってiPhoneアプリの勉強を始めた時は、「何をつくる」という目標もないまま始めたのでなかなか身に入らず、一本目をリリースするまでかなり時間がかかりました。
プログラミングを習得するのは先の長い話ですが、始める前にちょっと勉強の仕方や意識を変えるだけで少しずつ前に進むのかと思います。
何の習得に関しても共通して言える内容ですが、これからプログラムを覚えようという方に事前に意識したほうがよいことを書いてみます。
目次
参考書を読むことよりインストールするところからとにかく触る。
まずすぐに挫折してしまう人はソフトのインストールすらしていないことが多いように思います。例えばアプリ開発でも開発ソフトが英語だからなのかインストールの時点で読んだだけで諦めてしまうようです。
確かに初めての言語を覚える時、このちょっとした面倒臭さはよくわかります。
でも参考書を読むだけでなく、ひとつひとつ書いてあることを自分の手で実行していくのが一番です。
ちょっと億劫でもまずは参考書片手にPCと向き合うところから始めてはいかがでしょうか。
概念だけを理解してその気にならない。
時々、参考書を買って一通り読んで、概念を理解したことで目的がすり変わっちゃってる人がいます。私自身がその典型だったりもするのですが、iPhoneアプリを覚える時も、参考書を購入して読んでる間にXcode4が出て来てStoryboardとか出てきちゃって、それに対してまた参考書を買い替えるという愚行を犯してしまいました。
結局、なんとなく覚えなきゃで始めて、リリースまでの手順を把握してその気になっていただけに他なりませんでした。
最終的には作れるようになりましたが、そこまでにものすごく時間がかかりました。
たとえばエンジニアとの話が通じやすいようにという目的ならこれはありだと思います。
でも作ることを目標にするなら、概念を理解するだけでは意味がありません。
作りたいもの、作る目標を決める。
いきなりリリースできるようなもの、ではなくてその土台になるものでも良いので、汚いデザインでもなんでも作りながら覚えないとダメです。例えばお問い合わフォームでもログイン機能でもなんでも良いので、何か作りたいものの一部でも作ると良いでしょう。
そのロジックを利用して、いざ自分の目標としているサービスなりに役立てれば良いのであって無駄ではありません。
作りたいものがないのに言語だけを習得しようというのはなかなかに難しいと思います。
本当に簡単なゲームでもなんでも良いと思います。
アプリであれば、自分のスマートフォンにインストール出来て動けばどんなものでも最初は感動します。
漠然と習得を目標ではなく、作りたいものありきで始めるのが良いでしょう。
文法を覚えるというよりは、まずはコメントでシナリオを書いてみる。
初めてのプログラムということであれば、文法なんて極論を云ってしまえばifとforとwhileくらい覚えておけば何かしら作れます。文法よりはプログラムはロジックを構築することの方が難しいので、文法を覚えるのに時間をかけるなら、作るもののシナリオを作るところからでもやり始めると良いでしょう。
いくら文法ばかり覚えても実際にロジックを考えることが出来なければ意味はありません。
========
個人サービスやアプリをリリースする方が目立ってきており、デザイナーさんなどでも自分でプログラム含めて何か作りたいという方が増えているように思います。
自分にも出来るかな?というのは本当によく聞かれます。
文系出身だからとか色々とやる前に考えている方もいらっしゃいますが、あまり関係ないと思います。
プログラムというとなんだか理系な感じしますが、 実際には文系出身の方も多くいらっしゃいます。
計算式を考えるという 部分では理系っぽいですが、筋道立ててシナリオを考えるのはもしかしたら文系の方の方が得意なのかも知れません。
プログラムは自分でできたら、こんなに面白いものはありません。
もし、やってみようかな、と思っている方は今回挙げたようなことに意識して勉強してみると良いと思います。