プログラミング、フリーダイビング、旅行のブログ

プログラミング道場

プログラミングの独学が難しく感じる理由と対応方法【可能だけれど。。。】

更新日:

エンジニアは人気の職種だと聞いています。
まずは独学でプログラミングを始めてみようと考えているのですが、独学での勉強は可能でしょうか?
それともスクールに通った方がいいですか?

こういった疑問にお応えします。
プログラミングの独学は、可能ではありますが簡単ではありません
そのため、時間を大切にする方にはスクールに通うことをお勧めしています。
でも、学生なのでお金がない人の場合は、独学でもいいと思います。
本記事では、その理由を詳細に説明したいと思います。

本記事の内容

  • 独学でプログラミング学習をお勧めしない理由
  • それでも独学で始めてみたい人へ
  • スクールかメンターを使った方が良い理由
  • まとめ

独学でプログラミング学習をお勧めしない理由

私は基本的には、独学でのプログラミング学習をお勧めしません。
それは、英語や数学の学習において、最初は独学から始めない事と同じです。
最初は、当たり前のように先生から教わります。
そして、英語や数学に慣れてきたところで、独学を始めます。

プログラミングも同じ流れで勉強を始めるべきです。
また、独学で始めると様々なことにつまづき、プログラミングを嫌いになってしまう可能性もあります。
多くの人にエンジニアになって欲しいので、最初はなるべくスクールに通って欲しいと思います。

私がそう思う理由を、私の経験談も交えて説明したいと思います。

私の経験談

私は大学時代に農学部に所属していたのですが、2単位だけITに関するものがあり、VBという言語を勉強しました。
ところが、私にとってプログラミングはチンプンカンプンでした。
先生とアシスタントの人がいるにも関わらず、全くわかりません。
特に難しかったのは「for」と「関数」だった記憶があります。
一年目は単位を落としました。
それが必須でなければ二度と勉強するはずもなかったのですが、必須なので逃げることはできません。

二年目も落として、ようやく単位が取れたのは三年目でした。
ホントに泣きそうだった記憶があります。

その数年後にひょんなことから、派遣の会社に勤めて、再びプログラミングを勉強しました。
一ヶ月間のプログラミング研修を行ったのですが、HTML、PHP、Linux、MySQLを全く理解できませんでした。
ここでも泣きそうになった記憶があります。

10年以上前には、Progateもドットインストールもなかったので、勉強の環境は今と比べると格段に悪かったことも理由の一つではありますが、プログラミング学習は講師や仲間がいても本当に辛かったです。<
独学だったら、きっと心は折れていたでしょう
最初は何でそんなに難しいのか、私なりの見解を伝えます。

プログラミング学習が難しい理由
  • プログラミングは理系科目で難しいと思い込んでいる
  • 勉強している内容が使われるイメージが湧いてこない
  • プログラミング言語は、曖昧さが許されない
  • プログラミング言語は、半角や空白が許されない。
  • プログラミング言語を学ぶ前に、常識的なことを知っておく必要がある

一つ一つ、説明していきます。

プログラミングは理系科目で難しいと思い込んでいる

「プログラミングは理系科目だから、文系の私には無理」と思い込んでいる人もいます。
高度なAIや機械学習の場合だと、確かに理系的な要素が求められることもありますが、それ以外の分野だと数学や物理を使うことは稀です。

どちらかと言うと、翻訳に近い部分もあると思っています。
英語をパソコンが理解できる言語に変換しているイメージです。

対応方法

  • 最初のうちは、プログラミングは翻訳作業と思い込みましょう。
    そしてAIを勉強するさいに、数学などが必要になれば、理系の科目を勉強しましょう。
勉強している内容が使われるイメージが湧いてこない

勉強初期の頃は、「for」、「if」、「関数」、「クラス」ということを習っても、どう使うか全く想像ができません。
それが原因で、プログラミングに苦手意識を持ってしまう人もいます。

でも、それらは基礎学習なので仕方がないと思います。
格闘技、スキー、水泳、野球、サッカーといったスポーツをやる場合にも、最初に習うのは基礎ですが、その多くは面白くないはずです。

サッカーでリフティングだけしていても退屈ですし、空手で三戦立ちの練習をしているのは退屈です。
でも、そういった基礎をシッカリとやっておくと、将来的な伸びが変わってきます。

対応方法

  • 基礎は基礎と割り切って頑張りましょう。
英語と比較した場合に、プログラミング言語は曖昧さが許されません

英語の勉強風景を少し想像してみます。
例えば、「あなたはどこに住んでいるの?」と英語で聞く場合には、以下のように尋ねます。

Where do you live?

でも、以下のように尋ねても、講師には意味が通じます。

You live where?(単語の順番が違う)
Do you live, where? (単語の順番が違う)
we are do you live?(発音が違う)
Where did  you live?(時制が違う)

きっと、「私は日本に住んでいます」と応えてくれた上で、「あなたは文法が間違っていますよ」と講師は教えてくれるはずです。

同じことをプログラミングでやると、どうなるでしょうか?
「文法が間違っています」といったエラーメッセージを英語で返してくるだけで、それ以上は何も教えてくれません。

最後に「.」がついてないだけでもエラーが出ることもあります。
何が間違っているの教えてくれないのは、非常に辛いはずです。

対応方法

  • 答えがついている教材にそって勉強をして、イザとなったら全ての回答コードをコピーする。
    そして、そのコードが動くことを確認したら、自分の書いた答えと比較してエラーを探す。
  • 英語のエラー文を読んで内容を理解した上でググる。
プログラミング言語には半角や空白が許されません

半角の「print」という文字はよくても、全角の「print」は許されません。
ソースコードのどこかに空白「 」が入っていてもエラーが出ます。
「o」と「0」の打ち間違いも許してくれまえせん。
プログラミングは全てが厳格です。

対応方法

  • 答えがついている教材にそって勉強をして、イザとなったら全ての回答コードをコピーする。
    そして、そのコードが動くことを確認したら、自分の書いた答えと比較してエラーを探す。
プログラミング学習をする上で、知っておくべき常識があります

プログラミング学習を進める上では、前提として知っておくべき単語がかなりあるように思います。
「ターミナル」、「サーバー」、「レポジトリ」などなど、他にも多くの単語があります。
人によっては知っている単語もあると思いますが、そういった単語を一つ一つ、独りで勉強していくことは大変な労力です。

他には、例えば、「userとpasswordを入力して下さい」と言われます。
初心者の頃には、そのまま「user」と「password」を入力してしまいます。
でも、それは間違いで、本来は自分で作ったユーザー名とパスワードを入力する必要があります。

また、「install パッケージ名」をタイプして下さいと言われて、そのままタイプする人がいますが、本来は「install apache」といったソフトウェアの名前をタイプしなければいけません。
初心者が、そういったところでつまづくのは当然ですが、そこに時間をとられていくのは勿体ないように思われます。

対応方法

  • 基礎知識が欠けている問題を解決するためには、対象分野における資格の勉強がいいと思います。

それでも独学で始めたい方へ

ここまで読んだ上で、それでも独学でトライしたいという方がいれば、まずはプログラミング学習サイトでプログラミングを試してみて下さい
ProgateやPaizaだとブラウザベースで勉強できるので、簡単にチャレンジできます。

次に、ドットインストールを見て、動画に沿って勉強してみて下さい。
その時点で、独学でやっていけるかわかると思います。
最後にUdemyで自分の好きな講座を購入して、実際にプロジェクトを作ってみましょう。
ここまで自走できる人ならば、きっと独学でも大丈夫だと思います。

  • Progate;ブラウザベースの擬似的なプログラミング環境
  • ドットインストール;動画を見ながら真似すればプログラミングを作れる
  • Udemy;慣れてきたところで作ってみたい講座を購入して、試してみましょう

自走できる人にもスクールかメンターをお勧めします

独学でやれる人もいるとは思いますが、やっぱり私はスクールや「メンターを雇う」といった方法をお勧めします。
理由は以下の通りです。

時間の節約

経験者なら見た瞬間にわかるような、くだらない文法エラーに30分も時間をかけるのは、時間の無駄です。
5分ぐらい悩んでわからなかったら、講師に聞いた方がいいです。
その25分の差が積もりに積もれば、半年後には大きな差になっているはずです。

お作法を教えてもらえる

プログラミングは結果だけではなく、その過程やソースコードの中身も重要になってきます。
インデント、「関数やクラスの適切な使い方」、「SQLは大文字」などといったお作法は、独学ではなかなか学ぶことができません。
そういった細かいことに気付けるのは、やはり経験豊富な講師です。
そして、そういった細かいことが、現場では重要だったりします。

前提の知識も教えてもらえる

「サーバーって何?」という質問にも、講師の方ならば、すぐに教えてくれます。
また、初心者の頃は、「やりたいことに対する解決方法の検索の仕方」もわからない時があります。
それを講師に回答してもらうことは、時間の節約につながります。

スクールに通うメリットは理解できたけど、あまりお金がないという方は、こちらの記事を読んでみてください。
もしくは、オンラインスクールだと安価なのでいいかもしれません。


まとめ

プログラミング学習は、少し癖があるので最初は難しく感じます。
でも、つまずくポイントさえ知っておけば、上達しやすくなります。

みなさんも、小さい頃は自転車にすら乗れなかったはずです。
でも、段々と乗り方を覚えて、補助輪をつけて自転車に乗れるようになり、最後には自転車を乗りこなせるようになります。

プログラミング学習もそれと同様です。
ただし、独学に向いていない人もいるので、そういった人は経験者の方と一緒に勉強を始めましょう。

Good luck for your engineer life!

この記事に興味を持てた方は、他の記事も読んでみて下さい。

関連コンテンツ

-初心者向け

Copyright© プログラミング道場 , 2019 All Rights Reserved Powered by AFFINGER4.