プログラミング初心者は何からスタートしたらいい?挫折しないための学習法について

プログラミングを始めて学ぶ人に知っておいてほしいのが、「挫折をしない方法」です。

プログラムを書くのはスキルです。

好き嫌いや適正はありますが、諦めなければ必ず一定のレベルに達することができます。

ですから、挫折して辞めてしまうのは非常にもったいないことです。

「始めたからには始めたからには書けるようになってほしい」

そんな気持ちで今、この文章を書いています。

今回はキャラクターの対話を通して、挫折しづらい学習の進め方をご紹介します。

登場人物
藤沢真人

藤沢真人、IT業界20年のベテランエンジニアで40歳。

請負開発の会社でプログラマー、システムエンジニア、プロジェクトマネージャーとしての経験を積む。

その後、中小企業のIT支援をするために小さな会社を設立。

現在はITを活用したい会社のためのアドバイザーとして、複数の会社のコンサルティング業務を行なっている。

モットーは「すべての会社にITを」。


大船清

小さなウェブ制作会社に勤める営業マン、52歳。お願い上手のお調子者。

営業歴30年の超ベテランだが、気軽に相談しやすいことから、サイト制作以外の話もよく受けている。

ただ専門的なことはわからないので、いつも真人にお願いして困らせている。

口癖は「仲の良いお客さんだから断れないんだよ。」

目次

プログラミングの学習方法

大船さん

真人君、ちょっと聞きたいことがあるんだけど。

真人

大船さん、こんにちは。
今日はどうされましたか?

大船さん

今度、うちで新卒を採ることになったんだ。

真人

それはおめでとうございます!
活躍が楽しみですね。

大船さん

そうなんだ。
そこでプログラミングができるようになってほしくてね。

真人

大船さんのところって、社内にプログラミングを教えられる人はいなかったですよね?

大船さん

うん、そう。
だから真人君にどうやって勉強したらいいか教えてもらおうと思って。

真人

はぁ、わかりました。
大船さんところだけですからね、ここまでお話をするのは。

最初のプログラミング本の選び方

真人

まずは何か一冊、初学者向けのプログラミング本をやり通すのがいいでしょう。

大船さん

そうだね…。
最初にやるならどんな本がいいと思う?

真人

「初めての」、「一から学ぶ」、「7日間で覚える」といったタイトルがつく本ならどれでもいいと思いますよ。

大船さん

せっかくだから、具体的な本を教えてよ。

真人

うーん、学ぶプログラミング言語にもよるので難しいですね。
他に参考にするとしたら、出版年月日が新しくて、厚みがない本がいいでしょう。

真人

発売日が新しいものを選ぶ理由は、新しい情報に対応している可能性が高いので。
参考書の内容が古くて動かないということもよくありますから。

真人

そういう意味では、中古本も最初は避けた方がいいですね。
書かれている内容が今でも有効かを判断するには、ある程度の経験が必要になります。

大船さん

薄いほうがいいって話だけど、内容も薄かったりしないの?

真人

内容が薄くなることは仕方ありません。
逆にいうと、初学者がしっかりと始められるように厳選しているとも言えます。

大船さん

ふーん、そういうものかい。

真人

ええ。
それと一冊をやり切るという意味でも、最初は薄い本を選ぶことで挫折しづらくなります

大船さん

そうか。
じゃあ、簡単そうな本を何冊か購入しておくよ。

真人

そうですね…。
複数冊を購入するのはいいんですが、同時並行で進めるのはお勧めしません
特に同じ分野の本を同時にやると、著者の説明の仕方に違いがあると悩んでしまうでしょう。

大船さん

わかった。
あくまでも一冊ずつ着実にやってもらうわけだね。

真人

はい。
私ならそのようにお勧めします。

初めて学ぶなら優しい本で

これから始めてプログラミングを学ぶなら、出来るだけ簡単そうに見える本を選びましょう。

薄くて、文章が簡易で、図や絵がたくさん載っているような、そんな本をおすすめします。

始めて「やるぞ!」と思った瞬間は、辞書のような本を選びたくなりますが、やり通すだけの強い意識が必要になります。

まずは簡単な本から、「一冊できた!」という達成感を味わってみてください。

わからなくても先に進めれば、理解は後からついてくる

大船さん

参考書はそろったとして。
学習を始めてから注意することってあるかな?

真人

そうですね。
わからなくてもとりあえず先に進むことでしょうか。

大船さん

うん?
それって大丈夫なのかい?

真人

補足すると、理解ができなくても動くことを確認していれば問題ありません

大船さん

うーん、よくわからないんだが…
どういうことだろうか?

真人

多くの書籍では先に説明があり、その後にコードのサンプルが載っています。
そして章の最後に練習問題があったりします。
この辺は学校の教科書と似ていますね。

大船さん

そうだね。

真人

学校のテストは定期的にあるので、わからないまま進むというのは難しいでしょう。
点数に響きますからね。

大船さん

うん、当然だよね。

真人

でも、プログラミングの学習ではわからなくても先に進んでいいんですよ。

真人

その代わりに一度は読んで、必ずコードを書いて実行してみること。
実行結果が書籍に書いてある通りであれば、内容が理解できなくても大丈夫です。

大船さん

ちょっと受け入れ難いなぁ…。
本当にそれでいいのかい?

真人

これは私の経験則になりますが、学習しているうちに理解が深まってくるんですよ。

大船さん

そういうものかい?
心に留めておくよ。

真人

そうですね。
実際に学習を進めるとわかるんですが、先の章で理解できないところが前提になるなら、戻って学習し直す必要は出てきます

真人

正直に言えば…。
理解はできなくても使い方がわかるなら、次の学習には進めます

真人

例えば、変数の理解は浅くても、変数の宣言の仕方、代入の仕方がわかるのであれば、変数の使い方がわかると言って問題ありません

大船さん

わかるようなわからないような…。
何か他に例はないかい?

真人

それでは、料理で考えてみましょう。
例えば、包丁で野菜を切るとき、刃を下に向けて上からストンと落とせば切れるのはわかるかと思います。

真人

包丁の基本的な使い方はそれが全てです。
なぜ包丁が切れるのか、よく切れる包丁とは?入れる角度、包丁の素材、切れ味とは何か、など細部の情報に目がいくとキリがありません。

真人

料理人や包丁を作る職人になりたいなら話は別です。
プログラミングにも同じようなことが言えます。

真人

変数の学習をしていて、自分が思った通りの動きができたら問題ないんです。
ただいつか、同じやり方では動かないときが来るでしょう。
その時に改めて変数についてもっと深く学習すればいいでしょう。

大船さん

わかった。
僕はプログラミングをしないからうまく想像できないけど。

真人

そういうものだと思います。
経験がないと初めは全て理解しないといけないような気がするんです。

真人

でも学習をする目的はプログラミングができるようになることで、細部を理解してプログラミング言語を作ることじゃない

大船さん

よし、それじゃあ新人君にはどんどん進むことを意識してもらおう。

真人

ええ。
ただ繰り返しになりますけど、必ずコードを実行して結果をみてくださいね。

プログラムが動くことを体感する

プログラミングと聞くと、バリバリの理系で、ロジカルに物事を考えられる人が得意だと思うかもしれません。

そういう側面が強いのは否定しませんが、スポーツのように体感して学ぶという要素もあります。

想像できないものを理解するのは難しいですから、まずはコードを書いて動かしてみて、体験してみてください。

その後に少し戻って、「なぜこの結果になったのか」を考えると、より理解が深まるでしょう。

自分で問題を解決するチャレンジをする

大船さん

参考書が終わったら、次はどうしたらいいと思う?

真人

そうですね、何か実際に作ってもらうのがいいでしょう。

大船さん

うーん、それじゃあ社内の営業支援システムでも作ってもらうか。

真人

いいと思います。
おそらく、途中で何をしたらいいかわからなくなるでしょうけど。

大船さん

真人君、それはいいって言わないでしょ…。

真人

少し乱暴かもしれませんが、システム開発ってそういうものでして。
やることの大体が初めてなんですよ。

真人

新しいプログラミング言語に新しいライブラリ、新しいクラウドサービスを使って、やったことのない分野のシステムを作る。
もちろん、そのうち得意・不得意ができたり、専門性を高めたりといったことにはなりますけど。

真人

学習し始めの段階からチャレンジすることに慣れておくと、今後の壁にぶつかったとしても簡単に諦めてしまうことは減るでしょう。

大船さん

それでも、途方に暮れると困るよね。
もう少しぐらい方針はないの?

真人

そうですね..。
わからないなら調べるしかありません。
ネットで検索し、もし詳しい人が近くにいるなら遠慮なく尋ねる。
本屋さんにも行って、自分が解決したい課題の助けになる本を探したり、それもプログラマーが求められる技術の一つですから。

大船さん

スパルタだなぁ…。

真人

意地悪しているわけじゃないですよ。
今後、業務で壁にぶつかるとき、結局、先のような方法を駆使して問題を解決しなければいけないんですから。

覚えるべきは解決の仕方

少しプログラミングの学習をすると、膨大な情報に途方に暮れるかもしれません。

言語の基本的な文法やライブラリの使い方などは、ある程度覚えておいた方が楽ですが、全てを暗記する意味はありません

大事なのは解決の仕方を知っておくことで、調べたらわかるという状態に常にあれるようにすることです。

例えば、AWSの勉強をしておくと、他のクラウドサービスで出来ることもおおよそわかります。

概念を理解して覚えておくことで、調べたら他の技術でも使うことができるという自信を身につけましょう。

目的を持ってプログラミングをする

真人

あと、初学者がプログラミング本をやっていると、だいたい飽きるんですよね。

大船さん

ええっ、それは困るよ…。
業務時間で勉強するんだから、飽きると言われても。

真人

気持ちはわかりますが、基礎の話が多いから退屈しがちなんです。

大船さん

それじゃあ、どうすればいいんだい?

真人

目的を持ってプログラミングをすることでしょうか。

大船さん

目的?
参考書には練習問題も用意されているんだよね?

真人

ええ、でも黒い画面に文字を表示するだけのプログラムでは他人に見せづらいでしょう。

大船さん

えっ?ああ…。
それを見せられてもちょっと困るかなぁ…。
評価もしづらいし。

真人

ですから、しっかりと目的を持って作るのが大事です。
自分が作ったシステムをインターネットで公開したいなら、サーバーで動かす方法も学ばなければいけません。

真人

誰かに評価される前提で作ろうとすると、いろいろとクリアしないといけない問題に気づくんです。

真人

そう言った気づきが、新しい技術を学ぶモチベーションになります

真人

純粋に作ったものを見てほしいと言う気持ちも刺激されますからね。

大船さん

なるほど。
それじゃあ、やはり社内向けのシステムをお願いして、やる気を出してもらおう。

プログラミングを学ぶ理由を思い出す

学校で英文法を習ったとき、退屈しませんでしたか。

プログラミング言語も英語と同じように、学習するのは退屈だと思う人が多いでしょう。

しかし、もし英語を学ぶ目的が海外で活躍したいという理由だったらどうでしょう。

プログラミングも同じで、再度目的を認識すれば学ぶ意欲も湧いてくるでしょう。

焦らずに学習を続ければ必ずできるようになる

大船さん

やあ、真人くん。
ついに新人くんを雇ったよ。

真人

プログラマーとしての採用ですか?

大船さん

うん、未経験のプログラマー募集として採用したよ。
今は基礎的な学習本を進めているところ。

真人

学習の進み具合はどうですか?

大船さん

ぼちぼちだね。
初めての経験だから時間がかかるのは当然だと思ってる。

真人

そうですね。
長い目で見てあげれば、きっと良いエンジニアになれるでしょう。

大船さん

もし挫折しそうになったら君が見てあげてくれ!

真人

そのときは別料金でくださいね。

未経験でエンジニアを目指すなら

ファンブリューではエンジニアになりたい人を支援しています。

現在こんなお悩みがあれば、ぜひ一度ご相談ください。

  • プログラミングを学習したいが、何から始めたらいいかわからない。
  • IT業界に就職するために必要な知識が何かわからない。
  • 実務経験がなくて現場に入れない

金井 泰樹のアバター 金井 泰樹 FUNBREW代表

FUNBREWの代表。
新卒からIT系の企業に勤め、SES、スマホアプリ開発、自社開発の会社で経験を積んで独立。
新卒時代にエンジニアとしてのキャリアを積むのに失敗し、その後に苦労した経験から、現在教育事業の立ち上げを準備中。
強みはウェブシステム開発全般と迅速なレスポンスです。

目次