見出し画像

【初心者向け】現役開発者がProgateを使ったプログラミングの学習について解説してみる

まさかの

Progateの中の人からレスポンスいただけました、公認ということではないですが「いいね」してくれてシェアまでしてくれました。ありがとうございます。

はじめに

記事を書くに至ったきっかけはTwitterで「#駆け出しエンジニアと繋がりたい」というタグが流行っていたことです。
我々開発者がやっていることに興味を持っていただき、将来的に一緒にお仕事できる仲間が世の中に増えることは歓迎すべきことです。
私の経験をもとにしてProgateでの学習効率をあげるための説明をしてみようと思います。何から始めればいいのかなどの疑問がある方向けの記事です。

Progateって何?

プログラミングのオンライン学習サービスです。
Twitterアカウントさえあれば無料でアカウントが作成できます。
実践形式でソースコードを書いていく感覚は開発者の世界を体感できると思います。自分のアカウントはレベルというものがあり、経験値を貯めてレベルアップする感覚が楽しいです。初心者や入門者にはオススメです。

まずはじめに学ぶもの

Command Line【超必須】
プログラミング言語ではなくサーバやパソコンの操作方法です。これができなければ開発者としてのお仕事はできません。まずはこれから学びましょう。個人的にはProgate上でバーチャルに動くCUIは楽しかったですw

Git(+git-flow)【必須】
プログラミング言語ではありませんが必須です。これが使えなければ、いくらプログラミングを覚えようが開発者としてのお仕事はほぼありません。ProgateではSSLを使った手法を学習することができますが、複数アカウントによる手法は合わせて学んでおきましょう。
加えて現在のProgateでは学ぶことができませんが、git-flowというものも合わせて学習しましょう。仕事では必須です。

プログラミングを学ぶ準備

HTML & CSS -> Sass【準備段階】
HTMLはマークアップ言語と呼ばれプログラミング言語ではありませんが、Progateで学習できるプログラミング言語のほとんどはサーバの開発に使われる言語です。
WEBサービスやWEBアプリケーションはサーバに作ったプログラムソースを置いて初めて動きます。他の言語で作ったプログラムが動いても表示ができなかったら確認もできずに困ってしまいます。なのでまずはマークアップ言語をやってからプログラム言語の学習を始めるのが最も効率的なルートです。

SassはCSSを発展させた進化版です。
Progateだと1.5時間程度で学べるそうなのでHTML & CSSから合わせて学習してしまいましょう。

言語別の解説

Ruby -> Ruby on Rails5【オススメ度:☆☆☆】

Progateで言語、メソッド、オブジェクト指向、フレームワークまで学ぶことができるので、仕事でプログラミングやエンジニアリングをやるのであれば、このRubyからRuby on Rails5のルートがオススメです。
ただし長いです。全てを学習するのにかなりの時間が必要で、Progateの目安時間でも40時間はかかる計算です。
コツとしては「時間がかかるもの」と認識をして毎日15分でもいいので触りましょう。無理に理解しようとせず、コースを最後まで進めることを目的にやりましょう。
Rubyを学習して良いところはフレームワークがRuby on Railsの独壇場であることです。学習したことが素直に仕事で使用できるのです。
これによりチーム開発をしても他人と会話がしやすいのです。
デメリットがあるとすれば作ったプログラムを動かすための開発環境の構築が鬼門になることです。

PHP【オススメ度:☆☆★】

Progateでは言語とオブジェクト指向、クラス制御について学べます。PHPでの開発はフレームワークを使っていることがほとんどなので、Progateだけで勉強しても仕事に活かすのは難しいと思います(勉強するのは良いことです)
PHPはjavascriptという言語に次いで開発環境、サービス動作環境を作るのが非常に簡単なので覚えて損はありません。
また仕事なら案件の量は一番だと思いますので、PHPを使って転職を考えている方はProgateだけで満足せずフレームワークの学習まで行いましょう。
ちなみに今はLaravelというフレームワークを使うのが流行りですが、PHPには様々なフレームワークがあるので調べてみたり、実際に使ってみるのは良い勉強になります。

Java【オススメ度:☆★★】

Progateでは言語とメソッド、オブジェクト指向について学ぶことができます。こちらもPHPと同じく開発業務ではフレームワークを使っていることが多いため、Progateだけで勉強しても仕事としてやるにはおそらく無理です。

仕事においてはJavaの案件は国内において規模が大きなものが多く、大人の事情というものが発動し、初心者の特権である小さな失敗が許されないことが多いです。
入社後の新人研修をJavaでやってる会社が多いのですが、内容見ると20年前くらいだったら通用してたかもねって思うものが大多数でほぼ意味ありません(今時JSPなんて使わねーよ、アホか)

使われてるサービスが多いので脆弱性をついた攻撃を受けることが多いのもJavaで、セキュリティにかなり詳しくならないと運用で困ります。
さらに過酷なことに言語の最新バージョンはJava10なのですが、案件で使用されているJavaのほとんどはJava1.5〜1.8です。このためセキュリティのパッチがアップデートされてもほとんど適用にならないのが悲しい定めなのです。最新のJavaの書き方ができてJavaエンジニアとして成長し続けることのできる案件というのは日本国内において非常に少ないのです。
Androidアプリの開発でも使用できますがGoogleさんの諸事情でJava1.7が使用されておりJavaとしての成長は期待できませんし、Kotlinという言語に食いつぶされています。

Javaでの仕事が憧れでイケイケだった時代を知っている人間としてはどうしてこうなったとしか言えないのですが、現在はJavaのお仕事をしていても開発者としてはスキルアップしづらく、初心者には非常にオススメできない言語となってしまいました(書いてて悲しくなる)

JavaScript -> jQuery【オススメ度:☆☆★】

JavaScriptはブラウザで動くプログラミング言語です。Progateでは言語、関数(アロー関数含む)、ES6のクラスについて学ぶことができます。
JavaScriptで使用する書き方のルール(ES6)は様々な言語に影響を与えています。Swift、Kotlin、TypeScript、Dartなどスマホアプリの開発で使用する言語がその影響を受けていますので、学習しておくと別の言語を学習するときに楽ができると思います。

Progateではフレームワークについて触れていないのでJavaScriptの学習後にフロントエンド開発者を名乗るのはかなり無理があります。
jQueryはJavaScriptで書かれているリッチなUI/UXやアニメーションを実現させるライブラリです。かっこいいサイト作りをする際に登場することは多いので流れで学習しておくと良いと思います。

JSのライブラリで有名なのはReact.jsやVue.js、Angular.jsです。
PHP、Java、Rubyと同じようにフレームワークも使いますがJavaScriptのライブラリはProgateで学習できる内容とレベルが段違いですので、それぞれかなりの勉強が必要になります。
加えてnode.jsというサーバーサイドの技術も非常によく使いますが、こちらもかなりの勉強が必要です。JavaScriptを好きになってこの領域に行く前にはメンターや師匠となってくれる人を探すことを強く推奨します。

Python【オススメ度:☆☆★】

pythonは機械学習や統計処理など数学的な処理に使用されることが多い言語です。Progateでは言語、関数、モジュール、クラスを学ぶことができますが、他の言語(PHP・Java・JavaScript)と同様にフレームワークについては触れていません。
有名なフレームワークはWebアプリとしてInstagramやPinterstで使われているDjangoや、機械学習ライブラリとしてGoogleの作ったTensorFlowというものがあります。
pythonの特徴的なところは関わってるエンジニアに勉強が好きな人が多いことです。教えるのも好きな人が多いのでコミュニティも活発で、イベントがかなり開催されています。
最初からpythonでも良いのですが仕事の数で言えば他の言語に比べてまだまだ少ないとは思います。本当に個人的な意見になってしまいますが、他の言語を学んで基盤を作ってからpythonistaを目指すのが妥当かなと思います。
近くに教えてくれる方がいる場合は是非とも習得しておくと良いです。

GO言語(Go-lang)【オススメ度:☆★★】

Googleの開発した言語で実行が早く覚えやすいと評判です。youtubeの中で使われているのがGOです。
Progateでは言語の使い方について学ぶことができますが、お仕事としての案件数はまだまだ圧倒的に少ないです。初心者や入門者としては使い道が限られてしまうのでProgateで学ぶ順番としては最後で問題ないです。
イメージとしてはイケてる開発者がさらにイケてる領域に踏み込むためにやる感じです(処理速度の追求、メモリ管理、インフラ環境との親和性など)

SQL【オススメ度:☆★★】

SQL文はデータベースからデータを引き出すときに使用します。
現在データベースソフトはオープンソースでもMySQL、PostgreSQL、SQLiteなど様々なものがあります。
ProgateではSQL文を学ぶことで、どんなことができるのかを知る目的で学習することになると思います(製作者意図は確認してません)
データベースをSQL文使って調査する作業はやらないこともないですが、アプリケーション開発において作業頻度はあまり高くないので、さっさと各言語のフレームワークの勉強に入った方が良いと思います。

どうしてもインフラ開発者を目指したい!!という人はやった方が良いですが、目的がインフラの学習であればProgateじゃなくて別のサービスで学習した方が早いと思います。
学んでおいて損はないですが、Go言語と同じく学ぶ順としては最後の方でいいと思います。

まとめ

Progateで学習する項目をオススメ度順に並べてみると以下の通りになりました。
【必須】  :Command Line、Git、HTML & CSS -> SaSS
オススメ度3:Ruby -> Ruby on Rails
オススメ度2:PHP、Python、JavaScript & jQuery
オススメ度1:Java、Go、SQL


Railsを学んでおくとプログラミングとシステム開発が自然と覚えられると思うので、Progateの中ではお勧めします。
Rubyだけ学習しても意味ないのでRailsも学習しておきましょう。
if文やfor文などの基礎構文はどの言語でもありますが、言語によって若干書き方が違うのでさくっと覚えると良いと思います。
あくまで現役の開発者が仕事で使うことを考えたらの話で解説してますので、言語・フレームワーク戦争とかは一切応じません(要注意)

恒例の宣伝

毎週土曜日に勉強会を開催しています

東京限定になってしまいますが午後14時から勉強会を開催しています。
エンジニアリングやってる人だけでなくデザイナーや賑やかしの人たちがわいわいとコミュニケーションを取りながらやっています。
初心者や入門者の方でプログラミング学習の問題や悩みを解消したい方や、モチベーション維持のためにお洒落な場所で勉強したいという方はぜひいらしてください。いらっしゃる場合はTwitterに「勉強会行きたい」と直接DMいただければご案内します。


マンハッタンコードは社員募集中です

マンハッタンコードでは一緒に働くビジネスマンを募集しています。
ビジネスマンとしてのエンジニアリング、デザイン、スタイリングの業務をやってみたいという方はお気軽に連絡ください。
Twitterに直接DMいただいてもOKです。


見積ポーカーアプリ 「Arupo」

相対見積もりの時に使用できる見積ポーカーのアプリをリリースしました。Flutterによるクロスプラットフォーム開発でAndroidとiOSのアプリを実装しました。


この記事が気に入ったらサポートをしてみませんか?