これまでPythonしか使ったことがないので、次は複数のプログラミング言語に触れてみたいと思っています。初心者が学ぶのにおすすめの言語や、それぞれの特徴、効率的な学習方法を教えてください。
4 Answers
思い切り違う考え方を学びたいならHaskellも面白いです。純粋関数型、遅延評価、厳格なミュータブル状態の扱いなど、一般的な手続き型言語とはかなり異なります。最初は『Learn You a Haskell』のような入門資料で文法と関数型の考え方を学び、小さなプログラムを書いてみるのがおすすめです。
低レイヤー寄りに興味があるならC、その先にRustやアセンブリを試す流れも良いです。Cではポインタやメモリ、コンパイルの仕組みを理解しやすくなります。さらに変わった言語を体験したいなら、LispやProlog、COBOLにもそれぞれ独特の考え方があります。最初から全部を並行して学ぶより、1つ選んで小さな作品を完成させてから次へ進むのがおすすめです。
まずはRustがおすすめです。コンパイル型で、Pythonとは異なる型システムや所有権・メモリ管理の考え方を学べるので、プログラミングへの理解がかなり深まります。公式の『The Rust Programming Language』を読みながら、Rustlingsの練習問題を進めると学びやすいです。Pythonとの連携もしやすいですよ。
C#は、オブジェクト指向と関数型プログラミングの両方を学びやすいバランスの良い言語です。教材や開発環境も充実しているので、Pythonの次の言語として始めやすいと思います。簡単なCLIツールや小さなゲームを作りながら学ぶと、文法だけでなく設計の練習にもなります。

LispとPrologは今まで知らなかったのですが、調べてみたら面白そうでした。まずはCとRustから始めてみようと思います。