まずはじめにどのプログラミング言語を学ぶべきか悩んでいる人向けの記事です。
ご存知の通り、プログラミング言語は無数にあります。
- 昔からある言語:C,VB.net,VBA(エクセルのマクロ),C#,COBOL,Java
- Web系の言語:Python,Ruby,PHP,Java
- Webの画面があるなら必須の言語:HtmlとCSSとJavaScript
学ぶべきプログラミング言語について、結論を書けば、下記の通りとなります。
- フロントエンドエンジニア(デザイナー):HtmlとCSSとJavaScript(①)
- バックエンドエンジニア:①+Java/Python/PHP/Rubyのどれか1つ
- スマホアプリ製作:①+Java
HtmlとCSSとJavaScriptは、Webの画面を作るならどのエンジニアでも必要になります。
フロントエンドエンジニア(画面などの目に触れる部分をコーディングする)の求められるスキルは、マーケティング・デザインの知識で、ベクトルが少し違います。
バックエンドエンジニア(利用者の目に見えない処理をコーディングする)であれば、Java・Python・PHP・Rubyがあるけど、人工知能や大量データの処理ならPythonが強いし。
Web系に特化したPHPとRubyが最近は人気があるけど(スクリプト系言語でスピード感ある)。
大規模開発では、Javaはまだまだメジャーです。
もし、迷ったら汎用性の高さから、まずはJavaから入るのが一番だと思います。
フロントエンドエンジニアが学ぶべき言語はHtml・CSS・JavaScript
フロントエンドエンジニアが学ぶべき言語は、HtmlとCSSとJavaScriptです。
- Html:画面の骨組み、レイアウト
- CSS:色や、パーツの配置などのレイアウトの調整
- JavaScript:画面の動きをコントロールしたり、バックエンドの言語に処理を投げる
「3つもあるの?」と思ったかもしれませんが、実はそれほど難易度が高くないのと。
画面モックといって、レイアウトのイメージをさっと作るだけなら、Prottのようなツールもあるくらいです。
「こんなレイアウトでいい?」というのがサッと決まれば実際の開発のスピードは速いです。
HtmlとCSSとJavaScriptが使いこなせるのは当たり前
HtmlとCSSとJavaScriptが使いこなせるのは、それほど難易度が高くないということもあり、フロントエンジニアの世界においては当たり前。
画像を加工したりする、illustratorの知識なども必要になるけど、必要になれば覚えていけばいいし。
シンプルに「この画面を作ってくれ」みたいなコーディングなら、「コンビニバイトといい勝負」と書いているYahoo!知恵袋の回答者がいますが、あながち間違いではないです。
マーケティング・デザインのスキルも求められる
というわけで、フロントエンジニアはコーディングで勝負するのではありません。
「どんなデザインにするのか?」という発想の部分、デザインの構想力。
受けがいいデザインをリサーチするマーケティング力の方が大切だったりします。
広報の経験がある人は割と有利です。
バックエンドエンジニアが学ぶべき言語は、JavaとPython
バックエンドエンジニアが学ぶべき言語は、JavaとPythonです。
※バックエンド=利用者の目に見えない処理のこと。
言語ごとに得意分野が違う
バックエンドで使用する言語の種類は多いですが、言語ごとに得意分野が違います。
- Java:汎用性が高い(なんでもできる)
- Python:人工知能系や統計解析が強い
- PHP:web系に特化。ブログ型サイトを作るWordpressは、これ
- Ruby:Ruby on Railsというフレームワークが初学者にやさしい
Rubyは、初学者にやさしいのですが、全体の案件としてはまだまだ少ない印象です。
Web系だけを意識するなら、Python・PHPがいいと思うのですが、汎用性で言えばJavaです。
多くの言語が書けるほど有利
「どれにすればいいの?」と思った人もいると思いますが、一つ言えるのは、多くのプログラミング言語が書ければ書けるほど有利ということ。
大企業の開発案件だと、COBOLやVB.netという昔の言語から、Javaに移行しましょうね的なプロジェクトが割と多いです。
Javaプログラマーなのに、COBOLが読めるように最低限の知識を勉強したり。
案件ごとに求められるスキルは異なるので「Pythonが書けさえすればいい!」という話ではなく。
その時々に対応していくのが普通なので、いつのまにか「JavaもPythonもPHPもやったことあるし、、昔の言語も読むだけならできます」的な状態になっているエンジニアは多いです。
まずは1つの言語に集中して、基礎を身に付ける
とはいえ、まずは1つの言語に集中しましょう。
あれもこれもいっぺんに勉強して、何も身に付きませんでしたとなっても意味ないので。
それに、プログラミング言語が違っても、一つの言語の基礎がしっかりと身についてさえいれば、他の言語を覚えるのは、ある程度は楽になります。
なので、まずは1つの言語に集中して基礎を身に付けましょう。
その上でどれを選ぶか?と言われれば、JavaかPythonのどちらかを選ぶのが無難です。
スマホアプリを作れるようになりたいなら、Java
スマホアプリを作れるようになりたいなら、Java(iOSならSwift)です。
先ほど紹介したProttのようなツールで、アプリの画面のイメージを作りつつ、実際に開発に着手。
ただ、アプリ開発はノーコード(プログラムを書かない)で開発できるbubbleというツールがあったりで参入障壁が低い部分もあり。
アイデア勝負になっている感が強いので、企画する力があったほうが強かったりします。
まとめ:迷ったらJava。そこから求められるスキルを横展開
まずはじめにどのプログラミング言語を学ぶべきか悩んでいる人向けに、言語の解説をしました。
- フロントエンジニア(デザイナー):HtmlとCSSとJavaScript(①)
- バックエンドエンジニア:①+Java/Python/PHP/Rubyのどれか1つ
- スマホアプリ製作:①+Java
- Java:汎用性が高い(なんでもできる)
- Python:人工知能系や統計解析が強い
- PHP:web系に特化。ブログ型サイトを作るWordpressは、これ
- Ruby:Ruby on Railsというフレームワークが初学者にやさしい
「結局どれにすればいいかわからない」迷ったら、まずは汎用性が高いという点でJavaです。
※ほんとかよ?と思った人は「Javaの案件はSESばかりで労働環境が悪いからおすすめできないのか?」も読んでくださいまし。
ただ、実際にシステム開発をするようになれば、他の言語の対応はイヤでも求められるので。
やりたいことと相談しつつ、まずは1つの言語をしっかりと学んで、基礎を身に付けるようにしてください。
コメント