Code organization and readability for the self-taught coder
5.0 (3 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
682 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Code organization and readability for the self-taught coder to your Wishlist.

Add to Wishlist

Code organization and readability for the self-taught coder

Learn code design so you don't get lost into your own code again. Learn how to write clean, readable code.
5.0 (3 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
682 students enrolled
Created by Benjamin Melki
Last updated 8/2017
Price: $20
30-Day Money-Back Guarantee
  • 3.5 hours on-demand video
  • 14 Articles
  • 5 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • 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
View Curriculum
  • You should have basic knowledge of ANY programming language basic syntax: you should know what are variables, conditionals, loops, functions, classes...
  • You should have your own language and programming environment setup

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 overview
We 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 benefits
At 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 student
The 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. 

Who is the target audience?
  • beginners self-taught coders who want to learn how to write well organized and readable code
  • beginners self-taught Independent developers
Students Who Viewed This Course Also Viewed
Curriculum For This Course
46 Lectures
A bit of coding history. Object orientation, why ?
6 Lectures 39:54
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.

The coding history quiz
5 questions
Project Analysis: define the project requirements and outline
9 Lectures 31:01
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
Code design: write easy to find and well organized code
15 Lectures 01:11:03
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

Conclusion: what you have learned

PROJECT ACTIVITY 9: Code the steps of your use cases
Code construction: write readable code; best practices and mistakes to avoid
9 Lectures 53:30
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

Conclusion: what you have learned

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

The code construction quiz
10 questions
2 Lectures 01:33
Course Cheat sheet: all the steps as a single document

Where to go next
About the Instructor
Benjamin Melki
5.0 Average rating
3 Reviews
682 Students
1 Course
Independent developer and freelancer

I always had an entrepreneurial spirit and rapidly jumped into the internet craze. I co-founded my first company in early 2000 to run a general community web site.

I co-founded my second company, Kaeria, in 2004 which I ran as CEO until 2016.
I was involved in many web sites and software projects. At first, I delegated the coding work to offshore companies. This was very costly so I decided to learn to code to master the whole software creation process. I became full-time coders 10 years ago. I learned on my own, so I know exactly the pain and difficulties that self-taught coders are facing.

Today I'm still a full-time developer and freelancer and work within an independent structure.
I make a living out of my code, so my approach is very practical and down to earth.