4 ms·
For me these are three different classes. A good team needs all three of them. And in no way does this mean 'progress' from one level to the other. A hacker is
by julianpye 13y ago
For me these are three different classes. A good team needs all three of them. And in no way does this mean 'progress' from one level to the other.
A hacker is an explorer, using, exploiting and playing with new technologies, finding quick solutions, often a bit too bored to implement and debug them, but at the forefront of your development process. Their motivation is the fun of playing with new systems, often you can't motivate them with money. They love the chaos that new stuff brings.
An engineer is the overall architect, ensuring the system overall's flow and creating the tie between your teams roles. They love order and structure.
A developer is the person who implements the elements of the structure that the architect designed. They are trustworthy and can sit down from 9-5 to do boring code work. They often love clean implementations and efficiency.
- hartleybrody 13y agoThat's a really good point I hadn't thought about. I'm trying to imagine the career path of someone who just wanted to be a hacker. How would they progress? Also, would you say most engineers started out as hackers, or do you think it's possible to jump straight through the levels.
- rdouble 13y agoMost engineers as described in the article come from the developer group described in the article. I've found most hackers end up in systems administration, wall street, security, etc. Situations where there is a lot of work that involves systems integration, writing throw away programs to solve a specific problem, etc.
- julianpye 13y agoI think what you describe as your experience of hacking is mostly a process of learning through experimentation. Many people learn differently - some first want to understand by studying themselves and do not like to experiment. Others like to be taught and told and follow instructions. For managers it's really important to understand that learning curves are very different - someone may be faced with new technology and write functional code within the day, another person may need several days. It doesn't mean one is worse than the other over the longer term. I have worked with people who would read through programming language books and only then would start coding, while I met others who would start entire projects from sample code. Like yourself I really like the experimentation path. Regarding the career of someone as a hacker, there are many of them, they just have to find the right environment with enough freedom to work in. Difficult to find it in a corporate environment, but I have seen it happen.
- momerath 13y agoI hadn't thought about it in these terms until this post, and then your comment, but I also see three classes that already fit these terms in my mind. Mine are a bit different, though: Hacker: explorer, exploiter, duct-taper, as you say. Engineer: has a strong grasp of algorithms and "the metal". Often a good architect, but won't tend to come up with great new designs. May have trouble reading and working with non-engineers' code, or with nebulous 'specs'. Developer: if the Hacker is motivated by exploring the clever creations of others, the Developer is motivated by a vision of creating new things (cleverly if possible, but the realization of the vision is more important than the cleverness of the solution). Can be a good architect (and UX designer) if they can learn to control their impulses to innovate, rewrite, and adopt bleeding-edge languages and libraries. In this taxonomy, "trustworthy and can sit down from 9-5 to do boring code work" applies at least as often to Engineers as Developers; my archetype Hacker will start out with schedule/focus difficulties, but improve with age. I think as each of the 'classes' gains experience, especially in the presence of good examples of the other classes, they make progress in the other classes' areas of strength. The Hackers and Developers get better at writing code the Engineers can stand to work with; the Engineers and Developers accumulate arcane knowledge; and the Hackers and Engineers see more of the space of possibility that their tools give them access to.
- hoov 13y agoI look at this a bit differently. An ideal team would be comprised of individuals who possess all three skill sets, but with different specializations. Having a pure "hacker" and a pure "engineer" in the same group is setting things up for conflict. Along the same lines, having an "engineer" and a "developer" can lead the "engineer" towards being an Ivory Tower Architect. In a team that I'm a part of, I want to split the work around a bit. Sometimes people get to do prototypes, sometimes you have to sit back and write a spec or draw up an architecture diagram, and other times you have you have to do the boring coding work. I'm not sure about others, but I strive to be able to do all three roles when the project at hand demands it.