プログラミング学習では常に「わからない」の連続が訪れます。
・「プログラミング学習でわからない時に不安になる。」
・「わからない場合の対処方法を知りたい。」
本記事では、以下の内容について解説していきます。
- プログラミングがわからない主な原因
- わからない時に活用できるおすすめサイト
- プログラミングがわからない時の対処方法
「わからない」ことが「わかる」ようになれば、驚くほどプログラミング学習が楽しくなります。
「好きはものの上手なれ」と言われるように、わからない状態からわかる状態に変わりましょう。
プログラミングがわからない主な原因
プログラミング初学者にとって、「何がわからないかわからない」といった状態も少なくありません。
そのため、現役エンジニアであっても始めに考えるべきは「何がわからないか特定する」ことです。
プログラミングでわからない状態は、主に以下の状態が多いです。
- 利用するプログラミング言語の基礎文法がわからない
- 1プログラムの処理プロセスがわからない
- 複数のプログラムによる処理がわからない
- エラー内容がわからない
ひとえに「わからない」といっても様々なケースが存在します。
利用するプログラミング言語の基礎文法がわからない
人によって利用するプログラミング言語は異なりますが、基本的な知識が重要になります。
- 変数(型があるかないか含む)
- 定数
- 演算子
- 配列
- オブジェクト指向
- 関数
- 条件分岐
- ループ
- クラス
- その他言語特有の機能など
上記の知識が全てではありませんが、多くのプログラミング言語で共通している項目になります。
重要なのはコードを丸暗記することでなく、文法の意味を理解することです。
そのため、プログラミング言語の基礎文法を理解しているかどうかを把握しておきましょう。
1プログラムの処理プロセスがわからない
プログラミング言語の基礎文法を理解しても、コードブロック化されている1プログラムの処理がわからないケースがあります。
基本的に、プログラムコードは上から下へ処理を実行しますが、関数の戻り値などで処理が行ったり来たりと離散的な動きが発生します。
ループ処理なども、条件分岐によって処理の実行箇所が変化するため、初学者にとって分かりづらい可能性があります。
複数のプログラムによる処理がわからない
複雑なプログラムを扱う場合は、様々な構成ファイルから成り立ちます。
バックエンド領域であれば機能ファイルやデータベースファイル・設定ファイル、フロントエンド領域であれば画面ファイルやCSSファイルなど、開発スタイルによっても様々です。
このように、ファイル間を連携しながらデータが行き来するため、各ファイルにどのようなプログラムが内包されているかなど、複雑なプログラムになるほどわからないケースが多々あります。
エラー内容がわからない
おそらく、プログラミング初学者が最もわからないと感じるのは、「エラーへの対処」ではないかと思います。
プログラミングにおいてエラーを解消するといった作業は、ほとんどの人が経験していません。
例えば、参考書やネット記事を模倣するために同じように実施してもエラーが発生する人もいます。
当然、参考にした手順通りに実施したため、そもそもなぜエラーが起きたのかわからないため混乱します。
プログラミングがわからない時の対処方法
上述したように、プログラミングがわからない主な原因から対処方法が異なります。
それぞれの対処方法は以下になります。
- プログラミングにおける検索方法の上達
- 処理におけるフローチャートを作成する
- プログラミングにおけるわからない箇所を質問する
当たり前のような対処方法ですが、なぜか「自分はできている」と勘違いし続けている人もいます。
わからないことを素直に受け止め、冷静に対処してみましょう。
プログラミングにおける検索方法の上達
プログラミング初学者は、様々な知識不足から「調べる」行為に対して時間がかかってしまいます。
しかし、実際に一つの問題に対して時間をかけすぎると、今後のプログラミング学習におけるモチベーションが低下します。
基本的に、VSCodeなどのテキストエディタを利用すれば、エラー箇所の行番号が分かります。
エラー文が出力された際に、Google翻訳で和訳する人もいますが、エラー文を翻訳しても理解できないケースは少なくありません。
そのため、必ずエラー文をそのまま検索してみましょう。
特定のエラーに対して解決方法をネットから見つけることができます。
また、一行ごとに何を実行しているか言語化してみると、わからないライブラリ特有のメソッド名や処理が見つかるはずです。
その場合は、例:「Python ライブラリ名 .○○メソッド名」など分かち書きで検索するとよいです。
あるいは、実施したい処理を言語化し、検索してみるのもよいでしょう。
処理におけるフローチャートを作成する
疑似コードプログラミングプロセス(PPP)がおすすめです。
端的に言えば、ログラミング言語のコード実装から始めず日本語で一度記述することで、実装の品質を高めるテクニックです。
特に、関数処理・ループ処理・条件分岐などが利用している場合に処理の順番で混乱することを防げます。
プログラミングにおいてわからない箇所を質問する
後述しますが、プログラミングにおいてわからない箇所を質問するサイトを利用するとよいでしょう。
しかし、「どのような解像度でわからない状態なのか」を質問される側(回答者)も把握しなければ答えようがありません。
以下の内容で「わからない部分」を明確にしましょう。
- 実現したい実行内容
- 発生した問題箇所(エラーメッセージや、不具合のスクリーンショット添付)
- 期待していた処理結果
- 自身で調べたこと・試した情報(参考URLや処理コード記載など)
- 問題に対する自身の考察
- 希望の回答期限
回答期限に関しては回答者に委ねることになりますが、基本的に質問内容が明確であれば回答しやすいです。
特に、①②③に関しては必須で記載しましょう。
分からない時に活用できるおすすめサイト
プログラミングの挫折率を高める要因の一つとして、「質問できる環境がない」といった原因もあります。
そのため、独学によるプログラミング学習において質問できる環境を知っておくことも大切です。
- teratail
- Stack Overflow
teratail
terateilはITエンジニアに特化したQ&Aサイトです。
Q&Aサイトとして開発されたWebサイトであるため、質問と回答を実施しやすい機能が豊富です。
また、運営され始めて長いため人気タグなどから言語選択し質問集を確認すれば、基本的な情報は網羅されています。
Stack Overflow
stack overflowは2008年から英語版ではじまり、2014年に日本語版のサイトが始まりました。
ユーザー数も全世界の登録者が多いことから、膨大な質問と回答がセットになって記載されています。
また、現在はGoogle翻訳機能がブラウザに備わっているため、若干日本語表現がおかしくても読み解けるため問題なく利用できます。