We may earn an affiliate commission when you visit our partners.
Benjamin Melki

Learn how to organize the code of any software project so you will not get lost in your own code. Learn readable code good practices so you can produce clean, easy to understand code.

You learned a programming language syntax and want to build a great software project and are staring at your screen. Where and how do you start?

  • How to establish your projects' features?
  • How to turn them into code?
  • How to organize the flow of your program?
  • How to create your folders and files structure?
  • How to write clean code you can be proud about?
Read more

Learn how to organize the code of any software project so you will not get lost in your own code. Learn readable code good practices so you can produce clean, easy to understand code.

You learned a programming language syntax and want to build a great software project and are staring at your screen. Where and how do you start?

  • How to establish your projects' features?
  • How to turn them into code?
  • How to organize the flow of your program?
  • How to create your folders and files structure?
  • How to write clean code you can be proud about?

This course is not like usual beginners course. I will not rehearse what are variables, loops, classes, and functions. Instead, I will teach you a systematic method to make use of all these code structures to organize the code of any software project. This course might be your first step into the 'craft' aspect of programming.

Course overviewWe will start at the beginning and explore a bit of programming history. Back in the late 70s, we will see the early attempts at solving the code organization problem and how it has evolved to today's paradigm. This is a unique opportunity for you to dig into programming history and learn fundamental and historical code design concerns: code coupling and cohesion.I will then teach you the project analysis phase, where you will learn to establish the requirements of your project and develop them into use cases scenarios. At this point, you will be equipped with a very solid foundation to start coding.Next, you will start the code design phase, where, guided by the analysis phase outcome, you will turn use cases into code. At each step of the process, you will be involved in a practice activity where you will be able to reproduce what I'm teaching with your own project.Finally, I will teach you code readability good practices to help you produce easy to understand code. Quizzes will make sure the notions learned are well solidified into your brain.

Course benefitsAt the end of the course, you will have a solid method to tackle any software project. You will be equipped with a systematic way to organize the flow of your code. You will be able to produce clean and readable code structures.The concepts I teach in this course are so essentials, that you will be able to apply them immediately to ALL your software projects.

Target studentThe course is suitable for beginner coders and independent developers. You should have a basic knowledge of any programming language syntax. You should know what are variables, arrays, loops, functions, classes.... but you are struggling to organize them to build a full software.This course is language agnostic: teaching is applicable to any programming language, preferably object oriented languages. All you need is you own programming language and environment setup to follow the project practice.

Enroll now

What's inside

Learning objectives

  • Apply a systematic approach to properly start any mobile, web or desktop software project
  • Organize the flow of any program
  • Organize projects' folders' structure, files names, and code
  • Code high quality, readable and maintainable code
  • Properly name variables and write good code comments
  • Simplify their conditional structures
  • Create good functions and classes

Syllabus

Introduction
Programming language syntax: the tip of the iceberg
Code design and construction: meta programming skills
How do you know when you are writing bad code ?
Read more
QUESTION ACTIVITY: Why and How did you start coding ? Let's share our experience
Be able to know to what was there before object orientation, and why this paradigm occurred.
Intro: Back to the 70's coding practices
Structured design: where most code design concepts solidified
Coupling: modules interdependence
Code Cohesion: module internal relatedness strength
The next evolutionary step: the object orientation paradigm
Conclusion: what you have learned in this section

This quiz will strengthen the notions brought up by this coding history chapter.
These notions are still relevant today and will be used throughout this course.

Be able to have a clean plan before starting to code. This includes the redaction of projects requirements, mockups, uses cases and scenarios.
Intro: start software projects on the right track
PROJECT ACTIVITY 1: Decide what you are going to build
Step 1: Project functional requirements
PROJECT ACTIVITY 2: Make a list of your project's requirements
Mockup your screens: get a better idea of required coding features
PROJECT ACTIVITY 3: Mockup the screens of your project
Use cases and scenarios: define the flow of your program
PROJECT ACTIVITY 4: Create the use cases of your project
Conclusion: what you have learned
Be able to establish the project structure: name folders, files and how to dispatch code within.
Intro: don't get lost into your own code
In brief: the tools I will be using
In brief: Basic Python syntax
Naming explicitly your folders and files
PROJECT ACTIVITY 5: Create your folders and controllers files
The controller: the backbone of your coding flow
PROJECT ACTIVITY 6: Create the controllers' files
The controller: building a real controller
PROJECT ACTIVITY 7: Populate the controllers with success path steps as comments
The controller: other examples
Service providers: Model objects, services and utilities
PROJECT ACTIVITY 8: Identify your models and create the corresponding files
The view: the user interface
PROJECT ACTIVITY 9: Code the steps of your use cases
Be able to write readable code. Learn code construction best practices.
Intro: understand your own code
How to write good comments
How to properly name your variables
How to write easy to understand conditionals by....failing fast!!
When to use a while or for loop ?
Functions best practices... don't fear long functions
Classes best practices.... a class should have only one reason to change
Miscellaneous code construction advices.... don't use magic numbers

Strengthen the code construction notions that will help you write more readable code.

Conclusion
Course Cheat sheet: all the steps as a single document
Where to go next

Save this course

Save Code organization and readability for the self-taught coder to your list so you can find it easily later:
Save

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 Code organization and readability for the self-taught coder with these activities:
Review Object-Oriented Programming (OOP) Concepts
Solidify your understanding of OOP principles, as the course emphasizes object-oriented languages and design patterns.
Show steps
  • Review the core concepts of OOP.
  • Practice implementing classes and objects.
  • Study examples of inheritance and polymorphism.
Create a Code Style Checklist
Reinforce your understanding of code style by creating a checklist to use when reviewing your own code.
Show steps
  • Review the course materials on code style.
  • Create a checklist of key code style elements.
  • Use the checklist when reviewing your code.
Read 'Clean Code: A Handbook of Agile Software Craftsmanship'
Learn practical techniques for writing clean, readable, and maintainable code, directly complementing the course's objectives.
View CLEAN CODE on Amazon
Show steps
  • Read the book cover to cover.
  • Take notes on key principles and techniques.
  • Apply the principles to your own code.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice Code Refactoring Exercises
Sharpen your refactoring skills by completing code refactoring exercises on platforms like LeetCode or HackerRank.
Show steps
  • Find code refactoring exercises online.
  • Complete the exercises, focusing on readability.
  • Compare your solutions with others.
Create a Code Style Guide
Solidify your understanding of code readability by creating a style guide for your preferred programming language.
Show steps
  • Research existing style guides.
  • Define your own coding conventions.
  • Document your style guide clearly.
Refactor an Existing Project
Apply the course's principles by refactoring an existing codebase to improve its organization and readability.
Show steps
  • Choose a project to refactor.
  • Identify areas for improvement.
  • Apply refactoring techniques learned in the course.
  • Document the changes you made.
Read 'The Pragmatic Programmer'
Gain a broader perspective on software development best practices, including code organization and readability.
Show steps
  • Read the book and highlight key takeaways.
  • Discuss the concepts with other developers.
  • Apply the principles to your projects.

Career center

Learners who complete Code organization and readability for the self-taught coder will develop knowledge and skills that may be useful to these careers:

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 Code organization and readability for the self-taught coder.
Classic guide to writing clean, maintainable, and efficient code. It covers principles, patterns, and practices for crafting code that is easy to understand and modify. It aligns perfectly with the course's emphasis on code readability and organization, providing practical advice applicable to any programming language. This book is commonly used by industry professionals.
Offers practical advice on a wide range of programming topics, including code organization, design patterns, and testing. It emphasizes the importance of thinking critically about code and adopting a pragmatic approach to software development. It valuable resource for self-taught coders looking to improve their skills and build robust software projects. This book is commonly used as a textbook at academic institutions.

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