Re: Structured PHP studying

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Just build what you want to build and look things up when necessary.
I did exactly like this. My first application is a forum. It never made it
to production,
but i learn a lot. And i am glad i learn it this way. It is a bit costly but
fun.


On Sun, Apr 25, 2010 at 11:01 PM, David McGlone <david@xxxxxxxxxxxxx> wrote:

> On Saturday 24 April 2010 10:46:33 Nathan Rixham wrote:
> > David McGlone wrote:
> > > On Friday 23 April 2010 07:45:16 Michiel Sikma wrote:
> > >> On 23 April 2010 13:15, David McGlone <david@xxxxxxxxxxxxx> wrote:
> > >>> Is there a good strategy to studying PHP?
> > >>>
> > >>> For instance, is there a way to break everything down into small
> > >>> managable topics?
> > >>>
> > >>> --
> > >>> Blessings,
> > >>> David M.
> > >>
> > >> Just build what you want to build and look things up when necessary.
> The
> > >> biggest part of learning any language is becoming able to creatively
> > >> solve problems within its realm of possibilities, and that's something
> > >> you can't really learn just by reading and solving textbook problems.
> > >> Hands-on experience is a very important key to understanding.
> > >>
> > >> Keep an open mind, ask people for answers if things get difficult,
> > >> always assume that there's a better way to do something, and in a
> while
> > >> you'll be able to write perfectly decent programs.
> > >
> > > This is the route I have been following for the past couple years and I
> > > have always assumed there is a better way to do something and that is,
> in
> > > a way what makes me lose confidence.
> > >
> > > I always feel like my code is crap and sometimes even ashamed to even
> > > show any of it.
> >
> > Hi David,
> >
> > Really good to see somebody asking for honest advice on a v important
> > matter :)
>
> Thank you.
>
> >
> > First, if I may, I'd like to suggest that being ashamed to show your
> > code is never going to be a productive way to work, rather the more code
> > you show, the more feedback you will get on your code, and often with
> > examples of alternative ways to do it - posting snippets and
> > opensourcing are great ways of crowd sourcing solid feedback.
>
> This is very true!
>
> >
> > Next, saying your code is crap, we all feel like that sometimes, but
> > it's critical to note that if your code does the job it's supposed to,
> > then it's a success! A few months ago I was questioning myself again and
> > wrote this: http://webr3.org/blog/general/the-wall/ - the point is it's
> > a good thing to question yourself, it's a good thing to take everything
> > in to consideration, and often I (used to) find myself looking at very
> > short procedural ways of doing things and think.. "why am i making all
> > these classes"; it's our job as programmers to know when to implement
> > something in 10 quick lines that are easy to maintain, and when to
> > create an all singing and dancing framework type affair, pros and cons
> > to each, and there is no "One True Way" TM of doing things - each bit of
> > code is very much dependent on context, scenario and maintenance costs.
> >
> > Okay, on to your specific questions!
> >
> > We can break this down in to small(~ish) common junks, and which you
> > study, take further and in what order is entirely up to you:
> >
> > General Coding
> > This is the stuff that translates to almost every language, for loops,
> > echo'ing, simple code optimisation and basically just how to script and
> > program - I'll assume that after two years you've got this nailed better
> > than any book can teach you, from here it's just experience and picking
> > up tricks on the way, so generally no need to worry!
> >
> > PHP
> > As you know php is a specific language, and the best way to learn
> > everything php specific, is literally to read the manual, from start to
> > finish, a few times, and keep referring back to it, if you see something
> > you haven't actually used before then give it a quick go in a short 5-10
> > line script and have a play, the 2 minutes it takes will be more than
> > worth it (by doing it, it'll get engrained in you).
>
> Wow, I've done this and didn't even realize it. Just a few weeks ago, I was
> trying to understand about how $this -> worked.
>
> I think I posted that over on php-db. I learned it was related to classes,
> so
> I dug into classes in the php manual and just wrote code and played with
> it. I
> did get a better understanding of the whole picture, but probably not
> enough
> to fully feel comfortable.
>
> >
> > Aside: in every project i do, and at all times i have a test.php where I
> > literally just try out ways of doing things and snippets of code, once
> > I'm done i stick an exit; before it then do the next snippet above it,
> > this way i always have one nice file of snippets in every project to
> > refer back to - they often come in handy for helping on this list
> > actually, and in fact sometimes are from peoples code on this list!
>
> Great Idea! I probably would have never thought of this. How do you include
> these snippets into your actual work to see if they work? Do you just run
> the
> file or make functions and just include the function in the code you are
> working on?
>
> >
> > Coding Standards
> > One of the biggest factors of feeling your code isn't good enough, is by
> > not using any coding standards,
>
> This is absolutely what I have learned in the past couple months. I bought
> 2
> books called Beginning PHP and MySQL E-Commerce From Novice to Professional
> 1st and 2nd edition by Cristian Darie and these 2 books build a T-Shirt web
> site from start to finish, and I realized with these books just how
> important
> organizing your code and following standards is.
>
> > this is pretty simple stuff but makes
> > your life a lot easier, and code a lot cleaner - even crap broken code
> > comes across a lot better when it's nicely formatted lol. A good IDE can
> > help you here, as for which coding standards that's up to you, but you
> > can check you are adhering to them by using "php code sniffer" -
> > personally I opt for a slightly modified version of zend coding
> > standards with the odd bit of extra spacing around params etc.
>
> It's sad as long as I've been pushing myself to learn PHP, and studying
> anything I can get my hands on, I've never heard of "php code sniffer".
>
> On a side note: the trick is to make the code look so darn gibberish, that
> it
> makes whoever had written it look like a genius ;-)
> >
> > Paradigms & Design Patterns
> > A bit of familiarity with programming paradigms is always a good thing
> > http://en.wikipedia.org/wiki/Programming_paradigm
> > In PHP we use Procedural and Object Orientated (Class Based)
> > If you do OO then it's also very very useful to read up on all the
> > Object Orientated subjects though especially "Separation of Concerns",
> > familiarity of Martin Fowler's enterprise patterns
> > http://martinfowler.com/ is also a good thing, there is also a Java
> > pattern guide that's most useful
> > http://java.sun.com/blueprints/patterns/ and many transfer over to OO
> PHP.
> >
> > Other Languages
> > Yes :) one of the best ways to get good with your primary language (php)
> > is to try out and use other languages, for instance if you were to put
> > some focus in to javascript (ecmascript), scala, erlang, c, java and
> > maybe something like as3 then I'm pretty sure your code and programming
> > would improve ten fold I'm sure - I'm not suggesting you learn them all
> > but a bit of focus and playing from time to time would be a very good
> > thing indeed!
>
> My first serious attempt at coding was  back when windows '95 was out. I
> tried
> to learn C++. I remember I was up for days just trying to figure out how to
> set
> the correct path in the compiler so my programs would compile and work.
> Since
> then I've only piddled around with C++, but here lately I have been seeing
> similarities and differences in PHP with what little I learned of C++.
>
>
> > HTTP and REST
> > This is pretty critical if you're making websites, honestly how can we
> > create th web if we don't know how it works? REST is the design behind
> > HTTP (and not just some weirdy api where you use GET parameters) - in
> > fact when i say pretty critical i mean it's entirely critical, the more
> > you understand REST and the more familiar you are with HTTP then the
> > better your websites, web apps, api's etc will be!
> > HTTP: http://www.w3.org/Protocols/rfc2616/rfc2616.html
> > HTTPbis (the updated version, work in progress, probably better to read
> > to be honest): http://tools.ietf.org/wg/httpbis/
> > Architecture of the worldwide web: http://www.w3.org/TR/webarch/
> > )you can't argue w/ the makers of the web now can ya)
> > REST:
> > http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm<http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm>
>
> Thank you Nathan! I have bookmarked all the sites and will be reading all
> of
> them. Your words have inspired me to give it my all once again.
>
>
> > leave it there.. but happy to continue if you need.
>
> Thank you. You've probably given me enough to chew for months to come.
>
> --
> Blessings,
> David M.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux