inflearn logo
inflearn logo

7 Basic Principles of Software Development: How to Become a Great Programmer

Software quality is a habit! This course will teach you how to become the best programmer that companies want.

(5.0) 4 reviews

53 learners

Level Basic

Course period Unlimited

Algorithm
Algorithm
C
C
software-design
software-design
Software Test
Software Test
Coding Test
Coding Test
Algorithm
Algorithm
C
C
software-design
software-design
Software Test
Software Test
Coding Test
Coding Test

What you will gain after the course

  • How to become a great programmer

  • Principles for creating high-quality software

  • Basic qualities of programmers that companies want

A must-know for both job seekers and junior developers
7 Key Principles for Assessing Development Capabilities ✅

Software quality is a “habit.”

To become a great programmer, you need to have fundamental software development habits .

7 Principles of Software Development

  • Principle 1: Focus on the important requirements.
  • Principle 2: Find the best method.
  • Principle 3: Verify by design.
  • Rule 4: Read the code.
  • Rule 5: Write readable code.
  • Principle 6: Verify with unit tests.
  • Rule 7: Reduce system testing.

This lecture will cover these “basic software development habits.”
Every developer knows this, but not many put it into practice.
Explain the meaning of the principles through assignments . Ask questions like, "Why are these principles necessary?" and "How should they be implemented?"

Please be sure to watch the lecture introduction video📺.
I'll share the key takeaways based on my experience as a software architect.

This course explains the development capabilities required to develop high-quality software desired by companies, based on problems and educational materials designed to diagnose and train the SW development capabilities of overseas research institute personnel.

Many developers have the bad habit of relying on system tests. While system tests may be intuitive and clear, they are ineffective. Therefore, relying on system tests actually hinders the development of the fundamental skills required for software development.

To become a developer who can develop high-quality software that businesses need, you must understand and be able to implement the efforts that must be made before system testing .
I hope this course will help you take a step closer to becoming a software developer who sticks to the basics.


Learning content
Check it out.

This lecture explains the fundamental principles of software development by walking you through the process of developing a problem-solving Roman numeral calculator.

Section 1-1. Requirements Analysis

First, we analyze the requirements for the Roman numeral calculator problem. Specifying and analyzing requirements is the first step in software development. While it might be beneficial to understand and develop all requirements accurately, it's often a waste of time or a superficial understanding. Therefore, we must focus on the most important requirements.

Section 1-2. Design

This section describes the design phase activities for the Roman numeral calculator problem. The core of design is optimal design. Software has multiple solutions. Implementing and reviewing these solutions is inefficient. During the design phase, various solutions must be reviewed and the optimal method identified.

Section 1-3. Implementation

Implement the designed Roman numeral calculator. Read the code, imagine its operation, and implement it.

Section 1-4. Testing

We will verify the implemented Roman numeral calculator with tests. We will explain how to unit test it.

After taking this course, I recommend you try developing a Roman numeral calculator again. I also hope you become a software developer who adheres to the fundamental principles .

📢 Please check before taking the class.

  • Before attending this course, please be sure to solve the following problem : (Roman Numeral Calculator)
  • To take this course, you need programming skills sufficient to attempt Roman numeral calculator problems. Solving these problems and taking the course will allow you to experience and learn even more.
  • The course is taught in C, so familiarity with C is recommended. However, learning in other languages is also helpful.
  • The course uses Visual C++, but you are welcome to use other languages or IDEs.

Recommended for
these people

Who is this course right for?

  • People who want to become the best programmers

  • People who want to get better at software development

  • Anyone who wants to know how to develop high-quality software

  • Anyone who wants to know what kind of software developers companies want

Need to know before starting?

  • Programming skills to attempt Roman numeral calculator problems

Hello
This is drajin

358

Learners

30

Reviews

10

Answers

5.0

Rating

3

Courses

Software Architect & Educator

Current) CEO of Visible Software Research Institute (2016~Present)
  - Training and certification of Samsung Electronics Software Architects
  - Software architecture design and evaluation training / consulting

Adjunct Professor, College of Software, Chung-Ang University (2018~2022)
  - Basic Computer Programming - C/C++, JavaScript, Python

Samsung Electronics (2003~2016)

More

Reviews

All

4 reviews

5.0

4 reviews

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Reviews 120

    Average Rating 5.0

    5

    100% enrolled

    (25/07/23/Wed 20:28) Although it was a short lecture, I understood about tokens and the lecture content was good. Thank you for creating a good lecture.

    • drajin
      Instructor

      Thank you. I hope you become a good software engineer ^^

  • calculator님의 프로필 이미지
    calculator

    Reviews 129

    Average Rating 4.9

    Edited

    5

    100% enrolled

    I am still at a beginner stage where programming languages feel difficult to me, but I was drawn to take this course after seeing the course title and preview video. Even for someone like me who is still learning the basics, this was a course where I could learn and think about many aspects including the development process, problem-solving mindset, and developer capabilities. Thank you for creating such a good course.

    • drajin
      Instructor

      Work hard at it. If there's anything difficult, feel free to ask. These days, many people advocate for no-coding, but to create something better, I need to know a lot myself. It's like when building a house - a client who knows more can build a better house.

  • abcd123123님의 프로필 이미지
    abcd123123

    Reviews 329

    Average Rating 5.0

    5

    100% enrolled

    • wggmsng4169님의 프로필 이미지
      wggmsng4169

      Reviews 1

      Average Rating 5.0

      5

      100% enrolled

      Similar courses

      Explore other courses in the same field!

      $17.60