(no title)
rtikulit | 4 years ago
1. Be good at your job (aka write good code).
2. Be easy to work with.
3. Be a member of the prevailing tribe.
4. Be charismatic.
With all four, you're a superstar. Any three, great career. Any two, average career. Just one, unstable employment.Only one is directly functional, three can be trained to some degree, and one can be faked adequately if absolutely necessary, but it can be mentally unhealthy.
If you don't understand why you aren't getting ahead, apply this model and train a weak category. I came up with this 30 years ago when a young man with limited skills and experience asked me “how do I succeed?” and I was looking for universal factors.
It also shows how to have a great career while being bad at the job. Oh, and it doesn't cover sociopathic strategies. :-)
ChuckNorris89|4 years ago
rtikulit|4 years ago
tomerv|4 years ago
Same with #6 which is an expansion of being charismatic.
lazyant|4 years ago
nunorbatista|4 years ago
The issue I have now is with no. 3. I just can't be part of the tribe I'm in right now and believe me I tried. I care about my colleagues, even the ones that are harder to work with, but although I like the overall mission of the company, the mediocrity is real and I just can't get on this boat.
I've been told I'm charismatic and this has been an advantage, but I recognize this is not something everyone can just decide to be. Social skills are a long learning process and I often think back at my young days working at the pizza restaurant as a place where I learned the most at this level.
I honestly believe the no. 3 is the harder one to grasp because it's the only one that it's not depending on you: you can work on all the other points (i.e. be a better dev, work on how you accept feedback or how you work on your charisma), but at the end of the day, if you can't get behind the values of the tribe, the only option you have is to fake it. This is what I've been doing.
ravenstine|4 years ago
When people say this, I don't know what they mean.
What makes code "good"? Everyone's answer is different, other than that perhaps most of us agree on things like YAGNI, DRY, and KISS... more or less.
I'm not even sure that any version of "good" code is all that influential on one's career. It should probably be #4 on your list rather than #1. Most people would rather with work with a charismatic team player who's easy to work with whose code is adequate over a 10x developer who's a jerk.
This isn't to say that good code (in the abstract sense) isn't important or that writing good code isn't a part of one's success; if your code is really bad then you're way more likely to be let go from your job. But for a likeable person, is it really so important that they write good code rather than adequate code? Maybe. I kind of think not, but mileages may vary.
theamk|4 years ago
"good" code is the code that you peers consider "good".
That could be because the engineer is writing the code which conforms to all style guides and uses the principles that existing codebase uses; or, in some places, this could be because engineer writes code which performs exceptionally well; or, in other places, this could be because engineer writes code very fast (you probably want to avoid those).
unoti|4 years ago
> When people say this, I don't know what they mean.
Code does something for the business (or for the customer). Good code both does what the business needs, but is also possible to quickly and easily modify and extend as the needs of the business change.
These two characteristics, that the code should fulfill the needs of the business and also be able to grow, imply a number of other characteristics of good code. It should be easy to read so you can scale the developer force up and down easily. It should be testable, to facilitate rapid changes and health within the code base.
On the operations front, good code should have operational metrics and monitoring, so you can see that it's working well without digging too hard, and can see what areas need attention if any. It should operate in a reasonably trouble-free way, so you're focusing your time on what's next instead of problems caused in the past. Sometimes I hear of teams where the developers want to leave because they're continuously solving operational problems instead of doing feature development-- those teams should be working on rewriting/reworking their systems in a way that they operate trouble free, which is new development.
The goodness of code is determined by how well it serves its purposes-- both in the past as well as into the future.
Some of these these ideas and much more are well-covered in books such as "Clean Architecture" by Robert Martin.
francisofascii|4 years ago
smallerfish|4 years ago
rtikulit|4 years ago
I'm not in anyone's tribe and so I had to learn to not exhibit tribal signifiers at work, which I think gets me half a point?
wcunning|4 years ago
MobiusHorizons|4 years ago
Wiseacre|4 years ago