Page 1 of 2

[56k warn] Coming clean and begging for help

Posted: Tue Apr 24, 2007 9:57 pm
by Theory?
Confession time:

I'm not a good programmer. My entire life has been small "blips" of code education in such a vast array of laguages, but I couldn't recite any code to you if I wanted to. I got a B+ in my Pascal class, go figure. Point is, I know my basic logic enough to translate new syntax into simple programs. PHP has a very simple syntax, which I think was it's biggest draw for me some 5 years ago when I first got into it.

Since those 5 years I've rarely...no, never coded. Now, I'm hitting the books hard because I have an enormous idea that I have a lot of faith in, but don't have the money to just "hire" people to do the work for me (and besides, that's no fun, I'd at least like to be part of the development "team"). So I've been reading up on all the latest trends and technologies etc. and it finally dawned upon me, I don't know PHP well enough to do this.

Yeah, I need to know all these other things like XML, SQL, JavaScript, Ajax, DHTML, XSLT, RELAX NG, the list goes on, but my base is PHP, and I need to know it like the back of my hand to pull the rest of them together. Duh!

So I panicked and ran to my local bookstore and started scanning every PHP book on the shelves searching for something to suit my needs.

I'm familiar enough with really basic syntax to be able to read scripts and make (to some extent) heads or tails of it.

For some reason I read Peter Lavin's OOP PHP book. I understood it...for the most part, I feel like I didn't get everything I was expecting out of it.

I'm not sure what I should be looking for. It's hard to describe some of the logic I'm looking to implement and no book so far has covered any of it to the extent that satisfies me, so I'm kind of lost.

Basically I just want some good recommendations on books to get me up to speed with PHP so I can begin learning all the advanced techniques which I've found in other books.

I think in general I'm just really scared of starting any sort of code for some reason so I'm trying to find a good resource that will help ease me into the process really well.

Any ideas?

Thanks

Posted: Tue Apr 24, 2007 10:15 pm
by Christopher
Good programming is pretty counter-intuitive. Because of that, the only way to really understand is to produce some really crappy code, live with it for a while, and then see first hand how horrible it is. You won't appreciate that a better design is good until you have struggled to create a crappy design and then compare that to a better one. Our own mistakes are much more authentic that others good suggestions. It is the school of hard knocks, but it is the only way for most of us.

So just start coding ... it will be crap but you will be moving in the right direction. And you will get plenty of support for places like this if you give it a go first and bring us what you have done.

Posted: Tue Apr 24, 2007 10:17 pm
by alex.barylski
Rome wasn't built in a day my friend. ;)

Your looking to accomplish the impossible - trust me I've been there.

20 or so years ago when I first started, I was determined to develop a flight simulator and with zealous passion I started buying books and material on everything flight simulator related. Books on calculus, flight simulation, programming 3D graphics, building physical flight simulation devices you name it...

I still to this day haven't developed a flight simulator - although I am somewhat more familiar with how one is built. :P

I realize this is a pretty ambitious goal (especially considering my age at the time) but the point is, it was wishful thinking at the time. There was no way, in retrospect, I could have accomplished any of that. Fortunately my attention has long since turned to enterprise application development.

You want to learn PHP, XML, JavaScript, MySQL, etc...all as soon as possible and I'll tell you what happens . Everytime something finally "clicks" the adage: "The more you know, the more you realize the less you know" hits home.

I don't know what kind of idea you have, but when you mention AJAX, PHP, MySQL, Big Idea, etc...it's probably way over your head for the time being. It would take (I would guess 3-5 years) to reach the level most of us at the forum are currently at in regards to these technologies. Honestly you would need to be at that level to effectively carry out a project like this.

So I suggest, you move this to "Enterprise" and see if you can find a developer willing to help you get started.

Just in case, here is my bid:

I take 70% and keep the source private (that is it's mine and you'll never see it or need to see it) you also sign a 5 year non-competitive agreement so the minute you make enough you bail on me to start all over again.

Sounds like a crummy deal, and for you, it is. But the reward has to be high enough for me to bother investing my time and energy for something that might not even work. If your lucky I might at somepoint near the "five year agreement termination" offer to sell 30% shares to keep you onboard. I am not a businessman so it makes sense for me to do that in fear of your entering direct competition with me.

Here's to your success. :)

Posted: Tue Apr 24, 2007 10:39 pm
by Theory?
It's a real shame, but all this I know to be true. I'm a musician, I know the hardships of training. I just need to act now.

I don't see any way for it to get done without me hiring others, but I'd like to play some sort of catch-up.

Really I'm just looking for some good "starting" points. I'm no beginner, but I'm definitely not intermediate or anything like that.

Now, when you say bid, you mean those are the terms in which you hire someone, or the terms by which you are hired?

Posted: Tue Apr 24, 2007 10:55 pm
by alex.barylski
Theory? wrote:It's a real shame, but all this I know to be true. I'm a musician, I know the hardships of training. I just need to act now.

I don't see any way for it to get done without me hiring others, but I'd like to play some sort of catch-up.

Really I'm just looking for some good "starting" points. I'm no beginner, but I'm definitely not intermediate or anything like that.

Now, when you say bid, you mean those are the terms in which you hire someone, or the terms by which you are hired?
Hehe...

The most important lesson in any business venture is that exactly. :)

My "bid" are the terms I would agree on in entering a project like this without capital or funding. Of course you would have to sell me on the idea as well and convince me you could effectively market and sell whatever it is your selling. :)

If you could elaborate on what kind of starting tips, I'm sure we could help you.

You want a book suggestion? Be specific. You want one on learning LAMP or just PHP? You want to buy one which covers AJAX? You want to tweak your SQL queries? How about design patterns or OOP? XHTML/CSS?

There are countless books you would need to fully comsume before you could even likely finish a project like this. Each book would ideally be followed by hundreds of articles just so you your really get an solid understanding of the pros and cons of each. A single book will never cover everything.

p.s-I should note. You say your a muscian, so i can only guess your idea is something of a myspace or specialized community type site, offering indie artisits an Internet outlet, etc. In which case, don't be afraid to disclose ideas of what you need one - it's not that secret. ;) What is usually important is your plan of attack and how you will market and distribute whatever it is your selling. The technical specifics or "ideas" are just that until they are "effectively" implemented.

Thats the best I can offer as of now, until you tell us more. :)

Posted: Wed Apr 25, 2007 11:02 am
by Theory?
Hockey wrote: p.s-I should note. You say your a muscian, so i can only guess your idea is something of a myspace or specialized community type site, offering indie artisits an Internet outlet, etc. In which case, don't be afraid to disclose ideas of what you need one - it's not that secret. ;) What is usually important is your plan of attack and how you will market and distribute whatever it is your selling. The technical specifics or "ideas" are just that until they are "effectively" implemented.
MySpace, nothing, this is the new sh!t. MySpace really bugs me actually, there's far too many ads and spambots and all sorts of really lame people. No, our idea is about providing useful resources, not just a media player and a blog. It will also look MUCH nicer. MySpace is hideous IMHO.

As for books, I'm just really on the fence about which ones to go with. Well, here are some of the books I've got lined up, you tell me if you've read any of em and if you think they're good or not. (in no order)

For PHP, we've got:

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

On the strictly MySQL side:

Image
Image
Image
Image
Image

Some general theory and best practice stuff:

Image
Image
Image
Image
Image
Image
Image

Other books:

Image
Image
Image
Image
Image
Image
Image
Image




You know, just some light reading for those easy-going days on the beach...

Posted: Thu Apr 26, 2007 5:32 pm
by Ollie Saunders
Don't buy a book on regular expressions. There are many tutorials out there starting with the great Harry Fuecks' Joy of Regular Expressions part 1, 2 and 3. There's a link to a really good presentation PDF that covers all PCRE syntax on one of those as well. The regex board here and its sticky tutorials are good too.

Buy Chris Shiflett's Essential PHP Security. For the page count it is expensive but that's just because it's concise. I read it in a weekend and then a second time a month later. On a similar note if you are working with LAMP then Apache Security is a really excellent book with the possible exception of the first chapter, which is a little too abstract. Surprisingly it covers the security of PHP configuration really well.

PHP wise I would recommend the PHP Cookbook (make sure you get the 2nd edition) for quick fixes and the Sitepoint PHP anthologies volume 1 and 2. These books will be suitable for someone with a good gasp of the basics of PHP. If you are unfamiliar with PHP syntax I would suggest starting with the PHP manual. Be really careful about online tutorials on basic PHP because PHP is easy enough to learn for idiots to understand and start teaching to other people in wholly inaccurate ways.

If you are planning on building something of a reasonable scale you have to get into object orientated programming and the related topics: design patterns, refactoring and unit testing. Personally I'm completely sold on test driven development which takes all of these to their most extreme level a la extreme programming. Head's First Design Patterns took me a couple of months to get through and get my head round but by the end I was quite transformed. Refactoring I have only just started reading but seems pretty good, to be honest it is probably better to read before design patterns and it comes very highly recommended by Marcus Baker. Both of these have code written in Java instead of PHP which is fine 90% of the time because when it comes to OOP there is a big overlap. I can't unfortunately recommend a good book on unit testing and test driven development. I have one by Kent Beck but I haven't gotten on with it very well. I think this is because it assumed a very high level of familiarity with OOP; I might go back to it sometime soon. So for now there's SimpleTest and its associated tutorials, which are very good. There's also a forum dedicated to testing on here.

If all this seems like a bit much a book like PHP 5 Object Patterns and Practice will give you can overview of all the principles of OOP in PHP.

MySQL-wise I can recommend the MySQL Cookbook. However if you are building a certain kind of site, for instance one where you are dealing with complex data with many different meanings and relationships, XML and XML based technologies are probably going to pay off. In which case you may want to focus on XML, XPath, XSLT etc. and forget about MySQL to a degree. Incidentally don't buy O'Reilly's XSLT Cookbook its 90% example code and of no use to anybody.

Moving on to client-side. There are many good books the best for beginners is Build Your Own Web Site The Right Way Using HTML & CSS. And A List Apart and 456 Berea Street make for indispensable blog reading but also work as excellent references for really high-end web design. There are several book reviews and recommendations on 456 Berea Street but I actually only ever bought 2 books on the subject; Bullet Proof Web Design, which is probably a little old now, and the CSS Anthology, which I mostly already knew everything in thanks to the aforementioned blogs.

Depending on what you are building I would recommend you steer clear of AJAX for now. There are reservations over the lack of accessibility and additional workload associated with it.

You have ambient findability in your list, that's a great recreational read but probably isn't going to advise you a great deal on how to build web sites. I've read the first 3rd of Don't Make me think and it seems really good, wish I'd read it earlier in fact. It focuses on websites as opposed to web applications where Designing the Obvious does the opposite.

JavaScript - the definitive guide is great (make sure you get the 5th edition) but you will benefit from a more tutorially style book as well. I read JavaScript for Web Developers cover to cover. To get the most of both of these you should probably familiarize yourself with JS syntax from The Definitive Guide first and then focus on JS for Web Developers dipping back into The Definitive Guide as necessary.

I can't comment on web services because I've never used them.

Finally, If you are planning on buying a lot of books you might consider this service from O'Reilly instead.

Hope all that helped.

Posted: Thu Apr 26, 2007 8:04 pm
by Luke
Don't make me think is excellent.

Posted: Thu Apr 26, 2007 8:17 pm
by Theory?
The Ninja Space Goat wrote:Don't make me think is excellent.
You know, I see that book everytime I walk through Borders and I keep hearing good things about it. I've got 11 books on my desk right now that I have to read and after that I'll move forward.

@ole thanks for all the book recs. I pretty much assume that O'Reilly and Sitepoint books are the dog's bollocks by default, but I've read a few bad O'Reilly books in the past, but not enough to make me that wary.

I've read, or skimmed rather, a number of the books you mentioned, but I'm glad you saved me from that Regex book. That's less money I have to spend.

I found Larry Ullman's books to be really easy to read, but not so much that it's insulting. They're very well written and very informative (thus far) so I've chosen to go that way instead of Ramsus's epic "Programming PHP", which I had read as my intro to PHP 4 many years ago and I have the e-book of the php5 edition, which I skimmed and then ran away from. Don't get me wrong it's a great book, written by the man himself, but on that same token, the material isn't very accessible, which is probably because of it's author.

I also read Peter Lavin's OOP book from No Starch, and while it was a good book, and I got some good BASIC theory out of it, I felt like I didn't get everything I was expecting out of it. Perhaps I'll give it a second read-through once I get through these books I've got now.

Posted: Fri Apr 27, 2007 3:30 am
by onion2k
Crumbs.. it'd take me about 3 years to read all those books. I'd rather read a couple, use the internet, and spend the rest of the time practising coding.

Posted: Fri Apr 27, 2007 3:48 am
by stereofrog
ole wrote:Don't buy a book on regular expressions. There are many tutorials out there
Friedl's book is a classic and along with GOF and POEAA a must-read for every programmer.
In general, be careful with online learning stuff. Good articles are rare, most of php "tutorials" on the net are of very low quality.

Posted: Fri Apr 27, 2007 9:25 am
by Luke
I agree with stereofrog... I'm tired of finding incomplete / incorrect information through tutorials. I bought that regex book and I found it excellent.

Posted: Fri Apr 27, 2007 10:52 am
by onion2k
The Ninja Space Goat wrote:I'm tired of finding incomplete / incorrect information through tutorials.
I reckon I've learnt more from articles that are wrong than I have from articles that are right. Fixing problems makes me remember things.

Posted: Fri Apr 27, 2007 11:00 am
by Luke
to each their own. I prefer books.

Posted: Sun Apr 29, 2007 5:04 pm
by Ollie Saunders
Well I could be wrong on the regex thing. I've been able to pick them up with a combination of this forum, the PHP manual, a couple of tutorials....come to think of it, its mostly thanks to this forum. Oh I had a pattern syntax cheat sheet I used for a long time, that helped a lot.