3 ms·
The same thing that distinguishes a good (fill in the blank) from a great (fill in the blank). Passion, drive, perseverance, experience, patience, brilliance, e
by maratd 16y ago
The same thing that distinguishes a good (fill in the blank) from a great (fill in the blank). Passion, drive, perseverance, experience, patience, brilliance, etc. If you want to be a great engineer, the problem is that you don't see yourself as a great engineer already. If you saw yourself as a great engineer, you would emulate all those wonderful words I mentioned before, because, well, that's what great engineers are. Fake it 'til you make it.
- jerf 16y agoI am having a hard time coming up with a harder place to apply "fake it 'till you make it", because the way that will actually turn out is "fake it until your first big design project crashes and burns and possibly takes the company with it". Fake it 'till you make it is for social skills, not engineering, and while social skills factor into being a great software designer it isn't even close to the whole story. The computer does not care whether you are faking it, it cares whether you've got it.
- PakG1 16y agoI've been involved in projects where lead architects did indeed fake it till they made it. It scared the heck out of me once I found out what was going on, and the "making it" wasn't due to anything they themselves did, but in fact because of the team going above and beyond. It doesn't change the fact that in the eyes of senior management, this guy had "made it".
- jerf 16y agoThe topic of the day is great software engineers and I'm taking that to mean people who actually engineer software, not people who convince clueless management that they are great software engineers without actually being so. I acknowledge your point but I think it's not terribly related to mine. You may have had a "lead architect" but they clearly weren't even in the running for "great software engineer".
- gaius 16y agoVery true. I work every day on a system architected (in the loosest send of the word) by one of these types. Now he'd obviously been asleep in CS 101 where they talked about locality and big-O... But wide awake in whatever course teaches Applied Bullshit. He's gone off to another company now... He seems to veer wildly from project to project, saying all the right things and escaping to another role before the steaming pile of crap he's "designed" explodes. Bitter, moi?
- maratd 16y agoFirst, there's no guarantees in life. For every good developer that turns into a great developer, there's a good developer who turns into an asshole developer. There is no formula that leads to 100% results. However, if you want to be great, the first step is having confidence in yourself and believing that you are great. Second, there may be casualties along your path. A few projects crash and burn. Nobody is born great. They get there. You can't get there without experience. That's definitely on the list. The only way of gaining experience that I know of is through failure. The more catastrophic, the more you learn.
- bpyne 16y ago"Passion, drive, perseverance, experience, patience, brilliance, etc." You beat me to this list of qualities. The only minor disagreement is that brilliance shows up only after a good developer, who embodies your list of qualities, follows his/her interests and gets really familiar with a couple areas of the field. As an example, someone who enjoys hacking graphics at a low level will eventually become great at that area, but may be only good at language design. Our field is too broad to be great at everything.