そんな疑問を解決します。
各言語それぞれの特徴や違いは前回の記事中盤で触れていますのでそちらをどうぞ。
おすすめのプログラミング言語【違いや特徴一覧~未経験の転職向け】
失敗しない選び方
ズバリ3つの失敗パターンを回避するように言語を選ぶことです。
初心者にとって一つの言語を学ぶだけでもかなりの時間が必要となります。もし頑張って勉強してもそれが無駄になってしまったらと思うと最初の言語選びは失敗できないですよね。
3つの失敗パターンとは
一体何を持ってプログラミング言語の選び方を間違えたと言えるのでしょうか?具体的に以下の3つの失敗があると考えています。
- 挫折率の高い言語を選ぶ失敗
- 作りたいものがわからない言語を選ぶ失敗
- 需要の低い言語を選ぶ失敗
挫折率の高い言語を選ぶ失敗
一つ目は挫折率の高い言語を選び途中で挫折してしまう失敗です。どうやらプログラミング言語の学習の挫折率は90%という定説があるようです。
確かに何も知らない初心者を100人集めてプログラミングをやらせてみればそれぐらいは挫折するでしょうね。
せっかく勉強を始めてもやり遂げずに挫折してやめることになってしまえばそれは失敗と言えるでしょう。
この失敗を避ける方法
安易には言えませんが学習難易度の低い言語を選ぶことが一番の近道だと思います。例えば私の思う言語別の挫折率は以下です。
- C言語:90%
- Java・Kotolin・Swift:70%-80%
- PHP・Ruby:50%-60%
ただこの数字は普通の人100人が始めたとして何もできずに挫折して辞めてしまう場合を想定しています。
例えば小さい頃からゲームを作ってみたいと思っていて、C言語を最初に学ぶと決意して専門学校に入った、それくらい志の高い人の挫折率は例えC言語とはいえ90%も無いです。
昔から何かどうしても作ってみたいものがある、こだわりがあるという場合は挫折率なんか気にせずにそれに合った言語を始めればいいです。
作りたいものがなく何となくプログラミングをやってみたいんだけどなーといった感じであれば難易度の低い言語から始めるのがおすすめです。
難易度の低い言語であれ挫折率は50%あると思っていいでしょう、しかしそれを学んだあとにじゃあ次に難易度の高い言語を学んだ時の挫折率は半分以上に減らせると思います。
- ハードモード:基本もわからずに挫折率の高い言語を学び始める
- ノーマルモード:基本はわからないけど挫折率の低い言語を学び始める
- イージーモード:挫折率の低い言語で基本を学んだ上で次の言語を学び始める
ざっくりこんな感じかと。挫折率と作りたいものへの情熱を考慮して最初に学ぶ言語を選択するのが良いでしょう。
作りたいものがわからない言語を選ぶ失敗
この失敗を避ける方法
ずばり作りたいものを決めてしまうことです。
まったくその通りで、そもそも何が作れるのかがわからないてってこともありますよね。
例えばHTML・CSS・JSなんかはどのサイトを参考にしてもいいです。すべてのwebサイトはHTML・CSS(JSは有無あり)でできてますので。
あとはこんなアプリを作ってみたいというのももう既に参考になるアプリがあるのでわかりやすいですね。
言語名+実例で検索
その他の言語で何が作れるのかを知るには言語名+実例とか言語名+開発例とかで検索すると実例が出てくると思います。
例えばツイッターはRubyで作られているとかFacebookはPHPで作られているとかわかります。
RubyとPHPに関してはどちらも同じwebアプリ開発に向いているのでどちらで作っても同じ機能のものは作れます。
普段使っているサービスを作る
例えばAmazonでよく買い物をするならAmazonっぽいサイトを作ってみたり、画像処理は難易度もあがりますがインスタグラムのようなサイトを作ってみたいというのもいいです。
最終ゴールを普段便利に使っているサイトにしてみるのはイメージしやすいと思います。
これらのことからそれを作るための言語を選べば失敗の可能性を低くできるでしょう。
需要の低い言語を選ぶ失敗
学習も終えある程度の実例も作ることができた!
例えばあなたがJavaを学んでロボットを動かす組み込み系の実績を作ったとします。
さぁこの実績をもとにロボット工学の会社へ就職だ→地方の地元には一切そんな企業はなかった…東京へ出たとしても他と比べると少数な求人しかなかった…。こういった失敗ですね。
この失敗を避ける方法
重要なことですが今住んでいる地域から引っ越すつもりは無い場合、地元の求人を調べてその分野・言語の求人があるかを下調べしておくことは重要です。
最悪東京に出ていく気持ちがあるのであればまぁどんな分野でも求人自体はあると思います。
ぶっちゃけ需要の低い言語を選ぶ失敗を避ける簡単な方法は、作りたいものにこだわりがないのであればweb系の言語を学ぶことだと思います。PHPやRubyといった言語が主流ですね。
単純に求人も多いのと、もし転職に失敗したとしても個人でお金を稼ぐことに挑戦できるという点です。
ツイッターを例にしてしまうとそんなの自分にはできないよと思うかもしれませんが、例えば姓名判断をするwebサービスで月間100万PVを超えるレベルのwebサービスを個人で作っているなんて例はたくさんあります。
もしくは手堅くクラウドソーシングで仕事を受託していくという手もあります。ランサーズというサイトが有名なんですが、例えば5ページのwebサイト作成で5~10万円といった案件があったりwebエンジニア向けの仕事はたくさんあります。
番外編:転職に有利な実績作りの例
実績としてサイトを作って、転職時のアピールとしたい場合、以下の機能は備えたサイトを作るのが望ましいです。
- ユーザー登録・ログイン認証
- 何らかの入力(インプット)
- 何らかの出力(アウトプット)
- メールアドレスとパスワードでユーザー登録・ログイン認証
- つぶやきを入力
- つぶやきがタイムラインに表示される
模倣してサイトを作るときはいきなり全項目・全機能やろうとするよりも核となっている部分のみで骨組みを作ってみるのが良いと思います。
例えば上記の例ではフォローとかいいねとかユーザー登録にあたる他の項目とかはすっ飛ばしてOKです。
むしろ後から機能を追加しやすい整理された構造でプログラムを書ける人は重宝されます。
なので基本機能で作っちゃったけど、後からこの機能を追加するにはどうすれば…と悩み改善する経験は絶対にプラスになります。
※webアプリを作成するならセキュリティについて知っておくことも重要です。
初心者がwebアプリを開発するなら知っておきたいセキュリティの話
まとめ
- 挫折率の高い言語を選ぶ失敗を避けるには難易度の低い言語を学ぶ
- 作りたいものがわからない言語を選ぶ失敗を避けるには既存のサービスを真似る
- 需要の低い言語を選ぶ失敗を避けるには求人状況をリサーチ