プログラミングとデザイン、スタートアップの話

プログラミングやデザイン、スタートアップ関連についての雑記

【初心者向け】プログラミング言語選びを間違えないように言語の特徴と職種をまとめました

f:id:harv-tech:20180901115023j:plain

「プログラミングを勉強する上で何をどこまでやったらいいかわからない」という問題を解決すべく、各言語の特徴と勉強する必要がある職種をまとめました

プログラミングの勉強がしやすくなった反面、勉強方法に関しては路頭に迷う人も見かけるようになったので、この記事でプログラミング言語についての全体像を掴んでほしいです。

この記事で解決できる疑問

  • HTML/CSSを勉強すればプログラマーなの?
  • Javascriptはどんな人が勉強するの?
  • Python, Ruby, Java...どれを勉強すればいい?

先にプログラミングの勉強方法についてのまとめ

  • プログラミングを1つ習得すれば、他の言語も習得できるようになる
  • 最初の言語では、プログラミングの勘所を掴むということが重要
  • 技術トレンドは意識しておこう
  • 入りたい企業が使っている言語から勉強してみるというのも1つの手

HTML

3行解説

  • HTMLとCSSができればWebサイトのマークアップはできる(システム開発はできない)
  • HTMLとCSSだけではフロントエンドエンジニアとは言わない(デザインをWebサイトに反映させるコーダーというお仕事)
  • バックエンドエンジニアをやっているとHTMLをいじることは多いので、バックエンドエンジニアには必須のスキル

勉強する必要がある人

  • コーダー(デザイナーが作ったデザインをWebサイトに当て込む人)
  • フロントエンドエンジニア
  • バックエンドエンジニア

できるようになる仕事

  • HTMLだけでできる仕事はほぼない(CSSやJSをセットで覚えよう)

コメント

HTMLはプログラミング言語ではないですが、今回の趣旨はプログラマーになりたい人の言語選定についてなのでリストアップしています(バックエンドエンジニアになりたい人はひとまず勉強する人が多いので)。

iOSアプリを今すぐ作りたい!とか機械学習にしか興味がない!という人以外は勉強しましょう。

CSS

3行解説

  • 色変えたりするやつ簡単なでしょ?と最初は思うが、実は奥深い
  • コードが散乱しがちなCSSに設計思想を活用して可読性や保守性の高い実装をする重要なお仕事
  • CSS専門の人はあまり多くなく、Javascriptができるコーダーが主流

勉強する必要がある人

  • コーダー(デザイナーが作ったデザインをWebサイトに当て込む人)
  • フロントエンドエンジニア
  • バックエンドエンジニア

できるように仕事

  • Webサイトのマークアップ
  • ランディングページのマークアップ

コメント

バックエンドエンジニアはあまりCSSを触らないことになるケースも多いですが、プログラミングを勉強する上では全体感を掴んでおいてCSSとはなんぞやということを知っておいて方がいいです。

バックエンドの開発に比べるとpureなCSSは難易度が低いので、たまにバックエンドエンジニアに仕事を依頼される場合もあるからです。

ちなみにCSSは設計手法などを含めると奥が深く、Sassなどでは変数や関数を使うので、プログラマー的思考が必要になってきています。

モバイルアプリや機械学習にしか興味がない人はやらなくてもいいです。

最速最短の学習教材

▶HTMLとCSSはProgateで学ぶのが一番

Javascript

3行解説

  • フロントエンドエンジニアになりたい人が習得すべき言語
  • 技術トレンドの変化がかなり激しいが、最も今盛り上がっている言語の1つ(と思う)
  • フロントエンドエンジニアになりたい場合は、Javascriptを勉強した後にreact.jsやvue.jsを勉強したら良いよ

勉強する必要がある人

  • コーダー(デザイナーが作ったデザインをWebサイトに当て込む人)
  • フロントエンドエンジニア
  • バックエンドエンジニア

できるように仕事

  • Webサイトでのアニメーションの実装
  • React.jsやvue.jsを習得すればフロントエンドの開発

コメント

Javascriptはコーダーもフロントエンドエンジニアもバックエンドエンジニアもほぼ必ず必要になる言語。

特にフロントエンドエンジニアは海外でもホットなカテゴリーになっていて、サーバーレスでフロントエンドをJavascriptライブラリ(フレームワーク)のreact.jsやvue.jsで実装するという流れも盛り上がっています。

バックエンドエンジニアの場合においても、ajaxの処理でjavascriptを使うケースが多いです。

RubyやPythonを選択する人が多い中、Javascriptを極めてゴリゴリのフロントエンドエンジニアになるというのも面白い選択肢です(ただし、技術トレンドの移り変わりはとても激しいので、勉強は大変っちゃ大変)。

最速最短の学習教材

▶Javascriptの基本もProgateで一通り習得が一番

▶フロントエンドをやってみたい人はUdemyのVue.js入門がオススメ


ここからはバックエンド開発を行うためのプログラミング言語です。

Java

3行解説

  • Web開発とAndroidアプリ開発、業務システム開発に主に使用されている言語
  • オブジェクト指向という開発における有名な考え方を学べる
  • ランキング(人気とかシェアとか)では常に上位で、世界中で使われている(AndroidアプリはJavaよりもKotlinがメジャーになってきてるよ)

勉強する必要がある人

  • バックエンドエンジニア
  • SIerとして習得したい人
  • Androidアプリを作りたい人

コメント

SIerとして就職したい場合には、案件数も圧倒的に多いのでJavaはオススメ。逆にWeb系のベンチャー企業とかだとJavaを使っている所は少ない印象。

大手企業の業務システムがJavaで作られていて、それの二次受け三次受けとかで案件が増えているという構造です。

SIerの是非についてはここで述べませんので、ご自身で調べてください。

最速最短の学習教材

▶Progateはあまり充実してないので、オンラインならTechAcademyがオススメ

▶社会人からJavaエンジニアに転職したいなら、無料で受けられるGEEK JOBが一番人気

▶Javaを勉強して就職したい人はProEngineerで無料でスクールに通える

PHP

3行解説

  • Webサイトの開発でかなり使われている言語で、国内の求人案件数も上位クラス
  • ただし技術的にはダウントレンドで、給与水準は他の言語に比べて低いのでこれからあえて選ぶのはあんまりおすすめではない
  • Wordpressでのサイト制作とかを受注したいとか、案件多いほうが嬉しいという人はまあアリではある

勉強する必要がある人

  • バックエンドエンジニア
  • 年収よりもwebエンジニアとしての就職を最優先にする人
  • Wordpressを使いたい人

コメント

エンジニアとしてスキルアップし、年収も上げていきたいという人にはオススメできない言語です。(めっちゃ叩かれそうゴメンナサイ)

5年〜10年前にPHPで作ったレガシーなコードを他の言語で書き換えるというケースもあるので、新規開発でPHPを敢えて採用するということも少なくなるはず。

とはいえ昔作ったプロダクトやPHPをやっている人の人口も多いので案件数が多いです。

年収とか技術トレンドとかはどうでもいいから、とにかく就職最優先で考えたいという人はPHPでもいいかもですね(個人的にはオススメしませんが)。

最速最短の学習教材

▶あまりお金をかけずにPHPの基礎を学ぶならまずはProgate

▶本気でPHPを習得して働きたいならTECH BOOST

▶PHPを勉強して転職したい人はProEngineerで無料でスクールに通うというのもアリ

Python

3行解説

  • Webサイト制作だけではなく、機械学習のシステム開発で使われる言語
  • Web開発がコモディティ化してきている中、機械学習ができるエンジニアはまだ需要が強く、専門スキルが高い人はもちろん年収も高い
  • もし自分が今からプログラマーになるなら、Pythonを選ぶかもしれない。ただし、機械学習には数学などの他の知識も必要な場合もあるため、トータルの学習コストは高い

勉強する必要がある人

  • バックエンドエンジニア
  • 機械学習関連の開発をしたい人
  • 分析、解析系に興味がある人

コメント

Pythonを使って作るサービスの事業領域がホットトレンドなので、ニーズも確実に上昇すると思います。

Pythonを勉強しただけでは機械学習の実装はできないので、数学や統計の知識もある程度は勉強が必要にはなりますが、習得する価値は多いにあります。

Webエンジニアになるよりも難易度は高く挫折率も高いので、本気でAIを勉強したいという人にオススメ。ほんとにめっちゃ挫折率高いです。でも頑張れ!

最速最短の学習教材

▶機械学習エンジニアを目指すならProgateよりもAidemy

▶一気にPythonと機械学習の力をつけたいならTECH::CAMP

Ruby

3行解説

  • 数年前のRails人気で国内のベンチャー企業を中心に一気に広がった言語で、今も案件数は多い
  • ただし、海外では一概にもそうはいえず、正直5年後にどうなっているかはわからない(今のPHPのようなポジションにいる可能性もある)
  • とはいえプログラミングのいろはを学ぶのにはとても書きやすい言語なのと、Ruby人口が多いため学習環境は整っているので、最初の言語として選ぶのはアリ

勉強する必要がある人

  • バックエンドエンジニア
  • ベンチャー企業に就職したい人

コメント

無難に言語選定をするならRuby。

Railsというフレームワークを使ってWebサービスやAPIの開発の学習難易度はかなり低いです(その一方でRailsに色々やってもらえる分、プログラミングの理解が浅くなるデメリットはあります)。

5年くらい前にRubyが国内で流行ったので、ProgateでもRuby/Railsのコースが充実しているし、テックキャンプのようなスクールでもRuby/Railsのコースが一番充実しています。

ただし、正直5年後にRubyの人気がどうなってるかはわかりません。

現時点で勉強のしやすさ、就職先の多さ、年収の諸条件がBetterなのは事実です(年収は悪くない、という程度ですが)。

最速最短の学習教材

▶お金を抑えて勉強するならProgate

▶短期間で習得して働きたいならTECH BOOST

Go

3行解説

  • Goを導入した企業に導入理由を聞くと「習得コストが低く、コードの品質が維持しやすい」という意見が多い
  • 新しい技術への関心が高く、技術選定能力が高い企業が導入している印象(メリカリ、pairsなど)
  • rubyに比べると案件数・就職先はまだ少ないかもしれないが、Goから初めて見るのも面白い

勉強する必要がある人

  • バックエンドエンジニア
  • 新しい技術を取り入れる企業文化がある企業に就職したい人

最速最短の学習教材

▶ProgateでもGoのコースが追加されてる

▶英語でもOKという人はUdemyのGolangコースがオススメ


ここからはモバイルアプリを作るための言語。

Swift

3行解説

  • iOSアプリ開発エンジニアになりたい人が選ぶ言語
  • 「アプリがダウントレンド〜」みたいな話がちょこちょこ上がってるが、2018年時点ではiOSアプリ開発者はまだまだ引く手あまたで給与水準も高い
  • バックエンドエンジニア or モバイルアプリエンジニアでモバイルアプリエンジニアに興味があるならSwiftからやってみよう

勉強する必要がある人

  • モバイルアプリエンジニア
  • iOSアプリを作りたい人

コメント

フリーランスのモバイルアプリエンジニアの平均報酬はWebエンジニアと比較して高いです。

iOSアプリを作れるエンジニアは供給<需要の構造が今も続いているので、単価が上がっています。

最速最短の学習教材

▶Progateはちょっとしか教材がないので、TECH::CAMPが一番オススメ

▶オンラインで勉強したいならTechAcademy

Kotlin

3行解説

  • Androidアプリの開発をしたい人が選ぶ言語
  • Androidアプリエンジニアになりたい場合はHTMLやCSSの学習はいらないけど、UIの実装とかを勉強する必要はある
  • 今の所日本ではiphoneアプリからリリースする企業も多いので、あえてAndroidからスタートするというのはないかな

勉強する必要がある人

  • モバイルアプリエンジニア
  • Androidアプリを作りたい人

コメント

Android大好き!Androidアプリを作りたい!という人はKotlinからやってみるのもありです。

ただし、iOS or Androidで考えたときに国内ではiOSアプリを先行してリリースする傾向にあったりもするので、最初の言語に選ばなくてもいいかなとは思います。

最速最短の学習教材

▶UdemyでKotlin x Android講座がオススメ

最後に

あなたが作りたいものをイメージしましょう。

作りたいもののイメージができたら、その作りたいものが作れるプログラミング言語を選びましょう。

例えばランディングページを作りたいなら、HTMLとCSS,Javascriptを勉強してデザインの勉強もしましょう。

メルカリのようなiOSアプリを作りたいのならSwiftを勉強しましょう。Xcodeの使い方を覚えましょう。

Androidアプリを作りたいなら、Kotlinを覚えましょう。

AirbnbのようなWebサイトを作りたいなら、Rubyを選びましょう。モバイルアプリのAPI開発もできるようになります。

機械学習やデータ解析に興味があるなら、Pythonを勉強しましょう。必要に応じて数学や統計を勉強しましょう。

フロントエンドエンジニアになりたいのなら、Javascriptを極めましょう。React.jsかvue.jsもセットでね。

なりたい像と言語が決まったら、後は毎日コードを書きましょう。コードを書き続けていれば、プログラマーになれるはずです。

まだ迷っている人へ

この記事を読んでもどの言語にすればいいか迷っている人には以下のどれかから選びましょう

言語 なれる職種 理由
Ruby バックエンドエンジニア 学習コストが低い。学習環境、就職先(案件数)が整っている
Javascript フロントエンドエンジニア 日米ともに注目の領域。Reactかvueをやろう
Python 機械学習エンジニア 圧倒的に人が足りない

これでもまだ決まらない人はプログラミングスクールの無料相談に申し込みましょう。

実際にエンジニアとして働いている人から聞く情報は生モノなのでリアリティがあります。

少なくとも2つほどのプログラミングスクールに無料相談に行き、複数の意見を聞いてみましょう。

話を直接聞いてみると、今考えているイメージが変わって新しい目標に向かって進み出せるかもしれません。

今勉強途中の人も、これから勉強をしようという人も早いうちにプロの意見を聞いておいた方がいいです(後戻りしなくて済むので)。

親切に無料相談に載ってくれるプログラミングスクールは以下の2つなので、プログラミングの勉強方法について活用してみましょう。

TECH BOOST(テックブースト)

・Ruby/RailsならNo1のプログラミングスクール
・カリキュラム、メンター、サポートの三拍子が揃ってる
・現役のエンジニアにも相談できる

TECH::CAMP(テックキャンプ)

・プログラミング界のライザップ
・無料相談が親切
・RubyやSwiftやPython, VR開発などのコースが揃っている

あなたにオススメの記事

harv-tech.hatenablog.com

harv-tech.hatenablog.com