A few days ago a friend of mine asked me how he could improve his skills/knowledge of web application design and development. I had some recommendations for him, and it really got me thinking. How does one become a great web developer? It’s such a huge field that it’s hard to know where to start. Here’s what I’ve come up with so far:
Experience
I know many people are looking for a book, website or class that will make them a great web developer. After a lot of thought about how I became a (semi) decent web developer, experience really seemed to be reason why. You simply cannot become proficient at anything without doing it. A lot. And web development is no different.
Don’t believe all those “Teach Yourself X in 24 Hours” or WYSIWYG tools, you need lots of varied experience to become a great web developer. It’s rare having 1 job will teach you every part of web development, it’s such a huge field. The basic technologies/skills that are involved are HTML, CSS, JS, 1 back-end language minimum (PHP, Ruby, Python, Java, Perl), interface design, semantics, information architecture, systems architecture, database design and scalability. And that’s just a start!
Odds are you need about 2-3 years of experience before you can call yourself ‘experienced’. You need to write code, lots of code. Bad code, good code, messy code. Doesn’t really matter as long as you can look back at it in a few weeks/months and say “This code is crap!” (I do this frequently). You also need to break things, make mistakes and blow through a few deadlines before you can begin to understand the ’soft’ parts of software development.
Continually learn
I’ve heard this from lots of other bloggers and tech gurus. If you aren’t constantly learning and expanding your skill set, you will be left behind. Technology moves fast and keeping up is paramount.
Continually learning means everything from experimenting with new technologies, reading blogs and books to going to conferences and technology groups in your surrounding area. You need to expose yourself to as many new ideas as possible all the time. You are never ‘done’ learning and can take a break.
Being a web developer/programmer is like being a shark, you have to keep moving to stay alive.
Finally
Actually, that’s it. A lot less things to follow than I thought. Add comments if you have more ideas, I’m always interested in new information!
Things to read/check out
Don’t think that by reading these books and blogs you’ll instantly become a great web developer, I still consider myself average to above average.
Books
- The Pragmatic Programmer
- Becoming a Technical Leader
- In Search of Stupidity
- Hackers & Painters
- Blockbusters
- Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity
- The Best Software Writing I
- Behind Closed Doors
- Managing Humans
- The Mythical Man-Month
- Peopleware: Productive Projects and Teams
- The Non-Designers Design Book
- Founders at Work
- Good to Great
- Dreaming in Code
- The Art of the Start
- Maverick
- The Design of Everyday Things
- The Art of Project Management
- The Art of Innovation
- Building Scalable Websites
- Designing with Web Standards
- Bulletproof Web Design
- Web Standards Solutions
Blogs
- The Daily WTF
- Ajaxian
- ejohn.org
- High Scalability
- IEBlog
- miscoded
- Nate Koechley
- NCZOnline
- Quirks Mode Bug Report
- Quirks Mode Elsewhere
- ReadWriteWeb
- Scruffy-Looking Cat Herder
- Software Development in the Real World
- Yahoo! Developer Network blog
- Yahoo! User Interface Blog
- A List Apart
- Business of Software
- Coding Horror
- Joel on Software
- Scott Berkun The Department of Style
- techno.blog
- Bruce F. Webster