5 ms·
Ask HN: At what point am I a useful developer?
I've got about a year of procedural C under my belt, along with two years of Objective-C in the jolly realm of iPhone/OS X development. (Where else?)
I'm self-taught but I can build things on my own. If we look at the spectrum of developer skill as starting at "Cut-and-Paste Crap Cobbler" and ending in "I can write a filesystem," I'm probably about one quarter of the way in. I've imagined, built and shipped code that users have used.
I like the barn-raising feeling when your code starts to mesh together into a working system. Hacking is definitely fun -- enough that I've been doing it for hours a day for the last couple of years.
So at what threshold do I pass into being a useful developer? Is there a way to approach it faster? What do I do with my career once I am useful? Building someone else's boring stuff seems like it would kill the fun I have building things for myself.
- alexkiwi 16y agoUseful is a very broad term. My definition would be,once you can take a problem (whether it be your own or anothers) and solve it through code, your useful. Even if it is small, it's still useful
- danilocampos 16y agoHmm, okay, that's fair. But what about all the issues of code quality, modular architecture, and anything else that would make you a developer someone else would want to work with? When I first got started on the iPhone, for example, I could solve certain problems through code, but that code was crap. I cringe to look at it now.
- olalonde 16y agoI would suggest reading a book on "meta" programming. Code Complete would be a good starting point.
- danilocampos 16y agoThanks for the guidance. What benefits might I enjoy from meta programming?
- _pius 16y agoGenerically, the fastest way to go from zero to a useful member of a programming team is to learn and consistently execute classical software engineering practices (e.g. document code, use encapsulation and abstraction, write tests). Those practices aren't designed to optimize for individual programmer productivity, but to allow programmers of all different skill levels to work together safely and effectively.
- biotech 16y agoYou have a few years of programming experience, and you are aware that that's not a lot. It sounds to me like you are useful now. On a team with more experienced developers, I'd probably have you working with parts of our test suite and the build system. Of course, you'd have to understand object orientation, which I can't assume from your description.
- danilocampos 16y agoI mean, maybe I'm talking out of my ass here but can you really learn any sort of software development these days without also picking up OOP? In the beginning I knew OOP existed and was a good idea but it took the better part of a year to really grasp how to make the best use of concepts like inheritance and separation of concerns. With enough practice, though, it just becomes part of the fun -- building tidily organized systems, refactoring the code into specific objects to iron out redundancy. I'm weak on TDD, though. I have a hard time getting excited about writing unit tests.