はてなの金次郎

Pythonエンジニアの奮闘記。Python, Django, Gitlab, Docker, AWS, k8s...

「独学プログラマー」から学んだこと。

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

概要

  • 著作: 「独学プログラマー
  • 著者: コーリー・アルソフ
  • 監訳: 清水川 貴之
  • 著者経歴:
    米クレムソン大学で政治学を専攻、卒業後にシリコンバレーに住みながら独学でプログラミングを身に付ける。一年後にeBayのソフトウェア・エンジニアとして就職。その後、シリコンバレーにて複数のスタートアップに参画し、主にフルスタック・エンジニアとして活躍。

要約

Pythonプログラマーとして働くために必要な知識や学習の仕方、身につけておくべきプログラミングの原則や考え方などを網羅的にまとめています。また、ネクストステップとして様々な参考文献や書籍が紹介されています。

面白かった章とその理由

第23章 プログラミングのベストプラクティス

プログラミングの原則を学べる章です。

例えば、DRYや直交性など、誰もが従うべき原則を知ることができます。しかし、実際には原則から逸れたコードを意外と見かけることが多いような気がします。

今回ここで知れたことは大きな収穫ですが、知っているだけではなかなか実現することは難しいと思うので、この原則を実現しているコードにたくさん触れていきたいですね。

コードレビューの際にも、ここで紹介されている原則の視点でレビューしてみるとよりよくできるアイディアを提示しやすくなりました。

とても勉強になりましたし多くの人に知っていただきたいので、以下、紹介されていたプログラミングのベストプラクティスを引用させていただきます。

  • コードを書くのは最後の手段
  • DRY
  • 直交性
  • どのデータも1カ所で定義しよう
  • 1つの関数には1つのことだけをさせよう
  • 時間がかかりすぎるなら、たぶん何か間違えている
  • 最初に良い方法で実装しよう
  • 慣例に従おう(PythonであればPEP8)
  • 強力なIDEを使おう(PythonであればPyCharm)
  • 素晴らしいプログラマーはロギングする
  • テストされていないコードは壊れているコードである
  • できるだけ多くコードレビューをしよう
  • 常にセキュリティについて考え、学びましょう

以上のような原則を身に付けることで保守・運用がしやすいソフトウェアを構築することができます。

理解できなかった章とその理由

すべての章が初学者にとってわかりやすく構成されています。また、これから独学で頑張ってみようというモチベーションを掻き立てるのもうまいです。例えば、以下の記事が紹介されています。

スタック・オーバーフローが2015年に調査したところ、
アンケート回答者の48%がコンピューターサイエンスの学位を持っていませんでした。

www.infoworld.com

私が普段働いている環境は優秀な方が多く、出身校や学部もまた同様です。中には小学生、中学生からプログラミングを始めたという人もいます。

私は理工学部でしたが、コンピューターサイエンスを専攻していたわけでもありませんし、プログラミングを始めたのも大学4年生です。そもそものスタートとして出遅れているなという引け目がありました。

しかし、この記事によると全くの未経験者から始めたという方が半分もいるということです。この数値だけでも勇気をもらいました。また、スタートした時期は関係なく、スタートしてからどれだけ頑張れるかが重要だと思わせてくれました。

仕事に活かせそうな知識、活かせそうな状況と活かし方

  • プログラミングのベストプラクティスを身に付ける
  • OSSにコントリビュートする
  • ランサーズ、クラウドワークスに登録する

レポート作成方法

@ledsun blog「新人エンジニアにレポートを書かせて技術書の読み方を伝える。」という記事で紹介されているレポート作成方法を使わせていただきました。

ブクログ始めました

https://booklog.jp/users/jumpyoshi