文系でも簡単にプログラミングが学べる! 僕が『Progate』をオススメする理由

Progate

Progate
藤依しの

元・文系プログラマーのニート、藤依しのです。
ゆくゆくはアプリ開発とかしてみたいなと思ってるので、現在Swiftについて勉強中です。

ななしちゃん
ななしちゃん

文系なのにプログラミングとかできるんですか?

藤依しの

案外できるんだなこれが。
というわけで今回は

「文系だけど、プログラミングに興味がある」
「勉強したいけど、何していいかわからない…」

という人に向けて
プログラミング習得のハードルの高さを、見事に解決してくれる『Web学習サービス Progate』のメリットについて話します。

そもそも、文系なのにプログラミングできるの?

プログラム=数学?
藤依しの

ちなみにバリバリ文系の僕は、皆様のイメージ通り計算が苦手です。

難しい数式は覚えてもすぐ忘れますし、お会計の時とかレジに数字が表示されてから小銭を確認する程度に暗算ができません。

ななしちゃん
ななしちゃん

いつも「はよせえや」と思ってる。

藤依しの

それでもプログラマーとして仕事ができたのは、『数学ができない =プログラミングができない』ではないからです。

中学生レベルの数学でどうにかなる

藤依しの

文系にとっての『プログラム』というと、何やら難しい数式を操り、暗号のような記号の羅列で、複雑なデータを処理していくようなイメージがあります。

しかし実は『プログラム』といってもいくつか種類があり、
そのほとんどは、難しい数式も、暗号も複雑なデータ処理もありません。

絶対に必要な数学的知識は「四則演算と不等号」くらいです。
それ以外はわからなくてもなんとかなります。

ななしちゃん
ななしちゃん

四則演算って言っても、9の段が言えるレベルなのか、99の段が言えるレベルなのかでだいぶ変わりそうですが。

藤依しの

インド人かな?
どのレベルかって言うと、次の文章を数式に置き換えられるレベルです。

① xは20より大きいです
② xは1から5までを順番に足したものです

正解は
①が『x > 20』
②が『x = 1 + 2 + 3 + 4 + 5』

藤依しの

「そのままじゃないか!」と思うかもしれませんが、この程度で良いんですね、計算すら必要ありません。

この知識に加えて『変数』『for文』『if文』といったプログラムの仕組みを理解するだけで、すぐにプログラミングができるようになります。

プログラミングに必要なのは抽象化する能力

藤依しの

むしろプログラミングに必要なのは、数式を覚えたり計算ができたりではなく
『日常生活の出来事を数学的に考えること』です。

たとえば

・魔法石が50個あります。魔法石を5個消費して一回引けるガチャを、引けるまで引きます。(ただし当たりを引いたらそこで引くのをやめます)

という文章を

『x = 50』として。一回引くたびに『x – 5』『x = 0』になるまで繰り返す。ただし『結果 = 当たり』だったら繰り返しをやめる

みたいに考えることができれば大丈夫です。

ななしちゃん
ななしちゃん

それは『日常生活の出来事』なんですかね…

藤依しの

内容は重要ではないのです!

大切なのは、石や〇〇連ガチャ・当たりという具体的な用語
『x』や『繰り返し』『=』という抽象的なプログラムに置き換えることができるかです。

これがいわゆる『変数』『for文』『if文』といった、『よく聞くプログラムのアレ』になるわけです。

確かにこれには数学的な側面がありますが、専門知識はいらないので理解できればすぐにできます。
逆に慣れていないと、文系だろうが理系だろうが頭に『?』が浮かぶんじゃないでしょうか?

時代が進むにつれ、プログラミングが楽になっている

藤依しの

もう一つ重要なのは、プログラミング自体が楽になっているということです。

これは『C・C#・Ruby・Java』などの言語的な話でもありますし、言語のバージョン的な話でもあります。

確かに昔であれば、データやグラフィックの処理などにある程度の数学知識が必要とされることもありましたが
年々、そういった専門的な処理(アルゴリズム)は簡略化され、誰でも手軽に扱えるように変わってきています。

今の時代、よく使う一般的な命令であれば、基本的にはたった数行の短いプログラムだけで済むことが多いのです。

それでも文系にとってハードルが高いのはなぜ?

ハードルの高いプログラミング
藤依しの

…とはいっても、文系にとってはわからないことが多く、話を聞いているだけではまだ『難しいイメージ』があります。

ななしちゃん
ななしちゃん

ぶっちゃけよくわかんなかったです。
『習うより慣れろ』と言いますし、これは実際にやってみるしかありませんね!

藤依しの

そう言いたいところなんですが、実はプログラミングは慣れればそれほど難しくない反面、やりはじめるまでが辛いのです。

その理由は次のとおり。

イメージしづらい

藤依しの

「Hello world!」

ななしちゃん
ななしちゃん

え?

藤依しの

さぁ皆さんご一緒に
「Hello world!」

ななしちゃん
ななしちゃん

は、はろ

藤依しの

というのが
プログラミング入門でありがちな導入ですが

全体的に「それがどうした」って思いたくなる説明が多いのです。

ななしちゃん
ななしちゃん

まさに今の私の感想だわ。

藤依しの

だって画面に”Hello World”を表示したとして、「最終的にそれで何ができるの?」ってのはイメージできないでしょ。

だからモチベーションに繋がらないんですね。

かと思えば、今度は突然『配列』『クラス』『継承』だの、専門用語が出てきて
「そうすると何が良いの?」がわかりづらい参考書が多いのも問題です。

道具(環境)を揃えるのが面倒

藤依しの

プログラミングを行うためには、まず開発環境をPCにインストールする必要があります。

PCのスキルによってはこれだけで手間取りますし、日本語化したいならそれにも時間がかかります。

ななしちゃん
ななしちゃん

OSの種類によっても、調べることは変わりそうですね。

藤依しの

さらに開発するにあたって、エディタ・コンパイル・デバッグ・統合開発環境などの専門用語も登場し、0からやるには少し敷居が高いです。

モチベーションが高ければそれも楽しめるでしょうが、前述の通り「最終的に何ができるのか?」がイメージできてなければ中々やる気には繋がらないのです。

面白くない

藤依しの

これもさっきの話と繋がりますが、基本的にプログラミングの学習って面白くありません。

ななしちゃん
ななしちゃん

言っちゃったよ。

藤依しの

プログラミングを学ぶからには、何らかの完成品をイメージしているはずです。

それはたとえばWebサイトだったり、スマホアプリだったり、ゲームだったり…

ところが、学習を始めらばかりの頃は、学んでいることが役に立つイメージが中々わいてきません。

それもそのはず。

普通の人間であれば『画面に”Hello World”と表示するプログラム』と、『デザインセンスの良い便利なショッピングアプリ』が同じものとは思えないわけです。

「今やっていることは、こういう時に役に立つんだな」と分かれば、面白くもなるでしょうが
悲しいかな、それがわかるのはある程度プログラミングを学んだ後です。

藤依しの

ここまでをまとめると、『完成図が見えづらい』のがプログラミング学習の問題点であり、学習につまづきやすい原因の一つです。

Progateはとことんハードルを下げてくれる

Progate
https://prog-8.com/
ななしちゃん
ななしちゃん

ここでやっと『Progate』の話!

藤依しの

『Progate』はインターネットを利用した学習サービスですが、前述の問題点を徹底的にクリアしていることが印象的でした!

何ができるのか?がすぐにわかる

藤依しの

Progateの特徴はわかりやすく段階的に学べるという点です。

おなじみ『Hello World』を表示した後に、それを応用して、『画面に何かを表示する』という手法を学びます。

さらにそこから、『ページを訪れた人への挨拶を表示する』、『ユーザーから受け付けた数値の計算結果を表示する』といった、実用的なプログラムへ発展させるので、『結局何がしたいのか』が理解しやすいのです。

さらにさらに、『HTML・CSS』や『jQuery』『Swift』など一部の学習では、クオリティの高い完成品を最初に見せてくれます。

完成品が見えていれば、「最終的にはこれを作れるようになるのか」というモチベーションに繋がるわけですね。

環境を整える必要がない

藤依しの

Progateでは、ブラウザで表示するWebサイト上でプログラミングを学ぶことができます。
必要な情報は全てブラウザに表示される上に、プログラミングまでブラウザの上でできてしまうので、開発環境とかいりません。

推奨ブラウザである『Chrome』さえインストールしてれば万事OKです。

ななしちゃん
ななしちゃん

準備がいらないってのは大きな利点ですね。

藤依しの

準備って時間食いますからね。

わざわざ土日に時間を確保して「さぁやるぞ!」って準備に取り掛かるのと、暇な時にログインしてすぐ初められるのとでは雲泥の差です。

手を動かして作るから楽しい

藤依しの

その場で作成したプログラミングの結果は、すぐ横で確認できるので、『勉強している』というよりも『作っている』感じがして、とても楽しいです。

参考書と違う点は、わからないことが出てきた時、ワンクリックで学習スライドやヒントを表示できる点ですね。

一々ページをめくったり、調べたりする必要がないので、ストレスフリーです。

課題・プログラミング画面・結果画面を一つのページにまとめ、わずらわしい操作を徹底的に排除しているあたり、こだわりが見えますね。

とはいえ万能ではない

基礎は基礎
ななしちゃん
ななしちゃん

とても便利な『Progate』
これをやれば、私もいますぐプログラマーデビューですね!

藤依しの

ところが、そうとも言えないのである。

『Progate』は、基本的なことを手っ取り早くしりたい人にはオススメな反面、これだけやっていれば大丈夫かというと、そんなことはありません。

実際に開発をする際には、やはり自分で環境を整える必要がありますし、複雑なプログラムを組もうとすれば、自分で調べなきゃいけないことは山ほどあります。

また、メインがWeb系であるため、Windowsアプリケーションやハードウェア方面のプログラミングとは少し異なる面もあります。

藤依しの

そして何より、基礎は基礎!

基礎ができているからといって、価値のあるものを作れるかはまた別問題。
そこにはやはり実戦経験やアイデアなどが必要なわけです!

ななしちゃん
ななしちゃん

プログラマーへの道のりは遠い…

藤依しの

とはいえ、入り口としてはかなり良いサービスだと言えます。

特に文系となると、プログラムのイメージもしづらいでしょうから
細かい環境設定もなしに、登録してすぐプログラミングができるのは大きなメリットですね!

まとめ

まとめ

藤依しの

ここまで長々と話ましたけど、純粋に良いサービスだと思っているからです。

僕がプログラマーとして入社した3年前にこのサービスを利用していれば、もっとすんなりプログラミングについて理解できた気がしますね。

ななしちゃん
ななしちゃん

3年前はどうやって勉強したんですか?

藤依しの

C言語からいきなりオブジェクト指向という大胆なステップアップ学習を経て、理解も不十分なまま開発の現場にシュートされました。

RPGで言うと初期装備のままラスダンに挑むようなイメージです。

これを現代社会ではOJTと言います。※OJT = On-the-Job Training(現場訓練)のこと

何はともあれ
これから独学で文系プログラマーになろうって人は、まず入り口でつまづくと思うので、こういう便利なサービスを利用するのも手ですね。

『Progate』は月額980円の有料サービスですが、一ヶ月もあれば基本的なことは学べると思うので、1000円の入門書だと思えばそれほど高くはないです。

Progate
https://prog-8.com/

また、『HTML・CSS』の初級だけは無料で学習できるので、どんな感じた見たい人は先にそちらをやってみるのも良いんじゃないでしょうか。

藤依しの

それでは!