Binary Diary

誰かに会ったり 話しかけたり 街行く人に優しくね

プログラミング学習サービスProgateを触ってみて、学習・教育・採用の3つの立ち位置から感じたこと

どうもこたにんです。

 

最近、HRTechなコミュニティの方とお話する機会が増えてきまして。
その中でよく聞くのが「プログラミングの学習をしたい!」というお話。
未経験者でも気軽に学ぶことができるサービスってありますかね、みたいな。

はい、目次どん!

 

Progateって?

f:id:Kotanin0:20181224202413p:plain

WEBアプリケーションプログラミング初学者向けのサービスがProgateです、にんじゃわんこが可愛い。
Twitterでちょいちょい目にしていたり、会話のネタに上がってたりしてて名前は知ってました。

初学者向けに、いくつかの言語についてオンライン演習ができるサービス。
無料で以下14種類の言語の複数レッスンが受けられます。

月額980円の有料会員プランだとさらに上級向けのレッスンが開放されます。
レッスン概要は公開されているので見てみたけど、上級は結構本格的!

わたし、本サービスの販売をしているわけではないのですが、なんか宣伝してた。
さて、個人的に感じるProgateの特徴を3つ挙げてみます。

1. オンライン上で学習を完結させることができる

Progateは完全にオンライン上で完結するサービス。
なので、PCひとつブラウザひとつで、多くの言語の学習をすることができます。
端末上に環境を構築することなく、学習に集中することができます。
エディタ・コンソールが備わっていて使い勝手もよいです。

f:id:Kotanin0:20181224170220p:plain

 

2. 見やすくわかりやすい説明資料がある

各学習内容ごとに、見やすくてわかりやすいスライドが用意されています。
言語のプログラミング的な記法もそうですが、はじめの章では言語の特徴も紹介されます。
悩んだり困ったりしたらすぐスライドを振り返ることができます。

f:id:Kotanin0:20181224170606p:plain

またスライドは、全ての学習プログラムに用意されており、それらは検索もできます。
過去に学んだものをふと調べたいときや、他の言語での対応方法を確認するなど、ドキュメントとしての活用ができます。

f:id:Kotanin0:20181224171012p:plain

3. 定量的に自己評価ができる

進捗が明確に数値で見えるので、達成感を得やすいです。
学習中にはプログレスバーで進捗率がわかるし、章の数もはっきりと示してあります。

完了数や継続して取り組んだかどうかが、個人のダッシュボードで見れることも良いです。
いくつの演習をクリアしているかなどがわかります、以下はわたしが2日でちょろっとやってみたやつ。

f:id:Kotanin0:20181224171940p:plain

このように、どこまで学習しているかどうかがハッキリするため、スキルレベルがその水準に少なくとも達している(であろう)ということが定量的にわかるようになります。

Progateを少し触ってみた感じたこと

数時間という短い時間ですが、Progateでいくつかの演習を触ってみて感じたこと。
学習者・教育者・採用担当者それぞれの立ち位置で主観的な感想を。
もっとやり込めばもっといろんな感想が出るかと思いますが、ひとまず。

学習者として

学習者とは、Progateでプログラミング学習をしている人を指します。

どの言語を選ぶべきかという観点を持ちたい

プログラミング初学者を想像したときに、たくさんの言語が並んでいるのを見てどう思うか。
「んー、、、どれがいいのかわからん」ってのはあるんじゃないかなと思います。

それぞれの言語が、今の業界のどの業種でスタンダードなものなのか。
その言語を取得したときに発揮できるのはどういった領域なのか。
技術者としての鼻みたいなものを持っていないと、言語だけがひとり歩きするかも。

なので無作為に目についたものを選んでしまうことを気をつけたい。
Progateの中に 目的別コース一覧 という素敵なメニューが提供されています。
ここから自分の目的に合ったものを学んでいくというのが手かと思いました。

実際の開発業務に紐づくイメージを持ちたい

ひとつ目の話に似てるのだけど、今自分が学習している言語が、どう活かしていけるのか。
学んだだけでは勿体無いので、それを何と組み合わせればどういうプロダクトができるのか。
そういう観点を持ちたいという気付き。
(すごくひとつ目の話に似てた)

 

ブラウザで受講できる気軽さに甘えたい

ブラウザで学習できるという気軽さは本当に良いです。
自分のマシンに環境が備わっていなくても学習できるというのは、本当に良いです。
(大事なことなので2回言いました)

ただその気軽さは、実際の開発をするときには必ず通る道をショートカットしてる感じ。
プログラミングを自分でしていくときの最初のハードルは環境構築なのです。
環境構築とは、自分のマシンにエディタやコンパイラなどツール類を入れること。

環境構築は、実際そのときに自主的に調べてなんとかしていくものだとは思うけど。
可能な限り、そこもサポートできるといいなあって思った。

教育者として

教育者とは、Progateで学習をしている人を受け入れる側の役割の人を指します。

できなかった・苦手なところのケアをしたい

Progateは、レッスンを完遂して、基礎的(または応用的)なスキルを身につけることが目的です。
そのため、行き詰まり悩みすぎないように、ヒントや回答を見ることができます。

ヒントや回答を利用したというアクションは、振り返りポイントとして最高です。
何がわからなかったのか、そのとき何をしたのか、何に気づけたのか。
その点をデータとして持ちレポートとして抽出できると素敵だなと。
(簡易的にメモを残しておくでもいいかも)

言語の特徴や特性をもっと引き出したい

これは、学習者側の気付きとも似ているのだけど。
やはり、学んだものの特徴や特性をどこまで理解しているのか、というところを大事にしたい。
学んだことから、自分でアウトプットを考えられるようにしたい。

それは言語仕様だけではなく、その言語の特徴をきちんと把握すること。
また、実例としてどのようなサービスに使われているかなど。
言語のカラーを知ってほしいな、アウトプットのためにね。

プログラマとしての汎用的なスキルも身に付けたい

Progateでは言語仕様と構文などについてはかなり正しく学ぶことができます。
ただ、プログラミングをする人間としての汎用的なスキルというのがいくつかある気がします。

例えば、グーグル力。
ググラビリティの高い(検索されやすい)キーワードで調べ物ができるかどうか。
自分でプログラミングするときは、悩んだり行き詰まったりすることがとても多いです。
そのときにいかに検索力高く調べ物を見つけられるのかどうか。

例えば、アルゴリズム力。
コーディングをするときって、ただ動くものを作ればいいというわけではなく。
サービスによって、速さ・軽さ・読みやすさなど、大切な軸ってのが出てきます。
どれもこれも、処理を考える力、アルゴリズムを考える力というのが必要。

他にもあるかもしれないけど、単純な言語知識だけでは手に入れ得ないスキル。
というのを何かしらの方法でカバーできたらいいなと思った。

採用者として 

採用者とは、Progateの採用ではなく、Progate学習者を採用目線で見る人を指します。

研修中のアウトプットがほしい

Progateで研修をしていることを、アウトプットしていってほしい。

学習が修了してからそれを報告するのもいいけど、学び途中でもアウトプットしてほしい。
それはSNSでの共有とか、GitHubやQiitaとの連携とか、やり方はいろいろあるけど。
簡易的に進捗や取り組みや悩みをアウトプットできるような方法があればいいなと思った。

そしたら、受講者同士のつながりの活性化とか、他の活動への興味とかが見えるようになるから。
個人の嗜好性とか向学心とかが見え隠れしていいなあって。

どこまでできるようになったのかがよりわかりやすくなってほしい

ひとつ目と関わってくるところなのだけど。
何がどこまでできるようになったのか、絶対的な指標があってもいいかもしれない。

Java八段、Go免許皆伝、とか。
言葉選びは何でも良いのだけど。
そういうのがあると、スキルレベルが明確にわかるから良いなあと。

Progate修了からの自立自走の間のサポートをしたい

これ、本質。

Progateで達成するのは、言語スキルを身につけること。(それを一部応用力を持つこと)
そこから先は、手に入れたスキルをもとに、自分でものを作っていくことになります。
それを支援していけるようなところまであるといいなあと。

それはその言語が実際に使われているサービスを例に挙げるでもいいだろうし。
自学を支援するために、その言語の環境構築からプロトタイプ開発までの記事を提供してもいいかもだし。
やり方は様々、とにかくそこの自立自走のサポートをしてあげるというのがあってもいいかなと。

Progate修了者と、人材を探している企業とを、マッチング支援したり。
(あれれ?今ここに新規ビジネスのにおいがすごいしているぞ・・・??)

まとめ

いろいろ個人的に感じたことを書いてみました、たかだか数時間のライトユーザーの一意見ですみません。
シンプルなUIだけど高機能だし情報量も多く、すごく素敵なサービスです。
ぜひ使ってみましょう!

ただ、Progateをがんばる!というのが先行してしまうのは少し違うかもです。
学習することは手段なので、その手段を必要としている目的を見失わないこと。
手段先行ではなく目的先行。
何をしたいから、Progateでプログラミング学習するのか、を忘れずに。

そして、ふと思った。
Kotlinサポートぜひに!(Kotlinならお手伝いできるかも)
Kotlinに限らず技術サポートロードマップあると嬉しいかも、すでにあるならすみません。

という期待を込めまして、記事おわり。