It's very hard to say this without sounding like i'm not respecting the effort you put into writing this or the knowledge and experience you have accumulated as to date (which i honestly believe is significant), so please don't take it the wrong way.
Sometimes you don't know what you don't know. Experience often teaches you a lot more than the best design pattern to use, there is a lot of gut feeling involved, especially when it comes to making a decision today about how you might need to modify a feature in the future - you get better at predicting the future with time.
I have been doing this for around a decade now, and while I've done a lot in that time, realizing you have gaps and that you need to do your time to gain experience is very key if for no other reason than not coming across as a know it all in the workplace.
There's a lot of people stuff too. I have found that junior developers, perversely, are more defensive about bad decisions than senior folks. They tend to be quicker to leap to conclusions or become attached to a particular technical approach to a problem. Of course, senior people make these mistakes too, but, I find, at a lower rate.
It's not universal. I have no doubt that there are kids with six months of experience who perform better than me after my six years. But, I'd also be willing to bet that's an exception, not the rule.
Very true, I think the defensive part comes from feeling comfortable with a limited toolkit. It's only natural to try push what you feel comfortable with, my experience is a lot of the more junior staff I work with are more pushy and emotional with their tech interests, however often relax and become more approachable if you provide guidance and help them learn something new in a comfortable environment.
Also, you've been through the process of writing things that later turned out to be hard to maintain/scale poorly/bad_attribute_x later on even when you thought it was good to start with. The more I work, the less surprised I am that my solution isn't the best one or that there was a situation/edge case I hadn't thought of.
Your focus on the benefit of experience is almost exclusively technical in concern- I think that is the not the primary classifier or motivator.
The technically adventurous are usually right, usually have what most could find ways to agree is technically a better plan, or has elements of it (elements that could stand to improve the technical nature of the product).
But technical superiority rarely has returns. And usually, for most companies, the returns aren't good, not good at all, and those tiny returns are not transferred to the pocketbooks of the workforce that can either hammer out the same old shift as everyone else, or who can go adventuring on genuinely good stuff that genuinely will operate far better. Good stuff, but which will ask much more of the workforce.
The thing with experienced people is, they're done making new experiences. And the thing with businesses is, they don't know how or haven't found grounds to promote exploration of advantageous technical work. This is an industry of get it done, make it work, and finesse and excellence are mired to fuck like every other industry everywhere and not a one of us has any idea how to unobstruct good work, nor do we have a workforce responsive to the call to action even when the possibility is striking them in the face.
There are definitely cases where the green-horns get uppity, absolutely a fact diving in beyond what they can back up in a discussion or technical proving. But classist discontent from those wanting to shake things up, finding a system of work where even those with marginal enthusiasm can participate in a high stakes game without being compelled to shit up the rest of their lives- that's far closer to the root, and it's disgraceful to me that we'd just pick on the enthused widely-read young ones as unexperienced and needing to be curbed, when usually in the work place there's not even a forum for that curbing to happen- the greenhorns are simply denigrated. Often by people who lack exposure to begin to state why. I'd caution that cautioning others that young-guns are dangerous and incompetent further reinforces excuses for this all too apparent denigration.
Thank you my employers all, who have been most kind in cooperating with me in sounding out a middle path between High Tech good ideas and practical and practiced. I think we've done great, and appreciate that we could dialog and discuss the paths without it coming down to the negative experience of the original post or slander of my ranks.
Or most of the other technologies that tend to be hyped around HN.
With experience one learns languages, OS and frameworks don't really matter that much.
What really counts is delivering solutions that the customers what to pay for and the consequent business value of investing in a specific piece of technology.
I'm coming up on 20 years, and still learning a lot, but far less about the tech, and more about how to work with different people/groups/orgs.
On the other side of the 'junior' definition is 'senior'. Have been looking at job listings the past few days (for a project I'm working on) and am surprised at how many posts for 'senior software develop' start with 'must have 3+ years of PHP development', and then add jquery or photoshop.
Don't get me wrong - not bashing on PHP (it's a large part of my bread and butter), but I didn't feel comfortable using the label of "senior developer" on myself till about 6-7 years in professional settings. Even then, I was conscious of many things I didn't know (obviously moreso than I was as a junior).
You know, I just realized--I don't think I've ever read a screed on "junior developers" written by someone with enough experience to actually have seen the entire progression play out (Donald Knuth would be a good candidate, if he didn't work in academia.)
Comments
It's very hard to say this without sounding like i'm not respecting the effort you put into writing this or the knowledge and experience you have accumulated as to date (which i honestly believe is significant), so please don't take it the wrong way.
Sometimes you don't know what you don't know. Experience often teaches you a lot more than the best design pattern to use, there is a lot of gut feeling involved, especially when it comes to making a decision today about how you might need to modify a feature in the future - you get better at predicting the future with time.
I have been doing this for around a decade now, and while I've done a lot in that time, realizing you have gaps and that you need to do your time to gain experience is very key if for no other reason than not coming across as a know it all in the workplace.
I still have a lot to learn too.
There's a lot of people stuff too. I have found that junior developers, perversely, are more defensive about bad decisions than senior folks. They tend to be quicker to leap to conclusions or become attached to a particular technical approach to a problem. Of course, senior people make these mistakes too, but, I find, at a lower rate.
It's not universal. I have no doubt that there are kids with six months of experience who perform better than me after my six years. But, I'd also be willing to bet that's an exception, not the rule.
Very true, I think the defensive part comes from feeling comfortable with a limited toolkit. It's only natural to try push what you feel comfortable with, my experience is a lot of the more junior staff I work with are more pushy and emotional with their tech interests, however often relax and become more approachable if you provide guidance and help them learn something new in a comfortable environment.
I think for senior people the notion of "you are not your code" tends to sink in after a few rewrites/refactorings or total technology replacements.
Also, you've been through the process of writing things that later turned out to be hard to maintain/scale poorly/bad_attribute_x later on even when you thought it was good to start with. The more I work, the less surprised I am that my solution isn't the best one or that there was a situation/edge case I hadn't thought of.
Your focus on the benefit of experience is almost exclusively technical in concern- I think that is the not the primary classifier or motivator.
The technically adventurous are usually right, usually have what most could find ways to agree is technically a better plan, or has elements of it (elements that could stand to improve the technical nature of the product).
But technical superiority rarely has returns. And usually, for most companies, the returns aren't good, not good at all, and those tiny returns are not transferred to the pocketbooks of the workforce that can either hammer out the same old shift as everyone else, or who can go adventuring on genuinely good stuff that genuinely will operate far better. Good stuff, but which will ask much more of the workforce.
The thing with experienced people is, they're done making new experiences. And the thing with businesses is, they don't know how or haven't found grounds to promote exploration of advantageous technical work. This is an industry of get it done, make it work, and finesse and excellence are mired to fuck like every other industry everywhere and not a one of us has any idea how to unobstruct good work, nor do we have a workforce responsive to the call to action even when the possibility is striking them in the face.
There are definitely cases where the green-horns get uppity, absolutely a fact diving in beyond what they can back up in a discussion or technical proving. But classist discontent from those wanting to shake things up, finding a system of work where even those with marginal enthusiasm can participate in a high stakes game without being compelled to shit up the rest of their lives- that's far closer to the root, and it's disgraceful to me that we'd just pick on the enthused widely-read young ones as unexperienced and needing to be curbed, when usually in the work place there's not even a forum for that curbing to happen- the greenhorns are simply denigrated. Often by people who lack exposure to begin to state why. I'd caution that cautioning others that young-guns are dangerous and incompetent further reinforces excuses for this all too apparent denigration.
Thank you my employers all, who have been most kind in cooperating with me in sounding out a middle path between High Tech good ideas and practical and practiced. I think we've done great, and appreciate that we could dialog and discuss the paths without it coming down to the negative experience of the original post or slander of my ranks.
Agreed. Put another way: less than 1% of the world runs on anything based on Node.js.
Or most of the other technologies that tend to be hyped around HN.
With experience one learns languages, OS and frameworks don't really matter that much.
What really counts is delivering solutions that the customers what to pay for and the consequent business value of investing in a specific piece of technology.
Did you tl;dr at the first break? :P
That's pretty much the message of the post.
I'm coming up on 20 years, and still learning a lot, but far less about the tech, and more about how to work with different people/groups/orgs.
On the other side of the 'junior' definition is 'senior'. Have been looking at job listings the past few days (for a project I'm working on) and am surprised at how many posts for 'senior software develop' start with 'must have 3+ years of PHP development', and then add jquery or photoshop.
Don't get me wrong - not bashing on PHP (it's a large part of my bread and butter), but I didn't feel comfortable using the label of "senior developer" on myself till about 6-7 years in professional settings. Even then, I was conscious of many things I didn't know (obviously moreso than I was as a junior).
You know, I just realized--I don't think I've ever read a screed on "junior developers" written by someone with enough experience to actually have seen the entire progression play out (Donald Knuth would be a good candidate, if he didn't work in academia.)