「どうすればプログラミングできるようになれますか?」
と聞かれることがある。相手は、Webデザイナーだったり、普通のサラリーマンだったり、ニートだったり、様々だが、趣味で、あるいは仕事の中でちょっとしたプログラムを組みたいと考える大人は多いようである。
裕福な学生であれば、専門学校に行くなり、その手の有料講座に通うというような事も可能だろうが、社会人やニートは暇も金もそれほどあるわけではないのでそういう訳にもいかず、入門書を書って「どうにも難しいので、途中で諦めてしまった」という事になってしまうことが多いようだ。
私に言わせれば、プログラミングを覚えるのに必要なのは「やる気」だけで、数学的素養や、才能はそれほど必要ではない。
では何故失敗するのかと言えば、彼らは総じて目標の設定とモチベーションの使い方が下手なのだと感じる。
今回は、大人がモチベーションを上手く維持しながら、プログラミングを独学で覚えるためのポイントを幾つか紹介したい。
最初に覚えるプログラミング言語は何がいい?
こういう話になると、まず「何の言語から覚えればいいですか?」という質問が飛んでくるのが決まりになっている。
結論から言うと何でもいい。
最初の言語は、あなたが今プログラムでやりたいことや解決したい問題を考えてみて、そのやりたい事が一番楽にできる(と思われる)言語を選ぶべきである。
例えば、あなたが総務課でExcelの仕事を効率化したければ、覚えるべきはExcelマクロ(VBA)であるし、あなたがWebデザイナーで、Webページにアニメーションを実装したいと考えているならJavascriptである。
よく、最初に○○はダメだ(時代遅れだ)。とか初心者向けには○○というブログや記事を見かけるかもしれないが、全部無視して構わない。
初学者が、そういう言い分を真に受けると判断を誤りやすい。例えば、私は大学時代にWindowsアプリを作りたくて、当時のスタンダードだったC++の勉強をしようとして、本を3冊ほど買ったことがあるが、最後までWindowsアプリを作れるようにはなれなかった。(C++が難しいというよりは、当時のWindows GUIの実装がC++初心者には難しかったのだが)
これはスタンダードにこだわって、言語(方法)の選択を誤った例である。今思うと、私はVisualBasicや、HSPなどのスクリプト言語を選べば良かったのである。
目標があるのであれば、それを達成するための手段は出来る限り簡単なほうが良い。プログラミング言語のシェアとか、将来性というのは(確かに大事なことだが)初学者にとっては二の次であり、どうしても気になるのであれば、最初の目標を達成してから、そちらの言語に移っても遅くはない。
また、言語を一つに絞る必要はない、だいたい簡単そうなものを2,3頭に浮かべておけば十分だろう。
どんな本を買えばいい?
あなたの目標と手段(言語)が固まったら、行ける範囲で最も大きな書店に行こう。そして書棚の本を眺めて、覚えようと思う言語の
- 初めての○○
- ○○入門
というような書名の本を片端からチェックする。見るべきポイントは優先度順で以下のようになる。
- 本の中であなたの目標に近い(またはそこに繋がりそうな)ことをやっているか?
- 最初にあなたの持っているPCにプログラム言語の実行環境をインストール(構築)する方法を解説しているか?
- ソースコードが適度に載っているか?(全く載っていなかったり、逆にほとんどのページがソースコードばかりになっていないか?)
- 見たことのない数式が沢山載っていないか?
ここでも「目標」というのが大事になってくる。もし、あなたがやりたい事が「人工知能で株の自動売買をして大儲けするプログラムを作る」ことなのであれば、多分その本は存在しないか、上記の条件を満たすことはないだろう。
つまりこれはあなたの目標が過大であることを意味している。その場合は、目標をもう少し現実的なものに変えた方が良い。
もし運よく条件を満たす本が見つかったら、すぐ確保しよう。
また、同じ言語を扱う他の本もパラパラと読み、もしあなたの目標を実現する方法が書かれているらしき本があれば、内容が1ページたりとも理解できなくとも、入門書とセットで買うべきである。その本はいずれ必要になるからだ。
どう読んでいけばいい?
入門書が手に入ったところで、やることは、まず入門書を丹念に読むことである。
普通に1ページ目から読んでいこう。だいたい入門書というのは環境構築から始まっていることが多いので、適当にググったりせず、素直にそのとおりに環境構築すべきである。
そうすれば、手を動かしながら20ページほど読み進められるはずだ。わけのわからないアプリをインストールさせられ続けたなあ、という印象だろうが、大丈夫。あなたは最初の偉大な一歩を踏み出した、と考えて良い。
次に、入門書の指示どおりにソースコードを自分のPCにそのまま手で書き写しながら動作を確認していこう。この時、必ず手を動かすこと!ざっと読んで理解した気になってはいけない。
そして、余裕があれば、ソースコードを適当に変えてみると、どういう結果になるかも見ていく。またはその結果を予測しながら、ソースコードを改変してみる、といったことをすると、かなり効果的である。
条件分岐や、ループ関数、といった分野を通過できれば、入門書の最初の50ページほどしか読んでいなくとも、ほぼ合格である。
実はこの時点であなたはある程度のプログラムが書けるようになっている。
もし、何か試してみたいことが思いつけば、最初からプログラムを書いてみよう。1から100までのうち奇数だけを出力する、とかで良い。もしそれができれば、新卒未経験のプログラマ志望者の能力は超えたことになる。(本当)
目標を分割し、本を「引く」
実は、このあたりでプログラミングに挫折する人が多い。
この先の入門書には、あなたにとってはどうでもいい「ポインタによる文字列処理」であるとか「クリックでキャラクターを爆発させてみよう」とか、そういう事が書いてあるので、興味が続かないのである。(もちろん我慢できるなら、いけるところまで読み進めてよいが)
実は今まで黙っていたが、あなたの目標までの道筋を1歩1歩案内してくれる本というのはこの世に存在しない。今までずっと道案内してくれた入門書が違う方向へ向かっているように見えるので、あなたは、いきなり道標をなくしたような気分になっているのである。
まずは、落ち着いて目標を段階的に分割しよう。困難とは分割するものだ。そして、その中で、今の時点であなたの手が辛うじて届きそうな通過点を見つけよう。できれば、その通過点は達成すればテンションが上がりそうな、楽しそうな所を思い浮かべる。
例えばあなたがやりたいことが「カーレースゲームを作る」ことであれば、「車を1台だけ画面に表示すること」ならなんとかやれそうな気がしてこないだろうか?そして、それが実現できれば結構テンションも上がるだろう。
しかしそれを実現する具体的な方法がわからない。その時、本を「引く」のである。
あなたの目標は「カーレースゲーム」から「何らかの画像(か3Dモデル)を画面に表示する」に変わった。
今度は、後者の通過点に関連しそうな項目を手元の本をパラパラめくって、辞書から単語を探すように「引く」のである。
手元の本で見つからなければ、また書店に行くなり、ググって見ても良い。見つかったとしても、本来、順に読むべき入門書を飛ばしたことになるので、理解するのは一苦労だろうが、わからないことは入門書や他の本のどこかに書いてあるはずだ。
どうにも理解できなければ、入門書をまた一から読み直すことをお勧めする。おそらく最初に読んだ時とは異なり、貪欲な読み方になっている筈である。何故なら今やあなたは「自分が何をわかっていないか」を知っており、明白な目標のために読書しているからである。これは学習における重要な進歩と言える。
1歩進んでは3歩下がるようなペースで構わないし、どこかで挫折して、しばらく放っといても良い。急かす人はいないのであるから、目標さえ覚えておけば幾らでもやり直して良いのである。とにかくあらゆる手段を使って、最初の通過点をクリアしよう。
プログラミング学習のサイクル
通過点はなんとかクリアできただろうか?おめでとう!あなたは、プログラミング学習の重要なサイクルを1回まわしたことになる。
つまり、プログラミングの学習というのは基本的な文法知識を丸覚えした以降は、
- 課題の設定
- 情報の収集(本やWeb)
- 課題の解決
の繰り返しなのである。モチベーションの話をすれば、1,2という苦しい場所を3で達成できた喜びをモチベーションにして、また次のサイクルに向かわせるのだ。
モチベーションを燃料にこのサイクルを回し続ければ、出来ることは大幅に増えていく。通過点を除々に遠くに(目標の近くに)設定して、サイクルを回せば、いずれは最初の目標を達成できる、というわけだ。
実のところ、職業プログラマも、このサイクルを日々回すことを仕事としている存在にすぎない。ただし彼らはプロであるので、「楽しい」という理由だけでサイクルを回すことが許されない。
時には「納期」や「リストラの恐怖」という負の感情を動力源にしてサイクルを回していたりする。それは、モチベーションをベースにしたサイクルよりもかなり辛くて苦しいが、それでも達成の喜びは同じである。そしてそれがプログラマの唯一の生き甲斐であり、つまりはそういう世界なのだ。
あなたが最終的にプロを目指すかは知らないが、その事は覚えておいたほうが良いだろう。
ティネクト(Books&Apps運営会社)提供オンラインラジオ第6回目のお知らせ。

<本音オンラインラジオ MASSYS’S BAR>
第6回 地方創生×事業再生
再生現場のリアルから見えた、“経営企画”の本質とは【ご視聴方法】
ティネクト本音オンラインラジオ会員登録ページよりご登録ください。ご登録後に視聴リンクをお送りいたします。
当日はzoomによる動画視聴もしくは音声のみでも楽しめる内容となっております。
【今回のトーク概要】
- 0. オープニング(5分)
自己紹介とテーマ提示:「地方創生 × 事業再生」=「実行できる経営企画」 - 1. 事業再生の現場から(20分)
保育事業再生のリアル/行政交渉/人材難/資金繰り/制度整備の具体例 - 2. 地方創生と事業再生(10分)
再生支援は地方創生の基礎。経営の“仕組み”の欠如が疲弊を生む - 3. 一般論としての「経営企画」とは(5分)
経営戦略・KPI設計・IRなど中小企業とのギャップを解説 - 4. 中小企業における経営企画の翻訳(10分)
「当たり前を実行可能な形に翻訳する」方法論 - 5. 経営企画の三原則(5分)
数字を見える化/仕組みで回す/翻訳して実行する - 6. まとめ(5分)
経営企画は中小企業の“未来をつくる技術”
【ゲスト】
鍵政 達也(かぎまさ たつや)氏
ExePro Partner代表 経営コンサルタント
兵庫県神戸市出身。慶應義塾大学経済学部卒業。3児の父。
高校三年生まで「理系」として過ごすも、自身の理系としての将来に魅力を感じなくなり、好きだった数学で受験が可能な経済学部に進学。大学生活では飲食業のアルバイトで「商売」の面白さに気付き調理師免許を取得するまでのめり込む。
卒業後、株式会社船井総合研究所にて中小企業の経営コンサルティング業務(メインクライアントは飲食業、保育サービス業など)に従事。日本全国への出張や上海子会社でのプロジェクトマネジメントなど1年で休みが数日という日々を過ごす。
株式会社日本総合研究所(三井住友FG)に転職し、スタートアップ支援、新規事業開発支援、業務改革支援、ビジネスデューデリジェンスなどの中堅~大企業向けコンサルティング業務に従事。
その後、事業承継・再生案件において保育所運営会社の代表取締役に就任し、事業再生を行う。賞与未払いの倒産寸前の状況から4年で売上2倍・黒字化を達成。
現在は、再建企業の取締役として経営企画業務を担当する傍ら、経営コンサルタント×経営者の経験を活かして、経営の「見える化」と「やるべきごとの言語化」と実行の伴走支援を行うコンサルタントとして活動している。
【パーソナリティ】
倉増 京平(くらまし きょうへい)
ティネクト株式会社 取締役 / 株式会社ライフ&ワーク 代表取締役 / 一般社団法人インディペンデント・プロデューサーズ・ギルド 代表理事
顧客企業のデジタル領域におけるマーケティングサポートを長く手掛ける。新たなビジネスモデルの創出と事業展開に注力し、コンテンツマーケティングの分野で深い知見と経験を積む。
コロナ以降、地方企業のマーケティング支援を数多く手掛け、デジタル・トランスフォーメーションを促進する役割を果たす。2023年以降、生成AIをマーケティングの現場で実践的に活用する機会を増やし、AIとマーケティングの融合による新たな価値創造に挑戦している。
ご視聴登録は こちらのリンク からお願いします。
(2025/7/14更新)
【プロフィール】
著者名:megamouth
文学、音楽活動、大学中退を経て、流れ流れてWeb業界に至った流浪のプログラマ。
ブログ:megamouthの葬列