Personal Development for Smart People Forums

Personal Development for Smart PeopleTM Forums


Go Back   Personal Development for Smart People Forums > Personal Development > Technology & Technical Skills
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Technology & Technical Skills Computer skills, hardware, software, internet topics, gadgets, programming


Welcome to the Personal Development for Smart People Forums, the place for lively, intelligent discussion of all personal growth issues -- physical, mental, financial, social, emotional, spiritual, and more.

You're currently viewing as a guest, which gives you limited read-only access. By joining our free community, you'll be able to post your own messages, access many members-only features, see the new messages posted since your last visit, and of course remove this header message. Registration is fast, simple, and free, so please join today.

If you arrived here from a search engine, you may want to explore the main site first, which includes hundreds of deep and insightful articles on a variety of personal development topics.

Reply
 
Thread Tools Display Modes
  #1 (permalink)  
Old 11-09-2006, 05:43 PM
Senior Member
 
Join Date: Nov 2006
Posts: 156
trekr5 is on a distinguished road
Default Any PhP/mySQL gurus out there?

Hello

I'm teaching myself PhP/mySQl. How long would it take to become really good at it?

Also do you know of good online resources that I can use? Is the most intuitive way to learn to think up projects (do some free work for yourself and other people) and practice new skills that way? I've found just reading the book(by rote) and then practicing the commands is pretty boring and doesn't interest me.


What do you think?

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 11-09-2006, 05:57 PM
Senior Member
 
Join Date: Nov 2006
Location: Logan, UT
Posts: 357
Adam is on a distinguished road
Send a message via Yahoo to Adam
Default

Try writing a blog... It's harder than it looks, but is straightforward enough to understand how to get started, at least.

So far, the best resources that I've found for each language, PHP and MySQL's version of SQL, are the sites they come from themselves... PHP: Hypertext Preprocessor and MySQL AB :: Developer Zone respectively. W3Schools Online Web Tutorials also has tutorials for learning PHP and SQL, but I can't vouch for their quality... They do, however, have excellent (X)HTML and CSS tutorials, so I can't see why their other tutorials wouldn't be at the same level.

As for how long it takes... That's entirely up to you. Anywhere from a month to a lifetime.
__________________
People often say that 'beauty is in the eye of the beholder,' and I say that the most liberating thing about beauty is realizing that you are the beholder. This empowers us to find beauty in places where others have not dared to look, including inside ourselves.
--Salma Hayek

My blog: Adam's Peace
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 11-09-2006, 06:00 PM
Senior Member
 
Join Date: Nov 2006
Location: Illinois
Posts: 149
TechnoGuyRob is on a distinguished road
Send a message via AIM to TechnoGuyRob Send a message via MSN to TechnoGuyRob
Default

I personally started with a book by Kevin Yank. I went through all the examples and projects so I felt familiar with the basics. Then, I set off to writing a content management for a newsletter (for a site I was involved with), where anyone could submit articles, lists for crossword puzzles, etc. and the newsletter would automatically be generated as soon as moderators confirmed the submissions to be included. This was about 5,000 lines, and took me a few months. It was horrible, horrible PHP. However, throughout it I got better and better and the code I was spewing out turned out progressively more professional. Once it was done, I realized what a piece of junk most of it was (it was functional, but I had ascended to a new level of PHP enlightenment). So I decided to expand my PHP knowledge by creating various applications like a template (CFG grammar) parsers, pdf creators, an online graphing calculator, IRC bots, and various other apps that required me to use just about every feature PHP offers. I became extremely comfortable with OOP in PHP (it wasn't a big adjustment, since I was already familiar with C++). Finally, I've been working with a team of developers to create a complete revision to the back-end and front-end for a community-driven site we all participate on.

Basically, here is my advice: first, make sure you're comfortable with the basics of PHP. It's fine if you make mistakes, but make sure you do lots of reading about PHP (even if it's a few minutes a week, you'll start to notice what people are saying about bad programming practices). The most important thing, however, is to practice, practice, practice. The biggest experience-builder in any programming language I have endeavoured to learn is to practice by writing applications in the language. It may seem obvious, but it is amazing how proficient it makes you.

In conclusion, it took me about 6-12 months to feel like "very good" at PHP. However, I didn't feel like a "guru" until about 2 years of lots of PHP programming.

As for SQL, well, they offer a class about it at my college, so I have more experience in it than 95% of programmers. Unfortunately, most programmers think they can create a carefully-crafted, optimized, excellent database after reading up a summarizing article about SQL. The queries you are going to be using through PHP probably aren't going to be too complicated, so that's good. But, if you want to use MySQL (or any database programming language) in a serious application, I suggest you invest some serious time in educating yourself about constructing databases.

Hope that helps! My all-time biggest helpful resource was PHP: Hypertext Preprocessor. If you have specific problems, try PHP development forums. However, if you have plenty of time, I wouldn't rely on it. You would be amazed at how much more proficient you become through finding things out on your own. One final thing that really helped me not only become a (self-proclaimed :P) expert on PHP, but an expert that can code well, is my work with other developers (like with SubVersion and CSV), because they pointed out things wrong or that could be better about my code.

And remember, PHP is for web programming, which means you must be familiar with security practices! I find this is the area where programmers lack the most. I have found exploits (not actually used them, of course, I'm not a black hat ) on sites like MySpace, Google, and fairly large sites like YouThink just because the programmer(s) forgot about basic security practices.

Last edited by TechnoGuyRob : 11-09-2006 at 06:03 PM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 11-09-2006, 06:02 PM
Senior Member
 
Join Date: Nov 2006
Location: Toronto
Posts: 144
kthdsn is on a distinguished road
Send a message via AIM to kthdsn Send a message via MSN to kthdsn Send a message via Yahoo to kthdsn Send a message via Skype™ to kthdsn
Default

I've also been trying to teach myself php/sqlite for a while (well, over a year to be honest) but like you I got bored quickly with the book I bought. I have a friend who is really good at it, and who codes for me in return for sharing my server. This is great, but doesn't help me to learn.

My brother on the other hand chose to dive right in a build a website. He started learning after me and he's got on really well.

I have big idea for a project, but I'm sort of waiting until I've learnt php/sqlite before I start, and not really getting on with learning because it's boring. I guess I should get on with just starting and learn along the way.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 11-09-2006, 06:06 PM
Senior Member
 
Join Date: Nov 2006
Location: Illinois
Posts: 149
TechnoGuyRob is on a distinguished road
Send a message via AIM to TechnoGuyRob Send a message via MSN to TechnoGuyRob
Default

Quote:
Originally Posted by kthdsn View Post
I have big idea for a project, but I'm sort of waiting until I've learnt php/sqlite before I start, and not really getting on with learning because it's boring. I guess I should get on with just starting and learn along the way.
Dive in as soon as possible! If it's a personal project you know you won't be using for that long of a time, do it! It will probably be pretty bad once you're done, but you'll get better throughout it, I promise. If it's a personal project, don't bother fixing it up. Once you are familiar with what you did wrong and have to do in the future, just start up on a new project and implement your new bright knowledge there! It's just like photoreading and speedreading. Don't try to go back and correct bad code or your mistakes. You're learning! This isn't a commercial application. It's more effort than its worth. Just code as much as you can, and you will improve as you go along.

EDIT: I stress, start with personal projects. Doing something for someone else, or for a bigger audience, will make you stress out about things you do wrong. Don't worry! You will notice them yourself and learn to avoid those mistakes in future, or find ways to optimize things.

One HUGE thing is to read through the php.net functions and documentation. Even if you read through a few sections in a month, there is so much about the PHP programming language. You want to be familiar with many of the things it offers so you can improve and optimize your skills. For example, if I hadn't looked at the php.net documentation, I would have never been aware I could just use

PHP Code:
foreach($array as $element
Instead of

PHP Code:
for($i=0;$i<count($array);$i++) 

Last edited by TechnoGuyRob : 11-09-2006 at 06:13 PM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 11-09-2006, 07:02 PM
Member
 
Join Date: Nov 2006
Location: Nottingham, UK
Posts: 68
Phil Newton is on a distinguished road
Default

I learnt to code PHP many moons ago, most of which came from messing around with the code and reading a few tutorials. Looking at other people's code helps too, but it's important not to get too hung up on conforming to someone else's style.

The biggest boost to learning the language was installing an Apache server with PHP and MySQL on my own machine. This saved me having to upload files to see them working, helped me understand some of the deeper workings.

Nowadays I find myself using PHP for all kinds of things, from websites to running development tasks from the command line. It's a very nice language once you get the hang of it, and definitely the most useful one I've learnt.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #7 (permalink)  
Old 11-09-2006, 07:32 PM
Senior Member
 
Join Date: Nov 2006
Location: Budapest, Hungary
Posts: 203
norbert is on a distinguished road
Default

Find a project that you enjoy and start implementing it. The more you do it the better you get. There are always lots of interesting blog posts over at Planet-PHP for example but unless you practice you won't get any better.

It takes time and the usual trial-and-error process to find the best techniques and people who are worth to be followed. The problem with PHP is that the barrier of entry is too low so most of the devs are far from being experts. They don't care about improving themselves; they even don't take the time to read the relevant sections of the manual. It's very hard to find good PHP developers even today. Ask a web agency they'll tell you that.

Just keep doing it and one day you'll notice that you became a professional PHP developer.

I would say it takes 5 years of active day-to-day involvement with PHP to become a pro PHP dev but it depends on your previous (web) development experiences of course.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #8 (permalink)  
Old 11-09-2006, 08:08 PM
Junior Member
 
Join Date: Nov 2006
Posts: 27
duhshuh is on a distinguished road
Default

The only way to really learn is to do. Sure, you need a bit of background, but once you get a basic understanding of how to put together code I would say just experiment. When you run into problems chances are you are not the first person to fall in this hole. So, turn to the web and see what advice others might have.

I learned PHP/mySQL in about a month... but I did have a bit of formal education on O/O programming. Of course, my code is always getting better... and I would recommend, if you can, look at other people's code. You can learn a lot there too.

Good luck!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #9 (permalink)  
Old 11-09-2006, 08:43 PM
Member
 
Join Date: Nov 2006
Location: Haworth, West Yorks, United Kingdom
Posts: 66
Adam Sargant is on a distinguished road
Default

As everyone says... dive in... use the official documentation sites, and always use google with searches lake "xyz php tutorial" and you will find many different ways of doing things.

The point about security is well said... I inherited a client from another scripter whose mailform was hijacked by spammers and was a) burning up their bandwidth and b) getting their IP address seriously blacklisted... poor security ahs real consequence! That said, don't let it put you off... a little diligence will go a long way.

So, dive in and do, and don't be afraid to ask ... I have written and destroyed 20+ different personal projects from scratch (directories, forums, other types of functionality I cannot readily classify) and am now at the point where it looks like the most significant of my multiple income streams is going to come from doing this for clients. I also use my knowldge to develop my own passive income streams (Adam Sargant's Hypnosis MP3s and CDs - Hypnosis sessions available for instant MP3 download is entirely my own code from scratch apart from the newslblog, the psi-q test on The Institute of Psychic Development - Psychic Development Courses is mine, created for a client who I have a percentage share for internet sales, the potential is huge). Do it, have fun, let your imagination go wild (it will stand you in good stead in the future)... oh, and don't be afraid to re-invent the wheel... I've learned a hell of a lot about wheels by re-inventing them again and again

Last edited by Adam Sargant : 11-09-2006 at 08:49 PM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #10 (permalink)  
Old 11-09-2006, 09:32 PM
Moderator
 
Join Date: Nov 2006
Location: Melbourne, Australia
Posts: 159
tobyhede is on a distinguished road
Default

I use and recommend Xampp for installing the complete LAMP stack. Just works out of the box and saves messing with configuration while you're getting started. (And believe me, that stuff can take a lot of grunt work to get off the ground if you don't know what you're doing).

There are heaps of online materials.

I would start with a nice, easy project ... a Blog application is ideal. Making your own blog software will teach you the essentials - and it's just about the simplest application you can make.
__________________
toby hede
---------------
Toby Hede’s Blog on Ruby, Rails, User Experience and Stuff
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #11 (permalink)  
Old 11-10-2006, 02:28 AM
Junior Member
 
Join Date: Nov 2006
Posts: 27
duhshuh is on a distinguished road
Default

Quote:
Originally Posted by tobyhede View Post
I use and recommend Xampp for installing the complete LAMP stack.
Another vote here for XAMPP... I've built many web servers and this is a dream come true.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #12 (permalink)  
Old 11-10-2006, 04:49 AM
Junior Member
 
Join Date: Nov 2006
Posts: 22
ditto is on a distinguished road
Default

I've tried XAMPP twice, but both times the MySQL service wouldn't start. Eventually I just decided to install Apache/PHP/MySQL myself. So far, that's worked fine for me and it was interesting to do.

A bit more on topic, I've been meaning to learn PHP and MySQL for a while, but I've decided to finish learning Python first.

Last edited by ditto : 11-10-2006 at 04:55 AM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #13 (permalink)  
Old 11-10-2006, 06:43 AM
Junior Member
 
Join Date: Nov 2006
Location: Kaunas, Lithuania
Posts: 14
andrius is on a distinguished road
Send a message via ICQ to andrius
Default Look at WordPress code

Another (a must) option is to have a look at some mature open source software PHP code. A good start would be to download the latest version of e.g. WordPress or phpBB, or Gallery 2, install it on your computer, and dive in! All these are great pieces of open source software.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #14 (permalink)  
Old 11-10-2006, 03:40 PM
Junior Member
 
Join Date: Nov 2006
Posts: 4
scoby is on a distinguished road
Default

I'd recommend sitepoint's books that were mentioned above for PHP as I found the organisation of code was quite good.

The code from the first examples were expanded on and used again as the chapters progressed. It was mostly Object oriented and after working from the examples, I think the code I produced was of a better quality than before.

At the moment I'm really enjoying working with cake which is an MVC php library. It may not suit you if you're just finding your feet with php but learning from other people's goog code can be very useful.

Good luck.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #15 (permalink)  
Old 11-10-2006, 03:59 PM
Senior Member
 
Join Date: Nov 2006
Location: Toronto
Posts: 144
kthdsn is on a distinguished road
Send a message via AIM to kthdsn Send a message via MSN to kthdsn Send a message via Yahoo to kthdsn Send a message via Skype™ to kthdsn
Default

It seems like most people who learn php already have a programming background. I speak (x)html and css but no programming. Is php the best thing to start with or would you recommend learning something else first?

I found it really difficult to grasp the basic concepts, loops and arrays for example. I've got the hang of those now, in theory at least. I have yet to use php with other files or databases, but I am comfortable handling form data eg. a contact form.

I found mysql really difficult to understand and I am a lot more comfortable with sqlite. Would you suggest I move on to mysql or stick with sqlite?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #16 (permalink)  
Old 11-14-2006, 11:52 PM
Junior Member
 
Join Date: Nov 2006
Location: Roswell, GA
Posts: 19
I AM is on a distinguished road
Default

Quote:
Originally Posted by trekr5 View Post
Hello

I'm teaching myself PhP/mySQl. How long would it take to become really good at it?

Also do you know of good online resources that I can use? Is the most intuitive way to learn to think up projects (do some free work for yourself and other people) and practice new skills that way? I've found just reading the book(by rote) and then practicing the commands is pretty boring and doesn't interest me.


What do you think?

I have a lot of programming experience, but a new project required PHP, so I started working with PHP. It took me about 2 months to get the syntax down. One of the hardest things is to learn complex queries for the Database backend. (I already knew this.)

If you don’t have any programming experience, it may take awhile to learn the more difficult functions and how they apply.

I would suggest that you create a project or help someone out, because it forces you to solve issues that you would not have thought up yourself.

I use PHP: Hypertext Preprocessor (the link is php.net )especially the functions areas. At the bottom other users have put their code and other issues they have solved.

Last edited by I AM : 11-14-2006 at 11:56 PM. Reason: trying to get the PHP: Hypertext Preprocessor to say php.net
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #17 (permalink)  
Old 11-16-2006, 02:21 AM
Junior Member
 
Join Date: Nov 2006
Location: In A House
Posts: 17
Indifferent is on a distinguished road
Smile

For basics you can go to this cool site: PHP Video Tutorials - Learn PHP the easy way!
PHP: Hypertext Preprocessor is, the best, check there when you need any info.

Once you got the basics, just look around on google for tutorials to help you build a blog, then you can move on to a content managment system, then a forum, then maybe a shopping cart adding features as you go along (e.g. add comments to your application or ratings, or user profiles/control panels etc etc.. Till you get comfortable with making applications, then if you want, you can go and do some more advanced stuff with it.

I'm saying this, but I'm still learning it myself. lol
__________________
In the arms of an angel.
Fly away from here.
-- In The Arms Of The Angel - Sarah McLachlan

These wounds won't seem to heal
This pain is just too real
-- My Immortal - Evanescence
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #18 (permalink)  
Old 11-20-2006, 12:23 PM
Senior Member
 
Join Date: Nov 2006
Location: Ballarat, Victoria, Australia
Posts: 165
aussieNickuss is on a distinguished road
Send a message via MSN to aussieNickuss
Default

About three years ago I bought PHP and MySQL Web Development -> Amazon.com: PHP and MySQL Web Development: Books: Luke Welling,Laura Thomson and I learnt the basics (and more) in about 1 month and after about 6 months wrote my own shopping cart software which I sell to many of my clients.

I started out on the online PHP and MySQL tutorials but i found having a book to reference complete with its own tutorials sped up my learning.

It helps if you have (x)html down pat first though.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #19 (permalink)  
Old 01-08-2007, 05:23 AM
Senior Member
 
Join Date: Nov 2006
Posts: 440
Lauxa is on a distinguished road
Default

I've done one php/mysql project; it was an online wishlist for compiling links to different products that you would want and if people buy it for you they can mark it so that two people don't get the same thing. It worked, but the code was so bad! And then my server went down and the database got deleted and I hadn't written an install db script, so I'm not sure if I could even recover it. Maybe I will rewrite it since it was a pretty useful tool and my parents got me some neat gifts from it. I have another project that I really want to start, but I would like for the code to be written better for that one.

I am wondering if anyone can reccommend some php best practices. I have been reading some about it and it talks about things like database abstraction classes, etc. I have been really fascinated with the ideas of Tony Marston who developed the open-source Radicore framework (www.radicore.org). I am considering using his framework, has anyone tried it out? What do you think, could using an open-source framework help me get to the point of producing better quality code faster?

Thanks for any insights!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #20 (permalink)  
Old 01-08-2007, 10:55 PM
Moderator
 
Join Date: Nov 2006
Location: Melbourne, Australia
Posts: 159
tobyhede is on a distinguished road
Default

I've been using the CakePHP framework in several projects in my day-job. Works really well, and is a clone of Rails (as much as that is possible in PHP), which is what I use in my non-day-job projects.

Once you've got the basics down, you really should use a framework ... the productivity gains are worth the learning curve.
__________________
toby hede
---------------
Toby Hede’s Blog on Ruby, Rails, User Experience and Stuff
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #21 (permalink)  
Old 01-10-2007, 11:05 PM
Senior Member
 
Join Date: Nov 2006
Posts: 308
Minsc is on a distinguished road
Default

Quote:
Originally Posted by trekr5 View Post
I'm teaching myself PhP/mySQl. How long would it take to become really good at it?
Depends on the other languages you used and for how long(and mostly programming in general)..

You'd definately be good at it after three years...

Once you know one language, you won't have much trouble learning another.

Techno music will also make you more productive...
And there's 40 charecters in a line of code. (for me and C++ it's very accurate, not sure about other conditions; will help you count lines, but you could just write a program to do that(although PHP would be a pretty bad choice but I've never used it from the command line))

Quote:
Also do you know of good online resources that I can use?
I'd just learn the syntax and use it.
php.net will help you learn the syntax, but it might be hard to r