In the past few weeks i have been studying PHP, HTML and CSS and now I can say that I now how to build sites, although I am not too good at it. The main problem for me is that I don't know what to do next, and by this I want to say that I've learned everything that was to learn in the books(the beginner ones), but there is a huge difference from what books teach you and what the market is looking for. I have tried making some sites, but I have run out of ideas and I don't know what to do next.
The main thing is that I am used to "doing my homework" after I learn something now so that I can understand it properly and remember it, but now I have no homework. Are there any sites that do this? I mean give projects based on the level of difficulty or something like that.
Thank you very much!
I suppose there are a lot of projects you could try and/or work on at this point; I can't really say exactly which would benefit you the most.
As far as PHP goes one of the more crucial skill sets for that field today would probably be database management. Any business with have databases, more than likely lots of them. It's essentially to be able to easily work with these databases and properly manage them. The more you can do with a database through PHP the better.
As far as HTML and CSS goes, I suppose the 'big' thing right now would have to be HTML5/CSS3 and working with responsive designs. Pages that easily adjust and scale to different resolultions and device sizes to accommodate the growing mobile market of tablets and phones.
You could try a series of projects that build on one another, starting with a user system. Try setting up a page that allows you to create accounts for your overall project. It would simply create database records for a user, storing essential information for the account (and of course preventing duplicates and any other necessary checks to make it work). You could expand upon this by then adding in a number of different systems, such as either a system to manage content, or just a system for managing data sets (pure information). In the end you are really building a few important things, all of them working with a database: a user system (and potentially a way to manage the users), a content system (allowing these 'users' to create, edit or remove content/pages/files on the server) and a simple database management system (basically allowing you to work with a database similar to something like phpMyAdmin).
All of your frontend work could be designed utilizing HTML5 and CSS3, maintaining a fluid and responsive design so that this site/system/project could easily be used on any PC, tablet or phone.
This is just one idea though. Again there are plenty of projects you could work on and many of them probably more useful. This would, if anything just be an exercise in coding but provide no use outside of that.
I suppose one final idea might be a sort of free-form and anonymous page editing system. You start with a main page that allows users to either 'create a new page' or 'open an existing page'. A database backend would simply manage these pages with unique identifiers. Then either using user IPs stored in your database or cookies/localStorage on the user's PC, you can manage individual user content on that uniquely identified page. If you load/visit a page using a unique identifier/url, you can add/edit/delete content/text/information that was added by you (checked via stored IP or cookie/localStorage). In the end you get a number of pages that allow users with that unique identifier to sort of create a custom page of their own liking (to an extent), but only allowing them to manage data that is identified as being theirs. I'm sure I could explain this better but again it's just a rough-draft of an idea you could try.
"Given billions of tries, could a spilled bottle of ink ever fall into the words of Shakespeare?"
I would suggest that the best thing to do is to build a web site about something you are interested in. That you may have something worthwhile to say about. Then it will be content driven rather than technology driven.
I have already built a web site about something that interest me, but I don't have money to lunch it so I am kind of disappointed. In fact that is why I want to learn or practice a few more things so I can get 100$ to lunch my site.