プログラミング未経験者はどのプログラミング言語をやるべき?
Ysです。文系卒のプログラミング未経験から、今まである程度有名なプログラミング言語は触ってきましたが、
結局その中で、自分がプログラミング初心者だった時に
どのプログラミング言語を勉強しておけば成長の効率が良かったのか
を書いていきたいと思います。
プログラミング初心者のおすすめのプログラミング言語(順位別)
Web系
- Ruby
- PHP
- Python
スマホアプリ系
- Swift
- Java
Web系でRubyが1番の理由
僕の中では、Rubyが1番だと思います。
理由は2つあります。
・フレームワーク(Ruby on Rails)の勉強を同時に行うことができる ・学習コストが低い
Rubyというプログラミング言語においては、Webサイトを作成する上で重要な「フレームワーク:Ruby on Rails
」と呼ばれる開発の基盤のようなものを一緒に勉強することが必須です。
そのため、言語の勉強と一緒にフレームワークの勉強を行えることで効率よく勉強することが出来ます。
PHPにおいてもフレームワークはありますが、何と言っても種類が多い。Laravel, Cake, Zend...
etc
それが理由で、PHPを勉強する際には「どのフレームワークを勉強したらいいのか?」といった悩みが出来てしまいます。
ぶっちゃけその答えは特になくて、会社やプロジェクトによって様々なため「絶対これを学べばいい!」というのはありません。
その点、Rubyにおいては「Ruby on Rails」というフレームワーク一択です。
どの会社に行こうが、どのプロジェクトに入ろうが同じです。
なので、自分だけで開発することが出来るだけではなく、会社の即戦力としての技術を身に付けることが出来ます。
また、フレームワークは大部分のシステムは同じ作りで、あとは細かい部分が違っていたりするだけで
基礎の部分がある程度分かっていれば、大方は大丈夫です。
最初はRubyを学んでRuby on Railsを学び、フレームワークの基礎や簡単なWebサイトの作り方を学んでから、
PHPに手を出し、他のフレームワークを勉強した方が勉強し易いと思います。
また、Rubyは学習コストが低いです。
Progateという学習オンラインサービスで簡単に学ぶことができます。
このオンラインサービスを使用して勉強をすれば、長くても1ヶ月ほどでTwitterのようなWebサイトを作成する事ができます。
僕はProgateで勉強するまで、Rubyという言語に触れた事がありませんでしたが簡単に1つのWebサイトを作成する事ができました。
その際にやったことを以下の記事でまとめています。
Pythonは、個人的な意見ですが、初心者でも扱いやすい言語(可読性が高い)と思いました。
僕はPythonに至っては、小さなプログラムしか書いたことがありませんが、プログラミングの「楽しさ」を久しぶりに実感できた言語でした。
Pythonで作成したもののリストは以下のページに書かれています。
関連記事 ≫ ysの作成したものリスト
Pythonでプログラミングの楽しさを理解してから、他の言語に移り、初期に陥りやすい導入の難しさとか苦手意識の壁をぶち壊しておくのもありだと思いいます。
そのため、順位を3位にしてあります。
スマホアプリでSwiftが1番の理由
スマホアプリを作成したい場合は、iPhoneやiPadのアプリを作成する時に使用する言語であるSwiftをおすすめします。
この言語をおすすめする理由は2つあります。
・使用できる人が少ないため就職で有利 ・日本人のほとんどはiPhone志向なのでオリジナルアプリが売れやすい
SwfitはAppleが生み出したプログラミング言語なので、歴史も浅く他の言語と比べて使用できる人が圧倒的に少ないです。
そして習得している人の年齢等も他の言語と比べて若いです。(20代から30代前半)
そのため、人材を欲している企業などが多いので就職が有利です。
また、日本人は世界と比べてiPhoneのユーザーが多い(特に10代、20代の女性は)ため
アプリを作成してヒットさせるとなると、Swiftは必須だと思います。
参考サイトiPhone使用率
ただ、最大のデメリットが1つあってSwiftを使用する際にはPCがMac固定になります。
Macは若干WindowsPCに比べると高いので、最初の初期費用が高くなってしまいます。
しかし、一度買ってしまえばMacはSwfitもJavaも使用できるので
iPhoneアプリ、Androidアプリを作成することが出来ます。
Javaに関しては、昔からある言語なので使用できる人はめちゃくちゃ多いです。
(厳密には、アプリを開発するために使用するJava言語は「Android Java」とも言います。)
多くのシステム会社や大きなWebサイトだとJavaが使用されているので、
安全に職を手にしたいという方はJavaが無難です。
(アプリが自分に合わなかったらWeb系やシステム系にも行けるため)
後は、自分が使用しているスマホで言語を選んでしまうのも手だと思います。
最初のうちはデバッグ(作成した機能を試す作業)は自分のスマホを使用して行うことが多いためです。
Xperia, Galaxyなど → Java iPhone → Swift
初心者はまずやりたい分野から探す
上記で色々書いていきましたが、最初のうちはプログラミングという学習に慣れるためにも、まずは自分がやりたい分野から探した方がいいと思います。
求人やお金的なことを言えば、Web系の方が求人も多く生活するくらいのお金は会社員として稼ぐことは可能です。
しかし、初期につまらないと感じて挫折してしまう可能性があるくらいなら、
最初は【面白そう】という感情で選んでいいと思います。
プログラミングを勉強したい時に、各々その勉強の目的があります。
・Webサイトを作りたい
・スマホアプリを作りたい
・ゲームを作りたい…etc
いきなりAI作りたい!という話でもいいんですが、
最初の導入としては上記の3パターンが結構多いと思います。
目的が異なれば手段も色々変わるように、上記の3パターンでも
プログラミング言語の選択は変わってきます。
そしてプログラミング言語には主に以下の2つの分類があります。(理系と文系的な)
どちらかメインに進むかを決めるだけで、勉強するプログラミング言語は変わってきます。
(今まで紹介してきたプログラミング言語はバックエンドと言われる言語です。)
- フロントエンド(主にデザイン部分を動的に動かしたりする)
- バックエンド(主にデータや通信など内部処理)
なので、まず下記の項目のように何となく自分がやりたいと思うことを想像してみてください。
診断ではないですが、以下のように直感で決めてしまうのもありです。
・画面を自由に作ってみたい。 ・デザインとかに興味ある → フロントエンド ・データや情報取得を自動化してみたい ・Webサイトを構築してみたい ・ゲームを作りたい → バックエンド
フロントエンド
フロントエンドは所謂デザイナーに近しい仕事です。
ゲームを作りたいという人にはちょっと違いますが、Web系やアプリ系では基本画面を作成したりする人の事を指します。
フロントエンドの人が勉強するプログラミング言語は「Javascript」一択です。
他に、Photoshopやillustratorなどを使用する事が求められます。
また、プログラミング言語だけではなくマークアップ言語と呼ばれる「HTML」と「CSS」も合わせて勉強する必要があります。
マークアップ言語では所謂、プログラミングで必要なアルゴリズム(プログラム処理の順番)などは考える必要はありません。
デザインを整えたり、画面のパーツを作成したりする作業です。
画面構成を考えたり、作成するのが仕事なので、プログラミングをまず学ぶというよりかは
まずは、画面構成を作成できるように、マークアップ言語の勉強から入り、そこからプログラミング言語の勉強になります。
summaryフロントエンドの勉強の流れ
1: HTML → 画面構成を作成することを学ぶ 2: CSS → 画面のデザインを整えることを学ぶ 3: Javascript → デザインを動的に動かしたりする事を学ぶ
バックエンド
データベースの処理から、サーバーの構築など行います。
言ってしまえば目に見えない裏方の役割です。
ただ、一言で裏方といってもWebサイトやスマホアプリを1つ作成するだけでもバックエンドの知識がないと成り立ちません。
また、なんだかんだバックエンドを選んだとしても上記で書いてある「マークアップ言語」の勉強は避けて通れません。
Webサイトを自分で作成する際にはある程度のHTMLやCSSを書ける必要があります。
そのため、バックエンドの人も軽くマークアップ言語に触れておいて、軽く画面を作成できる程度に勉強をしてから
プログラミング言語のRubyに着手する。もしくは同時並行で進めるといった感じです。
しかし、スマホアプリの人に限ってはいきなり、Swiftなどのプログラミング言語に入って大丈夫です。
というのも、スマホアプリは作成する便利な環境ツール(XcodeやAndoroid Studio)がすでに用意されていて、特に画面の作成方法がわからなくてもパーツを組み合わせたりするだけで、簡易的な画面は作成する事が出来ます。
勉強については、アプリ作成の書籍を最初から買って、簡単なアプリを作成する方法を学ぶのが1番良いです。
summaryバックエンドの勉強の流れ
■Web系 1: HTML → 画面構成を作成することを学ぶ 2: CSS → 画面のデザインを整えることを学ぶ 3: Ruby → Webサイトの内部処理を学ぶ 4: Javascript → デザインを動的に動かしたりする事を学ぶ ■スマホアプリ系 1: Swift → iOSアプリ作成の仕方を学ぶ 2: Java → Androidアプリ作成の仕方を学ぶ
最後に
これまでの経験から、プログラミング未経験でどのプログラミンング言語に最初に手をつけたら、効率が良いか書きました。
エンジニアとして成長するにはどうすればいいのか、まだまだ発見できない部分は多いですが、
確固として言えるのは「とりあえず行動する事」。
今は勉強するプラットフォームものが整ってきたり、Twitterなどで自分の教材を販売している人がいるので
行動すれば知識が簡単に身に付ける事が可能です。
プログラミングをこれから勉強する人、勉強している人に届けば嬉しいです。ではまた。