:+1: 
 This could be its own section, like for example the "Idioms" is.
 We should borrow some things from here http://webpro.github.io/programming-principles/
 @iluwatar That's a great link. I will go through it. Yes it should be in a dedicated section something like "Design guidelines or principles".
 I dare to say YAGNI about this very idea.

@iluwatar Awesome link. Why not just reference it in the suggested section? Also keep a fork of it so that if the original repository is removed we still have our copy.
 @mafagafogigante I was kinda thinking in the same line. I will change the task to just add reference to the link @iluwatar provided. How does that sound?
 @mafagafogigante @npathai This is a good idea. We also may have something to contribute to that repository.
 Ok I will pick this up once I am done with #74 Turns out its difficult to work with NIO :smile: 
 Great. I think that helping that repository would be a great thing to do.
 It's done. Closing this issue.

Document design principles | SOLID | YAGNI
Some of the design principles that I know of are:
- [SOLID](https://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29) 
- [Tell Don't Ask](http://martinfowler.com/bliki/TellDontAsk.html)
- [YAGNI](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it)
- [KISS](https://en.wikipedia.org/wiki/KISS_principle)
- [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)

These are the foundational principles which lead to design patterns. I think we should document them.

README.md
README.md
diff --git a/README.md b/README.md
index a4ec970c9d9b..77282f569fb7 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,17 @@ Reusing design patterns helps to prevent subtle issues that can cause major
 problems, and it also improves code readability for coders and architects who
 are familiar with the patterns.
 
+# Getting started
+
+Before you dive into the material, you should be familiar with various 
+[Programming/Software Design Principles](http://webpro.github.io/programming-principles/). 
+
+Once you are familiar with these concepts you can start drilling down into patterns by any of the following approaches
+
+ - Using difficulty tags, `Difficulty-Beginner`, `Difficulty-Intermediate` & `Difficulty-Expert`.
+ - Using pattern categories, `Creational`, `Behavioral` and others.
+ - Search for a specific pattern. Can't find one? Please report a new pattern [here](https://github.com/iluwatar/java-design-patterns/issues).
+
 # How to contribute
 
 If you are willing to contribute to the project you will find the relevant information in our [developer wiki](https://github.com/iluwatar/java-design-patterns/wiki).
