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
English
Price: $20
30-Day Money-Back Guarantee
Includes:
  • 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
Requirements
  • 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
Description

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
03:30:57
+
A bit of coding history. Object orientation, why ?
6 Lectures 39:54
Intro: Back to the 70's coding practices
01:20

Structured design: where most code design concepts solidified
07:53

Coupling: modules interdependence
09:10

Code Cohesion: module internal relatedness strength
09:54

The next evolutionary step: the object orientation paradigm
09:51

Conclusion: what you have learned in this section
01:46

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
02:02

PROJECT ACTIVITY 1: Decide what you are going to build
01:45

Step 1: Project functional requirements
04:12

PROJECT ACTIVITY 2: Make a list of your project's requirements
00:44

Mockup your screens: get a better idea of required coding features
06:32

PROJECT ACTIVITY 3: Mockup the screens of your project
01:24

Use cases and scenarios: define the flow of your program
12:13

PROJECT ACTIVITY 4: Create the use cases of your project
00:49

Conclusion: what you have learned
01:18
+
Code design: write easy to find and well organized code
15 Lectures 01:11:03
Intro: don't get lost into your own code
01:14

In brief: the tools I will be using
00:22

In brief: Basic Python syntax
00:17

Naming explicitly your folders and files
07:45

PROJECT ACTIVITY 5: Create your folders and controllers files
00:49

The controller: the backbone of your coding flow
05:19

PROJECT ACTIVITY 6: Create the controllers' files
00:28

The controller: building a real controller
17:59

PROJECT ACTIVITY 7: Populate the controllers with success path steps as comments
00:58

The controller: other examples
15:12

Service providers: Model objects, services and utilities
11:39

PROJECT ACTIVITY 8: Identify your models and create the corresponding files
00:58

The view: the user interface
04:01

Conclusion: what you have learned
02:52

PROJECT ACTIVITY 9: Code the steps of your use cases
01:08
+
Code construction: write readable code; best practices and mistakes to avoid
9 Lectures 53:30
Intro: understand your own code
01:55

How to write good comments
03:51

How to properly name your variables
06:06

How to write easy to understand conditionals by....failing fast!!
09:15

When to use a while or for loop ?
06:02

Functions best practices... don't fear long functions
09:25

Classes best practices.... a class should have only one reason to change
12:04

Miscellaneous code construction advices.... don't use magic numbers
03:28

Conclusion: what you have learned
01:24

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

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

Where to go next
01:09
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.