I google more before deciding how to code to a specific problem. I want to understand the problem better, see how it's been approached by others, if there are standard approaches, etc. This helps me crystallize my thoughts and get quick prototypes put together.
Your question is about your "internal toolkit" and your speed when coding. As your experience becomes richer and more varied, your feel (or dare I say, taste) will improve and you'll be quicker because of it. A problem will tickle some part of your brain and you'll have a much more intuitive understanding of how to use your external tools (php/kohana) to best solve it. For that you do need some strong understanding of what's available in your development language of choice - memorization isn't the answer, but you should be able to remember off-hand that library X solves problem Y and might apply here . . .
It has been valuable to me to expand my knowledge of development styles and languages, so try to work in some tasks that use some very different stacks than php and kohana. If you can find a good mentor or peer group, I think that can be valuable in your growth as a programmer.
There's a bit of the gunslinger mentality floating around right now re: coding speed. Stuff like the Yale programming class where data exists on the time it took students to correctly solve a programming assignment (http://www.joelonsoftware.com/printerFriendly/articles/HighN...). The conclusion made there is "(t)he quality of the work and the amount of time spent are simply uncorrelated." So right now, hackers seem to be making sure people know how much faster they are than everybody else. Ignore a bunch of this fluff.
There are arguments that if you're not one of the "rock-stars" you'll never create software as beautiful as one of the 1-in-100 hackers. I think this is a little true (innate talent is something that exists) but we as hackers should think more about our work as craft. Maybe most people can't be wonderful artists, but craftsmen (and women) have built some beautiful things over the years.
So work on your code as a craftsman. Care about it. Read what others do. Ask for feedback. Develop a habit of deliberate coding. Be patient, and be your own worst critic and best supporter.
Your question is about your "internal toolkit" and your speed when coding. As your experience becomes richer and more varied, your feel (or dare I say, taste) will improve and you'll be quicker because of it. A problem will tickle some part of your brain and you'll have a much more intuitive understanding of how to use your external tools (php/kohana) to best solve it. For that you do need some strong understanding of what's available in your development language of choice - memorization isn't the answer, but you should be able to remember off-hand that library X solves problem Y and might apply here . . .
It has been valuable to me to expand my knowledge of development styles and languages, so try to work in some tasks that use some very different stacks than php and kohana. If you can find a good mentor or peer group, I think that can be valuable in your growth as a programmer.
There's a bit of the gunslinger mentality floating around right now re: coding speed. Stuff like the Yale programming class where data exists on the time it took students to correctly solve a programming assignment (http://www.joelonsoftware.com/printerFriendly/articles/HighN...). The conclusion made there is "(t)he quality of the work and the amount of time spent are simply uncorrelated." So right now, hackers seem to be making sure people know how much faster they are than everybody else. Ignore a bunch of this fluff.
There are arguments that if you're not one of the "rock-stars" you'll never create software as beautiful as one of the 1-in-100 hackers. I think this is a little true (innate talent is something that exists) but we as hackers should think more about our work as craft. Maybe most people can't be wonderful artists, but craftsmen (and women) have built some beautiful things over the years.
So work on your code as a craftsman. Care about it. Read what others do. Ask for feedback. Develop a habit of deliberate coding. Be patient, and be your own worst critic and best supporter.
And good luck - what we do is quite a bit of fun.