プログラミング学習初心者の落とし穴

プログラミング学習をコツコツ続けており、6カ月。

そろそろ本格的に作りたいサービスの実装に入ろうと思ったときに、私は自分が本当に大きな落とし穴にハマっていたことに今さら気づきました。

まず以下のTwitter動画を見てください。

まさに私は今のこの状態です。

勘違いしています。

  • Progate
  • ドットインストール
  • YouTubeの動画
  • Airbnbのサイト模写
  • 有料プログラミング学習スクール

を学習して、完全体になっていたと思っていました。

完全体にいかないまでも、俺ってそこそこイケてるって勘違いしてました。

昨夜、よし!!オリジナルサービスに手をつけるぞ!!と思い、設計図を書きました。

まずはログイン画面から作ってみよう!!

と思い、ログイン画面についてGoogleで調べまくり、このコードとこのコードを組み合わせたらいけそうだな、といった感じでサクサク進めていきました。

私が、使用しているプログラミング学習サービスにはメンター制度があり、設計図を提出し、ログイン画面のコードも提出したところ、返ってきた評価が

先生「hajiさんは、しっかりと内容を分かっていないようです」

私「・・・・!?!?!?どういうことですか」

先生「これは設計図とは言いません。画面推移・ざっくりとしたデザイン・データベースのカラム数などが記載されていません。一目見ればだいたいわかるような設計図が大事です。また部分的に先走ってログインページだけ作ってしまっては、あとからやり直すって事が起きます」

私「・・・・・・な・・・・なるほど・・・・・」

このやり取りをして気付いた自分のプログラミング学習の悪かったところは以下の通りです。

  1. 部分的な学習ばかりしていた
  2. コーディングとプログラミングを組むことは全く違う
  3. 設計図の学習が不足していた

1.部分的な学習ばかりしていた

プログラミング学習の入り口、HTMLとCSSです。

これは私も同じです。

Progate、学習サイトを駆使して私も学習を進めていきました。

ここで問題なのがものすごく部分的な学習だったなと思います。

どういうことか。

サービスを作ろう!!

仕事の依頼を受けた!!よし、コーディングだ!!

と思ったときに、如何に自分が部分的な学習をしていたか分かります。

・写真の挿入

・リストの作り方

・余白の取り方

などなど順を追って勉強が進みます。これはとても大事なことですが、自分で作る時は、どんな配置でデザインするのかをユーザー側の立場になって考えなければなりません。

ユーザーが使いやすいデザイン。つまり全体のバランスを見ながらコーディングする必要があります。

部分的な学習ばかりしていると、全体のデザインを考えるとなった時に、なかなかいいアイディアが浮かばない。

そもそも言われるがまま、画面に表示されるまま学習をす進めてきたのでユーザーの立場なんて考えたことがなかったのです。

コードに関しても

とりあえず模写だし、見た目一緒になればオッケーでしょ!!

と思うかもしれませんが、綺麗でないコードや余分なものが多いものはGoogleから嫌われます。つまりSEOの事を考えると不利になるのです。

ゴールを意識して勉強する

ある程度できるようになったら、少しずつでもいいのでゴール、つまり自分が作りたいサービスを意識して学習を進めましょう。

・プログラミングで稼ぐ

・副業として仕事を受注できるようにする

といった目標もいいと思います。事実、私もそういった動機から始めました。

部分的な学習を繰り返すことと、全体のことを考えてページをデザインしコードを入力することは雲泥の差があります。

これが一体最終的にどんなところで役に立つのか

といったように、最終ゴール・全体のことを考えながら学習することをお勧めします。

2.コーディングとプログラミングを組むことは全く違う

先ほども言いましたが、最初の入り口はHTMLとCSS。

これがある程度できるようになると、サイトのコーディングができます。

したがって、自分の成長を一番感じやすく、プログラミングって楽しいなって思います。

エラーが出たところも分かりやすい。

またBootstrapというものによって、コーディングはより敷居が低く、チャレンジしやすいものになっています。

私もAirbnbの模写が出来たときに

俺って結構いけんじゃん

って思いました。

もしこのブログを読んでいるかたで私と同じことを思っていたら、断言しましょう。

それは大きな勘違いです。

実際にPHP・MySQL・Larabelあたりを現在取り組まれてる方ならわかると思いますが、エラーの発見とエラーの手直しのレベルが全然違います。

コーディングは見て確認できるので、これは余白空けすぎたな、角の丸みがもう少し欲しいな等が分かりやすいです。

ただPHPなどが入ってきたらエラーを直すのにも一苦労の場合があります。

Webに表示されるエラーは英語。

和訳したところで日本が崩壊してる。

質問掲示板で質問したところで、誰も答えてくれないか、何言ってんの?って雰囲気になる。メンタルまでやられます。

コーディングは目で見えて変化が分かる。楽しい。エラーも見つけやすい。

プログラミングは、変化がパッと見て分かりにくい。地道。エラーも見つけにくい。環境構築も複雑。

これだけ見ても全く違うことは分かると思います。

コーディングでプログラミングができていると勘違いしてはいけません。

痛い目を見ます。

3.設計図の学習が不足していた

プログラミングを組む前の設計図を作ってください。

と言われたときに、頭の上にクエスチョンがたくさん出てきました。

何それ?

みたいな感じです。

目の前の課題をただひたすらクリアして、完全体になったと思っていた私には設計図の事が分かりません。

私の書籍の読み込みが足りない、Googleで調べる量が足りない等あるかもしれませんが、今まで「プログラミングの設計図」について細かく書いてくれてる書籍や、サイトに出会ったことはないかなーと思ってます。

最初にも少し触れましたが、この設計図が全体の構成です。

・データベースをどうするのか。

・カラム数

・デザイン・配置

・画面推移・ページ数

等を落としこんだものが設計図になります。

これができて、サービスの作成に取り組んでいきます。

これをせずに、作業に取り掛かると出戻りが多く大変非効率だそうです。

しかしここで問題なのが、単発のページを作り続けて完全体だと勘違いしていた私には、全く意味わからない。

Progateで信じられないくらいレベルが高い人っていると思います。

どうやったらそんなレベルにいけるんだろう?って思うくらいの(笑)

ただその人たちも、ひょっとしたら部分的な学習ばかり行っていて全く全体が見えてない状態かもしれません。

いつまでたっても全体の作成にかかれず、部分的な学習の無限ループに陥っている可能性があります。

一度、設計図を描くことにトライしてみてください。

もしかけないのであれば、プログラミングを学習していくモチベーションの維持が難しいかもしれないですね。

自分で作りたいサービスの全体像を把握して、足りに部分を補っていく。

そのために部分的な学習を進めていく。

が本来の流れですから。

一度学習を止めて、作りたいものがあるか確認

今なんとなく学習している人は、一度学習をストップして、作りたいサービスがあるか確認してください。

自分の学習は、その全体像を構築する上で必要な部分学習なのか見つめなおしてください。

もしかしたら全く見当違いなことをやっているかもしれません。

私も、今の仕事に携わってからは本番に勝る経験はないと再確認しました。

・部分学習=練習
・サービスの作成=本番
・仕事として受注=戦場(失敗したらやばい!!)

っていう認識です。

本番に挑戦しないといつまでも成長しません。

そのためにも、自分がプログラミングで構築したいものを再確認する時間は、プログラミング学習初心者には必要だと思います。

最後まで読んでいただきありがとうございました。

-プログラミング
-, , ,