見出し画像

【Webエンジニアの備忘録】初心者に最適な言語は何か?

はじめに


ご高覧いただき有難うございます!
ソフトウェアエンジニアのKitaharaです.
本日は「初めて学ぶ言語は何が良いか」という話をしていきます.

ことのはじまり


先日Twitterでプログラミングを始めるにあたってどの言語がよいかという投稿が話題を呼んでいました.

様々が意見がでていて個人的に非常に興味深かったので, 意見をまとめたあとに自分の意見を書いていきます!

Twitterで寄せられた意見


言語と理由をセットでまとめていきます.
太字は複数人からおススメされた言語です.

  • Kotlin

    • 汎用性が高いから

  • JavaScript

    • 汎用性が高い(多数)

    • 現在人気の言語だから

    • フロント開発もバック開発もできるから

  • Java

    • プログラミングの本質をつかみやすいから

    • オブジェクト指向を学べるから

    • 仕事で使うことが多いから(複数)

  • Python

    • 書きやすい

    • 汎用性が高い・選択肢が広がる

    • 仕事で使いやすい(複数)

  • Scratch

    • 構造化設計を把握することが出来るから

  • C

    • 理由不明

  • C++

    • 理由不明

  • Ruby

    • 高単価だから

  • 目的次第 (多数)

推奨されやすい言語の傾向


多様性があっていい意見交換の場になっていたのではないでしょうか?
個人的にC言語をおススメしていた人が人駆け出しエンジニアって名前につけていたのがツボでした

色々な意見がありましたが, 汎用性が高い言語がお勧めされる傾向にあるようです. (私が初めて学んだR言語はありませんでした(泣))

私がお勧めした言語はこの中にはありませんでしたが, 一番意見が近いのはJavaなのではないかなと思います. Javaは成果物を作るまでが時間がかかってしまう言語だとは思うのですが, 言語としては一番理解しやすいのではないかなと思います.

よくある話としてJavaは型の指定があるから初心者には難しいみたいな話があります. ですが, むしろそのおかげでどのような処理をしているのかが分かりやすくなっているので理解しやすくしているのではないかなと思います.

個人的にはPythonやJavaScriptの方がよっぽど理解しにくい文法な気がします. (リスト内包表記とか変数と定数の概念など…)

私の意見


私個人の意見としてはPHPがおすすめです.
理由は初心者が学ぶにあたって重要な

  • 環境構築が簡単

  • 簡単に書ける

  • 成果物を作りやすい 

が揃っているからです.
この3つをすべて満たしている言語は少ないのではないでしょうか?

環境構築が簡単


PHPの環境構築は非常に簡単です. WindowsであればXamppさえ入れてしまえば動きます. Python等と仮想環境の構築が不要なところもGoodです. (Web制作で人気があるWord Pressもそこまで難しくないです)

やはり環境構築はほとんどのエンジニアが苦手とする分野でありますし, 初心者であれば挫折に繋がってしまうこともあるのでなるべく簡単な言語を進めたいところです.

その点においてJavaScript(Node.js)はよいアイディアだと思います.
Pythonは文法や統計解析をする分にはGoogle Colabという超優秀な環境をGoogle が提供しているので問題ないのですが, Web開発をしようとすると仮想環境をたてたりライブラリのバージョンを見たりと実は結構大変です.

Linuxを使っているのであればMySQLの環境構築も簡単です.
Rもクラウド環境であれば30秒で環境構築ができます.

詳しくは以下の記事を参考にしてみてください

PHPの環境構築の記事

Node.jsの環境構築の記事

MySQLの環境構築の記事

R のクラウド環境の記事

Pythonのクラウド環境の記事


簡単に書ける


簡単に書けることは重要です.
難しい言語だとモチベーションの低下にもつながってしまいます.

ここでいう簡単は必要な概念が過不足なく認識しやすい状態で存在することです. 例えば, 通常のコードを書くときに方法がいくつもあったら(初心者は)覚えるのが大変ですし, モチベーションが下がってしまいます.

その点でJavaはよい選択肢です.

逆に, PythonやJavaScriptは比較的自由に書けるのでコーダーによって書き方が全然変わります. 初心者の時はコードを理解するのに時間が大量にかかるというのはあるあるではないでしょうか?

また, PythonやJavaScriptといった言語は変数の宣言であったり, 関数の入出力する変数の型を指定しなかったりするのでプログラミングで重要な概念を覚えられなかったりします. (Pythonにはアノテーションがあるじゃないかという意見もあるかと思いますが, 初心者はアノテーション習わないのでそこはご了承ください)

PHPも突き詰めれば不思議な言語ではあるのですが, 基本文法は型宣言をするかがコーダーに委ねられたJavaといった感じなのでそこまで理解しにくいという代物ではないと思います.

成果物をつくりやすい


PHPを推す一番の理由です.

これまで出てきたPython等といった言語も素晴らしいアイディアではありますが成果物を作るときにwebアプリケーションフレームワークを覚える必要があります.

Webエンジニアの方であれば納得していただけると思うのですが, これが曲者でして実は言語自体を覚えるより苦労します. つまり, 初心者はせっかく言語を覚えても制作物を作るまでにもう一段階成長する必要があるという軽いショックを乗り越えないといけないのです…

一方で, PHPはフレームワーク無しに成果物を作れるのでプログラミングの楽しい部分をいち速く体験出来きます. 成果物を作ることはモチベーションに直結する方が多いとおもうのでPHPが一番おススメできる言語ではないかなと考えています.

ご意見おまちしております


今回は初心者におススメできる言語について執筆しました
この言語初心者におすすめというものがあれば是非コメント欄に書いていってください!

また, 初めてこんな言語書いて大変だったという話も大募集です!

モチベーションが上がります!

記事内で不明な点等ございましたら気軽にご連絡ください.

Twitter: @kitahara_dev
email: kitahara.main1@gmail.com

この記事が気に入ったらサポートをしてみませんか?