This article has been copied and shared from eetimes.com post of 26/7/2013.
Before answering that question, let's examine how exactly hackers are different from engineers. That question (which you might say has already been asked and answered) hit me while talking to Richard Soja, distinguished member of the technical staff at Freescale Semiconductor.
Soja and I were discussing issues concerning cars. I was asking him how the best automotive chip suppliers like Freescale can get a few steps ahead of hackers to identify potential security holes.
Soja quipped: "To protect against attacks, you need to think like attackers."
Obviously. But Soja seems to believe that asking engineers to think like hackers is easier said than done. He explained:
Hmmm. That's interesting.
Still, I'm not totally sold on the premise that hackers and engineers are two different technology types with dissimilar brains.
So, first, let me list my questions, and why I think we need a better explanation.
1. Are hackers and engineers essentially two separate species? I wonder if hackers are born to hack and others are not. If yes, can we define two separate types?
2. One could argue that hackers and engineers are basically alike but display two different mindsets -- depending on the different projects they undertake. If so, how do the mindsets differ?
3. Another argument is that "hackers vs. engineers" merely describes a transitional process in one's career. For example, a budding engineer who doesn't have formal training or a coherent career direction might begin life as a hacker, but then gradually grow up to become an engineer through experiences working in organizations. If true, are we saying that engineers are the butterfly and hackers the caterpillar?
More important, I'm curious:
4. Can you teach engineers to become hackers and think like hackers? The butterfly reverting to caterpillar?
5. If yes, what's the trick?
Searching the issue of hackers vs. engineers, you can find a lot of commentary. Let's consider some of these opinions.
How to get out of the hacker mindset
A student completing his Master's in Computer Science was worried about jettisoning his "hacker mentality" as he starts his career in the "real world." He took part in a forum in shlashdot.org. He wrote:
Hacker-developer-engineer evolution
In his blog, Hartley Brody, author of Marketing for Hackers and The Ultimate Guide to Web Scraping, quoted from David Mosher's video presentation, "So,You Want to be a Front-End Engineer":
Engineers can become hackers
On the other hand, Kim Guldberg answered, "What is the difference between an engineer and a hacker?" in quora as follows:
MADISON, Wis. — There's a popular theory that
most hackers could eventually become engineers if they chose to do so,
but the reverse -- training engineers to become hackers -- is next to
impossible.
Is this true?
Before answering that question, let's examine how exactly hackers are different from engineers. That question (which you might say has already been asked and answered) hit me while talking to Richard Soja, distinguished member of the technical staff at Freescale Semiconductor.
Soja and I were discussing issues concerning cars. I was asking him how the best automotive chip suppliers like Freescale can get a few steps ahead of hackers to identify potential security holes.
Soja quipped: "To protect against attacks, you need to think like attackers."
Obviously. But Soja seems to believe that asking engineers to think like hackers is easier said than done. He explained:
-
Engineers, by nature, are good at creating positive things and
coming up with new ideas. But the idea of destroying their beautiful,
brand-new ideas doesn't come naturally to engineers.
Hmmm. That's interesting.
Still, I'm not totally sold on the premise that hackers and engineers are two different technology types with dissimilar brains.
So, first, let me list my questions, and why I think we need a better explanation.
1. Are hackers and engineers essentially two separate species? I wonder if hackers are born to hack and others are not. If yes, can we define two separate types?
2. One could argue that hackers and engineers are basically alike but display two different mindsets -- depending on the different projects they undertake. If so, how do the mindsets differ?
3. Another argument is that "hackers vs. engineers" merely describes a transitional process in one's career. For example, a budding engineer who doesn't have formal training or a coherent career direction might begin life as a hacker, but then gradually grow up to become an engineer through experiences working in organizations. If true, are we saying that engineers are the butterfly and hackers the caterpillar?
More important, I'm curious:
4. Can you teach engineers to become hackers and think like hackers? The butterfly reverting to caterpillar?
5. If yes, what's the trick?
Searching the issue of hackers vs. engineers, you can find a lot of commentary. Let's consider some of these opinions.
How to get out of the hacker mindset
A student completing his Master's in Computer Science was worried about jettisoning his "hacker mentality" as he starts his career in the "real world." He took part in a forum in shlashdot.org. He wrote:
- Since my academic work has focused almost solely on
computer science and not software engineering per se, I'm really still a
'hacker,' meaning I take a problem, sketch together a rough solution
using the appropriate CS algorithms, and then code something up (using a
lot of prints to debug). I do some basic testing and then go with it…
Even at my previous job, which was sort of a jack-of-all-trades
(sysadmin, security, support, and programming), the testing procedures
were not particularly rigorous, and as a result I don't think I'm really
mature as an 'engineer.' So my question to the community is: how do you
make the transition from hacker (in the positive sense) to a real
engineer… How do you get out of the 'hacker' mindset?"
- An "engineer" is somebody who takes the time to understand a problem, and creates something to solve that.
- Having done software from scales ranging from "quick
shopping cart application" to enterprise scale organizational
relationship management software, the only real difference between the
two is that with the latter, you create a large number of smaller
projects roughly the size of the aforementioned shopping cart
application, except that the "users" are often other pieces of the same
system. In larger systems, you'll be talking with other
developers who have built or manage the pieces your parts will
communicate with. You'll read more documentation, and it will be
generally of higher quality than the shopping cart scripts.
- Don't *ever* lose the "hacker" mentality - exactly what you described is what software engineering is.
Hacker-developer-engineer evolution
In his blog, Hartley Brody, author of Marketing for Hackers and The Ultimate Guide to Web Scraping, quoted from David Mosher's video presentation, "So,You Want to be a Front-End Engineer":
- A hacker can come up with solutions, but
maybe they can't look back after they've finished and realize how they
came up with the solution. They just kinda poke at things until they get
something that works…
- At some point, you level up and become a developer
and a developer understands best practices… and you use those best
practices to craft solutions but you don't really understand beneath the
best practices, beneath the abstractions.
- An engineer is someone who can get things
done, craft a solution - they understand the best practices, but they
also understand why they're using the best practices… [they] move into
an understanding of the platform as a whole.
- Hacker: Always trying new things, trying
to stretch the limits of what's possible or what exists… Linus Torvalds
is a great example of a hacker - he had two giant ideas that few thought
were possible - writing a free operating system and doing it with a
worldwide collection of volunteers. Once something is functional and
successful, the hacker moves on to another hard problem, like a serial
entrepreneur.
- Engineer: All of the definitions of
engineering that I've found were too complicated and missed the point,
so I propose this: An engineer is someone who takes something that is
known to be possible, and makes it fit within a given, limiting set of
criteria. Some common criteria are:
- within a fixed budget
- meet a performance benchmark
- exceed certain reliability requirements
- make it aesthetically pleasing
- must include a certain capacity
- meet arbitrary regulations (accessibility, environmental, paying living wages, etc)
Engineers can become hackers
On the other hand, Kim Guldberg answered, "What is the difference between an engineer and a hacker?" in quora as follows:
- For journalists and the general public a hacker is
someone who breaks into computer systems stealing information and doing
other malicious stuff.
For hackers the term seems to have expanded… Today being a hacker is more a question of mind set than just skill set. It's a curious individual, who has obvious talents and knowledge. He (and today sometimes also she) is somewhat geeky and obsessive in his interests, he is persistent and able to think out of the box. He is not bound by conventions and what is understood as possible or the right way of doing things and he has an open mind.
So the answer to your question must be. If an engineer has the above-mentioned mind set, he can be a hacker if he wishes and work hard at it.
No comments:
Post a Comment