プログラミングといっても、書店やネットには色々あります。横文字だらけ。
いざやろうとしても何からやればいいのかわからないですよね。
選ぶ基準は「言語」ではない
PythonとかJavaとか言語で選ぶのではなく、作成したいもので選びましょう。
・スマホアプリ
・フロントエンド(画面でやる処理)
・バックエンド(サーバーでやる処理)
といったところですね。
スマホアプリをやりたい場合には
オススメはFlutter(Google)というフレームワークで採用しているDartです。
なぜオススメかというと、スマホはiOSとAndroidで開発言語が異なります。
「あのアプリ、iPhoneにはあるのにAndroidにないのはなんで?」っていうのはこういうところです。別々の言語で同じアプリを作成しないといけないのです。
Flutterはクロスプラットフォームでの開発が可能です。
これで作ればiOSでもAndroidでも動くアプリが作れるという素晴らしいフレームワークです。
フロントエンドをやりたい場合には
言語的にはJavascript一択ですね。そもそも選択の余地がないです。
厳密にいうとJavascriptの改修版みたいな言語もありますが、基本的な考え方や書き方は変わりません。
フレームワークはこれから少し流行りそうなのはAngularですね。
ちなみにですが、フロントエンドをちゃんと勉強された方が「バックエンドをやりたい」ってなった場合、バックエンドのフレームワークはnode.jsをおすすめします。
Javascriptで書けるので、フロントエンドと似たような感覚でAPIやバッチを作成できます。
ただ、仕事で使った経験からすると、フロントエンドエンジニア以外にはおすすめしません…同期させる文法はあるとはいえ、非同期でサーバーサイドを作るって苦労しかないです。予期せぬとこで「なんでこうなるの???」ってのが出てきます。
バックエンドをやりたい場合には
色々ありますが、Web系ですとPHPが未だに強かったりしますね。これから流行りそうなのはGoです。
フレームワークはPHPならLaravel一択(自分も仕事ではこれ)、Goは詳しくありませんがGinとかechoが多いみたいです。
だいたいSIer(自社サービス以外に開発してるところ)は、バックエンドエンジニアが一番多いです。
自分の前職もほぼバックエンドエンジニアでした。バックエンドエンジニアが、少しフロントエンドも書けるぐらいの感じですね。
今の転職募集要項のトレンドはわかりませんが、日本はSIerが多いので、働こうとするならバックエンドエンジニアは良い選択肢かと。
また、AWSとかGCPなんかはほとんどがバックエンドが絡むお話ですね。
サーバーに載せるバックエンドのプログラムを、どこでどう実行するかっていう話です。
個人的に成果が見えやすいフロントエンドから勉強がおすすめ
実際に動いてるのが目に見える形で勉強していくと、やる気が出やすいはずです。バックエンドだと実行結果が文字列で出るみたいなところからスタートですのでね。
ちなみに、自分は勉強も仕事もバックエンドからでしたが、そもそも苦でなかったので参考になりませんね笑
フロントエンドは、Vue.jsとかAngularなんかのフレームワークを使うと、画面生成自体もそこまで難易度高くないです。
フロントエンドの延長で、node.jsでのバックエンドとかやってもらえると良いかなと。
バックエンドからフロントエンドを勉強する場合でも、Javascriptは非同期なのがネックなだけで、文法的にそこまで戸惑いはないかと思います。
以上、バックエンドエンジニアからの提言でした!