Taking a neurological imbalance and turning it into a morality thing is abuse. Even if unintentional. This is real. Parents look for simple answers like "give em the strap" but how is that less reductive than "give em the pill"?
447 karma · joined May 21, 2011
Taking a neurological imbalance and turning it into a morality thing is abuse. Even if unintentional. This is real. Parents look for simple answers like "give em the strap" but how is that less reductive than "give em the pill"?
However, I also had to shift my mindset towards trying to progress via small inconsequential chunks, rather than trying to "fix everything". E.g. the idea is to just show up to the gym - not exercise - but if latter happens, then sure, why not (and it usually does). I think it helps snap out of the failure avoidance mode.
- https://github.com/chjj/blessed
- https://github.com/yaronn/blessed-contrib
- https://github.com/Yomguithereal/react-blessed
(edited for syntax and also to clarify I am not affiliated with the above, just a fan)Underlying principle of maintainable code is "simply" that it is a concise and flexible expression of knowledge. The "simply" part is in quotation marks because, of course, it takes a good amount of self-awareness and meta-consideration to understand why some ways to express knowledge are better than others. There is also a limit to how "perfect" it can get, because it really depends on the audience too.
This is also why it's OK to let it slide sometimes and move on to more interesting topics - there are diminishing returns on splitting hairs, once broad strokes of good encapsulation and basic readability are applied.
Can't say I would disagree. A lot of folks these days just seem to append an HN/Reddit link to posts that get discussions on those sites. There's the blog as an expression of author's personality, and then there's the discussion space as an area with a life of its own.
Starting advantage does not mean you are not working hard now. Just means that you should do good things with that advantage. Make it shine!
Here is a shameless link to something I wrote on that topic; it complements the above article: http://unframework.com/orm-vs-key-value/
Any product that has persisted is actually a series of products sharing same name, but each targeting a different demographic - oftentimes even actually same set of people but at different life stages. And as sibling comments point out, it is all about just trying and trying (and also, it would seem, having super convenient access to millions of people to try things on).
In some ways, it might then almost be better to not have that person contribute to same codebase: to avoid ego pissing contests and to keep the opposing pressures in balance. The pressures being: delivering features on time on one hand, and keeping things clean and orderly on the other hand. Often, if the architect codes then they can't see their own mistakes, but have 20/20 vision of others' grubby flaws, and hence gain subconscious animosity towards external contributions.
That being said, an architect who does not code is even worse! This is where we get ivory tower Architect-as-title, and even less gets done. I wonder what the optimal middle ground is.
Then, past a certain point, most of the new concepts started coming in via frameworks and libraries (although of course things like functional programming and interesting typing approaches are still language-driven tools).
Thus, these days, I would look at libraries and frameworks as sources of new productivity unlocks. E.g. in the Web world, jQuery saved millions of work-hours and qualitatively unlocked some new things. Then Angular (and eventually React) started realizing huge savings from declarative UI definitions. My preference for one next innovation in this area is a higher-level framework for user input modeling (a huge source of bugs these days).
My most fulfilling and interesting career stories were about listening to people and reading their needs between the lines, un-kinking silly workflow knots, finding non-tech solutions to seemingly technical problems. Not constructing pristine castles of code (that ended up not even being used, ultimately).
This is also why I have tried very hard to define my identity around my general values and mission as a human being rather a specific career choice I serendipitously rolled into when I was 15. It has been very gratifying and liberating as a change of worldview.
Easier said than done, because of course there are bad managers out there. But even in difficult situations it can sometimes help to try "manage up" - again, the value-building and the mission is bigger than any one person.
What drew you to get into computer science? How did you end up enjoying accounting? Why did you choose NYC over Tokyo?
When someone asks me what degree I took, the answer is two words: Computer Science. If they ask me why - now there's a real conversation.
Often, also, it may help to tug even further at that story thread - what background brought it around? What did the parents do? What was the formative experience that created the story?
In a poorly-run hierarchy, having a manager means playing along for someone else more powerful, playing along with their personal politic, etc. That can be very distracting and exhausting, because for less-adequate managers it involves a lot of mental effort. And, importantly, it feels very person-centred rather than craft- or value-centred.
Contrast that with freelance work: yes, clients can be very difficult to deal with, and in fact may require more "high touch" interaction. However, at that stage it is just a social contract, customer service, explicitly outlined interaction. And the relationship is transactional from the outset, there is a clear value focus. Plus, one could theoretically fire their client and move on (although that is not always realistic).
As another comparison, let's look at a trades job in a highly unionized company: it can actually be quite liberating, because promotion and career track are again detached from specific personal impressions and set to a highly regulated and enforced schedule. People feel empowered, because it is a shield of sorts (albeit one that comes with costs as well).
`List<String> a = new ArrayList<String>();`
I know that for some things it is convenient, but I appreciate the reminder to treat interface and implementation as distinct concepts.