どうも。
先日、編集長であるまきぎにあなたよりも上の立場の人が締め切りを守っているんだから守りなさいと遠回しに圧をかけられたばかりの意匠制作部フロントエンドエンジニアのタカウマです。
さて、これまでUXエンジニアとかサブマネージャーと名乗っていたのになぜ今日はフロントエンドエンジニアなのかというと、今回はそっち系のブログを書くからです。
これまでは自分の備忘録としてビジネス系のフレームワークについて書き殴ってきたわけですが、一応僕はトゥモローゲートのエンジニアでもあるので、エンジニア界隈の方々にも有益な情報を発信しないといけないなと思ったんです。
とはいえ素人に毛が生えた程度の僕に何が発信できるのか。悩みに悩んで出した答えは
毛が生える前の素人の方々になら有益な情報を発信できるんじゃないか
です。
ということで今回は産毛だらけのエンジニア素人の方々が最初に調べるであろうプログラミングを習得するための便利なサービスについてまとめました。
これを読んだあと、少しでも本格的な毛が生えてくれれば、僕にとってそれほど嬉しいことはありません。
はい。
いってみましょう。
INDEX
まず初めに皆さんが抱くプログラミングやコーディングのイメージってどんなものでしょう?
だいたいの人は「コーディングが何なのか」もわからない状態かもしれません。たぶん、ざっくり「プログラミング」という難しそうな言葉だけは知っている、という状態だと思います。
プログラミングを触ったことがない人は
・何やってるかよくわからんけど難しそう
・理系がやるものでしょ?
・言語?英語じゃないの?
・勉強するのに何かとお金がかかりそう
・よくわからない黒い画面
こんなふうに難しくてハードルが高いといったイメージを持っている方はけっこういます。(実際うちの嫁にもつくったサイトを見せるとまるで神のように崇めてくれるので、たまに自己満で見せたりしてることは内緒です。)
たしかに完全未経験の人からすればすごく難しいことのように感じると思います。実際、未経験時代の僕もそうでした。けど今はオンラインで学習できるサービスがたくさんありますし、無料のものもあるので思っている以上にプログラミング習得の難易度は下がってきています。
そして僕の経験上、完全なド素人であったとしてもすこし教えるだけで理解して納得して満足げな表情になることがほとんどです。それをweb上でしかも場合によっては無料でできるんですから便利な世の中になったものです。
ここからはジャンルやカテゴリ、特徴に分けてプログラミングを学習できるサービスを紹介していきます。まずは「プログラミング学習」と検索したらほぼ100%上の方に出てくる、いわゆる「王道」のサービスを紹介します。
「初心者 独学 プログラミング」とくれば間違いなくトップに上がるのがこのサイトです。プロゲート最大の特徴は、なんといっても、環境構築が一切不要で、何の準備もしなくてもプログラミングを体験できる点です。アプリ版配信されているので、スマホだけでも簡単に学習が可能。プログラミングへのハードルを一気にとっぱらったかのようなサービスです。
学習できる言語も多く、その手軽さのおかげでどんな初心者でも簡単に学習できるサイトですが、本格的に学習すると有料登録が必要になるので、より実践的な学習をしたい方や中級者以上の方がわざわざ有料版に登録する必要はないでしょう。「新しい言語を学ぼうと思っていて、その入り口として勉強しよう」くらいの温度感で利用するのがいいと思います。
ドットインストールは一つの講座が全て3分以内でまとめられている動画を中心とした学習サイトです。かなり古くからあるサービスで、先ほどのプロゲートと肩を並べるくらい有名です。この二つのサービスに関してはプログラミングの学習を始めたら必ず名前を聞くと思います。
プロゲートと同じく基礎的な部分は無料ですが、さらに応用的な内容や実践的な内容を学ぶとなると有料プランへの切り替えが必要になります。初心者がつまづきがちな環境構築の段階から学習できるので、全体的にかなり親切なサービスとなっています。
特徴はやはり実際に動画で見ながら進められて、直感的に理解しやすいところです。個人的にはドットインストールを全てやれば結構な知識がつくんじゃないかと思っていて、もし有料プランを考えているならプロゲートよりドットインストールだと声を大にして伝えると思います。
こちらの特徴は、最初から最後まで全て無料で学習できることです。穴埋め方式で学習が進んでいくので、復習などに利用するとより理解が深まります。取扱言語も多く、たくさんのことを学習できる分、1からコードを書いていくわけではないので実践的な力を身につけたいならこれ単体では物足りません。
入門編、基礎編、実践編と分かれており、実践編ではWebアプリなどを実際に作っていくので講座の完了=アプリの完成という一つの目的があって楽しく学べる要素かなと思います。(やはり初心者や未経験者にとっては実績となるものを作るのが何よりやりがいになるので。。)
こちらも未経験者や初心者におすすめできるサービスかと思います。特にHTMLやCSSをはじめweb系の実践講座がたくさんあるので、Web系の基礎を固めたい初心者の方にはちょうどいいかなと思います。
paizaラーニングは、コード採用(エントリーシートの代わりに書いたコードを提出するという独特の就職活動)などのサービスを運営するpaizaが運営する学習サイトです。動画を見て実際にコードを打つスタイルで、環境構築も不要です。
プログラミングを使うゲームなども多数あり、楽しみながら復習できるのが特徴です。唯一ほかのサービスと比べて難点かも…と思うのは基礎的な部分も有料プランに含まれている場合があること。ただその料金はかなり安いので、気になるか気にならないかはその人の価値観次第かなと思います。
他にもいろんな形でプログラミングを学習できるサイトがあったので、足早にはなりますが紹介したいと思います。Webに限らずいろんなジャンルのサービスを記載しているので、興味があればぜひチャレンジしてみてください。
Appleが開発したプログラミング言語「Swift」をパズルを解きながらインタラクティブに楽しく学べるアプリです。iPad用とMac用があり、コーディングの知識は一切不要。ゼロからコードを学ぼうとしている方々にぴったりです。
こちらもパズルを解きながらバグをやっつけていくパズルゲームです。一般的によくつかわれる四則演算ではなく、論理演算というものがコンピュータの主流なのですが、それを楽しみながら学べるパズルゲームとなっています。
なんとディズニーが提供するプログラミング教材もありました。課題や題材がディズニーの世界観から抜粋されていて、大人でも楽しくなってしまう教材です。プログラミングのハードルが高いと感じてなかなか踏み出せない人にはおすすめかもしれません。
先ほど紹介したpaizaのサービスの一つです。RPGゲームを楽しみながらプログラミングを学ぶことができます。こうしてみると本当にいろんなタイプの学習サービスがありますね。すごいです。
ほかのゲームよりもシンプルなプログラミングパズルゲームです。パペットの行動をプログラムして、敵を全滅させていく過程で自然とプログラミング思考が身につきます。ステージ数が多く、大人でも十分楽しめるサービスです。
こちらも同じくpaizaのRPGゲームで学べるサービスです。基礎的な機能は無料でプレイすることができますし、ランキングなどもあって勉強する意欲を掻き立てられるので「勉強がなかなか続けられない」という人にはおすすめかもしれません。
誇り高き社畜…もとい社員を目指し、プログラミングパズルを解きながら契約更新を目指すというサービスです。自動化が進む世の中に屈しない24時間戦う戦士の物語という時代背景をとらえた面白いコンセプトになってます。「楽しむ」は継続のカギだと思うのでこのサービスもおすすめですね。
子供でも楽しんで取り組めるサービスを紹介します。小さい頃からプログラミングを学ぶことが推奨されている世の中なのでこういったサービスがあるのはいいですよね。お子さんがいる方はぜひチェックしてみてください。
「Code Karts(コードカーツ)」はゲーム感覚でコーディングの基礎が学べるアプリです。説明を読まなくても案内画像だけですぐに使い方がわかるので小さなお子様も飽きずに進めることができそうです。
全国どこでも受講ができる小学生向けのオンラインプログラミングコースです。入会金、月謝などがある本格的なサービスで相応のコストはかかりますが、その分専属の教師がつくなどサービスは手厚い印象です。お子さんにガッツリ学んで欲しいという方にはピッタリかもしれません。
講師とマンツーマンのレッスンが受けられる子供向けのプログラミングサービスです。レッスンに加えてチャットでのサポートもありますし、保護者向けの相談会や無料体験などもあるので「どのサービスを利用すればいいのかわからない」という方は一度試してみてもいいかもしれません
子供に大人気のゲーム「マインクラフト」をプレイしながらプログラミングに必要な知識やスキルを学べる「マイクラッチJr.コース」が人気です。D-SCHOOLオンラインは「考える力、造る力、伝える力を養う」をコンセプトにしているため、プログラミング知識以外のことも同時進行で学ぶことができそうです。
こちらもプログラミングでゲームやアプリを作れるサービスですが他のサービスと違うのはロボットの作り方を学べること。自分が作ったものが有形物として動く様を見れるのでやりがいは強いかもしれません。webやオンラインだけで完結するのは便利ですが、こうやって成長や成果が実感できるのもいいと思いますね。
これだけいろんなサービスがある中で、どれを選んでいいのか分からないという方も多いと思いますので、僕自身が学ぶ上で気をつけていたことや今だから思うことなど踏まえて、どんなサービスを使えばいいのかを考えてみました。
独学でプログラミングを勉強しようと思ってまず思い浮かぶものに学校や参考書が挙げられますが、圧倒的におすすめなのはとりあえず無料の学習サイトでプログラミングに触れてみることです。本を読むより、高い学費を払って学校に行くよりプログラミングとは何か、コーディングとは何かを体感してみることが大事です。
その時点で「自分には合っていないな」と思えばプログラミングを学ぶのをやめればいいし、「楽しいな」と思えたら本格的に学び始めればいい。それを判断するチャンスがリスクゼロで手に入るので「まず触ってみる」をしない選択肢はありません。プログラミングとは何かが分かっていない状態でどんなサービスがいいのかなんて分かりませんからね。
「プログラミング 学習」とか「コーディング 学習 サイト」とかで調べるといくらでも出てきますので、そのサイトのサービスを無料で利用してみることです。
無料のサイトを触ってみて「本格的に学んでみようかな」と思ったなら勉強するサービスを選んでいきましょう。先ほど書いた通り学習サービスは山のようにあります。検索したら山のように出てきます。そんな中から自分に合ったサービスを選ぶときにどんな基準を持てばいいのかみていきます。
1つめは自分が学びたい言語やフレームワークを習得できるかどうかです。一口にプログラミングといっても下記のようにたくさんの言語があり、目的に応じて使い方も使う場面も変わってきます。
・Webサイト構築 :HTML/CSS、JavaScript、Java、PHP、Ruby、MySQL…etc
・Webデザイン : HTML/CSS、JavaScript、Illustrator、Photoshop…etc
・スマホアプリ : Java、Kotlin、Swift、Flutter、ReactNative…etc
・データ解析やAI(機械学習の基礎) : Python、R、Julia…etc
・2D/3Dゲーム : Unity(C#、JavaScript)、Unreal Engine、Maya…etc
自分がなりたい職種を明確にし、そのために必要な言語を無駄なく学んでいきましょう。もちろん特定の言語にすごく詳しくなっていれば、他の言語の習得スピードが高まる場合はありますが、それは結果論。まずは自分がなりたい職種に最短距離でいける方法を考え、必要な言語を集中的に学んでいきましょう。
学習サイトはすべて無料で学べるわけではありません。一部だけ無料で本格的に学ぶ場合は有料、その中でも言語によって料金が違うなどのパターンがほとんどです。たくさんあるサイトごとのコスト面の特徴を調べて、自分の目的と照らし合わせて最終使用するサービスを絞っていきましょう。
ただ、ここだけの話、ネットのサービスは無料で利用する価値は十分ありますが、そこにお金を払う価値があるかと言われれば個人的にはNOと答えます。後述するデメリットにもつながりますが、ネットの情報より参考書などの方が情報の精度は高いので(あくまで個人的な意見です)。
3つ目は学習スタイルとその難易度についてです。誰でも簡単に無料で学べるプログラミングですが、その環境構築や事前準備については書かれてなかったりもします。
ほとんどのサービスは環境構築が不要ですが、自分で環境構築をしてから学習をスタートしないといけないものもあります。いざプログラミングを学ぼう!と意気込んでも肝心の環境構築がわからなければやる気がなくなるパターンが多いです。
初心者であれば、画面にコードを打ち込んで結果がでてくるサイトや動画で学べるサイトを、中級者なら演習問題を繰り返していくサイトを、といった具合で自分のスタイルと学習コストとのバランスを見て選んでいきましょう。
とりあえず無料のWebサービスで十分だとお伝えしましたが、それをずっと続けているだけでは意味がありません。特に未経験から独学でプログラミングを勉強していくには、上達するためのコツをつかむ必要があります。
初心者がプログラミングを始めてから大枠を理解できるようになあるには半年かかると言われています。もちろん人によって変わりますが「半年後に大枠を理解する」というゴールを設定し、逆算して1日1日積み上げていくことが大事です。ゴールが見えない学びはやる気なんて出ないものです。
こちらも期限の話と似ていますが、1日の作業でどこまでやるかのノルマを設定することをお勧めします。ノルマと認識することでやらなきゃという思考が働き、万が一できなかった日は落ち込んだり、次の日に2倍やったりと行動が変わってきます。ここをなんのノルマも設定せずにやっていると、1日何もしなくても気にすることなく過ごせるようになってしまいますので、自分の中で多少の負担やストレスになるような設定は必要です。
「プログラミングができるようになること」が目標ではありません。「プログラミングで何をするのか」が目標です。勉強することやできるようになることを目標にしないこと。自分のサービスを作るなのかどこかの会社に就職するなのかフリーランスになるのか。プログラミングを習得した先の目標を立てるようにしましょう。
これだけWebサイトで学ぶことを押しているのにはしっかりとした理由があります。
ネットで動画や講座を見るだけなので、何時から何時の授業、のように時間に縛られることなく、また足を運ぶこともなく自分の好きな時間に勉強することができます。
スクールだと入会金や授業料で何十万とかかるのが当たり前なのに対し、ネットサービスの基本は無料です。最近ではYouTubeなどで講座を配信している人もいるため、無料で学習を完結し転職に成功してる人もいます。先ほどあげていたWebサービスの有料登録の月額1,000円前後ですから、学校や教材に比べるとお得でしかないですね。
動画学習サイトなら何度もコードを見て学ぶことができますし、そのレベルもさまざま。未経験の段階からトップクラスのコードを見て学ぶことができるのはネットならではです。狭いコミュニティで同じ先生に学ぶよりも、世界の各分野のプロから学べる方がよっぽど効果的ですよね。
もちろん、学習サイトだけで学んでいくにはデメリットもあります。メリットと比較した上で自分に向いてるかどうか判断していただければと思います。
正直、これはプログラミングに限った話ではないですが、かなりの自己管理能力が求められます。どこまでいっても学習するのは自分一人。いくらでもサボれる環境でシビアに頑張れる人ってそういないです。予定がある、眠たい、疲れている。いろんな理由がある中でどれだけ自分に厳しく学習できるか。この精神はかなり重要になってきます。
つまづいた時に相談する相手がいないということです。1人1人疑問に思う点やつまづく点は違うので、ネットに書いてある解決方法が全て自分に当てはまるかと言われればそうではありません。そういった意味で誰にも相談できない状態を打破するための「課題解決力」たるものは必須のスキルかもしれませんね。
これはスクールでも言えることですが学べるスキルは所詮情報でしかありません。それを持って就職したとしても、イレギュラーな対応や周りとのコミュニケーションなどさまざまな部分で職場でしかわからないスキルが必要になります。サイトでもスクールでも学べるのは知識だけ。現場でしかできないことがあるということを理解しておくことが大切です。
一人で学習できる人とそうでない人がいると思います。一度一人でやってみて、自分には向いていないと思えばスクールに行くのも一つの手段かなと思います(僕はネットでの勉強をおすすめし続けますが)。スクールなら就職先の紹介をしてくれるところもあるようなので、そこに魅力を感じる人にはスクールもアリかなと思います。
どちらの方法で勉強していたとしても、人間ですから飽きるときはどうしてもきます。そんな時にどうすればいいのかの対処法を最後にご紹介します。
毎朝見ることを日課にしている人もいるくらい、自分がいる業界の最新ニュースや動きを知っておくことは重要です。プログラミングに飽きた時はもちろんですが普段から習慣になっていればなおいいと思います。
勉強用で買った参考書に目を通すのもいい刺激(休憩)になります。自分と同じような実装でも全く違った表現がされていたり、知っているようで知らなかった言語や意味を知れたりといいインプットになります。しかも、参考書の情報の質はネットよりも高い傾向があるのでそもそもいい勉強になります。
今回はプログラミング学習に最適なサービスをWebに限らず紹介していきましたが、いかがでしたか?
プログラミングを独学で学習する人はけっこう多く、今や習得のハードルはかなり下がってきています。その手段としてスクールに通う選択肢もありますが、なかなか続けられずに挫折してしまう人が多い印象です。そんな時はやはり、手軽にはじめられて継続すればしっかりと習得できるWebサービスはおすすめなんですよね。
デメリットはもちろんありますが、それを何倍も上回るくらい大きなメリットがあると思ってます。なかなか継続できないな…と悩んでいる人はこの記事で紹介したサービスの中から自分に合ったものを選んでみてはいかがでしょう。