More you know the technical real time problems and their evolved software concepts and algorithms the better you know your software platform.
I damn sure you couldn't understand my explanation. This is how I fooled my college lectures and managed to get top score with a GOLD medal. Huh! I found a right way to tell that I am a outstanding student in my college days.
I will explain more through my right side pages.
Let me be more technical, open community has already developed a lot of OS and libraries with thousands or even millions of man hour around the world, it is better to adopt to this OS kernels and libraries as it can solve our software needs and save many man hours (directly proportional to MONEY).
On other hand for some software needs we need to start from scratch that doesn't mean we have to re-invent whole software methodologies, we can always refer to some software designs that are been crafted to solve the most common day to day programmers software real time problems.
Hmm, it more than your coding skills, it is like a painter who have seen some beautiful nature scenery like never before and he tries to portrait in his style.
So now your turn, you can either use the same painting and claim its yours with extra ..... or seeing and imagining that beautiful scenery through painters ART work and imitate the scenery with your skills. Your SMARTness comes handy in this place, in choosing which one to adopt in given situation.