Things I am not:
- a web designer.
- a web engineer.
- a web professionist, generally
- a web enthusiast
I don't think I can be described with such simple terms. My background is quite "anomalous":
I started studying html & css when I was 15 yo (more or less, 6 years ago) and few weeks after I had to accelerate and learn also PHP, cause of some kind of job from a friend, to do a website for him. Yes, I was the proverbial cousin that does a website for 200 $.
After a while I realized that I had some kind of potential, since programming ( at least imperative ) turned out to be straightforward to me. It actually made me somehow happy.
I will stop here the story, In short, now I can use 10+ programming languages and some other frameworks with relative ease and without any difficulties in learn new other technologies. When I'm asked to do something, I just do it. A couple of days to refresh the syntax if I've somehow forgot it, and BAM! ready to solve new challenges.
And now I'm here learning about FP (Scala) and playing around with Ruby and Prolog, and I'm having some jobs regarding Rails and Backbone.js (but looking forward to find something with Akka and Lift)
And I was forgettin' - I'm attending a bachelor course of Physics :)
1) If you want to be a better, or still, a good programmer, ALWAYS accept challenges,<br />
and possibly, if you are studying at university, don't limit your knowledge to the syntax, or keywords. Generally, if you want to learn it for real, you should discover the insights of the language you are facing, how to use combinations of operators, functions, interfaces, learn how to loop, make common operation of reading/writing, defining REST interfaces in the idiomatic way. If you are facing a new paradigm, always try to follow such a paradigm and don't fall in temptation writing with imperative style! Possibly, also, learn to use the most used legacy version, don't stick only to the newest. It gives usually more material to start with.
2) Learn to self-study. It's a way better mode to study a language. <br />
You know why when you do it, but mostly it gives you more the feel of the language. Possibly search for a getting started, watch on programmers.stackexchange.com, StackOverflow, Wikipedia, and generally all over the internet infos about it. Recent articles from already expert of it are usually the best.
3) Books, eBooks, online courses, are of course an help, but you have to use them or they will turn out to be useless. We all are lazy, that's why Ruby has been invited ( :) ), and this is a critical point to stick with. If you keep downloading pdf, now try to cancel them all, and promise to yourself that if you will download it, you will take time to read it, and them download another. If you feel like it won't help, remove it and stick with another. It will
4) Accept a job just if you don't feel any risk and you feel sure about it, otherwise it will turn out to be an hell. Try to see what usually is requested, watch for code online, get a feel of what it is and (5), then start to search for a job with your new favourite technology
5) Learn to develop a better debug! <br />
This will be always the most important thing. Every technology stack/environment chosen for a determinate project has its own way to show errors. Learn which are the common errors you will face, and then it will be much easier to correct all your design.
6) Use Chrome or Mozilla, if you are a web developer, and learn to use the developer tools. it will be SOOOOOOO much better then to interact and debug with the code executed in the browser.
7) Write code and comments in english. PLEASE. Once I had to upgrade a legacy system and comments and code was in german language. And it wasn't nice, although I know it.
Probably I missed some things, but this is all comes to mind at the moment. Thank You for reading, Cheers!
PS: Should I put the number in the title or is too much "out" like this?
I know my english is not that good, and as a student I recognize there can be many error - if you feel like a grammar nazi and you want to correct me, please PM :)