プログラミング
要旨
プログラミング学習における核心的なテーマとアイデアを統合的に解説していくために、さまざまな視点からプログラミングというものをみていこう。成功への道筋は、単なる言語文法の暗記ではなく、明確な目的設定から始まる体系的な学習プロセスを通じて構築される。
これは要領よくやってもすぐに得ることができないが、コツコツと長くやっていくと解決するという、まあ何事も長くやっている奴には敵わないという普遍的な話だ。
学習者はまず変数、データ型、アルゴリズムといった普遍的な核心概念を深く理解する必要がある。
効率的な学習は、アウトプットを重視し、具体的な制作物を想定しイメージしながら進めることで達成される。最初は、うまくいかないことばかりかもしれないが、やっていくうちにコツをつかむポイントはいくつかある。
--------------------------------------------------------------------------------
第1章:プログラミング学習の基本戦略
プログラミングスキルの習得は、計画的なアプローチによって効率が大きく向上する。「正しい方向に正しい量を重ねた努力」こそが成果に結びつく。
1.1 学習の目的設定とロードマップ
学習を開始する前に、プログラミングを学ぶ目的を明確にすることが極めて重要である。目的によって習得すべきプログラミング言語や技術領域が大きく異なるため、「とりあえず学ぶ」「手当たり次第にやっていく」という姿勢は現代においては情報が多すぎて非効率につながる。
目的設定の例:
- WebサイトやWebアプリケーションを制作したい
- スマートフォンアプリを開発したい
- デスクトップアプリケーションを開発したい
- AI(人工知能)開発やデータ分析を行いたい
- 日常業務を自動化・効率化したい
目的が定まったら、以下の9つのステップで構成される学習フローに沿って進めることが推奨される。
| ステップ | 内容 | 解説 |
| STEP 1 | 目的を決める | どのような領域でプログラミングを活用したいかを具体化する。 |
| STEP 2 | 言語を決める | 設定した目的に合致し、かつ初学者でも学びやすい言語を選択する。 |
| STEP 3 | 教材を選ぶ | 本や動画教材などを用いて、概念を理解することに重点を置き、基礎知識を習得する。 |
| STEP 4 | 開発環境を整える | プログラミングを行うためのハードウェアとソフトウェアを準備する。 すぐに試せる状態におかないと、めんどくせえとなって試さない人になる。 |
| STEP 5 | 作りたいものをイメージする | 簡単なアプリやサイトを具体的に構想し、モチベーションを維持する。 |
| STEP 6 | 情報を集める | QiitaやYouTubeなどを活用し、実装に必要なコードや手法を収集する。 |
| STEP 7 | コードを書いてみる | 最初はコピー&ペーストを活用しつつ、とにかく動くものを作ることを目指す。 |
| STEP 8 | エラーを修正する | エラー文を検索し、解決策を見つけながらデバッグを行う。 |
| STEP 9 | 継続する | 基礎力習得には約200時間が必要とも言われており、毎日少しずつでも継続することが上達への近道となる。 |
1.2 言語選択の考え方
目的や市場の需要、学習難易度を考慮して最初の言語を選ぶことが推奨される。一つの言語を習得すると、他の言語の学習効率も飛躍的に向上する。
初学者におすすめの言語:
- Python:
- 特徴: コードがシンプルで読み書きしやすく、初学者向け。AI、機械学習、データ分析の分野で圧倒的な人気を誇る。
- 用途: AI開発、データ解析、業務自動化(スクレイピング等)、Webアプリケーション開発。
- 評価: TIOBE Programming Community Indexで2021年に2年連続で「言語オブザイヤー」に選ばれるなど、世界的に需要が高まっている。
- JavaScript:
- 特徴: Webブラウザ上で動作し、特別な環境構築なしで手軽に始められる。HTML/CSSで作成したWebページに動的な要素を追加するために使用される。
- 用途: Webサイトのデザイン、Webアプリケーションのフロントエンドおよびサーバーサイド開発、Google Apps Script(GAS)による業務効率化。
- PHP:
1.3 学習方法の選択
独学は低コストで学習を進められるメリットがあるが、挫折率が90%以上とも言われており、高い継続力が求められる。結果的にできるやつが挫折をしないでやり続けている10%ということになる。
できるまでやる。楽しくなるまでやる。何事もこれにつきる。のだが、途中で挫折してしまうには、それなりの理由もある。
さて、どういったところでハマるのか。迷路にはいり辛くなる部分を明らかにしていこう。
適度な達成感が必要である。今の時代、コンソールに Hello, Worldとか表示したところで、やったああああ!となる人は多くない。いや少ない。いやいや、いないだろう。
それこそ、ハンズオン本や学習サイトをみれば、ある程度のWEBアプリケーションを作れるところまで解説がある。
とにかく、コツコツやってみるといい。まずは、これができないのであれば向いていない。作るのは楽しいとか言っているが、それは生みの苦しみを知らなければつくることができない。楽しいだけのうちは趣味の世界を抜け出ない。
間違う自分を許しなさい。くだらないプライドをもって生きている奴ほど面倒くさい。生きるということは間違うことの方が圧倒的に多いのだ。うまくいかないことを、いかにして軌道修正して、課題解決していくかが問われるのだ。
バグは世の常、でるのがあたりまえ。ベテランでさえだすのだから、初心者はどんどん出すがよい。
プログラミングのほとんどはバグを取り除く作業が大半だから、気楽に治していこう。という気構え。でよいのだ。
どうにもならないとき、眠くなったら寝て、朝見ると大抵解決する。というくらいに経験は体の中に蓄積していく。
寝ると、頭の中のぐちゃぐちゃが整理されて、というか無駄なことは忘れ去られて大事な事だけ残るようになってくるので、勝手にレベルアップしている。
すぐには、そういったことには気が付かないかもしれないが、それが経験となる。年だけ重ねたのとの違いはここで差が出る。
できる人はつづける。と自己暗示で、操作する。これに尽きる。