We may earn an affiliate commission when you visit our partners.
Course image
【CodeMafia】 WEBプログラミング学習

皆さんはどのようにすればプログラミングが上達するのか疑問に思ったことはありませんか?

なんとなくプログラムを記述しているだけでもプログラミング力は確かに向上します。ただ、これから紹介する3つのポイントを抑えながらプログラミングを行うとより効率的にプログラミングの上達を行うことが出来ます。

■ プログラミングの上達に欠かせない3つのポイント

- 1. 習うより慣れろ

これは巷(ちまた)でよく言われていることですが、プログラミング学習の初期段階では手を動かしてプログラミングに慣れることが重要になってきます。プログラミングのスキルを向上するためにはインプットと同じくらい、アウトプットが重要になってきます。例えるならば、自転車の乗り方をいくら口頭で説明されたところで、自転車に乗れるようにはなりません。それと同じで、プログラミングが書けるようになるためには、自分で手を動かして書くことが重要です。

- 2. 基礎を理解する

Read more

皆さんはどのようにすればプログラミングが上達するのか疑問に思ったことはありませんか?

なんとなくプログラムを記述しているだけでもプログラミング力は確かに向上します。ただ、これから紹介する3つのポイントを抑えながらプログラミングを行うとより効率的にプログラミングの上達を行うことが出来ます。

■ プログラミングの上達に欠かせない3つのポイント

- 1. 習うより慣れろ

これは巷(ちまた)でよく言われていることですが、プログラミング学習の初期段階では手を動かしてプログラミングに慣れることが重要になってきます。プログラミングのスキルを向上するためにはインプットと同じくらい、アウトプットが重要になってきます。例えるならば、自転車の乗り方をいくら口頭で説明されたところで、自転車に乗れるようにはなりません。それと同じで、プログラミングが書けるようになるためには、自分で手を動かして書くことが重要です。

- 2. 基礎を理解する

ここで言う基礎というのは、物事の根底にあるもののことです。例えば、React(JavaScriptの高機能なUIライブラリ)を使いこなしたいのであれば、Reactの元になるJavaScriptの挙動について理解することが重要になってきます。Reactを覚えれば、なんとなく動く機能を最短で作ることができるようになりますが、それ以上のレベルに行くためには合わせて基礎を理解している必要があります。

- 3. 他人のコードからノウハウを盗め

プログラミングを上達する過程では自分で試行錯誤しながらエラーを解消したり、より良いプログラムの記述方法を自分で考えることはとても重要です。ただ、過去の人たちが犯した失敗と同じ失敗をわざわざ犯す必要はありません。今日のIT技術の発展に至るまでには世界中の "頭の良い人" 達が何年も技術を磨き、失敗しながら導き出した最適なプログラミングのパターン(デザインパターンやクリーンコード)などが存在します。そうした知識を得ることで、彼らが何年もかけて到達した地点まで最短で行くことが出来ます。

プログラムの記述は一見創造的な行為に見えますが、実際には「過去にインプットした情報」の断片をたぐり寄せて、アウトプットする行為に過ぎません。そのため、他の人が書いた質の良いコードを見ることは、自身のアウトプットを高めるためには重要になってきます。

本コースでは上で挙げた3つ目のポイントであるクリーンコードについて学んでいくことになります。

■ クリーンコードとは?

皆さんは「クリーンコード」という言葉を聞いたことがありますか?

クリーンコードとは端的に言うと「きれいなコード」、または「コードをきれいに書く技術」のことを言います。

では、そもそもきれいなコード、汚いコードとはどのようなコードでしょうか?

■ 汚いコードに見られる特徴

汚いコードには次のような特徴があります。

・変数名があいまい。

・コードが読みづらい。

・規則性がない。

・記述が冗長。

・拡張性がない。

・保守性が低い。

・テストコードが書きづらい。

汚いコードに良くあるケースはコードの記述に一貫性がなく、何回も読み直さないと処理の内容が頭に入って来ないような記述になっているケースです。また、適切に処理が分離されていない状態では、新規機能の追加の際にも既存の機能に修正が必要になってくるケースも多々あります。このような状態のコードはあまり良いコードとは言えません。

■ きれいなコードに見られる特徴

一方で、きれいなコード(クリーンコード)には次のような特徴があります。

・変数が適切な名前になっている。

・楽に読むことができる。

・一貫した規則性がある。

・冗長な記述がない。

・拡張性に優れる。

・既存機能の改修がしやすい。

・テストコードが書きやすい。

処理の内容が追いやすく、コードからその処理の意図が伝わってくるようなコードはきれいなコードと言うことが出来ます。また、適切に処理の分離が行われ、新規機能の追加の際にも既存のコードに改修が発生しないと言った点も考慮して書かれたコードはより良いコードと言うことが出来るでしょう。

■ きれいなコードを書くために

では、きれいなコードを書くためにはどのようにすればよいのでしょうか?

一般的にコードをきれいに書くノウハウは実際の開発の中で失敗しながら少しずつ学んでいくものです。問題にぶち当たったときに次回への改善点としてきれいに書くことの重要性とそのノウハウを学びます。ただ、このような機会がない人は決して少なくないはずです。

幸い、先人たちはこれまでの開発で積み上げてきたノウハウをクリーンコードとして体系化してくれています。そのため、皆さんが長い期間をかけて実際の開発の中で学ぶはずのノウハウをショートカットすることができます。

■ 本コースで学ぶこと

本コースでは「良いコード」「悪いコード」の例を用いながら、クリーンコードの観点から、美しいコード、他の人から読みやすいコード、保守性や拡張性に優れるコードの記述方法について学習をしていきます。

本コースでは「他の人に読みやすいコードを記述しろ!」「保守性を高めろ!」「拡張性に考慮して記述しろ!」といった抽象的な説明は行いません。具体的な例を見ながら、何が良いのか?なぜ悪いのか?について一つずつ細かく確認していきます。

■ コースの対象者

・今後コードを書く上で気を付けるべき点を知っておきたい。

・後で見直して何がどうなっているのか分からない。

・コード量が増えていくとコードの整理できなくなっていく。

・ポートフォリオ用のコードを作成したいが自信がない。

・コードレビューで何度もダメ出しされてへこむ。

・チームメンバーのコードレビューを任されたため指標が欲しい。

このように感じる人は一度本コースを受けてみてください。

これはどんなプログラミング言語やフレームワークを使っていても汎用的に用いることのできる概念です。

本コースではJavaScriptを用いて説明を行うため、一部JavaScriptの言語仕様に依存するところはありますが、Python、Ruby、PHPなどの他のプログラミング言語を使う人にとっても有益な情報を盛り込んでいます。そのため、JavaScript以外のプログラミング言語を学んで居る方にとってもきっと役立つ知識を得ることができます。

また、React、Vue、Firebase、TypeScriptなどをこれから使いたい人にとっては是非一度触れておいていただきたい知識になります。

あなたがもし1年目のプログラマであれば、これから何万、何十万行というコードを書くことになります。

その中で、クリーンコードの概念を知っていると、より適切な記述の指針を得ることができ、より効率的にプログラミングの上達を行うことができます。

プログラミングを上達したいと考えている人は一度クリーンコードに触れてみてください。

あなたがこれまでに意識しなかったコードを読みやすくするテクニックがきっと見つかります。

Enroll now

What's inside

Learning objectives

  • 他の開発者の人が理解しやすいコードの書き方について学びます。
  • 読んでいて疲れないコードの書き方について学びます。
  • 無駄な部分まで読む必要がないコードの書き方について学びます。
  • バグが混入しにくいコードの書き方について学びます。
  • 改修箇所が限定されるコードの書き方について学びます。
  • 改修による既存のコードへの影響が限定されるコードの書き方について学びます。
  • 新規機能の追加が行いやすいコードの書き方について学びます。
  • 冗長な記述がないコードの書き方について学びます。
  • クラスの凝集度、結合度について学びます。
  • Solid原則について学びます。

Syllabus

はじめに
なぜクリーンコードを学ぶ必要があるのか?
クリーンコードとコメント
クリーンコードを学ぶメリット
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores SOLID principles, which are essential for designing robust and maintainable software, and are often discussed in advanced software engineering contexts
Uses JavaScript examples, making it highly relevant for those working with React, Vue, Firebase, and TypeScript, as these technologies heavily rely on JavaScript
Covers naming conventions, commenting techniques, and variable definitions, which are universally applicable across different programming languages and development environments
Discusses the importance of writing code that is easy to understand and maintain, which is crucial for collaborative projects and long-term software development
Teaches how to avoid magic numbers and characters, which is a fundamental practice for writing clean and maintainable code, especially in large projects
Emphasizes the use of formatters to maintain code consistency, which is a standard practice in professional software development to improve readability and collaboration

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

実践的なクリーンコード入門

学習者によると、本コースはプログラミングにおけるクリーンコードの概念を理解し、実践的なスキルを身につける上で非常に有用であると高く評価されています。特に、「良いコード」と「悪いコード」の具体的な例を用いて説明が進められる点が分かりやすいと多くの受講者が感じています。命名規則コメントの書き方関数の定義DRY原則など、クリーンコードの重要な要素が網羅されており、日々の開発で直面する問題を解決する手がかりを得られたという声が多く聞かれます。また、JavaScriptを例に使用していますが、他の言語にも応用可能な普遍的な考え方が学べると好評です。練習問題は理解を深めるのに役立ちますが、一部難易度が高いと感じる学習者もいるようです。
クリーンコードの概念を網羅。
"クリーンコードについて体系的に学ぶことができ、知識が整理されました。"
"命名規則から関数、変数、コメントまで、網羅的に解説されていて、クリーンコードの全体像を掴むことができました。"
"SOLID原則など、より深い概念にも触れられていて、ステップアップにつながる内容でした。"
JavaScript例だが他言語でも役立つ。
"JavaScriptでの例が中心ですが、PythonやRubyなど他の言語にも共通する考え方が多く、非常に参考になりました。"
"特定の言語に依存しない普遍的な知識が学べたのが良かったです。普段PHPを書いていますが、すぐに活かせそうです。"
"JavaScriptを学び始めたばかりですが、クリーンコードの基本的な考え方を理解でき、今後どのような点に注意すべきかが明確になりました。他の言語にも応用できるとのことなので、長く役立つ知識だと感じています。"
良い・悪いコード例で理解が深まる。
"抽象的な話だけでなく、「良いコード」「悪いコード」を具体的な例で示しながら解説してくれるのが非常に分かりやすく、実践的です。"
"具体例で示してくれるので、イメージしやすかった。"
"ダメなコードと良いコードの例が比較されてて、理解しやすかったです。"
"クリーンコードの概念や重要性が具体的に理解できました。"
すぐに自分のコードに活かせる。
"学んだ内容をすぐに自分のプロジェクトに適用できて、コードの質が向上しました。"
"今まで何となく書いていたコードの改善点が見つかり、自信を持ってコードが書けるようになりました。"
"日々の開発で役立つノウハウが満載で、コードレビューでの指摘内容も理解しやすくなりました。"
"まさに「プログラミング中級者になりたい人」のためのコースだと感じました。実践的な内容が多く、非常に満足しています。"
一部、難しい問題もある。
"練習問題は理解の定着に役立つ反面、一部の発展的な問題は難しく感じました。ヒントや解説がもう少し丁寧だと助かります。"
"練習問題は良質ですが、初心者には少しハードルが高いかもしれません。中級者向けとしては適切だと思います。"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in プログラミング中級者になりたい人のためのクリーンコード入門 with these activities:
JavaScriptの基礎を復習する
コース受講前にJavaScriptの基礎知識を復習することで、よりスムーズにクリーンコードの概念を理解できるようになります。
Browse courses on JavaScript
Show steps
  • JavaScriptの基本的な構文を復習する
  • 変数、データ型、演算子について確認する
  • 関数、オブジェクト、配列について復習する
「Clean Code」を読む
クリーンコードの概念をより深く理解するために、定番の書籍「Clean Code」を読むことをお勧めします。
Show steps
  • 「Clean Code」を章ごとに読み進める
  • 各章の要点をまとめ、理解度を確認する
  • コースで学んだ内容と照らし合わせる
「Refactoring: Improving the Design of Existing Code」を読む
リファクタリングの知識を深めるために、「Refactoring」を読むことをお勧めします。
Show steps
  • 「Refactoring」を章ごとに読み進める
  • 各リファクタリング手法を理解し、適用例を検討する
  • 自身のコードに適用できるリファクタリング手法を探す
Four other activities
Expand to see all activities and additional details
Show all seven activities
リファクタリングの練習問題を解く
実際に汚いコードをクリーンコードにリファクタリングする練習問題を解くことで、実践的なスキルを身につけることができます。
Show steps
  • 汚いコードの例題を見つける
  • クリーンコードの原則に基づいてリファクタリングする
  • リファクタリング後のコードをテストする
  • 改善点を見つけてさらにリファクタリングする
クリーンコードに関するブログ記事を書く
クリーンコードに関する知識をブログ記事としてまとめることで、理解を深め、アウトプットの練習にもなります。
Show steps
  • クリーンコードに関するテーマを決める
  • コースで学んだ内容や参考資料を基に記事を構成する
  • 分かりやすく丁寧に記事を執筆する
  • 記事を公開し、フィードバックを求める
オープンソースプロジェクトに貢献する
オープンソースプロジェクトのコードを読んで、クリーンコードの原則がどのように適用されているかを確認し、貢献することで実践的な経験を積むことができます。
Show steps
  • 興味のあるオープンソースプロジェクトを見つける
  • プロジェクトのコーディング規約を確認する
  • 簡単なバグ修正やドキュメントの改善から始める
  • コードレビューを受け、フィードバックを反映する
後輩プログラマーにクリーンコードを教える
学んだ知識を後輩プログラマーに教えることで、自身の理解を深め、教えるスキルも向上させることができます。
Show steps
  • 後輩プログラマーにクリーンコードの重要性を説明する
  • コースで学んだ内容を分かりやすく伝える
  • 具体的なコード例を用いて説明する
  • 質問に答え、理解を深めるサポートをする

Career center

Learners who complete プログラミング中級者になりたい人のためのクリーンコード入門 will develop knowledge and skills that may be useful to these careers:
ソフトウェアエンジニア
ソフトウェアエンジニアは、ソフトウェアの設計、開発、テスト、およびデプロイメントを行います。このコースを受講すると、クリーンなコードの原則を理解し、他の人が読みやすく、保守しやすいコードを作成できるようになります。ソフトウェアエンジニアとして成功するには、他の開発者が理解しやすいコードを書く能力が不可欠です。このコースでは、変数名の選択、コメントの適切な使用、マジックナンバーの回避など、具体的な例を用いてクリーンコードの書き方を学びます。このコースで紹介されているテクニックは、プログラミング言語やフレームワークに依存しない汎用的な概念であるため、非常に有効です。
プログラマー
プログラマーは、特定のプログラミング言語を使用して、ソフトウェアやアプリケーションを作成します。プログラマーにとって、コードの可読性と保守性は非常に重要です。このコースでは、クリーンコードの概念を学び、他の人が理解しやすいコードを書くための具体的な方法を習得できます。変数や関数の適切な命名規則、コメントの書き方、冗長な記述の回避など、実践的なスキルを身につけることができます。特に、チーム開発においては、他のメンバーが理解しやすいコードを書くことが不可欠であり、このコースでの学習が非常に役立ちます。
フルスタックエンジニア
フルスタックエンジニアは、フロントエンドとバックエンドの両方を担当します。フルスタックエンジニアとして、クリーンコードの原則を理解し、一貫性のある高品質なコードを記述することは非常に重要です。このコースでは、フロントエンドとバックエンドの両方で役立つクリーンコードのテクニックを学ぶことができます。例えば、変数や関数の適切な命名規則は、コードの可読性を向上させ、チーム開発におけるコミュニケーションを円滑にします。また、コードの重複を避け、保守性を高めるためのDRY原則についても学ぶことができます。
フロントエンドエンジニア
フロントエンドエンジニアは、ウェブサイトやウェブアプリケーションのユーザーインターフェースを開発します。このコースでは、クリーンコードの原則を学び、保守性と拡張性に優れたフロントエンドコードを書くためのスキルを習得できます。フロントエンド開発では、JavaScriptなどの言語を使用しますが、このコースで学ぶクリーンコードの概念は、言語に依存せず適用できます。特に、React、Vue、Firebase、TypeScriptなどのモダンなフレームワークやライブラリを使用する際に、このコースの知識は非常に役立ちます。
バックエンドエンジニア
バックエンドエンジニアは、サーバーサイドのロジック、データベース、およびAPIを開発します。バックエンドコードの品質は、アプリケーションのパフォーマンスと安定性に直接影響します。このコースでは、クリーンコードの原則を学び、バックエンドコードの可読性、保守性、および拡張性を向上させるためのスキルを習得できます。関数を小さく保ち、一つの責務のみを行うように設計することや、DRY原則(Don't Repeat Yourself)を意識することなど、具体的なテクニックを学ぶことができます。
モバイルアプリケーション開発者
モバイルアプリケーション開発者は、iOSやAndroidなどのプラットフォーム向けのアプリケーションを開発します。モバイルアプリケーションのコードは、パフォーマンスが重要であり、クリーンで効率的なコードを書くことが求められます。このコースでは、クリーンコードの原則を学び、モバイルアプリケーションのコードの可読性、保守性、およびパフォーマンスを向上させるためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを学ぶことができます。
品質保証エンジニア
品質保証エンジニアは、ソフトウェアの品質をテストし、バグや問題を特定します。クリーンなコードは、テストが容易であり、品質保証エンジニアの作業を効率化します。このコースでは、クリーンコードの重要性を理解し、テストしやすいコードを書くためのテクニックを学ぶことができます。例えば、関数を小さく保ち、一つの責務のみを行うように設計することで、単体テストが容易になります。また、マジックナンバーを避け、定数を使用することで、テストの信頼性を高めることができます。
機械学習エンジニア
機械学習エンジニアは、機械学習モデルを開発し、デプロイします。機械学習のコードは、複雑であることが多く、クリーンで保守しやすいコードを書くことが特に重要です。このコースでは、クリーンコードの原則を学び、機械学習のコードの可読性、保守性、および拡張性を向上させるためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを学ぶことができます。
ゲーム開発者
ゲーム開発者は、ビデオゲームのプログラミングを担当します。ゲーム開発では、パフォーマンスが非常に重要であり、クリーンで効率的なコードを書くことが求められます。このコースでは、クリーンコードの原則を学び、ゲームのコードの可読性、保守性、およびパフォーマンスを向上させるためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを学ぶことができます。また、ゲーム開発における特定のパターンについても理解を深めることができます。
DevOpsエンジニア
DevOpsエンジニアは、開発と運用を連携させ、ソフトウェアのデリバリーを自動化します。DevOpsエンジニアは、スクリプトや自動化ツールを作成することが多く、これらのコードの品質が重要です。このコースでは、クリーンコードの原則を学び、スクリプトや自動化ツールのコードの可読性、保守性、および信頼性を向上させるためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを学ぶことができます。
データサイエンティスト
データサイエンティストは、データを分析し、有用な情報を抽出します。データ分析の過程で、PythonやRなどのプログラミング言語を使用することが多く、コードの品質が重要です。このコースでは、クリーンコードの原則を学び、データ分析のコードの可読性、保守性、および再利用性を向上させるためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを学ぶことができます。
テクニカルライター
テクニカルライターは、ソフトウェアやハードウェアに関するドキュメントを作成します。クリーンなコードを理解することは、正確で分かりやすいドキュメントを作成するために役立ちます。このコースでは、クリーンコードの原則を学び、コードの構造や意図を理解するためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを理解することで、より質の高いドキュメントを作成することができます。
組み込みシステムエンジニア
組み込みシステムエンジニアは、家電製品や産業機器などの組み込みシステムを開発します。組み込みシステムのコードは、リソースが限られていることが多く、効率的でクリーンなコードを書くことが求められます。このコースでは、クリーンコードの原則を学び、組み込みシステムのコードの可読性、保守性、およびパフォーマンスを向上させるためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを学ぶことができます。
セキュリティエンジニア
セキュリティエンジニアは、ソフトウェアやシステムのセキュリティを保護します。安全なコードを書くためには、クリーンなコードの原則を理解することが重要です。このコースでは、クリーンコードの原則を学び、セキュリティ上の脆弱性を減らすためのコードを書くためのスキルを習得できます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを学ぶことができます。
ITコンサルタント
ITコンサルタントは、企業に対してIT戦略やソリューションを提供します。技術的な知識に加えて、コードの品質を理解することは、効果的なコンサルティングを行うために役立ちます。このコースでは、クリーンコードの原則を学び、コードの可読性、保守性、および拡張性の重要性を理解することができます。変数名の選択、コメントの適切な使用、関数を小さく保つことなど、具体的なテクニックを理解することで、より質の高いコンサルティングを提供することができます。

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in プログラミング中級者になりたい人のためのクリーンコード入門.
この本は、クリーンコードの原則と実践方法を網羅的に解説しています。変数名、関数、クラスの設計など、具体的な例を交えながら、読みやすく保守しやすいコードを書くためのノウハウを学ぶことができます。このコースの内容をより深く理解するために、ぜひ参考にしてください。この本は、業界のプロフェッショナルや学術機関で教科書として広く使用されています。
この本は、リファクタリングの具体的な手法を多数紹介しています。コードの臭いを検出し、安全にコードを改善するためのテクニックを学ぶことができます。このコースで学んだクリーンコードの原則を実践するために、非常に役立つ参考書です。この本は、ソフトウェア開発者にとって必読の書として広く知られています。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser