【#15 初心者向け】努力すればプログラミングできると思っていませんか?
こんにちは。Step App Schoolの小林です。
プログラミングの勉強をしていると、努力すればプログラミングができるようになると思っている人が多いので、まとめてみました。
1.自分の努力と才能でプログラミングできると勘違い
プログラミングができて、すでにエンジニアになっている人のなかで、自分は努力と才能(そこまでは言わないが)でプログラミングがうまくなったと言う人は多いです。
「遊ぶ暇があったらコード書いたら?」
「寝食を忘れて打ち込まないとプログラミングは上達しないよ」
「とにかくコードを書かないとダメ。自分は仕事終わってから寝ないで書いてた」
なんて言います。
安心してください。そうじゃないです。努力と才能だけでプログラミングができるようになるのだったら苦労しません。これは、プログラミングに限った話ではないです。一流大学に行った人も、プロスポーツ選手も、囲碁や将棋のプロなんかも、みんな同じです。その理由を説明していきます。
2.頑張ればすべて報われる社会だと思ってる?
最初に聞きます。
頑張ればすべてが報われる社会だと思っていますか?
あまり楽しい結果ではないですが、社会人であれば大半の人たちは「No」と思っているんじゃないでしょうか。私もそう思います。むしろ学生のころはそう思っていましたが、社会に出ると理不尽なことばかりで愕然としたのを覚えています。どれだけ努力しても、ただ既得権益を持っているというだけの人に圧倒的な力でつぶされることの方が多い気もします。どれだけ頑張っても、カネがないということだけで稼ぐチャンスすら与えられないことは多々あります。
2019年の4月に、東京大学の入学式で、上野千鶴子さんが述べた祝辞が話題となりました。大部分は、女子学生の医学部入学を不当に差別していたことを意識したものでしたが、その中で私は以下の部分に感銘を受けました。
あなたたちのがんばりを、どうぞ自分が勝ち抜くためだけに使わないでください。恵まれた環境と恵まれた能力とを、恵まれないひとびとを貶めるためにではなく、そういうひとびとを助けるために使ってください。そして強がらず、自分の弱さを認め、支え合って生きてください。(全文は東大のホームページから読むことができます)
この発言の趣旨は「自分の努力だけでここまで来たと思わないで、恵まれた環境のおかげでもあるということを自覚してほしい」とのことでした。東大生がつくったオンラインメディア「UmeeT」で、インタビューされた上野さんは「環境+努力だよね。環境条件がなければ努力もできない、ってすごく単純なこと。」と話しています。
↑このインタビュー記事はめっぽう面白いので、ぜひ目を通すといいと思います。
3.プログラミングに打ち込める環境がある
プログラミングが得意な人たちのうち、かなりの割合が次のような環境にいる(またはいた)ことが多いです。
1)若い頃に自宅にパソコンがあった
2)ひきこもっていたが、一念発起してプログラミングを覚えた
3)専門学校でプログラミングを学んだ
4)一人暮らしで会社を辞めて打ち込んだ
5)会社で何度も徹夜をしながら実戦で覚えさせられた
ホリエモン も中高生の頃にパソコンを買ってもらったと言います。多分、当時はデスクトップのパソコンが最低でも30万円ほどした時期です。一般的な家庭の子どもが、ねだって買ってもらえるような価格ではありません。また、ひきこもっても生活ができている環境や、専門学校に行けるくらいのカネと時間があったことが、すでに恵まれていると言えるでしょう。
一人暮らしや徹夜ができる環境も、ある視点では恵まれているとも言えなくはないです。たとえば家族がいて、子どもが生まれたばかりだったり、介護が必要な親族がいたり、家事をしなくても大丈夫な環境だったりすることは、その当事者から見るとうらやましい限りです。
もちろん、どんな環境にいても努力する人はいます。たとえ恵まれない環境にいても、少ない時間をやりくりして成果を出す方は尊敬に値します。逆に、恵まれた環境にいても何もしない人もいます。その意味では、どんな環境であれ、努力している人はおしなべて素晴らしいと思います。ただ、だからといって、プログラミングに打ち込めない人が、すべて怠けているわけではありません。なので、プログラミングスクールの講師が、たとえひきこもりから復活した偉大なプログラマーだろうが、恵まれた環境にいた自分と、その環境があるかどうかわからない受講生を比較するのは意味がありません。
4.プログラミング学習を継続するには方法論がある
プログラミング学習を続けたいし学習できる環境もあるんだけど、続ける自信がない人は多いと思います。次の3つに当てはまる人は特に要注意です。
A)勉強が好きではない。自分なりの勉強方法もわからない
B)根気がない、打ち込むタイプではない
C)機械やゲームなどは、説明書を熟読してから始めるタイプだ
この3つのうち1つでも当てはまるのであれば、独学はあきらめ、思い切ってプログラミングスクールに通った方がいいと思います。1カ月で20万円近くのコストがかかるので、けっこうやる気が出ますし、懇切丁寧に教えてくれるので良いと思います。
例えば私のいるプログラミングスクールでは、1カ月で50以上のレッスンをこなしてくださいとお願いしますし、学習方法を説明します。また、帰り際に次の利用予定を聞きます。「約束したので、また来なきゃ」という気持ちになりますし、それまでにやらなきゃいけないことも明確になります。このようにスクールは、学習方法を教えてくれたり、プログラミング学習を続けるためのモチベーション管理も積極的にやってくれたりします。
逆に、身もふたもないことを書くと、次の3つにあてはまる人たちは勝手にプログラミング学習を継続しますので、独学向きです。
1)勉強そのものが好きで、確固とした自分なりの学習方法が身についている
2)強烈な危機感がある(会社から命令されてきた等)
3)三度の飯よりプログラミングが好き
5.まとめ:とはいえコードは書き続けないと上達はしない
とはいえ、私がいるプログラミングスクールでは「とにかくコードを書きましょう」というシーンは多いです。少し慣れてくると、プログラミングの入門書や参考書を持ってきて、やたらとそれを読んでコードを書かなくなることがあるからです。
ここで比較の基準となるのが「書籍を読むこと」あるいは「Webを眺めること」です。その時間があるなら、コードを書いた方がいいですよ、と言います。本を読んでもいいので、コードを書かないと上達しないことは確かです。
まとめです。プログラミングが上達しないのは、努力や才能がないからじゃなくて、方法論が間違っているか、もしくはプログラミングに打ち込める環境にないからかもしれません。原因が後者であれば修正は難しいですが、前者であれば改めることは可能です。方法論の間違いは、だいたい「コードを書く量が少ないこと」か、「文法やアルゴリズムがわかっていない」かです。
プログラミング初心者が初級者にレベルアップしたければ、とにかくコードを書きましょう。そこには努力も才能も関係ありません。
↓過去記事です。興味があったら読んでみてください。
【#1 プログラミングの準備】
【#2 背景変換アプリ】カンタンなコードを書いてみよう
【#3 背景変換アプリ】プログラムの中身を理解してみよう
【#4 Swift iPhoneアプリをつくる流れを理解しよう】
【#5 画像切替アプリ】お気に入りの写真を表示しよう
【#6 画像切替アプリ】コードの内容を理解してみよう
【#7 iPhoneアプリ開発でよく出るエラーをつぶそう!】
【#8 音をならすアプリ・前編】素材を自分で集めよう!
【#9 音をならすアプリ・後編】コードを書いてみよう!
【#10 音をならすアプリ】コードの中身を理解しよう!
【#11 Xcodeの整列・制約を理解しよう】
【#12 プログラミングが上達しないたった1つの理由】
【#13 「この歳プログラミングなんて遅すぎる」という人は◯◯が間違っています】
【#14 プログラミング初心者向け】つくりたいアプリがない方への処方せん
馬券が当たった方、宝くじを当てた方はお願いします。