1 person found this helpful
Read the documentation. Read other people's code. Read lots of blog posts.
Watch videos about code. Watch coding sessions.
Write code. Get code reviews. Test it. Lather, rinse, repeat. Beta test. Dogfood your products. Ship!
Play with code. All. the. time.
Ask specific questions. Ask followups when you don't understand. Accept constructive criticism.
Learn new things. All. the. time.
Keep good notes; you'll need them later. There won't be a test, but your memory will fail you at some point.
Whatever tool you use, have a rationale and be ready to back it up. There's not necessarily a "wrong" answer, but having no answer at all is worse than even a "bad" answer.
Think. Reason. Exercise your logical skills. Computers are all about logic.
Learn as much arithmetic, geometry, trigonometry, and calculus as you can stomach. Will you use all of it? No, probably not. But will it come in handy? Yes, absolutely.
Learn the fundamentals. Learn an assembly language. Understand how numbers are represented internally and how floating point works. Understand latency and bandwidth -- not just wrt networking, but storage and memory as well.
Get a feel for how operating systems, interpreters, and browsers work from the lowest level to the highest abstraction. You don't need to understand each level perfectly, but you should understand what's going on.
Be patient. Becoming a good developer will take years. And even then, you'll probably look at your code from yesterday and wonder, WTF? How did I write that? Don't stress over it, though -- learn from it and move on; don't fixate.
Put yourself in other people's shoes: not everyone may be as well off as you are. Build with accessibility in mind so that your blind or deaf user can still use your app. Build so that your color blind user can still tell the difference between something good and something bad in your app.
Talk with others. Online and offline. Experience life. The more experiences you have, the wider your own viewpoint, and personally, the more likely you'll be able to address people's problems.
Lastly, don't forget: Perfection is the enemy of good enough. Keep it simple. Don't repeat yourself. Try, try again.
That should be a good start.
That is a great answer!! Nice! I agree especially about the part where you talk about code review. I've learned so much just from letting other people read my code because from that review, I usually discover more optimal ways to achieve the same solution.