Greetings everyone!I have been programming and doing web development for many years just for fun and on the side but it wasn't till recently that I fully committed to it. This past year. At the moment I have about 20 websites up and running that I am generating some revenue off of and looking to take a break from launching sites to focus on learning. I am self taught (Google, Youtube, Forums, etc,.) with no college experience and and wasn't able to graduate high school either. Everything I have so far learned I have done so in no specific order from various sources. So I feel I was unable to learn everything properly. That I have developed bad habits as a result.

Now that I am generating an income and I don't have to worry about a normal job I have the time to devote to learning all of this properly. By all of this I mean programming (HTML, CSS, PHP, Javascript, etc,.), seo, affiliate marketing, regular marketing, etc,. I'd like to 'relearn' everything from the ground up. I'd like to learn everything the proper way with good habits this time.

This brings me to my question/s. With all of this being said. Do any of you have advice on where I should start? I'm not looking to learn anything specific first. I'm not even sure where to start. As I said before I didn't have much for an education so when I say relearning everything I am going as basic as even relearning to type, spell, (overall grammar), relearning the programing languages I know from scratch, and more.

My main goal is to learn to build my own sites using HTML, CSS, and Javascript. After I am fluent enough with that I'll move on to PHP, MySQL, server side programming, and implementing the PHP into my websites I have made to make them more dynamic. Then naturally after that I'm thinking maybe I should learn SEO, and affiliate marketing and so on. So yeah, any advice, thoughts, or opinions would be great and appreciated. I'm open to anything. I know most of this stuff just not on a professional level and I assume I learned it in a way that made me develop bad habits. I'd like to start over fresh. I think it will allow me to be a better programmer. I guess the best way to tell me is to assume your giving advice to someone who knows very little about all of this. Thanks in advance and sorry for the long message!

Personally, I prefer a good book for getting a solid grounding in a subject. I'd recommend getting a good book on each subject and using that as your foundation. A great JS book to start with is DOM Scripting by Jeremy Keith, and it gives a really systematic introduction to thinking in JS and coding it unobtrusively. There are lots of other books, too, of course. Perhaps check out Crockford's The Good Parts book on JS.

Hi, i'll prefer the book of paul dietel and hanery dietel these are the best book of learning programimng languages, there books are How to programme in java, how to programme in c++ and many more. rather than that there are alots of book of them. though these series i'll recomand the w3school site for learning the programming site.

First of all, good on you for taking a step back to think about these things, I've had to do it a few times since it's very easy to pick up bad practices/habits without someone watching over you and pushing you in the right direction.

I agree with the guys above that books might be a good option for this, as they tend to go into more detail and give a solid understanding of the topics they are teaching. Online tutorials can be a bit brief, giving you enough information to produce the end result without any understanding of how it really works.

This may already be something you're educated on, but it could be a good time to learn about how the web works at a more fundamental level, how servers, requests etc. work, essentially how everything fits together, and how it interacts with the languages you use. When you move on to programming languages, if you already know PHP (for example) it could be useful to pick up a new one to learn the basics on, even if you don't necessarily want to stick with it, since so many core programming principles transfer from language to language. It could make the whole process a lot more interesting, rather than working through a book and trying to skim over the parts you already know. I did the same thing when switching from VB.Net to C# a while ago, and it's surprising to see how learning C# from the ground up actually made me much better at using VB as well, when I could of just as easily made the switch as fast as possible, bringing the bad habits with me. The same logic could be applied to other languages as well, if you went back to look at the basics of HTML, it could be a good opportunity to pick up the new stuff that's in HTML5 as well, if you haven't already. 2 birds with 1 stone and all that. There are probably some books/tutorials out there that teach HTML from the ground up with new additions included.

First of all, good on you for taking a step back to think about these things, I've had to do it a few times since it's very easy to pick up bad practices/habits without someone watching over you and pushing you in the right direction.

I agree with the guys above that books might be a good option for this, as they tend to go into more detail and give a solid understanding of the topics they are teaching. Online tutorials can be a bit brief, giving you enough information to produce the end result without any understanding of how it really works.

This may already be something you're educated on, but it could be a good time to learn about how the web works at a more fundamental level, how servers, requests etc. work, essentially how everything fits together, and how it interacts with the languages you use. When you move on to programming languages, if you already know PHP (for example) it could be useful to pick up a new one to learn the basics on, even if you don't necessarily want to stick with it, since so many core programming principles transfer from language to language. It could make the whole process a lot more interesting, rather than working through a book and trying to skim over the parts you already know. I did the same thing when switching from VB.Net to C# a while ago, and it's surprising to see how learning C# from the ground up actually made me much better at using VB as well, when I could of just as easily made the switch as fast as possible, bringing the bad habits with me. The same logic could be applied to other languages as well, if you went back to look at the basics of HTML, it could be a good opportunity to pick up the new stuff that's in HTML5 as well, if you haven't already. 2 birds with 1 stone and all that. There are probably some books/tutorials out there that teach HTML from the ground up with new additions included.

I wish you the best of luck!

Thank you all for your response. Yes, I agree totally. I plan on starting at the very basics. For example, I would like to know not only how to program a piece of code to complete a task but WHY that piece of code functions the way it does. I want to know how everything works behind the curtains. so to speak. I am currently developing a training/teaching environment for my self. Been sticking to it and I am picking it all up very well.

I have built my self a daily schedule for learning. Works sorta like going to school. I have a subscription to Lynda.com and utilize a few other sites like TheNewboston.org, PHPAcademy.org, Google, and more. I have notebooks for taking notes, flash cards for memory exercises, Netbeans and other IDE's for follow-along-programming., etc, etc,. I have 4 Language courses. PHP/MySQL, HTML5/CSS (works good as now I can learn HTML5 from a fresh start), JavaScript, and programming theory course that I have found useful. I have some learning disabilities so the later course helps me to learn new ways to learn in general. To retain the information and to challenge myself to think more strategically and abstractly. And some other minor courses for Server Management (What the server does to process the code and how/why it happens), learning Dreamweaver/Photoshop, And have started running a linux box on my local network that works as my local testing server.

I have the entire mock college/school experience now. Not what I was shooting for but it works. Even have a white board for concepts, and general note taking while i'm pacing in my room. May seem a bit overboard but I've never been able to retain much information and has always taken me x10 longer to learn something than my friends but this seems to be working. Again thanks for the reply's! =)