【初心者向け】ぼっち大学生におすすめのプログラミング言語と選び方のポイント!元大学ぼっちの現役エンジニアが徹底解説します
この記事では、プログラミングに興味のあるぼっち大学生に向けて、元大学ぼっちで在学中にフリーランスエンジニアとして独立した経歴を持つ僕が、プログラミング言語の選び方のポイントや、おすすめのプログラミング言語について詳しく解説していきます。
たっちゃん
ぼっちユニバーシティの運営者です。
大学ぼっち時代にプログラミングを学び始め、在学中にフリーランスのWebエンジニアとして独立。
本業はWebアプリケーションやWebサイトの受託開発がメインですが、最近はFlutterにハマっています。
趣味はバックパッカー旅行と立ち飲み屋さん巡り。
現在は都内でひとり法人を経営しながら、現役のぼっち大学生のみなさんへお役立ち情報を発信しています。
0. はじめに
ぼっち大学生のみなさんおはようございます!
今回の記事は、プログラミングに興味を持っているぼっち大学生のみなさんに、
- プログラミング言語の選び方
- おすすめのプログラミング言語
について、大学ぼっち時代にプログラミングの学習をスタートし、在学中にフリーランスのWebエンジニアとして独立した経験を持つ僕が、現役エンジニア目線で紹介する内容となっております。
これからプログラミングを学んでみたいが、
「どのプログラミング言語を学べばいいか分からない!」
「おすすめのプログラミング言語が知りたい!」
といったお悩みやご要望をお持ちのぼっち大学生は、ぜひ一度読んでいってください。
1. 初心者のぼっち大学生に知ってほしいプログラミング言語の選び方とは?
読者のぼっち大学生のみなさんが、これから学習するプログラミング言語を選ぶときのポイントは、
- 言語の人気度が高いかどうか
- プログラミングを学ぶ目的に合った言語かどうか
の2点になります。
他にも色々な意見があると思いますが、読者のぼっち大学生のみなさんが、完全なプログラミング初心者である場合は、とりあえずこの2点を押さえておけばOKです。
以下では、それぞれのポイントについて詳しく説明していきます。
1-1. 人気のあるプログラミング言語を選ぼう
プログラミング初学者のぼっち大学生は、人気のあるプログラミング言語から、最初に学ぶ言語を1つ選ぶようにしましょう。
その理由は簡単で、人気度の高いプログラミング言語には、プログラミング初心者向けの情報量が多く、初心者が学習しやすい環境が整っているからです。
ここでいう情報には、
- プログラミングスクールの教材
- オンライン学習プラットフォームの教材
- Webサイトやブログの記事
- 書籍
などが含まれます。
参考までに、The PYPL PopularitY of Programming Language Indexより、この記事の執筆時点で人気度の高いプログラミング言語をいくつかピックアップしてみました。
- Python: 人工知能(AI)やデータサイエンス分野で幅広く利用されており、初学者にも扱いやすい言語です。
- JavaScript: Web開発において必須の言語で、フロントエンド・バックエンドの両方で使用できます。近年ではJavaScriptを拡張した静的型付け言語であるTypeScriptが、多くの開発現場で利用されています。
- Java: 企業システム開発やAndroidアプリ開発で多用されている、堅牢で実績のある言語です。
- Ruby: 柔軟で読みやすいオブジェクト指向プログラミング言語。Web開発にも使われ、Ruby on Railsというフレームワークが特に人気です。表現力豊かで効率的なコードが魅力。
- PHP:サーバーサイドのスクリプト言語で、主にWeb開発に使われます。HTMLに埋め込むことができ、CMSやフォーラムの開発に利用されることが多いです。
- Swift:Swiftは、Appleが開発したプログラミング言語で、iOSやmacOSアプリを作成するために使われます。
- Kotlin:Kotlinは、JetBrainsが開発したプログラミング言語で、Androidアプリ開発においてGoogleが公式に推奨しています。Javaとの互換性があり、シンプルで読みやすい文法が特徴です。
- Dart:Dartは、Googleが開発したプログラミング言語で、Webやモバイルアプリの開発に使われます。特にFlutterフレームワークでクロスプラットフォームアプリが作れます。シンプルで読みやすい文法が特徴で、初心者にも学びやすく、効率的な開発が可能です。
もちろん、上記以外にも需要が飛躍的に高まっているプログラミング言語は、世の中に数多く存在しています。
ただし、最初に学ぶプログラミング言語を選ぶ場合は、上記のような人気度の高いプログラミング言語を選んでおいたほうが、初心者向けの情報にアクセスしやすいため、他の言語の場合よりも速く習得できたり、学習の途中で挫折する可能性を下げることができるというメリットを享受できるというのが、ぼっち大学生のみなさんにまずお伝えしたいポイントになります。
1-2. 学習目的に合ったプログラミング言語を選ぼう
続いては、プログラミング初学者のぼっち大学生は、プログラミングを学習する目的に合ったプログラミング言語を選択しましょうというお話。
一括りにプログラミング言語といっても、言語によって実現できることが異なります。
そのため、ぼっち大学生のみなさんは、あらかじめ各言語がどのような用途で利用されているか整理してから、学ぶべきプログラミング言語を選択することが重要です。
| 主な用途 | プログラミング言語・フレームワーク |
|---|---|
| Web開発 | JavaScriptやRuby、PHPがおすすめです。 JavaScriptはWeb開発において必須とも言える言語であり、RubyやPHPはシンプルな構文でWebアプリケーション開発に適している言語。 これに加えて、それぞれの言語に対応したフレームワークの学習も職業思考の方には欠かせません。 |
| モバイルアプリ開発 | Java(Android)やSwift(iOS)が適しています。 それぞれのプラットフォームに特化した言語ですので、アプリ開発に必要な知識を効率的に身につけることができます。 近年ではGoogleが開発したFlutterや、Facebookが開発したReact Nativeなどのクロスプラットフォームのアプリ開発フレームワークを使用して、1つの言語でAndroidとiOSの両方で高速なアプリ開発が可能になってきているのもポイントです。 |
| AI・データサイエンス | 初心者にはPythonが最適です。 豊富なライブラリやデータ解析ツールが揃っており、この分野での学習や開発に適しています。 |
| ゲーム開発 | C#やC++がおすすめです。 これらの言語はパフォーマンスが高く、3Dグラフィックスや物理演算などゲーム開発に必要な機能をサポートしています。 特にC#は、Unityという人気のゲームエンジンで広く使われています。 |
上記の表は、用途に応じたプログラミング言語やフレームワーク、プラットフォームを簡単にまとめたものになります。
誤解しないようにしていただきたいのが、この表に示したプログラミング言語やフレームワークが、対応する用途にしか使用されないというわけではないという点です。
例えば、表ではPythonはAI・データサイエンスの用途に対応していますが、PythonおよびPython製のフレームワークであるDjangoを使用して、PHPやRubyの場合と同様にWebアプリケーションの開発をすることも可能です。
読者のぼっち大学生のみなさんは、
- iOSとAndroidの両方で利用できるアプリを開発したい -> Flutterでクロスプラットフォームなネイティブアプリ開発ができそうなのでDartを選択する
- AI・データサイエンスに興味があるけど、まずはWebアプリケーションの開発ができるようになりたい -> 豊富なライブラリやデータ解析ツールが揃っていながら、Djangoを使用してWebアプリケーション開発ができるPythonを選択する
といったような順序で、自分の目的や関心に合致したプログラミング言語を、最初に学ぶ言語として選択するようにしましょう!
2. 初心者のぼっち大学生におすすめしたいプログラミング言語を紹介します
ここからは、これからプログラミングを学ぶぼっち大学生のみなさんに、僕がおすすめしたいプログラミング言語やフレームワークを紹介していきます。
今回は、僕がもし今初心者だったら、まず初めに学びたい言語やフレームワークをリストしてみましたので、ぜひ参考にしていただけたらと思います。
2-1. おすすめプログラミング言語とフレームワークその1:DartとFlutter
© Flutter
2-1-1. DartとFlutterは費用対効果が超高い
おすすめプログラミング言語の1つ目は、Googleが開発したプログラミング言語のDartです。
Dartは、主にWebアプリケーションやiOS・Androidアプリの開発に使用されるオブジェクト指向のプログラミング言語であり、Cスタイルの文法を採用しているため、他のプログラミング言語(例:JavaやJavaScript)に慣れている人にとっても、比較的学びやすくなっているのがポイントです。
また、シンプルで読みやすい文法が特徴で、初心者にも扱いやすいプログラミング言語といって差し支えないでしょう。
参考までに、下記のコードは挨拶(greeting)と名前(name)を組み合わせて、メッセージを作成し、画面に表示するものになります。
void main() {
String greeting = 'こんにちは';
String name = '太郎';
String message = createMessage(greeting, name);
print(message);
}
String createMessage(String greet, String person) {
return '$greet、$personさん!';
}
// 実行結果:こんにちは、太郎さん!
文法がシンプルでわかりやすいため、初心者のぼっち大学生のみなさんでも簡単に理解できるというのが、まずはお分かりいただけたのではないでしょうか。
そして、このDartの最大の特徴は、なんといってもクロスプラットフォームアプリケーション開発フレームワークであるFlutterを使用して、iOSとAndroidの両方向けに効率的にアプリを開発することができる点に他なりません。
DartやFlutterが登場する以前は、基本的にiPhoneアプリを作りたかったらSwiftやObjective-C、Androidアプリを作りたかったらJavaやKotlinといったプログラミング言語を、それぞれ使用する必要がありました。
僕もインターンに参加した際に、SwiftでiOSアプリを、JavaでAndroidアプリを同時に開発した経験があるのですが、2つの言語を同時に学びながら開発を進めるのは、色々な意味で骨が折れます…。
しかし、DartおよびFlutterによる開発手法さえ習得してしまえば、iOSやAndroidだけでなくWebの開発まで網羅することが可能です。
要するに、単一のプログラミング言語の用途の幅広さを基準にした場合、DartとFlutterを最初に学んだほうが、他の言語やフレームワークを同じだけ学習するよりも費用対効果がめちゃめちゃ高いというのが、僕が初心者のぼっち大学生のみなさんにDartとFlutterを選ぶことをおすすめする理由になります。
2-1-2. Dartの言語仕様について
ここからは、Dartという言語の特徴について、もう少し詳細に説明していきたいと思います。
初心者向けとはカテゴライズしづらい内容も含まれますので、後で自分で調べるわ!というぼっち大学生のみなさんは、読み飛ばしちゃって全然問題ありません。
まずDartという言語は、JIT(Just-In-Time)コンパイルとAOT(Ahead-Of-Time)コンパイルの両方をサポートしています。
コンパイルというのは、端的に説明すると、みなさんが書いたプログラムのソースコードを、コンピュータが理解できる機械語に変換するプロセスのことを指します。
JITコンパイルは、開発中のコードの変更がリアルタイムで反映されるため、デバッグやテストの効率が向上します。
例えば、みなさんがVSCodeなどのエディターでボタンの背景色を赤から青に変更したら、その変更が待ち時間無しで即座に反映されるのが、このJITコンパイルになります。
一方、AOTコンパイルは、アプリケーションの起動時間を短縮し、パフォーマンスを向上させるために使用されます。
こちらのAOTコンパイルに関しては、みなさんが書いたプログラム=アプリをApp Storeなどの本番環境=アプリの速度が重視されるようなところに公開する際に用いられるものという認識で、とりあえず大丈夫です。
Dartの言語機能の特徴としては、非同期処理をサポートするasync/awaitや、Null安全性のサポートがあります。
非同期処理(async/await)というのは、あるプログラムが何かの終了を待つ間に、他の仕事を進めておくための方法です。
例えば、ぼっち大学生のみなさんの散歩が終わるまでに、授業の課題も同時に進めておけるようなイメージが近いですね。
Null安全性というのは、うっかりミスでプログラムの変数を空っぽ(Null)にしたままにしないように、みなさんのプログラムを見守ってくれる機能です。
これにより、みなさんが書いたプログラムが、予期せぬエラーで止まる回数を圧倒的に減らすことができます。
これらの機能により、Dartを書く開発者は効率的かつ安全なコードを書くことができます。
また、Dartは強力な型システムを持っており、型推論によってみなさんが簡潔なコードを書くことができます。
どういうことかというと、Dartの型システムは、みなさんが書くプログラムの変数に、文字列や数値、真偽値などのデータの型のうち、どの型のデータが入るかをご丁寧に教えてくれるのです。
そして、Dartの型推論は、変数の中身を見て、どんな型のデータが入るかを自動的に教えてくれるという賢い機能のことです。
これによって、みなさんは少量のコードで、きれいなプログラムを書くことが可能になります。
また、DartおよびFlutterを取り巻くエコシステムも成熟しており、多くのパッケージが公開されているという点も見逃せません。
DartやFlutterのエコシステムを初心者向けに説明すると、みなさんがFlutterで作りたいアプリをおもちゃとした場合、おもちゃの部品に相当するものがたくさん置いてある場所と考えていただくのが良いかと思います。
これらの部品(パッケージ)を使うことで、みなさんは自分で部品を作らなくとも、自分だけの素敵なおもちゃ(アプリ)を作るのが簡単になるという寸法です。
Flutterのエコシステムには、世界中の優秀な開発者が作ってくれたパッケージがたくさんあるので、みなさんはその中から欲しいパッケージを見つけて組み合わせるだけで、いろいろなアプリが作れちゃうというわけですね。
…ちょっと長くなってきたので、DartとFlutterの全容に関しては、また別な記事で詳しく説明させていただくことにします。
2-1-3. DartとFlutterのまとめ
今回紹介したDartとFlutterについて簡潔にまとめると、
- Dart言語は初心者のみなさんにも扱いやすいプログラミング言語である
- Flutterフレームワークによって、WebやiOS・Androidアプリの開発を効率的に行うことができる
ということになります。
Dartを開発したGoogleのサポートにより、Dart言語やエコシステムは継続的に成長しており、ぼっち大学生のみなさんが無料で利用できる学習コンテンツや、開発者向けのサポートは増え続けています。
これは冒頭に書くべきだったかもしれませんが、DartやFlutterは最近登場したにも関わらず、その学習コンテンツの充実度がハンパじゃありません。
実際にGoogleがFlutterの学習コンテンツを掲載しているページにアクセスしてみていただけると、その充実度の高さがぼっち大学生のみなさんにもお分かりいただけるはず。
また、今後DartとFlutterの人気は高まることが予想されており、ますます多くの開発者や企業がDartとFlutterを採用するでしょう。
その一方で、DartやFlutterの経験を持つ開発者の数が少ないことから、現にFlutterエンジニアの単価は高い傾向にあるというのも、最後に付け加えさせていただきます。
これからプログラミングを学ぼうというぼっち大学生のみなさんは、ぜひ最初に学ぶプログラミング言語としてDartを選んでいただき、Webやモバイルアプリ開発のスキルを一気に習得しつつ、幅広いプロジェクトに対応できるようになっていってほしいと思います。
3. まとめ
今回は、これからプログラミングを学び始めるぼっち大学生のみなさんのために、
- プログラミング言語の選び方
- おすすめのプログラミング言語
について、現役エンジニア目線で解説させていただきました。
最後に、この記事の主張を簡潔にまとめると、
- プログラミング言語を選ぶときは、言語の人気度が高いかどうかと、プログラミングを学ぶ目的に合った言語かどうかを考慮しよう
- プログラミング言語は、Flutterフレームワークによるクロスプラットフォーム開発ができるDartがおすすめ
のような感じになります。
この記事の内容が、ぼっち大学生のみなさんのプログラミング言語選びに少しでも役立つことを願っています。
最後までお読みいただき、誠にありがとうございました。