2006 / June 5th/ Closet developers
I get a fair number of people asking me “how do I do that?” — referring to web design, of course. Many of them are envious (usually after they find out my salary), but don’t realize how ridiculously easy it is to get into this whole web game.
Everything I’ve learned about this medium can be boiled down to one of two places: Web Associates, and my own little projects. These projects have always been with me. The reason I got so involved in web design was because of these projects, and the reason I’m still passionate about it is because of my projects.
If you ask me how to spot the best developers in the crowd — I’ll tell you to look at their projects. Most employers are afraid of this philosophy because they only see personal projects as a danger to their company — whether it be through lost hours or losing employees to their own self-employment. All the rockstars out there have their own projects, and it’s crucial to who they are. A developer without projects is like an artist without art. Knowledge with no application.
Learn by doing
Cal Poly’s motto is “Learn by doing” — and that’s where I excel. Give me a book to read and I’ll throw it on the ground. Give me a project to build and I’ll hack away until the sun comes up. For me, it’s all about a final product. Reading a book may increase my knowledge — but where’s the proof? Where’s my product? I always want something to show for my work, and I think that’s what makes me such a great worker.
The web is a great medium to apply this philosophy to because of it’s modular nature. Learning HTML is no greatly difficult task. Learn how an <a> tag works and you’ve all but got a functioning web page. Learn a couple of CSS properties and you can change the color of the page. It’s all about baby steps that build on one another to create a fully functioning web site.
If you want to learn how to build something on the web — build it. Let’s say you want to build something like digg cough paul cough Well, build it. You’ve got the example right in your face. All the HTML. All the asynchronous calling goodness. Everything. Learn by doing.
Build your career through your work, not your employers
The “old model” of employment used to rely heavily on who you worked for and what you did for them. The web is starting to break this pattern because people are realizing that it’s not so much what you know, but rather what you can do. This distinction is the difference between companies that get it and those that don’t.
Let’s take a hypothetical interview. We have Jeff and Bob, both interviewing for a junior software developer position at a brand new startup. They’re building the next generation bookmarking service, and it’s going to be awesome.
Bob comes into the interview straight out of college. He’s got 4 years of Computer Science backing him will all kinds of theories of software development and knowledge of half a dozen languages. He’s built all sorts of fancy-pantsy encryption algorithms and programs and even written his own HTTP server in Java.
Jeff never really took any classes on software development, but has been mucking around on the web for near 6 years now. For the past 2 years he’s been working on the side as a contract programmer and helped out with a few other local firms doings miscellaneous PHP work. However, Jeff loves to tinker. He’s built himself his very forum software for a Sims fan site he works on in his spare time.
Who would you give the job to? Bob — who knows how to do it? Or Jeff — who has done it? The proof is in the pudding.
How do I get started?
Start building now. Again, if you really want to get into the web business — start building web sites. Do you think you’ve got the design chops, but you don’t have anything to put in a portfolio? Why not design a website for yourself? Design is design, and most employers could care less if someone paid $5,000 for your design or whether you just did it for the hell of it. If it’s good shit, it’s good shit.
19 Comments
Make a Comment
don’t be afraid, it’s just text

Warpspire is the place that web professional Kyle Neath writes about the web. 


June 6th | #
“Give me a book to read and I’ll throw it on the ground. Give me a project to build and I’ll hack away until the sun comes up.” That’s some good prose man.
June 6th | #
That’s exactly why university assignments aren’t rushed to get done before the due date but are rushed to get done as soon as I can. Every minute I spend on assignments is another minute taken from projects, which I see as more important.
University will be wasted if all I come out with is a degree (or two, in my case).
June 6th | #
Great post. I definitely fall underneath the ‘tinkering’ category. I’m a professional IT auditor, closet web developer (odd, i know).
However, I’ve mentioned on my blog before about being overwhelmed on where to start. XHTML, CSS, PHP, Rails? So much to learn, so dependent on one another!
Since the post, I’ve done a nice job of doing a little of everything and still not understanding it all.
June 6th | #
Nice post. I think the last line sums it up excellently. Man, I should write that on my wall.
June 6th | #
I think I might hire Bob instead. His college education in software engineering has taught him (or should have taught him) how to approach a large-scale design problem. He knows how to break his design into modular components and to think big picture. He’ll be able to write clean code that is easily maintained and understood by others. Give him a couple years experience, and he’ll be even better.
Jeff may get things done, but he’s been learning in bits and pieces, from the bottom up. He wants to get something specific working, so he finds something that will work in that situation. His code ends up messy and disorganized. He’s been learning everything on his own, instead of from a college curriculum (including team projects) or a mentor at a full-time job, so he does things in a non-standard way. He hasn’t had to worry about whether anyone else can understand his code. He might be able to do just fine working on little PHP web projects for the rest of his career, but it’s unlikely he’ll be able to tackle any enterprise software development with his current skills. Maybe that’s fine with him, though.
Anyway, just an alternate viewpoint. :)
June 6th | #
Jennifer: But what’s the difference between enterprise development, and other development? :)
June 6th | #
Hmm. I side with Jennifer–though I’d take her analysis even farther. Let’s assume Bob had to get through all the fairly difficult, entry-level weeder classes. And since he completed those ambitious projects (a webserver? dang), he’s proven he can “get things done”. So he completes projects, and does well under stress (school’s hard), and has a larger education he can draw on (non-CS courses). He seems like he’d work better in a team environment (large or small) than Jeff, who’s never had to work under outside pressure.
There’s a larger point here though, outside of the hypotheticals. Really strong canidates are those who’ve got a mix of everything–maybe they did some freelance, some side projects, went to a good school, and held a few jobs. Experience and a wide skill set are where it’s at. And that’s RealTM.
June 6th | #
I’m just wondering — how many rockstar developers have you guys met that went to school for CSC?
I haven’t met one.
June 6th | #
Why do I need to go to college to learn to write clean code, Jennifer? Clean code is something that plenty of people preach about online - if you’re coding anything it makes sense to keep it clean.
Also, working in teams online is very easy and it doesn’t require any education to work well with others. Some people in college actually suck at working on teams.
June 6th | #
All of the developers I’ve worked with professionally (7 at last count) have had CS degrees, and most of them with additional degrees in Math/Econ. I’d also say that all of them are “rockstar” developers.
If what you’re getting at is that some people enrolled in CS classes are idiots, you’re probably right. But that’s life though, and I doubt that CS attracts or graduates any more chumps than any other discipline.
And you’re also right that you don’t need formal schooling to be talented at what you do. However, I doubt it hurts :)
June 6th | #
If I could tag the word “Enterprise” I believe it would be something along the lines of paperwork, bloated, developer-centric, red tape, and poor design to name a few.
Education is education, regardless if it’s self-taught or through other channels such as college. It’s not a matter of where the education came from, it’s the quality of what’s being learned, and the passion and motivation of the individual to pursue it further.
The two years I spent in college were the two years in which I learned the most horrid examples of web design and development ever. I’m not saying there isn’t good college curriculums available, but like other large-scale operations, a college itself, is an enterprise of education and the web changes faster than the curriculums can be updated.
While a student from a college might get more information sooner, it doesn’t mean that he or she will get better information. In the end, I would rather have someone who has taken apart and rebuilt a motors, than someone who has read a few books on how to do it. Certainly a generalization, but I think you get the point.
June 7th | #
I couldn’t agree more with the “Learn by doing” concept.
June 7th | #
Kyle, I’d say in enterprise development, you have to deal with a lot more complexity and overhead. You have to make sure your application or part of the application integrates with all these other parts. You’re working with many other developers. Maybe more than one language is being used. It’s just more complicated, so you’re left in a bigger pickle if you can’t design well.
Also, the rockstar developers I know did go to school for CS, though one or two didn’t actually finish their degrees. BTW, my viewpoint could be a little skewed by having gone to MIT. Many of the other developers I know went there too.
Hi Ben, I’m not saying you have to go to college to learn to write clean code, just that it helps. I can be pretty sure that Bob has learned these skills (though of course it depends greatly on the school and on Bob). There’s no telling with Jeff. He might have just learned enough to get things to work, without cleanly designing his code. Or he might be great, but you can’t tell just from these descriptions.
Justin, I think you may be right about the difficulty of keeping the teaching of web technologies in colleges up-to-date. But I still think the foundational concepts of software engineering are important to learn in a thorough way, such as how you learn in college. From there you can learn any new languages on your own, and I guess I kind of include HTML and CSS in that, even though they’re not quite the same.
June 8th | #
What you have left out is the all the projects that Bob has worked on could be in his portfolio.
Are college projects less than personal projects?
Also, a third option hasn’t been discussed: the one who has a college degree and real world experience.
June 8th | #
Yep, I got into web dev because of personal projects, and I’m really proud of the little I’ve done so far. Whenever I find something to work on, I learn so much more than I could ever learn any other way.
June 11th | #
This was an excellent blog post. I loved it! Very accurate and descriptive. I would totally Digg this post if it was appropriate.
June 13th | #
I completely agree with you, an addition to making your own projects will be doing your own business as well, with the reputation we can get from doing our online projects we have a better potential to start a small business and grow with it, instead of looking for a career and stay “employees”.
September 9th | #
[...] Closet developers Posted in the Work/Web Design category. [...]
September 10th | #
I personally am a “learn by do-er” . I think when you learn by doing you become a lot more accurate because of trial and error. When learning in a classroom you learn what works of course, but you don’t learn what doesn’t work like you do when you learn by doing. If that makes any sense at all?
Basically what I am saying is since I learned by basically trial and error, I can fix errors that other people are having easily because I have already been down that road.
I myself have never been a good classroom person. I learn so much better when driven by passion, not by someone shoving information down my throat.