公開日 2022/4/9
初めまして、C4Cでサイト構築を担当している和田です。
私はこれまでに
Java,C言語,Go言語
といったプログラミング言語を学び、今では皆様が見ているこのサイトをフルスクラッチで構築することができるようになりました。
こちらの記事ではエンジニアとして学びながら開発してきた私が
“7年プログラミングを継続することができたワケ”
をご説明していきたいと思います。
プログラミング学習のモチベーションを保つためのコツについてお伝えします。
まず、コードを書いて実行するまでの準備が、かんたんな環境を探すことをおすすめします。
なぜなら必要な準備と設定に手間がかかることは、初学者のやる気を削いでしまう大きな原因になるからです。
さらに、自分の書いたコードの働きをある程度、視覚的に認知できるテーマと環境を選ぶことによって、トライ&エラーがしやすくなり、より効果的なプログラミング学習が期待できます。
それらの条件をまとめると、初学者の方に向いているテーマと環境は
セットアップが簡単で、それほど工夫しなくても見栄えのよいソフトウェアが作れるもの
ということになります。
具体的な環境をご説明すると、
例えばブラウザ上で動くJavascriptでプログラミングの基礎を学ぶという選択肢があります。
これは、最低限ブラウザとテキストエディタ(メモ帳でもいいわけです)があれば動くので、セットアップのハードルが低く、おすすめです。
ほかにもVisualStudio(Codeではない)でC#を使ったWindows用のデスクトップアプリケーションを作るという選択肢をおすすめします。
開発環境を整えるためのセットアップは、適宜出現するOKボタンを押していれば終わります。
画面設計のウィンドウにパーツを張り付ければデスクトップアプリケーションを簡単に作り始めることができます。
またC#のサンプルコードがほとんどコピー&ペーストで動き、メソッドやクラスといった概念の根本的な理解を抜きに、とりあえず動くソフトが作れます。
まずはここでプログラミング特有の癖(例えば括弧で始まったコードは括弧で終わる、といったルール)を体に染み込ませていきましょう。
ですが残念ながら、世の中には
- 何かプログラミングするけど、出来上がるものは黒画面に白文字を打ち込むだけ
- 指示通りにウェブサイトを作るものの、設定の数多く難易度も高い、とりあえずの完成にこぎつけない
というような初心者の方のやる気を削いでしまうような本やサイトが存在します。
プログラミング初心者だからこそ、本やサイトに書かれているレールに従ってプログラミング学習をするのですが
私からすればナンセンスなテーマのチョイスです。
前者は何かエラーがあったとき、「でも出来上がるのは地味なソフトだしなぁ...」とやる気を削がれるタイプです。
もちろん、基礎的な文法やアルゴリズム等の理解は疎かにされるべきではありません。
きちんと理解されるべきですが、ある程度学習を進めてもそこから脱出できない、想像していた華やかなソフトとは違って地味なままプログラミング学習を終えてしまうということがあります。
後者はそもそも成果物が出来上がる前に設定に手を焼いて、そのままやる気がそがれて終わってしまいます
ですので、自分が書いたコードが進化していることを実感できるテーマ・環境選びをしていきましょう。
コードを書いたとしても、それが思い通りに動作しなければ、目的は達成されません。
しかし、なぜ思い通りにコードが動かないのかをコンピューターが説明してくれている場合があります。
これをエラーというのです。
このエラーの箇所を調べていくことで、
”たぶんここが違うんだよな”
という当てずっぽうな方法で原因を探るのではなく、効率的にエラーを直していきましょう。
例えば、この画像を見てください
これはただの白文字の羅列ではありません。
プログラミング初心者の多くは、この画面を見るとまるでお化けが出たかの如く、逃げ出してしまい、周りに手助けができる人間がいないと、そのまま挫折してしまいます。
でもこれはプログラムが出したエラー文、メッセージでしっかり
”何のファイル”の”何行目”でエラーが発生しています
と書かれています。
ここまでくれば、直接的な原因がわかるので、このエラー文をグーグルにコピペしてエラー文の意味を探るといった方法で解決に踏み出すことができます。
ここを突破できる初心者は、初心者でも上位5%くらいの希少な存在です。
それでも解決できなければ、エラー文から名指しされているファイルをStackOverFlow等にコピペして心優しい回答者を待つのみです。
- エラーの原因がわからない
- 何かがうまくいかない
このような場合、プログラミングそのものから距離を取るということも、挫折をしないための工夫の一つです。
人間の錯覚によるプログラミングのミスは頻繁に発生します。
この現象は長時間連続で同じソースコードを編集している時に多く発生していました。。
具体的に起こるミスとしては
- 書いたと思ったメソッド呼び出しがなかった
- ドットを追記し忘れていた
- ロジックに想定漏れがある
などです。
ですが、プログラミングについてすっぱりと考えることをやめ、仕切り直して再度エディタを眺めてみると、どこでミスしていたのかがはっきりと分かるということが私の経験上多くありました。
またプログラミングから短時間離れることは、非効率なコードを排除することにもつながります。
より具体的には、
なんでここ手動で文字列を配列にしてるんだろう... splitメソッド使えばもっと簡潔に書けるなぁ
などです。
ただし離れすぎると、プログラミング自体が嫌になっているかもしれないので、離れすぎには注意が必要です。
目安は最大 1日 です。
これは通称ラバーダック現象ともいわれており、
プログラマーがどういう流れでそのコードを書いていったのか、それを他の人に説明することで、ロジックがより明確で整理されたものになり、バグやエラーの原因を明らかにすることがやりやすくなる
というものです。
私にも似たような経験があり、実際にこの手法で解決することが何回もありました。
この手法によって、プログラマー自身が解決していると思い込んでいることと、実際にコードが解決している問題の差をはっきりさせることができます
例えばですが、C言語の標準出力をする際に、誤って%d で文字列を出力できると思い込んでいたとします。
ここは%dで文字列が出力できるから... あれ?%dって数字だよね? %sだったね
という解決や
if文のここでガードされてリターンされるから、ここには到達できないはずなのに、この行に到達しているっていうことは... パラメーターがnullじゃなくてundefinedの条件を考慮し忘れていたな
ということがより明確に分かるようになります。
いかがでしたか?
プログラミングを初めて学ぶ方が、本当に自分の作りたいものを完成させる能力を得られるまでに多くの壁があります。
あなただけがプログラミングを学んでいる場合
親も友達も誰も助けてくれないことがあります。
私もその一人でした。
ですが
バグやエラーからは逃げない、あきらめない気持ち
をここに挙げた方法で維持していくことで
継続してプログラミングを独学し
今ではこのサイトをフルスタックで構築する程には成長しました。
皆様もぜひ、ここで挙げた方法を実践して、強いエンジニアになってください。
私たちC4Cではプログラミングに関する質問をC4C公式Twitterで受け付けています。ぜひお尋ねください。
©cfcmedia.jp All Rights Reserved.