アメリカの大学で奮闘中

アメリカの大学でプログラミングを学ぶべくコンピューターサイエンス学部に留学したものの挫折し数学科に転部した著者が、自分の挫折ポイントを踏まえて数学、プログラミング、アルゴリズムついてできる限り分かりやすく解説してみるブログ。*できる限り記事の内容は技術的な間違いをしないように気をつけていますが、もし間違いがあれば教えていただけると助かります。

プログラミング初心者にはPythonがおすすめな理由

僕の記事では一貫してpythonでアルゴリズムを紹介しています。それは僕が得意だからなのもありますが、何より読みやすさ書きやすさが理由です。

 

いろんなサイトでpythonは読みやすい言語だと紹介されていますが、なぜなのかをJavaと比べて紹介したいと思います。

 

その上でpythonを初心者にお勧めする"もう一つの理由"を紹介したいと思います。

 

 

PythonとJavaを文法で比べてみる

 

変数の定義の仕方

 

python

num = 3

 

Java

int num = 3;

 

 

if文

 

python

if num == 3:

    print("num is 3")

 

Java 

if(num == 3){

    System.out.println("num is 2");

}

 

 

for loop

 

python

for i in range(100):

    print(i)

 

Java

for(int i; i<=100; i++){

    System.out.println(i);

}

 

このように文法が少しながくなります。

 

 

そもそものJavaとpythhonの違い

 

上に文法の違いを紹介しましたが、正直なところ少し長くなるだけで習得の難しさという観点では一度慣れてしまうとそこまで苦ではないです。

 

pythonの簡単さ(Javaの難しさ)はクラスが関わってきます。

 

pythonの場合、もし自分の名前を出力する場合print("Astrostory")ですみますが、Javaの場合そうはいきません。

 

Javaの場合

public class main{

    public static void main(String[] args){

        System.out.println("Astrostory");

    }

}

 

としなければなりません。

 

Javaは大抵mainを持つファイルとクラスの持つファイル(大体複数個)に大別されます。プログラムを実行すると最初にmain関数から実行されていきます。

 

今回はmain以外にクラスはありませんが、たとえ文字列のアウトプットなどの簡単なものであったとしてもmain関数を作る必要があります。

 

ちなみに、public static voidは

public ...  どこからでもアクセスできる

static ...      インスタンスを作成しない

void ...    戻り値なし

 

このようにカチッと決め込んでコードを書くのでしっかりとしたシステム開発とかには向いていると思います。

 

そもそもちょっと何言っているの?ってなっていてJavaを学習しようとしている人はこのままJavaに入るよりも、pythonなどでクラスやインスタンスまで学んでからの方が急がば回れでいいんじゃないかなって個人的に思っています。

 

 

pythonが初心者にお勧めなもう一つの理由

 

まず前提とて、プログラミングは実際に手を動かしてコードを書いていかないと上達しないと僕は考えています。

 

なので初心者(僕も初心者と中級者の間なので偉そうには言えませんが)の方にはたくさんコードを書いて欲しいのですが、ただ文法の練習をするって楽しいですか?

 

僕はただ文法の練習のためだけにコードを書いているのが時間の無駄に感じます。(無駄じゃないけど)なので、ただ練習してコードを消去ではなく、今後も自分の役に立つようなものを作るように心がけています。

 

例えば数学科なので計算を手伝ってくれるものを作ったり。

(ちなみにこれは友達のFinite Math用)

 

# Suppose y = ax^2 + bx + c
a = 1
b = 4
c = 4

x = (-b + (b**2 - 4*a*c)**0.5) / (2 * a)
x2 = (-b - (b**2 - 4*a*c)**0.5) / (2 * a)

print(x, x2)

 

pythonはたくさんのライブラリーがあるので簡単に自分の役立つものを作れたりします。

例えば、上のコードは計算式を1から作ってますが、sympyを使って解くこともできます。

 

これは僕が読んだ中でわかりやすかったSymPyの記事。

pianofisica.hatenablog.com

 

ただ。ライブラリーは少し特殊だから、pythonの勉強のためならわざと文法を使ないとかもですが...

 

こんな感じでこの記事は終えようと思います。