【開発】人に教わってプログラミングを学ぶ利点はフィードバックがあること

【開発】人に教わってプログラミングを学ぶ利点はフィードバックがあること

プログラミングに慣れている人は「独学でも勉強できたぜ!」と豪語することが多いかもしれません。私も今では「独学でもいけるぜ!」みたいなことを言うことがありますが、もし早く、体系的に技術習得するという観点であれば人に教わることを選ぶかもしれません。

プログラミングを学ぶ理由は人それぞれで、私はゲームを作りたいから、という理由でUnityとC#を使っています。ゲーム作り以外でも、「こういうアプリがあったら便利だな」とiOS向けのアプリ開発でswiftを使ったりする人もいますし、Android向けのアプリ開発でJavaを使う人もいます。Web系の開発をするならPHPとかPythonを使っているかもしれません。

このページでは、会社に入ってある程度仕事に慣れてきて、リスキリングとしてプログラミング技能を身につけたいと思っている方に向けて、他の人からプログラミングを学ぶことの利点を伝えたいと思います。

 

 

どこから手をつけていいか分からない

プログラミングを覚えようとする人の多くが陥る悩みが「どこから手をつけていいか分からない」という点かと思います。例えばiOS向けにアプリを作りたいとして、まず何が必要かを知る必要があります。

アプリを公開するためにはXcodeという開発環境が必要で、その開発環境はMacじゃないと使えなくて、開発に使う言語はswiftで、Xcode上でどんな作業をすればアプリになって……と、全く何も知らない状態から準備を整える時点でかなりハードルが高くなっています。もちろん、Google検索などで「iOS アプリ 作るには」なんて感じで調べると解説サイトなども出てきますが、これだって必要な情報の取捨選択をするにはある程度の知識が求められます。

Macを手に入れて、Xcodeを開いた時には「どこで何をすればいいのかな……?」とまた手探りの作業が始まります。趣味でプログラミングを始めるならひとつひとつ自力で調べていくのも楽しいものですが、リスキリングという目的なら限られた時間で効率良く技術を身に付けていきたいところです。

 

学んでいる内容が合っているか分からない

自力でプログラミングを学んでいくときの悩みとしては、「学んでいる内容が合っているか分からない」というものもあります。作りたいものが目標としてある中で、今学んでいる内容がその目標を実現するのに必要なことなのかどうか、自分で判断するのはかなり難しいことです。

何が必要なことで、何がそうでないのか、判断をするにも知識が求められたりして、結局ググったものを片っ端からやってみて時間をかける……というのも良く聞く話です。断片的な知識の繋ぎ合わせは裏付けとなる知識があってこそで、最初からやろうとするとかなり辛いものになります。

正直にいえば、これは辛い作業ではありつつも楽しい部分も多く、自分で法則性などを発見していくのは喜びもあります。私はかつて「苦しんで覚えるC言語」という本を使って勉強していたくらいには苦行には慣れているので、知識の繋ぎ合わせという手探りの作業の楽しさは分かりますが、これはあくまでも仕事でプログラミングを学ぶ前、学生時代の趣味の範囲だからこそできたことかもしれません。リスキリングとしてのプログラミング技能の習得であれば、時間が限られている中での学びになるため、だんだんとできるようになってくるまで時間がかかる点は辛い部分かもしれません。

知識の繋ぎ合わせでいうと、Web上の情報を使って勉強する場合、その記事を書いている人によって異なるコードの書き方をしていることも多いため、「昨日見た書き方と違う」と引っ掛かりを覚えるかもしれません。これは「本当に合っているの……?」と疑問が浮かんできて内容が入ってこない原因にもなったりします。ある程度慣れてきたら、単純に書き方が異なるだけで動作はする、ということが分かってきますが、最初は合っているかどうか判断するのが難しい部分ですね。

 

フィードバックを得るメリット

Web上の情報を繋ぎ合わせての勉強は大変なので、まずは一貫したまとめ方をしている書籍で勉強するのが王道です。初心者向けの書籍は各言語向けに存在しているかと思いますので、それを使って勉強を進めていくのが良いですね。同じ人が書いた内容だったり、あるいは編集者が入って一貫性のある内容にまとめていたりするので、書き方のブレなどはほとんどないかと思います。網羅的に内容がまとめられているので基礎となる部分を固めるのには向いています。

ここで敢えて書籍で学ぶデメリットを考えてみると、フィードバックを得られない点があるかもしれません。フィードバックとは自分の理解が合っているか確かめることです。

書籍に記載されているサンプルコードを書き写して実際に動作させてみると、思ったように動かないことがよくあります。

  • 単純な写し間違い
  • 手順の漏れ
  • バージョンの違い

などなど、さまざまな理由で動かなかったりするんですよね。

単純な写し間違いであればすぐに発見できるかもしれません。1文字書き間違えただけで動かないこともザラなので、目を皿にして確認することもよくあります。手順の漏れについても、書籍では読み飛ばして次のコードを書くケースもあったりするので、少し前の手順に戻ってひとつひとつ確認していくことも必要ですね。

バージョンの違いのせいで動かなかったりすると、読者の側ではお手上げになりがちです。ロングセラーの書籍の場合、使っているツールや言語のバージョンが古いケースもあり、新しいバージョンのツールだと動かないこともあります。プログラミングに慣れていれば古いバージョンのツールをインストールするといった対応もできますが、慣れていない人だとツールのダウンロードサイトに行ったらおそらく最新版をダウンロードしてしまうのではと思います。こうなると動かない理由を探すのはかなりの時間が必要になったりします。

トラブルが発生した時に解決するのはトラブルシューティングと呼ばれていて、この力を伸ばすという観点ではメリットがありますが、それはあくまで時間をたくさん使える場合です。スキル習得の時間が限られている場合は、15分悩んで解決しなければ人に聞く、くらいの感覚でいたほうが良いと思います。

また、もうひとつデメリットを挙げるとすると、書籍は自分のペースで進められる反面、やらなくなると一気に停滞するリスクもあります。仕事と並行して技術習得を進めるとなると、疲れと重なって「今日は早く寝て明日以降でいいかな……」みたいなことも割と高い確率で起きるので、外的要因によって強制的に進めないといけない状況を作っておくのも一つの方法です。

 

プログラミングスクールという選択肢

以上のことを踏まえると、限られた時間を使って技術習得を目指すのであれば、

  • 目的に合わせて網羅的に技術を学べる
  • 決められた周期でスケジュールを立てて勉強できる
  • 困った時に聞ける環境を作る

といったメリットのあるプログラミングスクールを使うのもひとつの選択肢です。特にプログラミングをやったことがなくて、かつリスキリングとしてこれから学び始めるのであれば、挫折せずに技術を身につけるには良い方法だと思います。

この記事を書いている2023年3月時点では、コロナ禍による影響もある程度おさまりつつありますが、オンラインで学べる形だと続けやすくなるかと思います。そのひとつとしてDMM WEBCAMPというプログラミングスクールがあります。

DMM WEBCAMPではさまざまなコースが用意されており、

・はじめてのプログラミングコース
・Webアプリケーションコース
・PHP / Laravelコース
・Javaコース
・Webデザインコース
・UI / UXコース
・動画クリエイターコース
・Pythonコース

のように学びたいものに応じて選べるようになっています。もしプログラミング未経験であれば、はじめてのプログラミングコースが良いかもしれません。

はじめてのプログラミングコース

プログラミングの基礎を学んでおくことで、別の言語を使う場合にも基礎知識が活かせます。

独学にはないメリットとしては、現役のエンジニアと話せる点もあります。書籍だけだと業界の動向だったり現在の状況だったりを把握するのが難しい反面、プログラミングスクールでは現役のエンジニアの方からその周囲の状況や転職、副業に関する情報をもらうことができるのも大きいと思います。この辺りは経験を通して得られる部分でもあるので、例えば転職したい場合にも情報を得やすく有利に働きます。情報は武器ですからね。

「でもプログラミングスクールってお金がかかるじゃん」

というのは確かにそうです。独学でやればお金をあまりかけずに済むので、抵抗感を持つのも自然なことかと思います。この点はお金と時間のトレードオフで、お金をかけて短時間で体系的に学ぶか、時間をかけてお金を抑えて学ぶか、ご自身のスタイルに合わせて選択するのが良いかと思います。

ただ、仕事をしていると時間の貴重さは嫌というほど思い知らされるので、短時間で基礎を網羅的に学ぶのはメリットも大きいかと思います。最初だけプログラミングスクールで学んで基礎を固め、その後独学で自分の作りたい分野の知識を深めていく、と進めるとWeb上の断片的な知識も活かし方が分かるようになってくるので、段階に応じて切り替えるのもひとつの方法です。

また、自分自身に投資した分は回収したいというモチベーションも働きます。お金を払ったんだから続けなきゃもったいない、というのも簡単に辞めないための理由になります。辞めなければ知識や技術はどんどん上がっていくので、お金的には若干の痛みは伴いますが、長い目で見てプラスになる方向に進める可能性が高くなります。

 

まとめ

自分に合った学習方法を見つけて、最終的に自分がやりたいことを実現するのが目的なので、独学じゃないとダメ、プログラミングスクールに行かないとダメ、なんてことはありません。なので、選択肢を狭めない意味でも、ひとつの方法としてプログラミングスクールを使ってフィードバックを得ることのメリットを紹介しました。

フィードバックを得られると学習効率は格段に上昇します。例えば学校のテストで答案用紙を回収された後、先生が点数を教えてくれなかったら、どこが合っていてどこが間違っているのか、分からないまま過ごすことになります。これだと勉強のしようがないですもんね。

なので、フィードバックを得やすい環境を作る意味で、プログラミングスクールはメリットがあります。ご自身の学習のやり方に合いそうであれば試してみるのも良いかと思います。

即戦力のスキルを身につけるプログラミングスクール【DMM WEBCAMP 学習コース(旧:SKILLS)】

 

 

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!