Hacker News new | ask | show | jobs
by einhverfr 5101 days ago
I would say it is at least as essential for advanced programmers.

I have worked with a lot of programmers and I find you can basically throw advanced programmers into three groups:

1) Those who think about and figure out how to write maintainable code (these are a small minority btw!)

2) Those who believe that writing maintainable code is a matter of following coding conventions they are comfortable with, and

3) Those who just want to get stuff done.

I think that #3 will only make competent maintenance programmers. You do not want to be stuck maintaining a major app one of them built. #2 will be fine at extending existing frameworks once they become comfortable with them, but #1 are the ones who can create new framework code and make it work.

As for mentoring that's key (and was for my own development as a programmer and software engineer) but many people just never "get it" even with all the mentoring in the world. Either they are not listening or they are not drawing the right messages from it. This is tough because in order to get to #1, you have to be willing to question what your mentor says. If you mechanically follow it, you end up in the second category.

1 comments

My experience has shown that there is one more category - #1(creates frameworks) + #3(gets stuff done). In early stage startups, this is the kind of person you want. In big companies, usually #1 types are ideal.

Regardless, it does suck to have to maintain/extend apps written by #3.