ID | 大項目 中項目 |
小項目(課題要素) | 必要となる知識と行動 | できるという状態 | 技術補足(言語・FWなど) |
---|---|---|---|---|---|
1 | コーディング基礎 変数とデータ型の理解 |
1. 数値型・文字列型・論理型の違いを説明できる | 各データ型の定義と用途を理解する。型ごとの演算挙動やエラー例を実際に試す。言語ごとの違い(PHPの動的型付け/TypeScriptの静的型付けなど)を比較する。整数、実数、文字列、論理値などのデータ型がメモリ上でどのようなビット列なのかを理解する。また、文字コードを理解する。 | データ型のそれぞれの型について理解し、その違いを説明することができる。各データ型の特徴と使いどころをコードと図で説明できる。型によるエラーを回避・修正することができる。 型変換の注意点を説明できる。 | |
2 | コーディング基礎 変数とデータ型の理解 |
2. 配列と連想配列の違いを使い分けられる | 配列(indexベース)と連想配列(キー名ベース)の構造を把握する。使用シーンごとに適切な構造を選ぶ練習をする。言語ごとの実装例(JavaScriptのオブジェクト、PHPの配列)を比較する。 | データ構造の選定理由を説明できる。キー/値を意識してコーディングできる。配列/連想配列の処理を正確に書ける。 | |
3 | コーディング基礎 変数とデータ型の理解 |
3. 型変換(キャスト)を正しく行える | 言語における暗黙的型変換と明示的型変換(キャスト)の違いを説明できる。使用言語における型変換の構文・注意点を把握している。 | 入力値・外部API・DB取得値などを適切な型に変換して、安全にアプリケーションで扱えている。「暗黙の型変換が起きている箇所」をレビューで指摘・修正できる。 | |
4 | コーディング基礎 変数とデータ型の理解 |
4. 変数名に意味を持たせられる | 変数名がコードの可読性・保守性に与える影響を理解し、命名規則(キャメルケース/スネークケース/Pascalケースなど)を意識して適用できる。変数のスコープや役割に応じて、短すぎず長すぎない適切な名前を考える習慣を持つ。また、曖昧な名前(dataやtmpなど)を避け、変数の目的や意味が明確に伝わる命名を心がける。 | コードを読んだ他者が意図をすぐ理解できる命名を行える。変数名を見て役割や型を推測できるように設計できる。命名ルールが統一されていない箇所をレビューで指摘・改善できる。 | |
5 | コーディング基礎 変数とデータ型の理解 |
5. スコープの違い(ローカル/グローバル)を理解する | ブロックスコープ・関数スコープ、広域スコープの宣言をできる。 | スコープの範囲を意識して変数を安全に管理できる。 グローバル変数の乱用を避け、スコープ汚染を防ぐコーディングができる。 | |
6 | コーディング基礎 変数とデータ型の理解 |
6. nullと未定義の違いを理解できる | JavaScript であれば null と undefined の違い、PHP における null と未定義変数の扱いを理解する。 エラーや比較時の挙動(== と === の違い)を実例で確認する。 | 未定義エラーを防ぎ、条件式や初期化処理を安全に記述できる。 値の有無を意識して isset() や ??(null合体演算子)などを適切に使える。 | |
7 | コーディング基礎 変数とデータ型の理解 |
7. 定数と変数の使い分けができる | JavaScript の const と let、PHP の const と define() の違いを理解する。 定数を使う意義(再代入防止・コードの意図明示)を説明できる。 | 再代入不要な値を定数で定義し、コードの安全性と可読性を高められる。 レビュー時に「定数化」すべき箇所を指摘できる。 | |
8 | コーディング基礎 変数とデータ型の理解 |
8. 複雑な構造(多次元配列、オブジェクト)を扱える | JavaScript のオブジェクト、PHP の連想配列などのネスト構造を理解する。 アクセス・更新・ループ処理を for...of、foreach、map() などで安全に記述できる。 | 多次元配列やオブジェクトを自在に操作できる。 階層データの抽出や加工を効率的に行える。 | |
9 | コーディング基礎 変数とデータ型の理解 |
9. 型によるエラーを自力で見つけられる | JavaScript の暗黙的型変換、PHP の型宣言(strict_types)の有無による影響を理解する。 エディタ警告・コンソールエラー・TypeScript の型チェックを活用して原因を特定する。 | 型不一致によるエラーを迅速に修正できる。 型の整合性を意識したデバッグができる。 | |
10 | コーディング基礎 変数とデータ型の理解 |
10. 型宣言の利点を説明できる(TypeScript/PHP8など) | TypeScript や PHP8 の型宣言構文を理解し、静的型付けのメリット(安全性・補完・可読性)を説明できる。 | 関数や変数に適切な型を宣言し、コンパイル時に型安全性を担保できる。 プロジェクト規模に応じて型導入を判断できる。 | |
11 | コーディング基礎 演算と条件分岐 |
11. 四則演算子の動作を理解して使える | JavaScript・PHP における +、-、*、/、% の挙動と型変換の影響を理解する。 演算順序や括弧の優先順位を正しく把握する。 | 異なる型の演算時にも意図通りの結果を得られる。 計算結果の誤りをデバッグできる。 | |
12 | コーディング基礎 演算と条件分岐 |
12. 比較演算子と論理演算子を区別して使える | JavaScript/PHP における == と === の違いを理解し、真偽値評価と論理演算(&&/||/!)の動作を説明できる。 | 条件式の誤判定を防ぎ、意図したロジックで条件分岐が書ける。 コードレビューで比較ロジックの誤りを指摘できる。 | |
13 | コーディング基礎 演算と条件分岐 |
13. if文・else文・elseifの構造を正しく書ける | JavaScript/PHP における if 構文・elseif/else if の違いを理解する。 ネスト構造の整理と早期 return の考え方を理解する。 | 条件分岐を誤りなく記述できる。 条件の複雑さを抑えた読みやすいコードを書ける。 | |
14 | コーディング基礎 演算と条件分岐 |
14. switch文とif文の使い分けを説明できる | JavaScript・PHP の switch構文と if文 の使い分け(単一値 vs 条件式)を理解する。 break/default の動作を正確に把握する。 | 複数条件を整理し、最適な分岐構造を選択できる。 冗長な if文 を switch構文 で簡潔に置き換えられる。 | |
15 | コーディング基礎 演算と条件分岐 |
15. ネストした条件式を読みやすく書ける | 条件の分割・関数化・早期 return による可読性向上を理解する。 複雑な入れ子条件を整理するリファクタリング技術を学ぶ。 | ネスト構造を最小化し、意図の明確な条件分岐を書ける。 可読性を重視したリファクタができる。 | |
16 | コーディング基礎 演算と条件分岐 |
16. 三項演算子を使ってシンプルに条件処理できる | JavaScript・PHP の三項演算子の構文(condition ? trueExpr : falseExpr)を理解し、ネスト時の可読性に注意する。 | 簡潔な条件式を1行で書ける。 冗長な if文 を三項演算子で最適化できる。 | |
17 | コーディング基礎 演算と条件分岐 |
17. 条件式の真偽値評価を理解して使える | 真偽値(Boolean)の評価ルールを理解し、比較演算子や論理演算子を組み合わせた条件式を正確に書ける。== と === の違い、暗黙の型変換による評価結果の違いを確認できる。 | 条件式の評価結果を意図どおりにコントロールでき、デバッグ時に真偽の誤判定を修正できる。 | |
18 | コーディング基礎 演算と条件分岐 |
18. 論理演算(AND/OR/NOT)の動作を理解する | &&, ||, ! などの演算子の短絡評価(ショートサーキット)動作を理解し、複数条件を組み合わせたロジックを安全に設計できる。 | 複雑な条件分岐でも誤動作なく、意図した順序で評価できるコードを書ける。 | |
19 | コーディング基礎 演算と条件分岐 |
19. 演算子の優先順位によるバグに気づける | 言語仕様に基づく演算子の優先順位と結合規則を理解し、必要に応じて括弧を使って意図を明確化する。 | 条件式や計算式で優先順位の誤りによるバグを未然に防ぎ、コードレビューで誤りを指摘できる。 | |
20 | コーディング基礎 演算と条件分岐 |
20. 条件式の書き方に一貫性を持たせられる | チームコーディング規約やLintルールに従い、条件式の記述スタイルを統一する。 | 他者が読んでも理解しやすく、レビューで指摘のない条件式を書ける。 | |
21 | コーディング基礎 ループと繰り返し処理 |
21. for文・while文・do...while文を正しく使える | 各ループ構文の動作と違い(初期化・条件評価・増減・後判定)を理解し、適材適所に使い分けられる。 | 処理の繰り返しに適した構文を選び、無限ループを防いだ安全なコードを実装できる。 | |
22 | コーディング基礎 ループと繰り返し処理 |
22. foreach文で配列をループ処理できる | 配列やオブジェクトを反復処理するforeach文の仕様を理解する(キーと値の取得方法など)。 | 配列の要素を正確に処理でき、キー・値を混同せず扱える。 | |
23 | コーディング基礎 ループと繰り返し処理 |
23. breakとcontinueの使い方を理解する | ループ制御構文break・continueの動作を理解し、ネスト時のスコープ影響を把握する。 | 必要な箇所でループを安全に抜ける・スキップする処理を正しく記述できる。 | |
24 | コーディング基礎 ループと繰り返し処理 |
24. 無限ループを避けるための条件設計ができる | ループ条件と終了条件を設計段階で明確化し、変数の変化を追跡して無限ループを防ぐ。 | ループが期待どおりに終了し、例外やメモリリークを防止できる。 | |
25 | コーディング基礎 ループと繰り返し処理 |
25. ネストしたループ構造を整理できる | 入れ子構造のループを整理し、処理量や可読性に配慮した設計を行う。 | ネストを最小限に保ち、パフォーマンスと可読性を両立したループ構造を実装できる。 | |
26 | コーディング基礎 ループと繰り返し処理 |
26. カウンタ変数を意図的に設計できる | ループカウンタの初期値・増減条件・範囲を意図的に制御し、明確な命名で可読性を保つ。 | 複数ループやネストでも誤カウントせずに、正しいループ制御ができる。 | |
27 | コーディング基礎 ループと繰り返し処理 |
27. 集計やフィルタ処理をループで記述できる | 繰り返し処理の中で条件分岐と加算・除外などを組み合わせ、合計・件数・フィルタリングを実装できる。 | for/foreach文を活用して、リストの条件集計・検索・抽出が正しく行える。 | |
28 | コーディング基礎 ループと繰り返し処理 |
28. 処理時間や回数の意識を持ってループを設計できる | ループ構造の時間計算量(O(n), O(n²)など)を理解し、データ量に応じた処理回数の見積もりを行う。不要なネストや重複処理を排除し、パフォーマンスを意識した設計・検証を行う。 | 大規模データ処理でもループ構造を最適化し、処理速度や負荷を考慮して改善提案・修正ができる。 | |
29 | コーディング基礎 ループと繰り返し処理 |
29. 配列操作とループ処理を組み合わせられる | for, foreach, map, filter などのループ構文を配列処理と組み合わせ、データ変換・集計・フィルタリングなどを効率的に実装できる(PHP, JavaScript)。 | 配列要素をループで自在に処理し、条件分岐や加工を含む柔軟なデータ操作を実装できる。 | |
30 | コーディング基礎 ループと繰り返し処理 |
30. ループの書き方を簡潔にするテクニックを知っている | 高階関数(map, reduce, foreachなど)やスプレッド構文を活用して、可読性と意図を明確にしたシンプルなループ記述を行う。 | ネストの深いループや冗長な処理を整理し、1行で意図を伝えるような簡潔なコードを書ける。 | |
31 | コーディング基礎 関数とスコープ 配列 |
31. 関数の定義と呼び出しを使い分けられる | 関数宣言と無名関数・アロー関数の違いを理解し、スコープや再利用性に応じて適切に使い分ける(PHP, JavaScript)。 | 処理を関数として定義・呼び出しし、役割ごとに整理された明快な構造を作れる。 | |
32 | コーディング基礎 関数とスコープ 配列 |
32. 引数・戻り値のある関数を書ける | パラメータの受け渡しと戻り値の設計を理解し、副作用を最小限に抑えた純粋関数を書く練習を行う。 | 明確な入力と出力を持つ関数を設計でき、データフローを意識したコーディングができる。 | |
33 | コーディング基礎 関数とスコープ 配列 |
33. 関数に適切な名前をつけられる | 動詞+目的語の命名(例:calculateTotal(), getUserList())を原則に、処理の意図がひと目で分かる命名規則を適用できる。 | 関数名から役割を判断できるコードを書け、命名に一貫性がある。 | |
34 | コーディング基礎 関数とスコープ 配列 |
34. ローカル変数とグローバル変数の違いを理解できる | スコープ(関数スコープ、ブロックスコープ、グローバルスコープ)の仕組みを理解し、変数の影響範囲を制御できる(JavaScript: let/const, PHP: global)。 | 変数の衝突や副作用を避けるスコープ設計ができ、予期せぬ挙動を防げる。 | |
35 | コーディング基礎 関数とスコープ 配列 |
35. 再帰関数を使った処理を書ける | 再帰の概念(終了条件、自己呼び出しの構造)を理解し、階層データや探索処理に応用する。 | ツリー構造やネストされたデータを再帰的に処理し、ループでは難しい処理を簡潔に記述できる。 | |
36 | コーディング基礎 関数とスコープ 配列 |
36. 可変引数やデフォルト引数を扱える | 引数のデフォルト値指定、スプレッド構文(JavaScript)・...$args(PHP)などの可変引数を理解して、柔軟な関数定義を行う。 | 引数の数が変化した場合に対応した関数を作り、共通化や再利用性を高められる。 | |
37 | コーディング基礎 関数とスコープ 配列 |
37. 処理を関数単位で整理し、見通しをよくできる | 大きな処理を分割し、1関数1責務で構成する設計を実践。モジュール的にまとめて保守性を高める。 | 長大な関数やスクリプトを整理し、関数単位でテスト・改善できる構造を実装できる。 | |
38 | コーディング基礎 関数とスコープ 配列 |
38. 再利用性の高い汎用関数を作れる | 関数を抽象化し、異なる場面でも利用できるように設計できる。重複コードを削減する方法やパラメータ化の考え方を理解している(例:PHP・JavaScript)。 | 異なる処理で使い回せる関数を設計し、共通化できている。コードレビューで重複箇所を削減できる。 | |
39 | コーディング基礎 関数とスコープ 配列 |
39. クロージャ(無名関数)を理解して使える | 無名関数やラムダ式の構文を理解し、スコープ内で変数を閉じ込める(クロージャ)仕組みを説明できる。PHPやJavaScriptの実装方法を把握している。 | 一時的な処理やコールバック関数をクロージャで実装できる。イベント処理・配列操作などで適切に利用できる。 | |
40 | コーディング基礎 配列・コレクションの扱い |
40. 関数の副作用を避ける設計を理解する | 関数の副作用(外部変数の変更・出力・I/O操作など)を理解し、純粋関数と副作用関数を区別できる。 | 関数が意図せず外部状態を変更しないように実装できる。関数のテスト容易性を考慮した設計ができる。 | |
41 | コーディング基礎 配列・コレクションの扱い |
41. 配列の定義・要素追加・削除ができる | PHP・JavaScriptでの配列作成、要素の追加・削除(push, splice, unsetなど)を理解している。 | 配列の初期化から更新までを正しく扱い、動的に配列の内容を操作できる。 | |
42 | コーディング基礎 配列・コレクションの扱い |
42. 多次元配列を構築・操作できる | ネストされた配列の構造を理解し、アクセス方法(連想配列・数値配列)を把握している。 | 多次元配列の値を安全に取得・変更でき、ループ処理で正確に操作できる。 | |
43 | コーディング基礎 配列・コレクションの扱い |
43. 配列のループ処理を柔軟に設計できる | for, foreach, mapなど複数の反復方法を理解し、用途に応じて選択できる。 | 最適なループ構文を選び、可読性とパフォーマンスを両立した処理を実装できる。 | |
44 | コーディング基礎 配列・コレクションの扱い |
44. map/filter/reduceの概念を使える | 高階関数(map, filter, reduce)の動作原理を理解し、副作用を持たないデータ変換の流れを説明できる(JavaScript・Pythonなど)。 | 配列データの加工・集約をループを書かずに高階関数で記述できる。 | |
45 | コーディング基礎 配列・コレクションの扱い |
45. 配列をソートする処理が書ける | ソートアルゴリズム(昇順・降順)や組み込み関数(sort, usortなど)の使い方を理解している。 | 条件付きソート・多次元配列のキー指定ソートを実装できる。 | |
46 | コーディング基礎 配列・コレクションの扱い |
46. 配列の検索・存在確認を実装できる | in_array, array_search, isset, find などの検索メソッドを理解している。 | 配列内の特定値を検索し、存在チェックや条件分岐で適切に扱える。 | |
47 | コーディング基礎 配列・コレクションの扱い |
47. 配列のサイズ取得や範囲の操作ができる | count, slice, splice などの操作を理解し、配列長や部分抽出の仕組みを説明できる。 | 配列サイズや範囲を自在に扱い、データを加工・分割できる。 | |
48 | コーディング基礎 配列・コレクションの扱い |
48. キーと値を区別して扱える(連想配列) | 連想配列(key-value構造)を理解し、キー重複や順序の扱いを把握している。 | キー指定で値を管理・更新でき、構造的に整理されたデータ操作ができる。 | |
49 | コーディング基礎 配列・コレクションの扱い |
49. 配列のコピーと参照の違いを理解する | 参照渡しと値渡しの違い(例: PHP, JavaScript)を実験して理解する。 | 参照による副作用を避け、安全にコピーを作成できる。 | |
50 | コーディング基礎 配列・コレクションの扱い |
50. 配列のパフォーマンス影響を考慮できる | メモリ消費、再構築コスト、検索・挿入のコストを理解する。 | 大量データ処理時に、配列・コレクション・イテレータの使い分けを判断できる。 | |
51 | コーディング基礎 エラーハンドリング基礎 |
51. エラーの種類(文法/実行時)を区別できる | 文法エラーと実行時エラーの違いを理解し、それぞれの発生タイミングと原因を把握する。構文解析段階のエラー(SyntaxError)と実行中に発生する例外(RuntimeExceptionなど)の例を言語ごとに確認する。 | エラー発生時にその種類を判断し、修正方針を立てられる。構文エラー・型エラー・例外などをログや出力から適切に分類できる。 | |
52 | コーディング基礎 エラーハンドリング基礎 |
52. try/catchで例外処理が書ける | 例外処理構文の基本(try / catch / finally)を理解し、エラー発生時にプログラムを安全に継続または停止させる方法を習得する。 例:PHPの try { ... } catch (Exception $e) { ... }、JavaScriptの try { ... } catch (e) { ... }。 | 例外発生時にプログラムを適切に制御し、ユーザーやログに意味のある情報を返せる。 エラーハンドリングが無い箇所を指摘し、補完できる。 | |
53 | コーディング基礎 エラーハンドリング基礎 |
53. finallyブロックの役割を理解できる | try/catchの後にfinallyが実行される流れを理解する。 例外の有無にかかわらずリソース解放や後処理を確実に行う役割を学ぶ。 | データベース接続やファイル操作などで、finallyを用いた安全なリソース開放処理が書ける。 | |
54 | コーディング基礎 エラーハンドリング基礎 |
54. エラーのメッセージを出力・記録できる | 例外発生時に、適切なエラーメッセージをログやユーザー画面へ出力する仕組みを理解する。 PHPの error_log()、Laravelの Log::error()、JSの console.error() などを活用。 | 発生したエラーを無視せず、状況を把握できるメッセージやログとして残せる。 | |
55 | コーディング基礎 エラーハンドリング基礎 |
55. 自作の例外クラスを使えるようになる | 標準例外以外に独自の例外クラスを定義し、業務ロジックごとに使い分ける方法を理解する。 例:class ValidationException extends Exception {}。 | 例外の種類を明確に分類し、catchブロックでのハンドリングを柔軟に設計できる。 | |
56 | コーディング基礎 エラーハンドリング基礎 |
56. ユーザーにやさしいエラー表示を考慮できる | 技術的エラー内容をそのまま表示せず、ユーザーが理解できるメッセージに変換する設計を学ぶ。 開発用(DEBUG)と本番用(PROD)のエラーレベルを区別する考え方を理解する。 | ユーザーにはシンプルで安全なメッセージを表示し、開発者向けの詳細ログは別に残せる。 | |
57 | コーディング基礎 エラーハンドリング基礎 |
57. バリデーションエラーと例外処理を分けて考えられる | ユーザー入力チェック(Validation)とシステム異常(Exception)を区別して扱う。 Laravelのバリデーション例、またはJSフォーム検証などを通して理解する。 | ユーザー入力エラーは入力フォームに返し、システム障害は例外処理で対応できる。 | |
58 | コーディング基礎 エラーハンドリング基礎 |
58. 発生源を特定するためのログ設計ができる | 例外発生箇所・ファイル名・行番号・スタックトレースなどをログ出力に含める設計を理解する。 | ログをもとにエラー原因を迅速に追跡できる。開発・運用チームで共通のフォーマットを運用できる。 | |
59 | コーディング基礎 エラーハンドリング基礎 |
59. エラー処理を忘れずに書く習慣がある | すべての外部呼び出し(API、DB、ファイル操作)には例外の可能性があると前提に設計する姿勢を身につける。 | try/catch、returnチェック、エラーハンドラなどを常に意識して書くことが自然になっている。 | |
60 | コーディング基礎 エラーハンドリング基礎 |
60. 例外設計に一貫性を持たせられる | アプリ全体での例外方針を統一する(例:共通ExceptionHandlerクラス)。 どの層でcatchし、どの層でthrowするかの責任分担を明確化する。 | システム全体で例外処理の流れが統一され、例外発生時の挙動が予測可能になっている。 | |
61 | コーディング基礎 コーディング規約とスタイル |
61. インデント・改行ルールを守れる | コーディングスタイルガイド(PSR-12, Airbnb JS Styleなど)を理解し、インデント幅・改行位置・括弧配置を統一できる。 | コード全体のインデントと改行が統一され、他者が見ても構造が明確に読み取れる。 | |
62 | コーディング基礎 コーディング規約とスタイル |
62. 命名規則(キャメル・スネーク)を使い分けられる | 命名規則(camelCase, PascalCase, snake_case, kebab-case)の使い分けルールを理解し、変数・関数・クラス・定数などで適切に使い分ける。 | 命名スタイルに一貫性があり、チーム規約に沿った形で命名できている。 | |
63 | コーディング基礎 コーディング規約とスタイル |
63. コメントで意図を明示できる | コードの意図・背景・注意点などを簡潔に説明できるコメント記述スキルを持ち、DocBlockやJSDoc形式を理解する。 | コードを読んだ他者が、コメントで意図を正確に理解できる。コメントが冗長でなく、補助的に機能している。 | |
64 | コーディング基礎 コーディング規約とスタイル |
64. 不要なコメントを削除できる | 自明なコードへのコメントや、古い情報・誤ったコメントを判断して削除できる。 | コメントが最新の意図を反映しており、読みやすいコードを保てている。 | |
65 | コーディング基礎 コーディング規約とスタイル |
65. 空白や改行に意味を持たせられる | コードの論理ブロック・処理単位ごとに空行を挿入し、可読性を高めるレイアウト設計を理解する。 | 空白・改行により視覚的な階層が明確で、意図が伝わるコードが書けている。 | |
66 | コーディング基礎 コーディング規約とスタイル |
66. 見やすい長さで関数やファイルを分割できる | 関数・メソッド・ファイルの責務を分離するリファクタリング原則(SRP)を理解する。 | 一つの関数・ファイルに過剰な処理を詰めず、見通しのよい構成にできている。 | |
67 | コーディング基礎 コーディング規約とスタイル |
67. 静的解析ツール(PHPStan, ESLintなど)を使える | 言語ごとの静的解析ツールの導入・設定・エラー解釈を理解し、開発プロセスに組み込める。 | コード品質チェックを自動化し、静的解析エラーを自ら修正できる。 | |
68 | コーディング基礎 コーディング規約とスタイル |
68. コードの整形(formatter)を適用できる | Prettier, phpcs, Black などの整形ツールの設定を理解し、プロジェクトに導入・実行できる。 | コードが自動整形され、チーム内で整形ルールの不一致が発生しない。 | |
69 | コーディング基礎 コーディング規約とスタイル |
69. チームで統一されたスタイルを守れる | コーディング規約(チーム標準やLintルール)を理解し、レビュー指摘を受けて修正できる。 | チーム全体で統一されたスタイルでコードが書かれており、可読性・保守性が高い。 | |
70 | コーディング基礎 コーディング規約とスタイル |
70. 自動整形ツール(Prettier, phpcsなど)を使える | 自動整形ツールをCI/CDやIDEに組み込み、自動でスタイル統一を行える。 | 保存・コミット時に自動で整形され、スタイル崩れのないコードが維持できる。 | |
71 | コーディング基礎 入出力処理の基礎 |
71. 標準出力(print, echoなど)を使える | 標準出力の仕組み(コンソールやブラウザ出力)を理解し、言語固有の出力命令(例:echo / print / console.log)を適切に使い分けられる。 | デバッグ・ログ・結果表示など、目的に応じて適切な出力方法を選び、冗長な出力を避けて整理された表示ができる。 | |
72 | コーディング基礎 入出力処理の基礎 |
72. 標準入力を受け取り処理できる | コマンドラインやフォーム入力からのデータを受け取り、変数に代入して処理できる。 例:fgets(STDIN)(PHP)、input()(Python)、prompt()(JS)など。 | 入力値を受け取り、適切に検証・変換し、プログラムの処理に活用できる。 | |
73 | コーディング基礎 入出力処理の基礎 |
73. ファイルの読み書き(open/read/write)を行える | ファイル操作の基本(オープン、読み込み、書き込み、クローズ)とエラーハンドリングを理解する。 PHPのfopen(), fwrite(), fclose()やPythonのwith open()構文など。 | 設定ファイルやログなど、外部ファイルの読み書きを安全に実装できる。 | |
74 | コーディング基礎 入出力処理の基礎 |
74. CSVファイルの読み書きができる | デリミタ区切りデータ(,や\t)の扱いを理解し、ループ処理で行を解析・生成できる。 PHPのfgetcsv(), Pythonのcsvモジュールなどを使用。 | CSVデータを安全に読み込み・保存し、データベースや配列に変換できる。 | |
75 | コーディング基礎 入出力処理の基礎 |
75. JSON形式のデータ入出力が扱える | JSON構造の基本を理解し、言語標準関数でエンコード・デコードできる。 例:json_encode()/json_decode()(PHP)、jsonモジュール(Python)、JSON.parse()(JS) | API通信や設定ファイルでJSONデータを正しく扱い、整形・検証できる。 | |
76 | コーディング基礎 入出力処理の基礎 |
76. 入力値のバリデーションを意識できる | サニタイズ・エスケープ・型検証など入力安全性の基本を理解する。 例:Laravelバリデーション、Pythonのpydanticなど。 | 入力エラーを事前に検出・防止し、セキュリティリスクを回避できる。 | |
77 | コーディング基礎 入出力処理の基礎 |
77. エラー時のファイル処理を制御できる | ファイル入出力例外の想定(存在しないファイル、書き込み権限なし等)を理解し、try-catchや条件分岐で制御する。 | エラー発生時にも安全にリカバリ処理を行い、データ破損を防げる。 | |
78 | コーディング基礎 入出力処理の基礎 |
78. 改行やエンコーディングを意識して扱える | LF/CRLFの違いやUTF-8/SJISなど文字コード差異を理解し、変換関数を使い分ける。 | 異なる環境間で文字化けを防ぎ、データ互換性を保てる。 | |
79 | コーディング基礎 入出力処理の基礎 |
79. ファイルの存在確認やパス操作ができる | ファイル・ディレクトリ操作関数(file_exists, is_dir, pathinfo, basenameなど)を理解する。 | 動的にパスを構築し、安全にファイル確認・削除・作成が行える。 | |
80 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
80. 入出力処理に例外対応を組み込める | try-catch-finally構文によるエラー捕捉を理解し、ログ記録や復旧処理を組み込む。 | 入出力例外が発生してもプログラムを停止させず、安全に処理を継続できる。 | |
81 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
81. コード補完機能を使いこなせる | LSP(Language Server Protocol)の仕組み、型注釈・DocBlock が補完精度に効くことを理解。 インポート自動補完、候補の絞り込み、スニペット補完の設定。 | 変数名・関数・型が迷いなく補完され、入力ミスが減り実装速度が上がる。 | |
82 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
82. デバッグブレークポイントを設定できる | 条件付きBP/ヒットカウント/ログポイントの使い分け。 例:PHP(Xdebug)・Node.js(VSCode)・Python(debugpy) での接続設定。 | 必要箇所で処理を停止させ、再現性の低いバグでも原因を局所化できる。 | |
83 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
83. ステップ実行で処理の流れを追える | Step Over / Into / Out、コールスタックと現在フレームの概念、式評価ウィンドウの使い方。 | 実行順序・分岐の実際を追跡し、設計どおり動いているか確証を持って判断できる。 | |
84 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
84. ウォッチや変数確認機能を使える | スコープ別(ローカル/グローバル/クロージャ)に値を観察、ネスト構造・null/undefined を安全に確認。 | 値の変遷を時系列で把握し、不整合(未初期化・型違い)を素早く発見できる。 | |
85 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
85. ショートカットやマルチカーソルなど効率操作を使える | 代表ショートカット(行移動・複製・整形・シンボルジャンプ・全置換・矩形選択・マルチカーソル)。 | テンポ良く編集でき、単純作業の時間を大幅短縮。整形・配置のブレも減る。 | |
86 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
86. 拡張機能やプラグインを導入して環境を最適化できる | Lint/Formatter/Git/Docker/Dev Containers 等の選定、プロジェクト設定(workspace)と個人設定(user)の住み分け。 | 必要最小で効果の高い拡張を揃え、誰が開いても同じ体験を再現できる。 | |
87 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
87. Git連携や差分表示を活用できる | IDEの差分ビュー、ステージング(部分ステージ)、ブレーム、履歴、競合解消ツール。 | 意図どおりの最小差分でコミットし、原因特定(いつ・誰が・なぜ)を素早く行える。 | |
88 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
88. IDEからターミナルやLintを実行できる | タスクランナー/npm scripts/Composer scripts/Make、ESLint・PHPStan・pytest などの統合。保存時 lint/format、pre-commit の導入。 | エディタ内からテスト・静的解析・ビルドを回し、失敗を即時に修正できる。 | |
89 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
89. エラー箇所へのジャンプや補足情報を確認できる | 問題パネルの活用、スタックトレースの file:line クリック、ソースマップ(フロント)の意味。 | 失敗地点へ瞬時に移動し、必要なログやヒントを元に MTTR を下げられる。 | |
90 | コーディング基礎 IDEと補完・デバッグ機能の活用 |
90. コードスニペット機能を活用して定型処理を自動化できる | ユーザースニペット/ライブテンプレートの作成、プレースホルダ・タブストップ・変数(日時・ファイル名)を使う。チーム共有(VS Code: 拡張/リポジトリで管理、JetBrains: Live Templates 共有)。 | 例外ラッパ・ログ雛形・API クライアント定型などを数キーで展開し、品質と速度を両立できる。 | |
91 | コーディング基礎 プログラム構造の原理理解 |
91. 構造化プログラミングの基本3構造を説明できる | 順次・分岐・反復の3つの基本構造を理解し、どのようにプログラムを組み立てるかを説明できる。 if / for / while など制御構文の役割と使い分けを理解している。 | 複雑な処理を構造化して整理でき、スパゲッティコードを避けられる。 他者が読んでも処理の流れを容易に追えるコードを書ける。 | |
92 | コーディング基礎 プログラム構造の原理理解 |
92. 処理の流れをフローチャートで表現できる | 条件分岐、繰り返し、終了条件などを図で表現する方法を理解する。 Lucidchart、draw.ioなどのツールを用いてフローチャートを描ける。 | コーディング前にフローチャートで処理を整理し、設計段階でロジックの誤りを発見できる。 | |
93 | コーディング基礎 プログラム構造の原理理解 |
93. 手続き型と宣言型の違いを理解する | 「何をするか(宣言型)」と「どうするか(手続き型)」の違いを理解する。 例:SQL(宣言型)とPython/PHP(手続き型)の対比を説明できる。 | 適切な場面で宣言的記述(例:LINQ, SQL, map/filterなど)を選択できる。 コードの可読性と効率を考慮した記述スタイルを取れる。 | |
94 | コーディング基礎 プログラム構造の原理理解 |
94. 状態と副作用の概念を理解している | 関数の副作用(外部変数の変更、I/O処理など)を定義・認識できる。 状態管理の重要性とリスク(予期せぬ動作、並行性の問題)を理解する。 | 状態を限定・隔離し、副作用の少ない関数や処理構造を設計できる。 | |
95 | コーディング基礎 プログラム構造の原理理解 |
95. ソースコードを再利用・拡張できる構造にできる | DRY(Don’t Repeat Yourself)原則を理解し、関数化・モジュール化を行う。 ライブラリ化・クラス設計・共通関数の管理方法を習得している。 | 新しい機能追加時も既存コードを再利用でき、修正コストを最小化できる。 | |
96 | コーディング基礎 プログラム構造の原理理解 |
96. 入力→処理→出力という設計視点をもてる | プログラムを「入力 → 処理 → 出力」の3段階で設計する基本思想を理解。 各段階での責務分離とインタフェース(I/O形式)を明確にする。 | データの流れを整理し、入出力設計を意識した堅牢なプログラムを構築できる。 | |
97 | コーディング基礎 プログラム構造の原理理解 |
97. 高凝集・低結合の考え方を理解できる | モジュール設計における「凝集度」「結合度」の定義と改善方法を理解。 各機能を1つの責任に限定し、他モジュールとの依存を減らす設計を学ぶ。 | 保守しやすく変更に強いコード構造を設計できる。 | |
98 | コーディング基礎 プログラム構造の原理理解 |
98. 再帰とループの使い分けができる | 再帰処理の構造・終了条件を理解し、ループとの比較を説明できる。 再帰関数(例:Python, PHP, JavaScript)を実装して挙動を確認する。 | 処理内容に応じて再帰またはループを選択でき、スタックオーバーフローを避けた設計ができる。 | |
99 | コーディング基礎 プログラム構造の原理理解 |
99. 分岐・反復・関数の組み立て方に一貫性がある | if文・for文・関数呼び出しなどの書式・配置ルールを統一できる。 チーム内のコーディング規約を遵守する。 | チームで書いたコードでも構造や流れが統一され、レビュー・保守が容易。 | |
100 | コーディング基礎 プログラム構造の原理理解 |
100. 他の言語でも通用する構造的思考を持っている | 言語間の構文差異を超えて、アルゴリズム・データ構造・設計原則を理解する。 JavaScript, Python, PHPなどの主要言語で基本構文の共通性を説明できる。 | 新しい言語でも、基礎的な構造理解とロジック設計力を応用して実装できる。 |