目次
※まずはじめに
未経験から一人前のエンジニアになる為に一番やってはいけない事は、「闇雲にプログラミング学習をしてしまう」事です。正しい前提情報を知らないままプログラミング学習を始めてしまうと、エンジニアになるまでに何倍もの時間がかかってしまいます。プログラミングを始める前に必ず知っておくべき情報を網羅的にインプットする事で、正しい手順と正しい心構えでプログラミングに臨める状態を目指します。
- 「どのようにプログラミング学習を進めればよいのだろう」
- 「エンジニアになるためにはどのような手順が必要なのか」
- 「最速でプログラミングを身につけるためのコツが知りたい」
そして何ができるようになるか?
- 最短でプログラミングを習得できるようになる
- プログラミングでどんなモノを作れるようになるのかイメージが湧く
- エラーの解決方法がわかる
- オリジナルアプリの開発工程がわかる
初心者がエラーを克服する方法
- エラーを解決する手順とコツ
- エラーの解決に役立つQ&Aサイト
エラーを解決する手順とコツ
初心者にとって、エラーを解決するのはとても大変です。エラーを解決できなければ次に進めないだけでなく、モチベーションがどんどん下がっていき、最悪の場合挫折に繋がってしまいます。初心者にとってエラーの解決が難しい理由の1つは、解決するための正しい手順を知らないからです。
そこでまずは、現場で働くエンジニアたちも実践しているエラーの解決手順を紹介します。この手順を頭に入れてエラーを解決する経験を積んでいけば、エラーを解決するまでの時間も短くなります。エラーが発生しても焦らずに、まずは正しい手順を踏みましょう。
エンジニアたちはどんな手順でエラーを解決しているのか?
エラーの解決方法は原因によって様々ですが、実は原因を特定する為の基本的な手順が存在します。その手順をこれから1つずつ解説していきます。
1. エラーログを確認する
エラーが発生したら、必ず最初にエラーログを確認する癖をつけてください。エラーログにはエラーの発生箇所などが記載されており、エラーの場所や原因を特定しやすくなります。エンジニアにとって、エラーログを解読するのは基本中の基本です。一見すると英語がたくさん並んでいて難しく感じてしまうかもしれませんが、読み方さえ覚えれば難しくはありません。
なお、Webアプリを作るときにJavaScriptやjQueryを使う事がよくあるのですが、それらについてはブラウザ上でデベロッパーツールを利用し、コンソール画面を表示させることでエラーを確認できます。デベロッパーツールは画面上で右クリックしたあと、「検証」をクリックする事で利用できます。
2. デバッグする
エラーの発生箇所を特定できたら次は、「デバッグ」と呼ばれる作業を行います。
デバッグとは、特定の箇所が正常に動作しているかを丁寧に確認し、以下の内容をさらに具体化していく作業の事です。
コードの記述ミスなどのケアレスミスや簡単なエラーであれば、エラーログの確認とデバッグだけで解決出来ます。
3. 調べる
デバッグまでの手順でエラーを解決できなかった場合は、当然ですが書籍やインターネットなどを使って調べる必要があります。初心者が躓くようなエラーは、過去に他の人も躓いていた可能性が高いので、インターネット上ですでに質問されている場合が多いです。まったく同じエラーではなくても、似たようなエラーから解決の糸口を見つける事も出来ます。ただし、検索して短時間で似たような質問を見つけるには、「検索力」が必要です。
1. 経験を積む
エラーを解決するには慣れも必要です。初心者は経験が少ない為、エラーが発生してもすぐに原因を特定するのは難しいです。しかし、何度もエラーを解決していけば、いずれはエラーログを見るだけで原因や解決方法がわかるようになります。また、自分がミスしやすいポイントもわかってくる為、短時間でエラーを解決できるようになります。
2. Q&Aサイトを活用する
開発環境や作っているアプリによっては、いくら調べてもわからない事があります。そんな時は、エンジニアが利用しているQ&Aサイトで質問するのがおすすめです。先輩エンジニアたちからアドバイスをもらえる可能性が高く、その分短時間でエラーを解決できます。ただし、しっかりとマナーを守り、回答しやすいように質問の仕方には気をつけなければなりません。なお本記事の後半で、おすすめのQ&Aサイトや質問する時のコツを紹介しています。
3. メンターを見つけておく
メンターを見つけておけば、質問できるだけでなく個別に詳しく解説してもらえる為、エラーを解決するだけでなくスキルアップにも繋がります。また、初心者が躓くようなエラーは、詳しい人に聞けばすぐに解決できる事がほとんどなので、時間をかけずにエラーを解決できます。
メンターがいれば、自力で解決できないようなエラーに苦しんだり、質問に対する回答をモヤモヤしながら待ち続けたりする必要もありません。モチベーションが下がったり、挫折したりする可能性が低くなります。
検索力をアップさせる方法
検索には様々な方法がありますが、出来るだけ最新の情報を得るようにしてください。IT業界は情報がすぐに更新されるので、いつの間にかバージョンが上がっている事もよくあります。バージョンの違いなどによって、発生するエラーや解決方法も異なります。
その為、情報はできるだけ新しいものに絞り込みます。Googleであれば、以下の画像のように「ツール」から期間を指定できます。指定する期間は「1年以内」が良いとされています。
AND検索
AND検索は、私たちも普段よく利用している方法です。以下のように、複数のワードの間にスペースを入れて検索します。
複数のワードでAND検索をする事で、検索結果を絞り込む事が出来ます。
OR検索
OR検索は、「○○または●●」という検索方法です。複数のワードのうちどれかが含まれていればヒットするので、AND検索よりも検索範囲が広くなります。
より効率的に検索結果を絞り込みたい場合は、OR検索よりもAND検索の方がおすすめです。
NOT検索
NOT検索は、特定のワードが含まれている情報を除外して検索する方法です。検索したいワードの後にスペースを入れ、次に-
の後に除外したいワードを入れます。
エラーメッセージの検索
エラーの解決方法についてどのワードで検索すればよいかわからない時は、エラーメッセージで検索するとヒットする可能性があります。初心者が躓くようなエラーは過去に他の人も躓いている可能性が高く、すでに解決方法が載っている事が多いので、一度試してみて下さい。
英語での検索
世界的に見て、インターネット上に公開されている情報の多くは英語で記載されています。また、プログラミングの情報も、ほとんどが英語で発信されています。日本語に翻訳されるまでには時間がかかり、日本語に翻訳された頃にはすでに古い情報になっている場合もあります。
最新の情報を得るには英語のページを読む必要も出てくる為、これからエンジニアとしてやっていくのであれば、英語で情報収集できるようにしておく事をおすすめします。
Q&Aサイトで質問するときのコツ
エラーが発生したら、まずはやれるところまで自力でやってみてください。ただし、あらかじめ時間を決めておき、必要以上に時間をかけすぎない事が大切です。また、質問する前には必ず、過去に自分と同じようなエラーで質問している人がいないかどうか検索してください。
そして、質問する時は以下の点を明記して、具体的に質問するのがポイントです。
- 前提・実現したいこと
- 発生している問題・エラーメッセージ
- 該当のソースコード
- 試したこと
- 補足情報
前提・実現したいこと
まずは、質問したい事を詳しく記入します。この時、「期待する動作」など、「実現したいこと」を記入してください。例えばエラーメッセージが表示されるのであれば、「エラーメッセージが表示されないようにする」事が、「実現したいこと」に当てはまります。
発生している問題・エラーメッセージ
次に、発生している問題を書きます。エラーメッセージが表示されている場合は、エラーメッセージをそのままコピー&ペーストします。このとき、エラーメッセージを勝手に要約したり、省略したりしてしまうと質問が正確に伝わらなくなり、望んだ回答を得られないかもしれないので注意してください。
一方で、エラーメッセージが表示されていない場合は、「期待に反して現在どのような状況なのか」を記入してください。
該当のソースコード
続いて、プログラミング言語を明記したうえで、エラー(問題)の発生原因となっているソースコードをコピー&ペーストしてください。あまり長すぎると読むのが大変になってしまうので、エラーが発生している箇所を上手く切り出す事が大切です。他の人が同じようなエラーを再現できれば、回答してもらえる可能性が高くなります。
試したこと
次に、発生したエラー(問題)に対して自分で試してみた事を記入します。単に「上手く動きません」ではなく、「AとBを試しましたが、どれも上手く動きませんでした」と記入したほうが、適切な回答をより早く得られます。「努力はしたけどダメだった……」という姿勢をさりげなくアピールすることも重要です。
補足情報
最後に、「プログラミング言語とそのバージョン」「使用しているフレームワークとそのバージョン」など、あなたの開発環境を記入します。開発環境に関する情報は多い方が、適切な回答を得られる可能性が高まります。
オリジナルアプリ開発に先生が必要な理由
- オリジナルアプリ開発には「先生」が必要な理由
- 「先生」を見つける3つの方法
オリジナルアプリ開発には「先生」が必要な理由
- 「プログラミングスクールはハードルが高い」
- 「独学でプログラミングスキルを身につけたい」
このように思っている人は多いです。しかし、プログラミングスクールに通うかどうかにかかわらず、プログラミングスキルを身につけるには「先生」が必要です。プログラミング学習に先生が必要な理由は、主に3つです。まずは、それら3つの理由を詳しく解説します。
【大前提】どんな学習にも先生は必要
大前提として、どんな学習にも先生は必要です。私たちは小学校から大学に至るまで、すべての学習を先生に教わってきました。基礎から学ぶには、先生がいた方が効率が良いからです。もちろん、先生がいなくても学習することは可能です。
しかし、これまで私たちが学習してきた内容をすべて独学で学習出来るでしょうか?現実的ではありませんよね。このように、プログラミングを効率よく学ぶためにも先生が必要です。独学でも学習は可能ですが、理解・習得するうえで、先生がいる場合とそうでない場合では、かかる時間が倍以上も変わります。
また、わからないことを模索しながら学習するのはモチベーションが低下しやすく、継続が難しいというデメリットもあります。学習の効率化や期間短縮の為には、先生の存在は必要不可欠です。
理由1. エラーの解決方法を的確に教えてくれる
先生はあなたが開発しているアプリや開発環境をすでに知っているので、エラーの原因を特定するのにあまり時間がかかりません。もちろん、先生がいなくてもQ&AサイトやSNSで質問することは可能です。しかし、相手にできるだけわかりやすく説明したり、開発環境などの前提条件を詳しく記入したりしなければなりません。
また、必ず回答を得られるわけではなく、いつ回答してもらえるかもわかりません。よって、いつ回答してもらえるか、モヤモヤしながら待つしかありません。さらに、回答してもらえたとしても、その内容が理解できない可能性もあります。
一方で、先生はあなたのスキルレベルを知っているので、一緒に画面を見ながら解説してもらうことも可能です。あなたが理解できるまで丁寧に解説してもらえる他、「なぜエラーが起こったのか」「今後気をつけるべきポイント」といったレクチャーを受ける事も出来ます。
理由2. あなたのゴールに合った指導をしてくれる
人によって転職や独立、起業などゴールは様々です。また、作りたいアプリも人によって変わります。このようにゴールや作りたいアプリが異なれば、やるべき事も異なります。先生がいれば、あなたのスキルレベルや学習の進捗状況に合わせて、的確なアドバイスをしてもらえます。
また、場合によっては学習内容の見直しや、あなたに合わせた学習方法を提案してもらえます。俯瞰(ふかん)的に、あなたに必要な知識やスキルを指導してくれます。このように、先生がいれば一人で学習するよりも圧倒的に無駄がなく、回り道をせず効率的に学習する事が出来ます。
理由3. エンジニアのリアルな話が聞ける
ブログなどで現役エンジニアの話を読む事は出来ますが、目の前の人から聞く話よりもリアリティは薄れます。また、インターネット上で公開されている情報はすべて鵜呑みにせず、自分で信憑性があるかどうか判断しなければなりません。表面的な内容も多いので、参考程度にしておくのが無難です。
一方で、あなたの先生が現役エンジニアであれば、今までにこなした案件の話などを深掘りして聞く事が出来ます。例えば、案件獲得のために実践したノウハウや、実際の現場の様子、仕事のやり方などを細かく質問できます。そうする事で、あなたが実現したい未来のイメージがより膨らみます。
また、先生はあなたと一緒に過ごした事で、あなたの強み・弱みをよく理解しています。よって、あなたに合った転職や独立、案件獲得の方法を教えてくれます。
「先生」を見つける3つの方法
ここまでで、オリジナルアプリ開発に先生が必要な理由を理解できたはずです。しかし、以下のような疑問を感じた方は多いと思います。
これから学習を始める初心者にとって、先生を見つけるのはハードルが高いです。そこで次は、あなたの先生になってくれる人を見つける3つの方法を解説します。
1. 人から紹介してもらう
まず1つ目は、知人などからエンジニアを紹介してもらう方法です。人からの紹介なので、先生になってもらう場合の料金や内容について自分で交渉する必要があります。また、優れたエンジニアであっても、教えるのが上手いかどうかはまた別の話です。知人からの紹介は信頼性が高い反面、自分で調整しなければならない事が多いので、初心者にとってはハードルが高いかもしれません。
2. スクールに入る
スクールに入れば、先生から学ぶ事が出来ます。ただし、集団で受講するスタイルなのか、マンツーマンレッスンなのかは、事前にしっかり確認する必要があります。人によっては集団で受ける授業では質問しにくく、結局内容がわからないまま授業が進んでしまう事があります。そのような方は、マンツーマンレッスンによって自分のペースで学習できたほうがいいです。
ただし、マンツーマンレッスンに申し込む時は、「同性が良い」「年齢が近いほうが良い」など、自分の希望をしっかりと伝えるようにしてください。
3. サービスを利用して探す
最後の3つ目は、サービスを利用して先生(メンター)を探す方法です。実は近年、個人でメンターを雇って、プログラミング学習をする人が増えています。
もし個人でメンターを雇うのであれば、以下の点に気をつけてください。
- 無理のない料金かどうか
- 対応しているプログラミング言語
- サービス内容
- サポート範囲
メンターの料金は基本的に月額制です。月々の支払いに無理がないか、まずは予算を自分で設定して下さい。そして、その予算の中から自分が学習したいプログラミング言語に対応しているメンターを探してください。
次に、サービス内容やサポート範囲の確認をして下さい。転職や学習方法といったお悩み相談や、マンツーマンレッスンなどサービス内容は様々です。そして、あなた自身に必要なメンターはどんな人かを明確にしてください。
「ポートフォリオやWebサイトの制作までサポートしてくれるのか」
「質問方法や対応できる曜日」など、メンターによって条件が異なります。事前にしっかりとチェックして下さい。
書籍・本
出典:エラーで学ぶScratch まちがいを見つけてプログラミング初心者から抜け出そう
本書では、よくある典型的なエラーをあらかじめ含むプログラムを示して、その原因を考え、エラーを修正することを通して、より深くプログラミングを学ぶことを目的としています。エラーが発生する原因は複数あり、その原因を学ぶことはプログラミングを学ぶ上でとても役に立ちます。プログラムには「エラー」がつきものです。エラーの原因を考え、修正のための試行錯誤を繰り返すことになります。この過程で「よく考える」ことになります。
そうやって鍛えられた思考力は、別のプログラムを作成する際にも転移し、応用されます。それがプログラミング的思考です。そのためには、良質な問題による適切な試行錯誤の体験が重要です。既存の教科に良質な参考書や問題集が存在するように、プログラミングにも良質な試行錯誤を提供する書籍が存在するといい――それが本書の存在価値です。エラーを修正していく過程でプログラミング的思考を鍛え、組み合わせ、自分の考えにつなて、さらに改良を加えて、プログラミングの世界の楽しさを味わってください。
以上が私のオススメ本になります。気になる方や読んでみたいと思っている方は、参考になりますので、ぜひ読んでみて下さい。
まとめ
- エラーを解決する手順は「エラーログを確認する」「デバッグする」「調べる」
- エラーを解決するコツは「経験を積む」「Q&Aサイトを活用する」「メンターを見つけておく」
- エンジニア向けのQ&Aサイトとしては、Stack Overflowやteratailが有名である
- Q&Aサイトで質問するときは、必要な内容を明記することで回答を得られやすくなる
- 先生がいれば、エラーの解決方法を的確に教えてくれる
- 先生がいれば、あなたのゴールに合った指導をしてくれる
- 先生がいれば、エンジニアのリアルな話が聞ける
- 先生を見つける方法としては、「人から紹介してもらう」「スクールに入る」「サービスを利用して探す」などが挙げられる