3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プログラミングを行う上で意識していること4選

Last updated at Posted at 2024-08-07

本記事について

プログラミングを学び始めたばかりの頃、どのように学習すれば良いか悩む方が多いと思います。私自身も最初は同じように悩み、遠回りしてしまったと感じています。

そんな私が、プログラミング経験を積んで年数を重ねた今だからこそ実感する、プログラミングを学ぶ際に意識すべき4つのポイントを紹介します。

今回紹介する内容が全て正しいとは限りません。
全て鵜呑みにせず、参考程度に留めてください。

意識するポイント4選

  1. ざっくりと全体像を掴む
  2. コメントを活用する
  3. デバッグでコードの流れを把握する
  4. 自身で作りたいものを考えてコードを書いてみる

1. 全体像を掴む

コード細かく全てを理解せずに、ざっくり把握することを意識しています。
ざっくり把握するために、まず大枠のstruct(構造体)やclass(クラス)の名前から理解していきます。

下記のサンプルコードを見ながら、実際にイメージしてみましょう。
これはどんなデータまとまりでしょうか?

struct UserSetting {
    var firstName: String
    var lastName: String
    var age: Int
    
    func fullName() -> String {
        return "\(firstName) \(lastName)"
    }
}
考え方(クリックで詳細を見る)
  • structはUserSettingという名前になっている
  • UserSettingは、ユーザの設定するためのデータのまとまりだろうと予想する

2. コメントを活用する

コードにコメントを追加し、自分で理解しやすいように説明を加えます。
そうすると、コードが増えていっても、整理しやすくなります。(ある程度理解できたら、コメントは消します)

// 本に関するデータのまとまり(構造体)
struct Book {
    var title: String
    var author: String
    var pages: Int
    
    // 本の詳細を返す関数
    func description() -> String {
        return "\(title) by \(author), \(pages) pages"
    }
}

3. デバッグでコードの流れを把握する

print()などを使って実際にコードがどのように動いているかを確認します。
コードを見るだけではなく、実際にコードに触ることが大事です。

下記のサンプルコードをコピペして、実際にデバッグしてみましょう。

struct UserSetting {
    var firstName: String
    var lastName: String
    var age: Int
    
    func fullName() -> String {
        return "\(firstName) \(lastName)"
    }
}
やり方(クリックで詳細を見る)
// Person構造体のインスタンスを生成
var person1 = Person(firstName: "John", lastName: "Doe", age: 30)
var person2 = Person(firstName: "Jane", lastName: "Smith", age: 25)

print(person1.firstName) // John
print(person2.fullName()) // Jane Smith

4. 自身で作りたいものを考えてコードを書いてみる

コードを考える力を身につけるには、自分で考えてコードを書くのが一番です。例えば、こんな機能を作りたいと決めて、どのように作るか1から考えます。

作りたいものを具体的にイメージする

まずは、自分が作りたいものを具体的にイメージしてみましょう。例えば、以下のようなものが考えられます。

  • 自分の好きな映画や本を管理するアプリ
  • シンプルなTo-Doリスト
  • 日記帳アプリ
  • 簡単なゲーム(例えば、じゃんけんや数当てゲーム)

必要な機能をリストアップする

作りたいものが決まったら、そのために必要な機能をリストアップしてみましょう。例えば、To-Doリストを作る場合、以下のような機能が考えられます。

  • タスクの追加
  • タスクの一覧表示
  • タスクの削除
  • タスクの完了状態の変更

機能をリストアップすることで、どの部分から取り組むべきかが見えてきます。

(重要)小さな部分から取り組む

大きな機能を一気に完成させようとすると、途中で挫折してしまうことがあります。
そこで、まずは小さな部分から取り組むのがオススメです。To-Doリストの場合、まずは「タスクの追加」機能だけを実装してみましょう。

例えば、以下のようなSwiftコードでタスクを追加する部分を実装できます。

struct ContentView: View {
    @State private var tasks: [String] = []
    @State private var newTask: String = ""

    var body: some View {
        VStack {
            HStack {
                TextField("新しいタスクを入力", text: $newTask)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                Button(action: {
                    addTask(task: newTask)
                    newTask = ""
                }) {
                    Text("追加")
                }
            }.padding()

            List {
                ForEach(tasks, id: \.self) { task in
                    Text(task)
                }
            }
        }
    }

    func addTask(task: String) {
        tasks.append(task)
    }
}

このように、まずはタスクを追加する機能だけを実装してみます。これがうまく動くようになったら、次の機能に取り組みましょう。

継続的に改善する

プログラミングは一度に完璧なものを作る必要はありません。最初はシンプルなものを作り、少しずつ機能を追加したり、改善を重ねていくことが大切です。以下のようにタスクの削除機能を追加することもできます。

struct ContentView: View {
    @State private var tasks: [String] = []
    @State private var newTask: String = ""

    var body: some View {
        VStack {
            HStack {
                TextField("新しいタスクを入力", text: $newTask)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                Button(action: {
                    addTask(task: newTask)
                    newTask = ""
                }) {
                    Text("追加")
                }
            }.padding()

            List {
                ForEach(tasks, id: \.self) { task in
                    Text(task)
                }
                .onDelete(perform: deleteTask) // 削除機能を追加
            }
        }
    }

    func addTask(task: String) {
        tasks.append(task)
    }

    func deleteTask(at offsets: IndexSet) { // 削除機能を追加
        tasks.remove(atOffsets: offsets)
    }
}

自分のペースで楽しむ

最後に、自分のペースで楽しむことが最も重要です。プログラミングは楽しい反面、難しいこともあります。焦らず、一歩一歩進めていきましょう。自分が作りたいものが完成したときの達成感は、他に代えがたいものがあります。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?