views:

231

answers:

4

Right now I'm working on PHP. I am using the Doctrine ORM and the jQuery JavaScript library. In my second project I used the Zend Framework. What are the various things I should learn to make a better site?

What are the various things to keep in mind or what are the various new things I should learn? Right now being I fresher we keep in mind about the for loops, minimum queries to database, less Ajax requests etc etc. Means these are the college tips we should keep in mind.

EDIT: @Pascal MARTIN

Yes, I agree with you, I am keeping all these things in my mind. Use classes, learn from mistake, etc., etc. You are not getting my question. I know experience matters and I am learning things. No doubt about it. But what I am asking is to increase the scope, meaning it's like there is small boy who know to add two numbers which doesn't include any carry forward like 23 + 34, 45 + 24, etc.

But as he doesn't know about the carry forward logic like 89+78. He can't increase his scope (scope of thinking level). That is what I'm asking here. What are classes, objects, functions and design patterns? This is what we have learned from our college level studies. We are using all those logics here in our office. But what's next?

How to increase the scope of our thinking level? What's the next step? How is Flickr handling so many hits per second? Machine learning, this is a keyword I got from somewhere. I think you can understand what I want to ask. Something like this.

+2  A: 

Not specific to web-development, but I think the "technical" stuff is generally not what people should worry about the most.

I considerer that some general principles, like "DRY" or "YAGNI", or "don't reinvent the wheel" are way more important : those you have to know and understand, while technical stuff... Well, there is always the manual, and you can always think ;-)


Still, if you want an answer a bit more specific / technical / not sure what :

  • First of all, learn from your mistakes!
  • Re-use : be it a framework, a class you wrote, some deployment procedure, whatever : if it's useful and good, you should enhance it and reuse it -- not reinvent it a slightly different way for each project
  • Think before you code -- we love coding (well, some of us do) ; but we can do so much better when we take the time to think a bit...


Farther than programming/developping, there are mayne good-practices you can learn and use for your projects ; for instance :

  • use a source control system (like subversion)
  • use a bug-tracker for bugs and evolutions
  • use and respect some coding standard ; and use some automated tool (PHP_CodeSniffer for instance, in PHP) to check your code is valid against it
  • write some documentation -- both API Documentation (see phpDocumentor), or end-user documentation, or even procedures (like "how do we deploy our application to production")
  • use some continuous integration platform (like phpUnderControl)


I could probably go on for ages, but I'll (probably) only add one last point : be a part of the community !

You have learnt some great things ; help others become better at what we do ;-)
(And you'll see that you'll still learn lots of things, this way)

Pascal MARTIN
@Yacoby : and the second develops for two days, and when the first one comes back, they realize what the second did is not quite right ;; then, instead of throwing it all away, they say "we won't waste two days of work" and start transforming that not-right thing into something that might be right... or not... And, in the end, they have a monstruous thing that no-one will ever understand nor be able to maintain ?
Pascal MARTIN
+3  A: 

The most effective way: Develop lots of websites.

By practising lots of different things repeatedly you'll learn what works best and how to quickly and effectively solve the common problems.

Also:

  • Read books and articles. There are loads of good ones you can learn a lot from.
  • Browse and use free scripts that are available all over the web. Learn a lot from the good ones and learn even more from the bad ones.
  • Examine the layout and source for pages/sites you think are good - you'll learn a lot of tricks from them, even if you can't see the server-side implementation. Indeed, trying to work out how something would be implemented server-side will teach you a lot.
Jason Williams
+1 for practice, it worth 80% of all.
DaNieL
A: 

Always good: Make yourself familiar with Design patterns

Felix Kling
A: 

There are really good answers here, just one side note that isn't really about "development".

I know, we are developers, in a perfect world we don't design, we're not supposed to design, the are really good looking people, all wearing black in the design department who do that for us :P

But in the end you should know something about design itself. Webs have a HUGE potential public, so knowing their goals, how the see what you do, what you present on the screen... that's important by itself. Usability too.

Maybe you have the luck of a design department behind you, maybe you don't. Even so, you should always have an idea of all the parts of your business...

I'd recommend Six Revisions as a good way to go, an learning usability as an addon for your development skills, specially if you're going for web design.

Jorge Córdoba