I'm working on becoming a self-taught programmer. I've read a little bit through a lot of languages and I decided to start with Java and have been using it for several months now. I didn't have much of a problem since most my programs are relatively simple, or games that don't take much planing. That is until my last project I challenged myself with, making a client/server chat applications with a GUI. With only the idea in my head on how sockets worked and my newly learned syntax I started at it. Before I knew it I ended up with a jumbled mess of program that I was finding VERY difficult to work with and eventually I was just so ridiculous I couldn't get simple things to work and I had to delete everything and now I'm starting over. So I took it that I need some better practices.
Now for the questions. As someone who is self-taught I'm bound to develop several bad habits, and I do virtually zero planing before writing a program aside from the idea in my head, so:
- What are some good ways I might start developing better programming habits?
- When planning a program, are there any good methods of doing so?
- Besides experience, what else is it that I might need before trying to actually take on a big real-world project as a programmer? Like one for a job. (How many languages should I know, what kind of problems should I be able to handle, that kind of thing. )