ハーバード大学の David J. Malan 教授によって開発された、コンピュータサイエンスの入門コース「CS50」の日本語版 コンピュータサイエンスに関する基礎的な知識を身につけることを目的としており、C言語、Python、SQL、HTML、CSS、JavaScript、およびその他のWeb技術について学びます。
CS50では以下のようなことが学べます
- コンピュータサイエンスとプログラミングの広範かつ強固な理解
- プログラミング問題を効率的に解決するためのアルゴリズムの考え
- 抽象化、アルゴリズム、データ構造、カプセル化、リソース管理、セキュリティ、ソフトウェアエンジニアリング、Web開発などの概念
この場では学んだことをアウトプットすることで、自身のエンジニアとして素地を高めることが目的です。
著者は現役のフロントエンドエンジニア(2024年 3月時点で実務経験5年目)です。 他職種からエンジニアにキャリアチェンジをした身であるため、エンジニアを目指して学習をした期間を含め、即戦力的なスキルを身につけるための学習が中心でした。
エンジニアとしてのキャリアが進むにつれて、不変かつ基礎的な知識を改めて学ぶことが必要であると感じるようになりました。 手始めにコンピュータサイエンスの基礎を学び、知識の0 -> 1を身につけることでより広い視野で問題解決のスキルが高まるのではないかなと考えています。 そんな備忘録をアウトプットしていきたいと思います。