プログラミング学習において躓く人を見てきています。私が携わった開発現場のメンバーの中には、研修や学習を積んだだけの新人もいました。彼らのような業界未経験者と接することで、学習で躓くポイントを知ることができました。ここでは、そのポイントと解消した方法を伝えします。
ちなみに私は、Winddowsアプリ、WEBのフロントエンド、携帯、家庭用ゲーム等の開発に携わっています。誰もが知っているサービス、OS、アプリケーションに携わった経験があります。
主に学生、もしくは業界未経験の若手社会人に向けてお伝えします。
プログラミングの独学で躓く4大ポイント
私が見てきたものは、独学後に知り合った者から、開発業務に携わりながら独学で別のプログラミングの学習を始めた者から、開発に入る前に躓いた者からです。以下に躓くポイントを4つに絞りました。
- 開発の環境構築ができない
- 書籍に書いてあることが分からない
- 編集したプログラムのエラーが取れない
- 編集したプログラムが思ったように動かない
開発の環境構築できない原因は、選択の誤りにある
構築できずに書籍を読んで終わってしまう事があります。開発環境は複数あります。独学で学ぼうとしているのですから、環境構築に何を選んでもかまいません。
確かに、1つの環境に依存しなければ進まないケースはあります。組み込みの様にハードウェアにしばられ、実機やエミュレータで開発するケースです。しかし、プログラミングの初学者には、そんなしばりはありません。1つだめでも他を探せばよいのです。
初めてのプログラミングで、しばしば見る陥りポイントです。ちなみに、プロの開発現場でも見る光景です。ここで躓いても気に病む必要はありません。
- 使い慣れないOSで環境構築をしようとしている
- 情報量が少ない開発環境を選んでいる
- 情報が古くなりやすい開発環境を選んでいる
使い慣れないOSやツールで環境構築をしようとしている
書籍記載の開発環境が再現できないことがあります。使い慣れているOSがWindowsなのに、Linuxで構築しようとすると、うまくいかないでしょう。構築できても、種類の多いLinuxコマンドと使い方に戸惑ってしまいます。
私はWindowsで開発できる環境を探し、なければWindows上にLinuxの仮想環境を用意します。以前はサードパーティのツールを利用していましたが、今はWSLがあって使い勝手がいいです。
Mac環境はWindowsに仮想環境が実現できないため、Macを使います。今、必要になるのはiPhoneアプリの開発くらいです。
情報量が少ない開発環境を選んでいる
開発環境の黎明期では情報がなく、最も望ましいものを選択したつもりでも、後発組には滑稽に映ることがあります。後から提供された環境の方が、言うまでもなく断然便利で使いやすいからです。前のものを見て、問題があるから上回るものが手供されるのです。
しかし、書籍をみて黎明期の方法を選択してしまうのです。そのようなものは既にネットから情報量が消えています。あっても当てはまりません。もし構築に躓いたら、メジャーな開発環境の構築に注力したいところです。
情報が古くなりやすい開発環境を選んでいる
インターネットとの常時接続が当たり前になっている今日、開発環境は常に更新されています。ほんのちょっとのコマンド入力やボタンを押すだけで、インストールと更新がされます。設定によっては自動で更新されます。OSも開発環境も常に進化し続けています。
そのため、有志がインターネット上で提供している情報が古くなりやすいのです。躓いたら、ツールの提供元に情報を求めるのが鉄則です。WEBサイトを訪問し、リリースノートを確認します。英語の場合は、原文のままが好ましいですが、ブラウザで和訳するのも良いでしょう。
書籍に書いてあることが分からなくても、構わない
それぞれの言語で、初学者が躓く個所が知られています。C言語ならポインタや関数ポインタとマクロ関数、C++は参照渡しやオブジェクト指向、そして無名関数、これより後の言語では、並行処理の内イベントループです。リソースを占有しないため好んで使われます。
ちなみに、WEB系のフロントエンドでは、言語による躓きポイントがありません。
話を元に戻しますが、このような分からない事は無視して構いません。後で振り返って知る必要はありますが、学習中は最初は動けばいいのです。後で理解を要するとわかったときに、振り返ります。最初は全がわからないのが普通です。動かすと理解できることもあるのです。書籍は全体をサラッと読む。これが答えです。
プログラムのエラーが取れない
「IDE(開発統合環境)がエラーメッセージを表示して、コンパイルができない」「動かすと途中で英語のメッセージが出て動かなくなる」こんなところです。高頻度で起こりえる現象です。そして、エラー内容が適切でないため、修正個所すら分からないことがあります。これには、イラっと来る人もいると思います。
エラーメッセージを出すIDEの見直しで解消されます。新しいものの内、メジャーなものを選ぶといいです。WindowsのネイティブアプリとPythonを作りたいという理由で、Windowsのネイティブアプリの開発用のツールを使って、Pythonのソースを編集してはいないでしょうか。それでも開発できますが、慣れていてもエラーが解消されないことがあります。Pythonの開発ならば、Pycharmという修正箇所を適切に表示してくれる優れたツールがあります。
Pythonに限らず、JavaやWEB系でも同様の新しくメジャーになっているか、なりつつものがあります。常に新しい情報を手に入れ、開発に取り組むことで無駄な時間を費やさずに済みます。
情報の入手元としてアンテナを張っておくべきは、TwitterとYouTubeの他、雑誌(日経ソフト)も役立ちます。最新トレンドをキャッチアップするのに、手数が掛からず重宝します。
編集したプログラムが思ったように動かない
「思うように作れない」が「才能がない。将来できるか不安。迷惑をかける」に変わり、途中で投げてしまう事があります。独学に起こる思い込みゆえのあるあるです。
これは3つの問題を含んでいます。
- IDEの使い方の知識不足又はIDEの選択の誤り 解決方法を探る意欲の欠如
- プログラミングは難しいという思い込み
IDEの選択の誤り又は使い方の知識不足
IDEには、デバッグ機能が搭載されています。プログラムを一行一行止めながら実行し、その時の変数を表示できるのです。全て開発環境にあります。LinuxにもGNUというものがあります。この様な事実を知っていれば、使い方をマスターし自ら不具合の原因を特定できるでしょう。
それでも難しいならばIDEを選び直しを要します。メジャーな開発環境が選択は、ネットでの情報収集を助けます。しかし、それ困難ならば選択の誤りの疑った方がいいでしょう。発展途上段階にあるIDEは、途上ですので「使えない」と言い切れません。独学者は、多くの情報を見つけられるものを選択すべきです。
解決方法を探る意欲の欠如
言うまでもなく、意欲があれば、常時動かない問題について思考を巡らし自分自身で解決できます。寝ている時でさえ出来るでしょう。
解決の糸口がつかめない場合、自分自身の選択で学習に取り掛かったのであるなら、当初の目的意識を忘れています。なんで始めたのでしょうか。学生や業務命令のような必要に迫られての学習ならば、難しい課題にあたるはずがないので、あなたの思い込みです。
プログラミングは難しいという思い込み
文部科学省の教員向けの研修テキストを閲覧し「難しいことはない」と主張しているのではなく、事実として簡単になっています。
- 利用者数が伸びている高級言語は、簡単になっている
- 開発は、個人ではなく協力し合って行うもの
難しいと思うのは、2の観点が不足しているかもしれません。一人はみんなのために、みんなは一人のためにです。優劣の意識はなく、プロの現場でも、教え合いが常にあります。そもそも言語自体が簡単なことなので、教われるチャンネルを複数持てば簡単にクリアできます。
コメント