プログラミングが初心者にとって難しい4つの理由

今回は初心者がプログラミングをやるのがなぜ難しいかをしっかり書いていこうかと思います(爆)。
最近は動画コンテンツの普及などで、一般の方でもプログラミングを始める敷居は低くなってきていますね。
私が始めたのは5年ぐらい前ですがそのころからみても、初心者向けのわかりやすい動画、本が多くなってきたなと感じます。
10年以上の前にプログラミングを始めた人からみると別世界のように感じているのではないでしょうかね。
このようにプログラミングをやりやすくなっていることは事実ですが、一般の方でも簡単にできるようになるか?といわれれば私は自信をもってNoといいます(汗)
ネットをみると「プログラミングなんて独学で誰でもできる」という意見を言う人は比較的多いですが、私は疑問です。
この記事では不特定多数の学習指導経験から初心者にとってなぜプログラミングが難しいかを書いていこうと思います。
環境構築が大変
プログラミングをやる場合、まずスタートラインに立つことすら大変です。
プログラミングをする場合はそれ専用のソフトウェアを自分のPCにインストールしなくてはいけないことが多いです。この作業を環境構築といいますが、これが大変なんですよねえ・・・
GUIだけでほぼ完結するものもありますが、パスを通さなきゃいけなかったり、設定ファイルをいじらなければいけないものもあります。
ネットで情報を探してもちょっと導入方法が違ったり、バージョンが違っていたりすると、もうお手上げです。経験があれば、何となくあたりが付けられますが、初めての人間には全くわかりません(汗)。
しかもPCのバージョンが古かったりするとうまくインストールできないこともありますし、32bit/64bi版でソフトが違うとか言われても「???」になる人がほとんどでしょう。
調べても調べても意味不明な単語が増えるだけで、モチベーションは落ちる一方です。
そしてうまくインストールはできたとしても、どこにプログラムを書いて実行させればいいのかもわかりません。ネットや本の情報を頼りにすすめようにも少し前提条件違うともう動きません。
プログラミングをやろうとしたものの、スタートラインに立つことすらできずに撃沈した人は多いはずです。
プログラミングを始めてみよう!という初心者向けの本にはJavaScriptをすすめているものが多いのですが、JavaScriptを選定している理由は言語自体が入口自体は比較的簡単なことと環境構築をしなくていいからでしょうね。
私も初心者が勉強するのに良いプログラミング言語は何ですか?」を真面目に考えてみるで書きましたが、独学でとりあえずプログラミングをやるならJavaScriptは候補の1つだと思います。
エラーの嵐で撃沈
何とかスタートラインに立つことができたとしても次に初心者を待ち受けるのはエラーの嵐です。
プログラミングってコンピューターが実行しますから指示通りに書かないと動きません。一文字でも入力ミスがあると動かないんですが、これが初心者殺しになります。
初心者の場合、本のソースを写したりして勉強し始めることが多いと思うのですが、一文字のミスもなく写すことができる人は稀です。
その場合、エラー表示がでるのですが、初心者にはわかりません(汗)
経験者からみると
- エラー箇所の行番号がでてるじゃん
- エラーの内容が簡単な英語で書かれてるじゃん
と思うのですが、それはわかっているから言えるのであって初心者の場合、そもそもそういう現象自体をイメージできないです。
経験者の方は、自分が勉強し始めのときに悩んだことを忘れています。
私も多くの方のプログラミング指導(ソースの写経)に付き合いましたが、
- 行末の;(セミコロン)が抜けてる
- 文字列のクオートが抜けてる
- 条件分岐やループの中括弧の対応がずれてる
- 全角の空白を入れてしまった
- 変数と文字列の結合文字が抜けてる
といった経験者であればすぐにわかるようなことで何時間も悩むということは全く珍しくありません。
慣れないと発見できないんですよね・・みなさん「ソースを何回も見て、見本と間違いないはずですが、うまくうごきません」と異口同音にいいます(汗)
自分の文章の誤字脱字に気づきにくいのと一緒です。基本的な構文エラーは環境構築を工夫することで防げますけど、初心者にそんなことはもちろんわかりません(汗)
わけのわからない概念がいっぱい
プログラミングも学習が進んでくると「1から10までを表示しましょう」みたいな基礎だけではなく、オブジェクト指向みたいは難しい概念がでてきます。
天才でない限り、これらの難しい概念を一発で理解できる人はいません。
こういった複雑な概念はある程度、こみいったプログラムを書かないと重要性がわかりません。簡単な例を出して、オブジェクト指向の概念を説明されても初心者には理解ができないことがほとんどです。
といっても複雑なソースは初心者にはわかりませんので簡単な例で説明するしかありません(爆)
基礎とアプリ作成の溝が大きすぎる
プログラミングの場合、純粋にプログラミングをやりたいというよりはWebアプリを作りたいとかソフト作成をしたいという動機があるかと思います。ただ最初の基礎の構文練習とアプリ作成の距離というのは非常に大きいです。
初心者のうちは「1から10までを表示しましょう」みたいな問題をやりますが、これをどういかしたらwebアプリが作れるかが全くイメージできません。
PHPはHTMLの中にコードをいれて実行しますんで基礎とアプリ作成の溝は比較的少ないと思うのですが、それでも多くの方にはイメージが難しいでしょう。
最近は開発環境が充実していますんで分野によっては簡単なアプリをいきなりつくることもできます。
それにしても自分が作りたいアプリやサービスを作るのにはどうすればいいか、をイメージするまではそうとうの学習期間を要します。
まとめ
一般的な未経験者がプログラミングをするのがなぜ難しいかを書いてみました。
プログラミングは決して一部の超人や天才にしかできないことではありませんが、安易にだれでもできるみたいな誇張を信じてはいけません。
この記事だけだとなにやら暗い気持ちになってしまうと思うので(汗)プログラミングをどうやってやったらいいかといった学習系のネタに関しては下記で書いたので参考にしてみてください。
初心者が知っておくべきプログラミングの学習法
プログラミングを独学で身につけるときに大切な6つのポイント
プログラミングを独学で身につけるための4ステップ(実践編)
関連記事
-
-
バグをゼロに近づけるテスト手法とは?
私は去年のはじめまではPHP、去年の春~年末はJavaScript、今年からはJavaを触っています
-
-
エディタを使いこなそう
PHPでプログラミングを始めるためにはXAMPPのインストールともう一つエディタというソフトをそろえ
-
-
30代、未経験者、独学中心でWEBエンジニアとして就職するまで
のっけからストレートなタイトルでスイマセン。 昨日ブログのアクセスをいろいろとみていましたが、
-
-
オブジェクト指向 その2 「設計図」と「部品」
それではオブジェクト指向を具体的に解説していこうと思います。といっても、天才でない限り、初学者でいき
-
-
どんなプログラマが身につけておいても損はない重要なスキルとは?
のっけからストレートなタイトルですいません。 ちょっとあおり気味なタイトルですが、今日紹介する
-
-
ドキドキ本番リリース時に大切な心構え
今回はエンジニアにとって大切な本番リリースについて。 本番リリースというのはいままで開発環境(
-
-
JavaScriptとPHPの違い
お問い合わせフォームと指導者ネタを更新中なのですが、先日セミナーにお越しいただいた受講生の方にPHP
-
-
プログラミングを独学で身につけるときに大切な6つのポイント
さきほど「プログラミング」で検索キーワードをかけたら入力補完で「プログラミング 入門」や「プログラミ
- PREV
- サービスを売るのに必要な能力
- NEXT
- 理論と実践のバランス