プログラムは難しい…ぼくには向いてない
私はプログラム開発の現場で仕事をして15年目になります。VBからはじまりPerl,PHP,Javascript,Objective-C,C++,Swiftと様々なプログラム言語を学び仕事をしてきました。経験は少なくはないと思います。
私も学び始めて、はじめの3ヶ月くらいはなにもできない状態でした。情報系の学科出身でもない私は全くの素人からのスタートです。
新卒で入社した状態で、すぐあきらめることもできず自分のセンスのなさ、頭の悪さと悩みました。ただただ途方に暮れ、絶望の時間だけを過ごしていたのを覚えています。
結論からいうとやり方が悪かっただけです。今言えるのは、必ずしも、熟練者や本の言う通りの一本道しかないということはありません。無駄な勉強や考えがありました。難しくないプログラミングの学び方があり、それを知りませんでした。
プログラミングの難しさとは、このあたりの理由があるからだと思います。
・覚える事が多い
・ぜんぶ英語で苦手
・本をみても自分で作っていける気がしない
・プログラミングするための環境構築が難しい
・プログラミング言語がたくさんある
・分からないことだらけ。もううんざり
・エラーばかり。動かない。
・基礎学習が意味不明。なんの役に立つの?
これじゃあうまく進められるわけもないです。好きになれるわけありません。WEB制作現場の上でもプログラミングが難しいという話をよくきいています。
ここではこの「難しい理由」を「難しくない理由」に変えました。私なりの回答を出していきたいと思います。難しい理由がなくなれば、ずっと学習は楽になるはずです。またスムーズに学習できるのではないでしょうか。
覚える事が多い
◎基礎とは~
◎データベースとは~
◎オブジェクト指向とは~
◎セキュリティとして~
一冊の本をみるこのあたりも重点的にカバーしていたりします。
こんなに基礎があるの?
各項目は無理そうなら、一旦おいておいて構いません。問題ありません。本では、いきなり一通りを説明しているだけです。一度にすべて把握することはありません。
誤解を与えている書物が多い業界です。できるところからで構いません。そしてこれらすべて駆使してプログラム開発するのはベテランプロのエンジニアの仕事レベルです。いきなりそこへ到達することは求められません。
なにより暗記する必要はありません。断片的にどれか頭に入っているでしょう。
「そんなこといってたページあったな…」
これでOKです。そこで、本を何度でも見ていいのです。わたしも今でも見ています。その時に問題にあたって苦労して対処して、そのわずかな箇所をすこし覚えていきます。それを繰り返しているのであって、それなりに時間がかかる作業なのです。
ぜんぶ英語で苦手
こればっかりは仕方ないです。プログラムは英語が基本です。しかし、どれもこれもの英単語を暗記することはありません。
前述にもある内容になりますが、何度でも調べることができます。難しめに見えるコード(英文)もおまじないのような定型文もあって、乗ってるだけだったりして惑わしてきます。怖い顔しているだけです。
私も英語ができません。処理的な理解が必要であり、英語の得手不得手は影響がありません。
本のように、自分で作っていける気がしない
はじめはサンプルプログラムをなぞったりして学習します。その内容のレベルをいきなり求められることはありません。
部分的な追加や変更からはじめてください。ちょっと日本語の書いてある箇所の日本語を変えてみるなどしてみてください。動かした後に出てくる日本語が変わるでしょう。
どこをいじるとどこが変わる。そんな感じです。その次にその周りの英文(コード)をネット調べてみてください。使い方の例がでてきます。もう、こんな感じで少しづつです。
バラバラにして、部分的にほんのちょこっとずつ、理解を前進させていきます。すべてを一度には無理です。思考として「内容の全てを理解し、コードを1からかけなければならない」と思い込みがちです。そんなこと無理、私ならパンクします。悲観することはありません。
プログラミングするための環境構築が難しい
今でも難しいです。サーバーの環境などは管理者がいて、各個々の設定もあったりするのでプログラムがすっきりと動かないこともあります。設定項目も基本的なことしか、私もわかっていません。トラブルもあります。毎度エキスパートを呼び、数時間要することもあります。
もし何かのプログラムをこれから始めたい人が、いきなり環境でつまずいてあきらめてしまうのなら、取り組むプログラム言語を替えてみたほうがいいかもしれません。自分のミスのようにとらえてへこむ必要はありません。向いてないなぁなどと考えてしまいました。私はそうでした。環境構築は難しい場合が多いです。
プログラムをこれから始めたい初心者のかたにはPHPをおすすめしております。
理由 >> プログラミング学習・PHPがはじめやすい理由
最近のレンタルサーバーはPHPならほとんどインストール済みです。すぐ動きます。入門者レベルならまったく問題ありません。このブログシステムくらいは作れます。
環境に悩まされにくい言語のPHPがおすすめです。
プログラミング言語がたくさんある
たくさんあってどれが自分にいいのかわからないことがあります。
人気にあるところで大まかには
ホームページ/Webサービス:HTML、CSS、JavaScript、RubyまたはPHP
AI(人工知能): Python
スマホアプリ:JavaまたはSwift
ゲーム:C、C++,C#
などに分類できるかと思います。
HTML、CSSはホームページなど画面を作成します。プログラミング言語となるとJavaScript/Ruby/PHPが初心者の方にはわかりやすい方と思います。求人需要も高く、人気のプログラミング言語でおすすめです。
分からないことだらけ。もううんざりする
なにからなにまで見たこともない、読めない文字の壁でうんざりします。私でも初めは同じです。象形文字のほうがよっぽど読めるでしょう。
調べながら一部分ずつです。暗号の解読のように少しずつ進むものです。時間がかかります。できなくて当たり前です。
無理そうな箇所は一旦おいておいてください。問題ありません。本などではいきなり一通りを説明しているだけです。一度にすべて把握することはありません。
部分的な追加や変更からはじめましょう。15年目の私でも同じです。ちょっと日本語の書いてある箇所の日本語を変えてみるなどしてみてください。浅いところから解読をすすめましょう。
エラーばかり。動かない。
書いてもエラーがでてきて動きません。なんて書いてあるのか、何がわるいのかもわかりません。エラー文とは違う箇所が問題を引き起こしている場合もあります。
プログラムとは、とても敏感なものです。ブレーキに問題がある車なら、いっそエンジンが動かないほうが安全だと思いませんか。コードがしっかり書かれていなければ一切動かないのは、それを同じです。そうすることで守られている仕様なのです。
そういう世界で動いているものです。慣れです。慣れには時間がかかるものです。できなくて当たり前のものです。
ちなみにPHPは初心向けの言語のため、多少のゆるい書き方を許容してくれます。動きます。そこが難点との賛否はありますが、プログラムが動くことは入門者に自信と次へ進む勇気を与えてくれるのでおすすめしています。
基礎学習が意味不明。なんの役に立つの?
echo 'Hello World';
とうって、画面に「Hello World」の文字は出せました。これが何になるんだろうか?
勉強の順序としてかなり初期のようなものです。小学生はカリキュラムとして算数から覚えていきます。小学生のときは、算数が後に会社の売り上げの来年度の予測を一次関数を使って計算することを想像だにできません。
算数はあとに必ずつながっていくものです。しかし、まだ小学生に一次関数の説明をしても難しいので効率上、省略するでしょう。
ここは私の体験から、「プログラムで簡単なメモを作ってみよう」などと小さい作成物をいきなり作ってもいいのかなと思います。メモの書かれたデータを表示する必要があります。表示の方法のひとつとして echo 関数が必要になってきます。echo 関数とは~と上記のHello Worldにつながって出てくるはどうでしょうか。役割が見えてきます。
こういった大きなビジョンが先にあって、echo 関数に出会い、触れていくほうがわかりやすいと感じました。私の作ったPHP言語の学習アプリではこういったアプローチで、簡単な流れの中でプログラミングの必要性感じながら体験できます。
最後にまとめ
プログラミングの性質上、時間はかかるもの!
あなたが劣っているわけじゃない!
できるだけ、やさしいのプログラム言語の学習からスタートすることをおすすめします。
お気づきとは思いますが、このサイトでは初心者のかたへPHPでのプログラミングをおすすめしています。
PHPを見ず、他言語をみてあきらめているなら大変もったいないことです。現場でも何度もみてきました。きっとわたしより頭いい人があきらめていきます。もったいないです。
ぜひプログラム学習をすすめてみてください。