*

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

今回は初心者がプログラミングをやるのがなぜ難しいかをしっかり書いていこうかと思います(爆)。

最近は動画コンテンツの普及などで、一般の方でもプログラミングを始める敷居は低くなってきていますね。

私が始めたのは5年ぐらい前ですがそのころからみても、初心者向けのわかりやすい動画、本が多くなってきたなと感じます。

10年以上の前にプログラミングを始めた人からみると別世界のように感じているのではないでしょうかね。

このようにプログラミングをやりやすくなっていることは事実ですが、一般の方でも簡単にできるようになるか?といわれれば私は自信をもってNoといいます(汗)

ネットをみると「プログラミングなんて独学で誰でもできる」という意見を言う人は比較的多いですが、私は疑問です。

この記事では不特定多数の学習指導経験から初心者にとってなぜプログラミングが難しいかを書いていこうと思います。

環境構築が大変

プログラミングをやる場合、まずスタートラインに立つことすら大変です。

プログラミングをする場合はそれ専用のソフトウェアを自分のPCにインストールしなくてはいけないことが多いです。この作業を環境構築といいますが、これが大変なんですよねえ・・・

GUIだけでほぼ完結するものもありますが、パスを通さなきゃいけなかったり、設定ファイルをいじらなければいけないものもあります。

ネットで情報を探してもちょっと導入方法が違ったり、バージョンが違っていたりすると、もうお手上げです。経験があれば、何となくあたりが付けられますが、初めての人間には全くわかりません(汗)。

しかもPCのバージョンが古かったりするとうまくインストールできないこともありますし、32bit/64bi版でソフトが違うとか言われても「???」になる人がほとんどでしょう。

調べても調べても意味不明な単語が増えるだけで、モチベーションは落ちる一方です。

そしてうまくインストールはできたとしても、どこにプログラムを書いて実行させればいいのかもわかりません。ネットや本の情報を頼りにすすめようにも少し前提条件違うともう動きません。

プログラミングをやろうとしたものの、スタートラインに立つことすらできずに撃沈した人は多いはずです。

プログラミングを始めてみよう!という初心者向けの本にはJavaScriptをすすめているものが多いのですが、JavaScriptを選定している理由は言語自体が入口自体は比較的簡単なことと環境構築をしなくていいからでしょうね。

私も初心者が勉強するのに良いプログラミング言語は何ですか?」を真面目に考えてみるで書きましたが、独学でとりあえずプログラミングをやるならJavaScriptは候補の1つだと思います。

エラーの嵐で撃沈

何とかスタートラインに立つことができたとしても次に初心者を待ち受けるのはエラーの嵐です。

プログラミングってコンピューターが実行しますから指示通りに書かないと動きません。一文字でも入力ミスがあると動かないんですが、これが初心者殺しになります。

初心者の場合、本のソースを写したりして勉強し始めることが多いと思うのですが、一文字のミスもなく写すことができる人は稀です。

その場合、エラー表示がでるのですが、初心者にはわかりません(汗)

経験者からみると

  • エラー箇所の行番号がでてるじゃん
  • エラーの内容が簡単な英語で書かれてるじゃん

と思うのですが、それはわかっているから言えるのであって初心者の場合、そもそもそういう現象自体をイメージできないです。

経験者の方は、自分が勉強し始めのときに悩んだことを忘れています。

私も多くの方のプログラミング指導(ソースの写経)に付き合いましたが、

  • 行末の;(セミコロン)が抜けてる
  • 文字列のクオートが抜けてる
  • 条件分岐やループの中括弧の対応がずれてる
  • 全角の空白を入れてしまった
  • 変数と文字列の結合文字が抜けてる

といった経験者であればすぐにわかるようなことで何時間も悩むということは全く珍しくありません。

慣れないと発見できないんですよね・・みなさん「ソースを何回も見て、見本と間違いないはずですが、うまくうごきません」と異口同音にいいます(汗)

自分の文章の誤字脱字に気づきにくいのと一緒です。基本的な構文エラーは環境構築を工夫することで防げますけど、初心者にそんなことはもちろんわかりません(汗)

わけのわからない概念がいっぱい

プログラミングも学習が進んでくると「1から10までを表示しましょう」みたいな基礎だけではなく、オブジェクト指向みたいは難しい概念がでてきます。

天才でない限り、これらの難しい概念を一発で理解できる人はいません。

こういった複雑な概念はある程度、こみいったプログラムを書かないと重要性がわかりません。簡単な例を出して、オブジェクト指向の概念を説明されても初心者には理解ができないことがほとんどです。

といっても複雑なソースは初心者にはわかりませんので簡単な例で説明するしかありません(爆)

基礎とアプリ作成の溝が大きすぎる

プログラミングの場合、純粋にプログラミングをやりたいというよりはWebアプリを作りたいとかソフト作成をしたいという動機があるかと思います。ただ最初の基礎の構文練習とアプリ作成の距離というのは非常に大きいです。

初心者のうちは「1から10までを表示しましょう」みたいな問題をやりますが、これをどういかしたらwebアプリが作れるかが全くイメージできません。

PHPはHTMLの中にコードをいれて実行しますんで基礎とアプリ作成の溝は比較的少ないと思うのですが、それでも多くの方にはイメージが難しいでしょう。

最近は開発環境が充実していますんで分野によっては簡単なアプリをいきなりつくることもできます。

それにしても自分が作りたいアプリやサービスを作るのにはどうすればいいか、をイメージするまではそうとうの学習期間を要します。

まとめ

一般的な未経験者がプログラミングをするのがなぜ難しいかを書いてみました。

プログラミングは決して一部の超人や天才にしかできないことではありませんが、安易にだれでもできるみたいな誇張を信じてはいけません。

この記事だけだとなにやら暗い気持ちになってしまうと思うので(汗)プログラミングをどうやってやったらいいかといった学習系のネタに関しては下記で書いたので参考にしてみてください。
初心者が知っておくべきプログラミングの学習法
プログラミングを独学で身につけるときに大切な6つのポイント
プログラミングを独学で身につけるための4ステップ(実践編)

関連記事

PHPで掲示板を作ろう!(データベース編) その2 MySQLログイン編

あ、最近はこのブログの画像に凝るようにしています。サイドバーなんかみていただくとブログのアイキャッチ

記事を読む

データを扱ってみよう その2(配列)

こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ

記事を読む

データを扱ってみよう その1(変数)

こんにちわ、松本です。 前回の記事は読んでいただけたでしょうか。私よりPHPに関して知識のある

記事を読む

プログラミング学習法「写経」について

本日は本ブログのメインテーマであるプログラミング学習について考えてみたいと思います。 今までプ

記事を読む

PHPで掲示板を作ろう!(データベース編) その6 まとめ編

今回はMySQLの第6回目の講義です。今回で終わりですので、ソースの説明と今までの解説の概略を書いて

記事を読む

PHPで掲示板を作ろう!(データベース編) その3 データベース作成編

ちょっと間隔があいてしまいましたが、今回はMySQLの講義です。 前回までの記事 PHPで掲示板

記事を読む

気を付けよう!個人事業主として働くときのトラブル

最近は開発のほうが忙しく、更新頻度が落ちているのですが、既存の記事を読んでる読者さんが多く、アクセス

記事を読む

初心者が知っておくべきプログラミングの学習法

おはようございます。松本です。 最近、体重が増えているのが悩みでして今現在71kgあります。去

記事を読む

あなたのPHPレベルを判定してみよう!未経験者限定スキル判定表

プログラムを勉強していると自分のレベルみたいなものが気になる方は多いでしょう。 私の場合も独学

記事を読む

30代、未経験者、独学中心でWEBエンジニアとして就職するまで

のっけからストレートなタイトルでスイマセン。 昨日ブログのアクセスをいろいろとみていましたが、

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

無料PHPスクール
自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑