フリーランスエンジニアという言葉を聞いたことがありますか。
クラウドソーシングで開発を受注して在宅で作業したり、場合によっては直接契約で顧客先で作業したり。
独立してエンジニアを目指す人も多いよう。
また、子育て中のママさんでも、プログラミングを独学するならオンラインサービスのほうが手軽で便利ですよね。
ブロガーさんの間でも話題になっていたので、どんなサービスなのか、何ができるのかが気になって使ってみました。
progateを使ってみて感じたこと、本当にこのサービスを使ってエンジニアになれるのかまとめてみました。
前半では、どんなイメージで学習できるのかについて、後半では使ってみた本音を書いています。
ちなみに、これを書いている私は、IT業界でプログラミングを教えるインストラクターをメインに仕事をしていました。
progateは初心者の学習ハードルを下げる仕掛けがある
ログイン画面です。
イラストと色使いがかわいいので、初心者でもなんとなくできそう感ありますよね。
実際に学ぶときには、スライドで基本事項を紹介し、その後同じような方法でプログラミングを書いていくスタイルになります。
基本的な説明を読んだら、それと同じ内容の演習に進みます。
この画面、初心者にはわかりやすい作りですよね。
左にこれからやる課題のヒント。
右下には見本として実行時のプログラム画面を表示してくれます。
真ん中の入力画面でプログラムコードを打つことができます。
最初のうちはデモンストレーションとして実行状況だけ確認しますが、次のステップに進むと実際にコードを入力して実行までの手順を自分で行います。
学べる内容が限定されているので初心者にはハードルが低い
progateの場合、プログラミングの入り口という点では、とてもわかりやすい作りになっていると思います。
言語の学習でも、本1冊きちんと学ぼうとすると、かなりのボリュームを感じますので。
でも、progateの内容であれば、学習内容も比較的区切った上に、スライドと演習という小さい単位で学習できるので、なかなか進まないということも減らせそうです。
実際やってみて感じたのは、ヒントを見ながらプログラミングを組むところ。
初学者の場合、お手本やスライドを事前に見ていても、実際に作ってみましょうとなると混乱するんですよね。
「さっき、何してたっけ?」とか。
「あれって、どうだった?」みたいなこと。
これが、開発環境だけでやろうとすると、本を行ったり来たりするので、なかなか演習が進まないなんてこともよくあります。
その点、progateは画面構成がヒント/入力/結果表示と3つに分割して1画面で見せてくれるので、
- 何をするのか
- 実際やっている画面
- 実行結果がどうなるのか
をすぐに見ることができます。
そのため、本と画面を行ったり来たりとか、実行結果とソースコードを行ったり来たりとか、そういう手間がないのがいいです。
と、ここまでは、progate使いやすいですというお話をしてきたのですが、この後、実際に使ってみた感想をまとめます。
ITインストラクターが実際使ってみた感想とprogateの中身
先ほどまでは、progate、わかりやすくていいよねというので書いていましたが、ここから先は辛口の評価になります。
まず、画面が使いやすいとか、スライドで見せていくのでわかりやすいとか書きましたが、見た目だけではプログラミングは全ては学べません。
実際に、細かい説明が抜けているので、これで本当にプログラミングを学べるかというと、むしろ情報が足りないと感じました。
無料なんだから仕方ないでしょという意見もあると思いますが、この先の有料ゾーンに入ったとしても、無料ゾーンで教えてないことをソースコードに書かせる可能性がほとんどないんですね。
こちらの画像、無料版Javaのレッスン1にある最終課題です。
ここまでで学習した変数を使って、値を代入、計算、文字列連結してコンソールに表示という課題です。
実際に知っている立場からすると、説明すっ飛ばして、いきなり課題やってみようというレベルですが、ここでひっかかりました。
画面を見るとわかるのですが、エラーが出ています。
何でエラーしているかというと、double型の変数がありませんというメッセージ。
私がここで使っている変数の型はfloatです。
プログラムで特に仕様として型が決まってないので、小数点入れるなら別にいいよねと、キー入力の数が少ないのでfloatで宣言したのですが、なぜかエラーです。
代入している値もきちんと小数点です。
でも、なぜかエラーに。
コンパイラが変数の型でエラーを出す場合は、宣言した型に合わない値を代入しているときくらいです。
強制型変換される場合には、エラーではなく警告になり、実行結果は型落ちします。
でも、なぜかprogateではfloatが使えません。
不思議ですよね。
仕方ないのでfloatを使うのをあきらめdoubleにします。
ちょっとここで気になったのは、なぜdoubleはよくてfloatがだめなのか。
なぜ使えないのか、全く理由がわからないまま、修正して進めました。
こちら、次に引っかかったエラーです。
もうかなり最終段階に入って、あれこれいじってエラー出した結果、もしかしたらと思って、わざとエラーになるように仕掛けたものです。
これ、何が問題かわかりますでしょうか。
この課題、名前、年齢、身長、体重、BMI計算結果を表示します。
最初は1個1個表記するのが面倒だったので、だいたい結果が同じなら1行にまとめて表示させてもいいよね?と思ってまとめたのですが、その時からエラーとして処理されていました。
これの何がおかしいかわかりますでしょうか。
本来、コンパイラというのは、以下の問題があるときにエラーとして扱います。
- 宣言されていない名前を使っている
- 文法上に間違いがある
- 存在しない関係ファイルを使おうとしている
3つ目はちょっとわかりにくいので、まず見るのは、1つ目と2つ目です。
宣言されていない名前というのは、変数名やメソッド名です。
ちょっとした綴りミスだったとしても、宣言していないものがあるよと教えてくれます。
また、文法上の間違いも、カッコがそろっていないとか、処理文の綴りがおかしいとかに該当します。
では、なぜ今回のエラーが画面に表示されているのか。
プログラムでエラーにされているところ、「BMIは○○です」となるようにとあります。
私が入力したのは、「だよ」でした。
そりゃあ、「です」と「だよ」が違うからなんじゃないの?と思いますでしょうか。
コンパイラの定義を再掲します。
- 宣言されていない名前を使っている
- 文法上に間違いがある
- 存在しない関係ファイルを使おうとしている
「です」と「だよ」はどこに該当するでしょうか。
1と3は違いますよね。
では、2でしょうか。
文法上に間違いがあるのは、「です」と「だよ」で違いがあるからでしょうか。
実は2でもありません。
本来コンパイラがやることは、宣言されていないもの、定義されていないものがないかのチェックを行いますが、画面に表示する文字列の中身についてはチェックしません。
そんなことまでしていたら、どれだけ文字列が違うのかをどんなプログラムでもチェックしなければいけなくなりますよね。
文字列の中身まで、コンパイラがチェックする役割はなく、表記が正しいかどうかは設計者がテストします。
ここまでいじり倒して気が付いたのは、progateは裏でコンパイラを使っているのではなく、入力された内容が解答と同じかどうかのチェックをしているだけということでした。
- 本来なら使えるはずの変数型がエラーになる
- 文字列をちょっといじっただけでもエラーになる
この状況だけで、コンパイラを動かしているわけではないという疑問が出てしまいました。
ということで、実際の開発ではfloatなどは使わないから教えなくてもいいだろうというので省いているかもしれませんが、実際には型として使うことは可能です。
他にも変数のデータ型はありますが、progateの入門編で教えてくれるのは、int、double、文字列のみ。
これが使わないから必要ないという目的で教えてないのかもしれませんが、習っていて使わないのと、あることを知らないのとでは、全く状況が異なります。
progateの上位のコースを使ってみた
初歩的な学習内容として無料部分で配列から繰り返し処理までは学べるようになっているのですが、そこから先は、無料と有料ゾーンに分けられます。
上位コースで無料で確認できるものについては、正直これだけ読んでも何のことかさっぱりわからないと思います。
むしろ、上位コースの深掘りをするために、コースごとに試供できる程度の内容ですね。
ただ上位コースの無料部分を試したところ、さすがにプログラムが難しくなるからか、もしかしたらコンパイラ使っているかなという感触がありました。
というのも、変数宣言時にprivateキーワードを指定されている箇所があるのですが、とりあえずそんなものなくてもいいわと思って抜いたところ、エラーとして認識されませんでした。
反対に、文字列だけはチェックしてきます。
文字列の綴りをわざと変えてみたところ(ビアンキをビアンkに)、コンソール上では実行されるのですが、プログラム入力欄に「Incorrect」と表示されていました。
実行はされますが、なぜか注意されてしまいます。
どこまでも文字列チェックが好きなようです。
こちら実際には、変数宣言時にprivateを指定されていますが、無視して書いていません。
また、クラス名ですが、本来の指定はBicycleとするとしているところをすべて小文字にしました。
ここに関しては、コンソール上ではエラーにもならず、実行結果には、「ビアンk」と出てくるので、コンパイラが動いている可能性が高いです。
progateはプログラミングを学ぶのにいいのか
有料ゾーンに関しては月額980円になるので、それは書籍よりも安いと思います。
だいたい言語の書籍の場合、3000円~が相場です。
それを1か月で終わらせられれば980円で済みますから、得と言えば得です。
またこの料金でprogateすべての講座を受講できるので、うまく使えれば書籍代よりもはるかに得になるんですね。
モバイルからも利用可能なので、移動中にも学習きるし、重たい書籍を開かないですむというのと、移動しながらプログラミングができるという点ではいいのかもしれません。
ただし、月額ですので早めに終わらせないと、時間をかけた分、どんどん利用料がかさみます。
退会するとデータはすべて消える
学習が終了して、学ぶことがなくなった場合には退会することになりますが、退会すると今まで保持していたデータはすべて消えてしまうことになります。
ログインしても有料ゾーンは見れません。
学習した内容が完全に入っていればいいですが、場合によっては確認したいときには使えなくなってしまいます。
これを回避するために、人によっては入会中に画面のスライドをスクリーンショットで取っておく人もいるようですが、画面1つ1つをまとめる作業や、毎回スクリーンショットを取る手間を考えると、作業量が増えますよね。
反対に書籍なら、一度購入してしまえば捨てない限りはずっと内容が確認できます。
オンライン学習は手軽で便利なうえに、利用料も安いので重宝すると思いますが、後々のことを考えると、書籍も実際には必要になってくると思います。
本当にプログラミングをしっかり学びたいのであればオンライ学習だけでは習得しづらい
実際オンラインサービスを使ってみて感じたことですが、きちんと学びたいのであれば、書籍を使うほうが体系的に学べると感じます。
オンライン学習は実行環境を構築せずに学習できるので、初学者には優しい仕組みですが、実際にいいのかが疑問でした。
プログラミングする、あるいはエンジニアになるというのを考えると、簡単な実行環境を構築するくらいの技術がないと、自分で問題解決できるには遠いのではと感じます。
学習、演習、環境提供というのを考えると、初めての人にはとてもハードルは低いのですが、その先の技術力を身に着けるという点では、弱いと思いました。
コメント