見出し画像

プログラミング日記2

 ええ、ちゃんと続けていますよ。4日目なので3日坊主は回避。

 ということで、理系学生として恥ずかしくないプログラミング能力を身につけようと、PythonとかRとかを勉強しようとしているすのうみそらりです。

 割とここ4日間はしっかりと勉強しています。今まで学んだことは以下の通りです。

Pythonで用いられる型について・変数についてなど
リスト・タプル・集合・辞書、イテラブルなどの扱い
for/if/whileなど。
関数の定義・グローバル/ローカル変数

 結構スピード感を持って学んでいるつもりです。

 学習の上では、こちらの本 を利用しています。別に本なんか買わなくても、Pythonなんてオンラインリソースが大量にあるだろう、というのはもっともなことなのですが、無料のものは自分の性格として続けづらいんですよね。どうしても「お金を無駄にしたくない」というマインドドリブンな方が頑張れる。そういうわけで、オンライン有料コースか、あるいは本でも買おうと思っていたのですが、ちょうどDMM電子書籍のセールがやっていたので、おおよそ20冊 20000円ほど買い込みました(元は70000円相当だった)。Rやスクレイピング、TensorFlowなど様々な内容にわたりますが、Pythonの基礎文法すらできないような人は何をやってもダメですから、まずはそこを頑張りたいですね。20000円は無駄にできない。

 この本、500ページほどあるのですが、もう50%くらいこなしました。この本の構成は「基礎篇(いわゆる基礎文法を学ぶ)」と「応用篇」に分かれているのですが、基礎編はあとはクラスと継承/その他の関数の項目を残すのみとなっていますね。昔やったSwiftもObjective-Cの流れからオブジェクト指向ですし、割と頑張れば理解できる気がします。
 この本のいいところは、詳しいところですが、逆に詳しすぎて大局的な流れからそれてしまいそうなのが気をつけなければいけないところな気がします。

 あとは、AtCoderの過去問も試しに解いてみました。こちらの Beginners Collection というやつからいくつか選んでやってみたのですが、おおよそ前の方の100点/200点問題は難なく解けて、300点問題は1問は解けました。
 ただ一方で、「map関数」のように非常に初歩的で役に立つ関数を知らず、そのためifやらforやらで無理やり実装するというようなことがしばしばあったので、知識面を増やしていきたいとも思いました。
 まあ、そうは言っても、自分の競技プログラミング力やアルゴリズムの知識を伸ばしたいとも思っていないですし、一部の問題の様子がなんとなく「大学受験数学っぽい」のがキツいのであまりやり込めない気がします。何より周囲に「上には上」が居すぎて萎えるというのがある。
 しかし、学習モチベーションとして役に立つというのは大いにわかりますし、学んだことのアウトプットをすることで、学習効果が上がっているという実感があります。正直、中学生の頃にこんな仕組みを知りたかった。

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