プログラミング歴3ヶ月の旧帝大卒の私が思う効率的な学習の7つの心得
皆さんはプログラミングはできますか?
私は残念ながらプログラミングとは縁のない人生を送ってきましたので全然できません(泣)
しかし、これからの人生でプログラミングを含めたIT関連の知識があるがあるということはかなり重要だと思って一念発起し、前職を辞めました。
(関連記事:ITが仕事を奪っている世の中でITを学ばないのはどうなの?)
3年位ニートするお金はあったので、ブログとかを書きつつITの勉強しようかなぁなんてことを考えていたのですが、調べてみるとプログラミング市場は人が足りないから、プログラミング経験がなくても雇ってもらえるというではありませんか!
(関連記事:プログラミング学習ができておまけにお金が貰える!?ニートのマル秘学習法!)
私の考えとしては、「IT企業で働けば誰かにプログラミングを教えてもらいながら、お給料も貰えてかなりお得だなぁ」みたいなことを思って就職を決意しました。
しかし入社してから就職する企業を失敗したと思いました。
私が勤めている会社は、私と社長以外はみんな派遣で客先に行っており、私が話をできる人は社長しかいません。
その社長もIT企業の社長のくせして、プログラミングは20年以上勉強していないというかなり怠惰な人で、プログラミングで分からないことを相談なんかした日にはコードも見ずに話してくるので、さらに迷宮入りしてしまいます(笑)
そういうわけで3ヶ月間はほとんど自分で学習しました。
そんな私ですが、苦労しながらもなんとかちょっとしたプログラムを作ることができるようになりました。
ほぼ一人でプログラミング学習をしてきた私が思う効率的にプログラミング学習をしていく心得を説いていきます。
私もまだ初心者の段階ですが、こういう話は初心者だった頃を忘れたプログラミングのプロたちよりも初心者の私の方が、プログラミング未経験者に近い立場で話をするので確信めいた話ができると思います。
私のように苦労しないように、この記事がこれからプログラミングを学習していく人の助けになったら幸いです(^^)
Sponsored Link
私のスペック
これからプログラミングを始める、あるいは始めたてという人のために私のスペックを書いておきます。
- ITとは全く関係ない人生を28歳まで送る
- 28歳からニートになり、ちょこちょこブログを書き始める(ブログに最低限必要なHTML,CSSはこの時期に学習)
- プログラミングを学習するためにトライアル雇用で就職(関連記事:プログラミング学習ができておまけにお金が貰える!?ニートのマル秘学習法!)
- ニート生活約1年に終止符を打ち、小さいIT企業に3ヶ月前に就職
- パソコンは普段からネットを使ったり、wordやexcelを使う程度の能力しか持っていない
IT企業に就職する前は本当に何もプログラミングというものをやってきたことはありませんでした。
excelでSUM関数を使えるくらいのものでした笑
そんな私が、「こうやったらもっと効率的だったなぁ・・」「こういう学習環境だったら挫折しないだろうなぁ・・」「最初からこういうのを知っておきたかった!」なんて思ったことを次に書いていきます!
プログラミング学習の心得
心得1:挫折しないために本選びがかなり重要
プログラミング学習では本選びが本当に重要です!プログラミング学習を挫折せずに続けられるかどうかは7割が本選びで決まると言っても過言ではありません!
まぁ何かを学習しようと思ったら本選びが重要というのは何でも同じなのかもしれませんが、プログラミングの本選びに関しては他の参考書選びよりもちょっとしたコツがいるなぁと私は思ったわけです。
他の参考書選びとプログラミングの参考書選びで何が違うかというと、その参考書が「どのレベルの人に向けて書かれた本なのか?」というのが明確に書かれていないことが多いのです!
例えば、Javaというプログラミング言語があるのですが「初めてのJava」なんて本があったとしたら、「初めてプログラミングを学ぶ自分にとってはわかりやすそうでいい本かもしれない。レビューでもいい本だって書かれているし、これを買えばいいだろう!」なんて思ってしまうかもしれません。
しかし、そういう買い方をするとプログラミング学習で挫折する可能性が高いでしょう。
なぜならば「初めてのJava」という本はC言語のような他の言語を学んだ人がJavaという言語を初めて学ぶための本かもしれないのです。
人間が話す言語は日本語や英語、スペイン語など数千種類にものぼるそうです。
プログラミングは言語はそこまでの種類はありませんが、それでも数百種類もあるようです。
しかし、プログラミング言語はすべての言語に共通する概念や考え方が存在します。
C言語のような他の言語を学んだ人がJavaという言語を初めて学ぶための本では、すべての言語に共通するような概念や考え方を簡略化して書かれている場合が多いので、そういう本をプログラミング未経験者の方が手に取ってしまった場合はわけが分からず挫折してしまうのです。
そうならないためにも、本選びには時間をかけた方がいいでしょう。
できることなら、実際に本屋に行き、レビューを見ながら自分のレベルに合った本を探すというのがいいでしょう。
私もたくさんの本を読んだというわけではないですが、プログラミング初心者にはとりわけいいだろうという本を紹介します。
(プログラミング未経験の自分が挫折しなかったPHPの本です)
いきなりはじめるPHP~ワクワク・ドキドキの入門教室~と気づけばプロ並みPHP 改訂版--ゼロから作れる人になる!
は学習するというよりも、「プログラミングって楽しいでしょ!?」ということをプログラミング未経験者に教えるということに主眼をおいた本になっています。
その為、実際にプログラムを作る中で、必要な文法でしたり概念を学んでいくことができます。
プログラミング未経験者あるあるだと思うのですが、プログラミングを本で学んでいると「なんでわざわざ変数を使うの?」「なんでオブジェクト指向とか面倒くさい概念が存在するの?」とか疑問がたくさん生まれてくると思います。しかし、そういった部分の説明がないまま進んでいくので、ますますわからなくなります。
この本の場合は、実際にプログラムを作って、こういうもの(文法)を使うと便利に書けますよといった感じで進んでいくので、プログラミングの概念や考え方がすんなりと入ってきます。
また、著者の谷藤健一さんは初心者が躓きやすいポイントをかなり理解している作者なようで、そういった部分はかなり詳しく説明してくれています。
実際に読んでいて、私はこの本は躓くことなく読むことができました。
「いきなりはじめるPHP」の方は本当に初歩の初歩しか学ばないので、この本だけでは初心者本としても不十分な知識しか手に入りません。初心者には難しい部分は説明を省略したりしていますからね。
しかし、とにかく躓かないようにということを意識して執筆された本なので、他の本で躓いたりした人はこの本を手に取るといいでしょう。
「気づけばプロ並みPHP 改訂版」の方もレビューを見ると少し低かったので、買うか悩みましたが、「いきなりはじめるPHP」と同様、本当の初心者にはかなり分かりやすい良書です。
もしかしたら後者の本からいきなり始めても大丈夫かもしれません。
自身のない方は前者から読んだ方がいいですが(笑)
そしてこれらの本を読んだあとに、きちんと文法や概念が詳しく書かれたような本を読むと、かなり効率よく内容を吸収することができます。
心得2:とにかく1つの言語を徹底的にやる
あなたがプログラミング言語を自由に学習できる環境にあるのであれば、(最初のうちは)できるだけ言語は一つに絞った方がいいです。
私はそこを誤り大きく躓きました。
私もプログラミング未経験者だったので、プログラミングの学習方法がわからないままプログラマー派遣会社に就職しました。
私が働いている会社の社長はとにかくバカなので、プログラミング未経験者を育てるノウハウもありません。
ただ、「PHPの勉強やってみる?」「ちょっとUnity(C#)やってみてよ」「VBA覚えてみる気はありませんか?」「swiftでアプリを作ってみてくださいよ」「Zend Frameworkをやってみなさい」「ちょっとwordpressでホームページ作ってみてください」なんてことを言って自分が読んだこともない本を私の前に置きます。
(上の横文字が分からない人は、とにかく様々な言語をやらされたと思って下さい)
私の勤めている会社の社長はバカなので、「プログラミング言語の考え方や概念は似ているからどの言語でもできますよ」と言います。
私も何もわからないままプログラミングの世界に足を踏み入れてしまったので、「そんなものなのかな?」と思って言われるままに学習してきました。
そして、3ヶ月経った今ならわかります。「プログラミング言語の考え方や概念は似ているから、それを習得するまでは1つの言語を徹底的にやるべきである」と!!
考えてみたらそうですよね。
フランス語とスペイン語、ポルトガル語はラテン系言語で文法が似ているからと言って同時には勉強しないですよね?
効率のいい勉強法というのは、まずはフランス語と決めたらフランス語だけを勉強して、ある程度文法を学び話せたり使いこなせるようになってから次の言語を学ぶというやり方です。
そうすると、フランス語とスペイン語の比較などもできるようになり、より学習効率が高まります。
しかし、同時に上記3ヶ国語の学習を始めてしまうと、それぞれの単語が混ざったりして混乱しますし、すべての言語が中途半端になって結局どの言語も喋ることができなくなってしまいます。
効率よく学習したい方はとにかく1つを選んで徹底的に学習するようにしましょう。
心得3:記事や本を読むだけでは覚えられない!とにかくコードを書くこと!
プログラミングの本は厚いことが多いので、ついつい読み進めるだけでコードを書かないということをしがちです。
実際の現場では、自分でコードを書いていくというよりもコピペが主流だったりするので、コードを書くというのは効率が悪いし、実務に即したやり方ではないと言う方もいるかもしれませんが、そういうのが許されるのはある程度プログラミングを習得した人だと私は思います。
初心者のうちはとにかく書いていくことが遠回りなようでプログラミング習得の近道だと思います。
理解したようでも実際に自分が使えるかというと使いこなせないことの方がほとんどです。
実際に書いている中で、ただ読むだけでは疑問に思わなかったことを疑問に感じることも多いです。
そして、書いていく中でプログラミングの難しい概念が理解できるようになるということもあります。
とにかく自分で書く→エラーを出す→修正するということを何度も経験して覚えていきましょう。
心得4:プログラミングの相談をできる人がいるということがとにかく大事
プログラミングで自分が想像したようなことを実現させようとすると、必ず壁にぶち当たります。
そしてこの壁がかなり厄介な時があります。
なんせ自分が想像したようなことを実現させようとする場合、どういった手順を踏まえて実現させればいいのかということが分からないということが往々にしてあります。
プログラミングは実現させたいことを分解して考えなくてはいけません。
「Aという本を持つ」という単純な動作にしても、Aという本を探す→Aという本を見る→脳がその本をAと認識する→「Aの本を持て」と脳が体に信号を送る→Aという本を持つなんて分解をして考える必要があるのです。
こういったことに関しては、本で検索するというのはかなり難しいことでしょう。あなたが実現しようとしていることがそっくりそのまま本に書いてあるならいいですが、そんなことはかなり稀なケースです。
また、ネットでの検索も容易ではありません。ヒントになる情報は落ちているものの、その情報が初心者の知識レベルでは書かれていないことがほとんどです。
さらに、実現しようとしていることの手順が分解できていないと、調べても情報がそのまんまないという問題もあります。
行き詰まったときはプログラミングの知識がある人に相談して、導いてもらわなくては辛い場面が多々あります。
なので、相談できる人というのを何処かで用意するといいでしょう。
私の話をさせて頂くと、会社内では私とプログラミングができない社長がいて、誰にもコードの書き方を相談できない状況が続いていたのですが、ある日バイトで優秀な人が働きに来ました。
その人に相談したところ、行き詰まっていた仕事がみるみる進んでいきました。
このときに、プログラミング学習における、相談できる人の必要性を強く感じました。
私の場合はちょっと入社した会社にデキる人がいなかったですが、普通の会社であればデキる人は必ずいることでしょう。
ちゃんとプログラミングの世界で生きていくのであれば、未経験でも給料をもらいながら雇って育ててくれるトライアル雇用がいいと思います。
(関連記事:プログラミング学習ができておまけにお金が貰える!?ニートのマル秘学習法!)
また、未経験でもバイトとして雇ってくれるところはあるので、あなたの住んでいる地域の求人情報をハローワークだったり、アルバイトEXで検索して探すのがいいでしょう。
また、勤務しながら学習したいということであれば、TechAcademy [テックアカデミー]などで、オンラインのプログラミングスクールがいいかもしれません。
あと、私もかなりお世話になっているのですが、お金を書けたくないということであれば、プログラミング特化型のQ&Aサイトteratailで質問するのもオススメです。
プログラマーのyahoo知恵袋といえばいいでしょうか?
日常のわからないことを検索するとyahoo知恵袋がよく引っかかるように、プラグラム系で分からないことを検索すると、teratailがよく引っかかります。
私は今のところ3回質問して2回返信があり、問題が解決しました。全体では90%以上の返信率らしいです。
どうせ利用することになるでしょうから早めに登録しておくのがいいかもしれません。
こういった便利なサービスがたくさんあるので、有効活用するようにしましょう!!
心得5:動画を上手く活用する
初心者の勉強法として「動画で勉強する」という方法が勉強法の1つとして挙げられます。
私も動画で勉強するということは効率的だと思い、ドットインストールに登録しました。
半分程度のレッスンは無料で視聴できます。
中々良いサービスかなぁと思って月額980円を払い、有料会員登録もしています。
Swiftを学習したかったんですが、有料会員登録をしないと見れない講義が多かったんですよね~(泣)
有料会員になってから思ったのですが、ドットインストールの講義は短く簡潔にまとめられいる分、何か一つの言語をマスターしたような人が、ドットインストールで別の言語を勉強するというのには最大限の効果を発揮します。かなり費用対効果が高いです。
しかし、プログラミングを全くやったことのない人には公式や概念を理解するには少し言葉足らずです。
実際に私は理解できない概念を何回も繰り返し聞いたのですが、やはり理解できませんでした。(私がバカなだけかもしれませんが・・)
さらに、この記事を読んでくださっている方が、私のように理解が遅い人の場合は、講義という形式の勉強法は向いていません。
本やネット記事の方が自分のペースで学習ができて効率がいいのです。
なので、プログラミング未経験者がプレミアム会員になるというのは少し考えた方がいいかもしれません。
ただ、実際に現役のプログラマーがコードを書いている姿というのを見れるのは結構貴重です。
あなたが勉強している言語が無料で視聴できるのであれば、本などの学習と合わせて動画を見ると、覚えが早いので積極的に活用するべきです。
また、動画学習はプログラミング学習はちょっと非効率ですが、環境構築やツールの使い方などに関しては抜群に効率のいい学習法です。
例えばSwift言語に使用するXcodeやゲーム開発に使うUnity、モデリングソフトのblenderといったものはツールを使いこなすのも一苦労です。
(blender入門はドットインストールにはありませんが笑)
ツールを使いこなす方法を学習するのであれば、動画学習ほど効率の良い学習はないと断言できます。
ツールを使いこなすというのは「このツールを使うとこんなことができるよ」「それを実現するにはここにあるボタンを押すんだよ」という単純なものなので、本とにらめっこするよりも、動画で見た方が抜群に効率がいいというのは理解できますよね?
その辺を天秤にかけ、どのタイミングで有料会員になるのか判断するようにしましょう。
心得6:急がば回れ!最初はサンプルコードを真似する
プログラミングを始めるときに、「こんなサービスやサイトが世の中に合ったらいいのになぁ。誰も作らないなら自分が作るか!!」なんて気持ちで始める方もいるかもしれません。実は私もちょっとそんなことも思いつつ、プログラミングを始めました。
最初はいきなり自分のイメージを形にしようと頑張っていましたが、全く知識のない段階で、いきなり何か始めるというのはハードルが高いと今は思っています。
急がば回れで、最初はいろんなサンプルコードを真似したり、理解するというのが近道です。
たくさんの優秀な人のコードを眺めたり書いたりするようにしましょう。
人のコードを探すのに便利なサービスはGithubです。
GithubはプログラマーのSNSです。
オープンソースという考え方の元、自分で書いたコードを公開している人がたくさんいますので使わない手はありません!
どんどん人のコードを参考にしましょう。
また今は詳しく説明しませんが、Githubは自分が作成している(アプリ等の)プロジェクトをバージョン管理(保存)するのにとても便利なサービスですので、いづれ使うことになるでしょう。
現代のプログラマーにとってGithubというサービスは欠かすことができないと言っても過言ではありません。ですので、早めに登録しておきましょう。
心得7:何故こんな概念が存在するのかを考えないことも重要
プログラミングを勉強していると、どうしても未経験者には理解が難しい概念などに出くわすことがあります。
例えば、オブジェクト指向なんていうのはやはり理解が難しい概念だと思います。
参考書を読んでいるとたくさんオブジェクトなんて言葉が出てくるので、「オブジェクト指向については早く理解しなくては!」なんて思い、ネットで調べたり本を読み漁ったりいろんなものを利用して学習しました。
しかし、それでもやはりいまいちピンと来ませんでした・・
そういうときは、一度理解を諦めるというのが正解です。
なんとなーくで理解していれば大丈夫です。
現役のプログラマーでもきちんと理解していない人がいるくらいなんですから(笑)
自分でちょっとしたものを作ったり、人のコードを読んでいる中で、ふと「なるほど!オブジェクト指向ってこういう便利さがあるのか!!」なんて思う日が来ます。
初心者の段階で無理に理解しようとするのは、レベル3でドラクエのラスボスに挑むようなものです。
まだ経験値が足りないので、ことごとくやられてしまうでしょう。
なので、初心者の段階で無理に理解しようとせず、経験値を積んで出直しましょう!
さいごに
いかがだったでしょうか?
「自分が初めてプログラミングを勉強するときにこういうアドバイスをしてくれる人がいたらなぁ~」なんて思ったことを詰め込みました。
これから勉強する人の参考になれば嬉しいです(^^)
~~~~~~~~~~~~~~~~~~~~~
このブログはランキングサイトに登録しています。
役立つ情報があったと思ったらクリックお願いします。

生活・文化 ブログランキングへ

にほんブログ村

FC2 ブログランキング
Sponsored Link
プログラミング歴3ヶ月の旧帝大卒の私が思う効率的なプログラミング学習

最強棋士 羽生善治さんの記憶術!!

日経新聞は無料で読める

授業を聞いていなくても問題なし!?この参考書で現役合格!!

高3夏から受験勉強を始めて現役で旧帝大に受かった私の勉強法

プログラミング学習ができておまけにお金が貰える!?ニートのマル秘学習法!
