Live data from Hacker News

Your identity ≠ Your code

collectiveidea.com

11–20 of 39 posts

Re: Your identity ≠ Your code

#11

Earlier quoted context omitted.

Yeah, and in terms of getting a job, I think it's well-accepted that your code reflects how good you are as a developer...

That's true, but my job isn't my identity either.

Yes, but it is part of your identity. That said, while I enjoy my job, and take some satisfaction from it, it isn't the whole of my being. My family, faith, and hobbies define who am I more than what I do.

Re: Your identity ≠ Your code

#12

The easiest way to open yourself up to accepting criticism is to realize you are not the smartest person in the room, so to speak. It is never about being the smartest person because at some point even the smartest person will be replaced. I've learned to accept criticism by realizing that it's not about where I am now but where I am going. As long as I can look back on code I've written in the past and think to myse…

This is so true. I welcome criticism because it forces me to evaluate my work critically and make changes if need be.

I agree with your comment about hiring the best. Would you rather have the 'best' [1] programmer who is also a team cancer or a group of good programmers who individually aren't better than the best guy, but as a group deliver better results?

[1] 'Best' can be defined so many ways that without a definition saying they only hire the best says very little.

Re: Your identity ≠ Your code

#13
post #2

I agree, and I think this is probably a response to the recent post that stated GitHub can be your resume. However, one thing I've learned in recent tech interviews, and I'm a senior developer, is that if you don't provide good code in those interviews, you will fail those interviews. Therefore, regardless of the method you use to hack, you better be prepped for writing some solutions to well known problems quickly a…

I'm the author, and no, this was not in response to that post. However I don't see them mutually exclusive.

I'm fine with Github being someone's resume, and in fact the less concern you have over other peoples' opinions of your code, the better code you'll actually write. It's like anything, practice makes "better" (not perfect) :)

I think code is a qualifier for evaluating a candidate, but that's not the main indicator. In fact, I suspect someone won't go very far if all they do is plagiarize other peoples' well written code.

I could be wrong though, I just don't have the balls to pull it off.

Re: Your identity ≠ Your code

#14
post #3

On the other hand, your code is definitely a part of your identity, and projects that are awesome got that way because people poured themselves into their work. For me, only the pieces I'm passionate about become part of my identity.

I'm the original author, and I agree with your point. I do think the things you produce are part of your identity. It's when a person mentally replaces "part of" with "is" that it becomes dangerous.

We can be so much more than the artifacts we create.

Re: Your identity ≠ Your code

#15
Stop equating bad code with bad developers. Stop equating code criticisms as a knock against you as a person.

To me, what I find jarring is how common bad code is and how incredibly rare well-designed systems and good code are. It seems obvious that the causes of bad code are numerous (only one of which is unskilled developers) and the conditions that allow good software to be created are very rare. You have a lot of "goldie-locks" variables that ruin everything if out of a narrow range. One of these is time pressure. If there are tight, rigid deadlines the code will turn bad, but if there's no sense of time pressure at all the code will usually rot in a different way (becoming increasingly "clever" and impractical after the project is essentially finished but no one wants to admit that).

I've come to the conclusion, over the years, that getting mad at people for "writing bad code" is both useless and wrong, because (1) you really don't know what conditions caused the code to become bad, and (2) it means you make an enemy of the one person who can help you out. I've generally come to view standing code-quality problems (and the lack of budgeted time and resources to fix them) as a managerial fault.

Re: Your identity ≠ Your code

#16
post #3

On the other hand, your code is definitely a part of your identity, and projects that are awesome got that way because people poured themselves into their work. For me, only the pieces I'm passionate about become part of my identity.

I'm the original author, and I agree with your point. I do think the things you produce are part of your identity. It's when a person mentally replaces "part of" with "is" that it becomes dangerous. We can be so much more than the artifacts we create.

Right, when I got my current gig, I took a HUGE ego hit because I went from just committing stuff to getting absolutely everything code reviewed, and that means bugs in my code were pointed out before I'd had a month to think everything I'd done earlier was crap :) You definitely need to be more to yourself to weather harsh lessons.

Re: Your identity ≠ Your code

#17

The easiest way to open yourself up to accepting criticism is to realize you are not the smartest person in the room, so to speak. It is never about being the smartest person because at some point even the smartest person will be replaced. I've learned to accept criticism by realizing that it's not about where I am now but where I am going. As long as I can look back on code I've written in the past and think to myse…

It's alright (and should be encouraged) to enjoy programming. I'm not sure it's worth being "bold" and "creative" though. For me, I'm keenly aware of my limitations. I'm human and I'll screw something up, or forget why I did something "clever" when I look back at code I wrote 6 months ago.

There's something to be said for taking the simplest possible path. There's a temptation to "show-off" by doing something complicated. That generally leads to over-engineered solutions and difficult to maintain code. Good criticism would be pointing out a simpler solution.

Re: Your identity ≠ Your code

#18

The easiest way to open yourself up to accepting criticism is to realize you are not the smartest person in the room, so to speak. It is never about being the smartest person because at some point even the smartest person will be replaced. I've learned to accept criticism by realizing that it's not about where I am now but where I am going. As long as I can look back on code I've written in the past and think to myse…

I think this is the most important lesson that I learned in Grad. School. Taking a few courses in abstract mathematics quickly strips away any illusion that a scale of "smartness" is anything but flawed. The best you can get beyond a certain level of intelligence is improvements based on either subject level experience (intuition in the mathematical fields) or conscious changes that you do on a day to day basis. Unfortunately, this kind of requires that one is open to not being so dickish about the validity and absolute cleverness of one's solutions and be open to learning new stuff. Sad to say this but I agree with your assertion that both engineers and companies that hire them suffer under the delusion that intelligence is correlated with trivia know how. I have no problem with companies believing this (groups don't generally have to be as smart as individuals) but individuals who are under the impression that they are "rockstars" can be rather trying to work with.

Re: Your identity ≠ Your code

#19

The easiest way to open yourself up to accepting criticism is to realize you are not the smartest person in the room, so to speak. It is never about being the smartest person because at some point even the smartest person will be replaced. I've learned to accept criticism by realizing that it's not about where I am now but where I am going. As long as I can look back on code I've written in the past and think to myse…

> The easiest way to open yourself up to accepting criticism is to realize you are not the smartest person in the room

I think that's irrelevant. Every human being is stupid. Saying you're the smartest person on the room, in absolute terms, is analogous to saying you're the smartest termite in the planet.

Even if you're much smarter than others, that's irrelevant. Suppose the smartest person on earth is right twice as often as other people. That might sound like you're brilliant relative to others. But looking at the bigger picture that just might mean that you're wrong ~80% of the time, and they're wrong 90% of the time. From this angle, even the smartest person on earth is stupid.

And I don't think the real numbers are too far from that. Human beings are imperfect, our perception is incomplete, our sensors fail and our brain has more bugs than windows vista. You cannot trust yourself. You're stupid, and it would be even more stupid to not admit that.

We're all stupid. But the smarter of us understand that, and often correct themselves. While the less smart, are the ones who think they're smart. And insist on their mistakes.

Re: Your identity ≠ Your code

#20
post #3

On the other hand, your code is definitely a part of your identity, and projects that are awesome got that way because people poured themselves into their work. For me, only the pieces I'm passionate about become part of my identity.

I'm the original author, and I agree with your point. I do think the things you produce are part of your identity. It's when a person mentally replaces "part of" with "is" that it becomes dangerous. We can be so much more than the artifacts we create.

One thing you didn't mention in your article, but which I think is a relevant and interesting observation to make, is that 'your code =/= your identity' works both ways.

It's not just that you should not project messy code onto someone's personality/identity, but you also cannot reliably do the inverse. I know people who are meticulously organized in everything they do in real life, who hate to be around a mess, who always want schedules, predictability and stability in their daily life, who optimize their daily routines to perfection. Yet they write lousy code, take shortcuts, do not think the problems they solve through enough, etc. Likewise, I know people who are chaotic in every way, who don't adhere to many of the things almost everyone else considers to be the norm, who have little to no self-discipline for mundane tasks, who are non-conformist by choice, and who are often perfectly aware of these shortcomings. Incidentally, I count myself into this group. Despite all this, I consider the code I write to be very thorough, organized, maintainable, proven to be very resilient to bugs, efficient, etc. The process that gets me there may not be the prettiest, thought-out, elegant process you could imagine, my workspace may be cluttered with 10 terminals, my temp dirs maybe full of old cruft, and so on, but still, I consider the products of my work to have all the qualities I seem to lack in real life.

So apparently, personality really doesn't say much (if anything) about the quality of the software you write. It's a profession that is so far from our daily lives that you cannot project one onto the other or vice versa, exactly like you already wrote.

Post reply on HN