初心者にオススメのプログラミング言語は?一つだけ教えるからとにかくやれ【個人開発】
初心者ほどプログラミングを始めるとき、この思考に陥りがちなんですよね〜
実は私も昔、どのプログラミング言語を学ぶべきか思考に陥ってましたw
ただいま考えると、単に時間を浪費してるだけだったと感じます。
そんな私がどうやってこの思考から脱出できたのか、経験談を交えてお話ししたいと思います。
ちなみに今回は、個人開発や就職をしたい人に焦点を当てて話しています。当てはまる人は一刻も早く、この思考から脱出してくださいw
はじめに:目的ベースで考えろ
プログラミング言語って言うと、何かめっちゃかっこいいとか、種類が色々あって面白いと思う方が多いでしょう。
ただぶっちゃけ、プログラミング言語ってのは手段でしかないわけです。だってあなた、プログラミング言語を学ぶのが目的じゃないですよね?最終的には何か作りたいものがあってやってるわけですよね?
その目的を達成するためには、どんな特性を持ったプログラミング言語が必要ですか?
それが分かれば、自ずと言語も定まってくるはずです。例えばこんな感じ
- ゲーム作りたい=Unity、C、C++、C#
- Webサービス作りたい=PHP、Ruby、Python
- アプリ作りたい=Swift、Kotlin、Java、ObJective-C
- 機械学習=Python、C++
プログラミング言語の選定
こう言う人も多いですよね。てかそのパターンが一番多いのかな?実際私はそのパターンでしたw
ただ、ここからはどれを選択すべきか。明確な答えがあるわけじゃないんですよね。なので主要な分野別に、私の見解をまとめたいと思います。
ゲーム
- 個人でやるだけならUnity
- ゲーム制作会社に就職したいならC#も勉強するべし
Unityはプログラミング言語ではありません。ゲームを作るためのソフトです。
個人でゲームを作るだけなら、Unity一択でしょう。動画でも書籍でも情報はそこらに転がってます。なので結論、プログラミング言語を学ぶ必要すらありません。
ただ、Unityで複雑なゲームを作ろうとしていくと、C#も必要になるでしょう。最終的に就職を目的としてるなら、C#もできるようにならなければいけません。
本当に個人で作るだけなら、そこは深く学ぶ必要はないでしょう。基本はC#なしでもある程度作れるはずです。
Webサービス
- Javaを選ぶな!
- 初心者はPHP
- Web系IT企業に就職したいならRubyもアリ
完全初心者はPHP一択です。他は挫折する可能性高し。
ただ、最近のWeb系IT企業ではRubyの使用率が高いです。またRubyを使っていない会社でも、Rubyで開発経験があるのは大きな強みになるので、オススメです。
あと業務でJavaを使ってる人はJavaを選びがちですが、正直個人開発には向いてないです。よほどのこだわりがない限り、個人開発で選ぶ言語ではないでしょう。
他にもPythonとかGoとか色々言われることが多いですけど、初心者はRubyかPHPの2択でOKです。
だってあなた、Webサイト見るとき、どの言語で作られてるかなんて気にしてますか?気にしたことないですよね?
そう、大部分の消費者にとって、どの言語で作られてるかなんてどうでもいいんですよ。
おまけに言語によって変わるのは、作りやすさと通信速度くらい。通信速度は今後5Gによって、ほとんど気にしなくていい未来が待っています。
なので気にしなくて、OKです。
アプリ
- iPhoneならSwift
- AndroidならKotlin
これは簡単ですね。アプリ開発は上記くらいしか、言うことがないレベルです。
最近はAndroidとiPhone、両方作れるプログラミング言語も台頭してきてますが、まだ情報は少ないし、主流になるかも分かりません。
なのでとりあえず、自分の持ってる端末の種類で決めて良いでしょう。
ただアプリをストアに出したいなら、初心者はAndroidアプリの方が良いかも。理由は、iOSのApp Storeにアプリを出すには、年額99$(約1万円)が必要だからです。
反対にAndroidのGoogle Play Storeなら、初期費用25$(約2800円)だけでOKです。これを機にアプリ開発用のやっすいAndroidを買うのもアリですね。個人的には下記がオススメです。
機械学習(人工知能)
機械学習自体、個人でやるには敷居が高い分野でしたが、それを可能にしたのがPythonで使える便利ライブラリたちです。
なので機械学習はPython一択のはずです。
Python以外で機械学習を個人でやるのは、上級者でも結構苦労すると思いますね。
まとめ:とにかくやれ
以上、プログラミング言語の選定でした。
いくらノウハウばっかり伝えても初心者は結局悩みそうなので、現役エンジニアである私が目的別プログラミング言語を絞りました。
主に 目的 + 個人開発オンリー or 就職目当てか、この2つで選定しました。
初心者にとって一番重要なのは、作ったものを世の中に出すこと。それはサンプル程度のレベルで問題ありません。
つまり、出来不出来に関わらず、最終目標の達成をいち早く経験することです。
なぜかって?そこで色んな壁にぶち当たるからです。技術的なところはもちろんですが、それ以外にも色んな壁があったりします。
例えばこんな感じ
- Webサービスのインフラ周り
- アプリの審査
- 環境による差分
まだやったことない人は、ちんぷんかんぷんかもしれません。だから経験するんです。
そして1回世に出したものは、自分の資産になります。資産、増やしたいですよね?
そこまでできれば、もう怖いものなし。スキルをどんどん磨いて、前より良いものを世に出すだけ。
このサイクルを回してるだけで、自然とレベルアップしていきます。
ぜひあなたも、この黄金サイクルを回せるよう、今から努力してみてください。
では!