Philosophy: A Complete Introduction By Sharon M. Kaye [0] is a wonderful book that introduces different philosophers and their main ideas.
Each chapter starts with a thought experiment about a given idea and then it gets into more details.
I liked that the book was written in simple language and gave a good overview of many philosophers. Later you can decide to dig deeper into whatever grabbed you the most.
Your suggestion are good. Perhaps a combination of them would be most effective.
However, often the problem isn't completely solved with a specific technique. I found that the growth of my inbound is just a symptom not the root cause.
To me, the root cause was not accepting the following fact:
I am a finite being, with finite time, living in a world with infinite possibilities. Regardless of how productive I am. I probably will miss on 999% of what the world has to offer. And that is OK.
By treating time as a resource that must be optimized. I found myself trying to fit in as much as possible. Which paradoxically sucked the joy out the very things I scheduled. Every thing became a chore.
I found much more helpful to practice being fine with the fact that I will be missing on most of the things out there. Afterwards, the productivity techniques magically became much easier to stick to.
People crave the feeling of being understood without judgement. To me, being compassionate is to show people real understanding.
Few techniques that I found helpful:
- Actively listening. Keeping any input you might have till the end.
- Repeat what you understood back to people - mirroring.
- Ask open-ended questions. Just be genuinely curious. Don't show any judgement.
- Be vulnerable first for them to open up and share their vulnerability.
- Often the solution is just listening. Suggest solutions only when explicitly asked for.
As mentioned by others, Non-violent Communication is an amazing book about the subject.
A comment about the book NVC. Often people get stuck in the implementation details of the book's recommended way of communicating. When X happens I feel Y, could you Z? But there is so much more to it than that.
One needs to be self-aware. To know more precisely:
a) What actually happened, seeing reality as it is without their interpretation.
b) What they are feeling
c) What needs do they have
d) Concrete actions to resolve a conflict
How these things are communicated is important but still, but the awareness of these components is often overseen.
That is why meditation is often recommended. It is easier to be a better communicator if you are more aware of your feelings, thoughts, and your current environment. Really being present.
Employers would benefit a great deal from employees doing more than the acceptable minimum. Maybe it is an issue with measuring value provided by each employee?
Figure out a way to package your expertise in a different way than being an employee.
Often the employment model doesn’t reward for going above the acceptable minimum.
How you package and sell your expertises to the world can make a signicant difference to your income.
Consider freelancing, building own product or making courses. If you have options, go for something that is not measured hourly and tied to your time, there is only so much you can charge per hour.
A word of advice, always use a custom domain, alot easier to change providers.
As for switching, I did it few times.
From microsoft to migadu. Switched to custom domain at the same time. Migadu was good for the price but in the early days it wasnt very stable and I wanted something more private.
From migadu to Tutanota. More private but tutanota wasnt as polished and can only be used with their custom email clients. Again great value for the money but I was missing better UX.
Finally from Tutanota to Protonmail. It was painful to export emails from Tutanota. I am very happy with Proton. If money isnt a constraint I think it is the best option for privacy focused providers.
> It would be cool if code-reviews were done "anonymously"
Sometimes during code-reviews I find myself wanting to leave 100+ comments. Instead I settle for the few major ones and leave behind most of the minor stuff. I don't want to be perceived as someone who is difficult to work with, so try to pick my battles wisely.
Wonder if anonymous code-review that helps with that.
Clean code is code that does what you expect it to do without many surprises. It is simple, not clever. Effortless to follow. Each part handles one idea at a time, at the same abstraction level. Doesn't force you to mentally juggle many balls at the same time.
The code often tells you a story, it communicates how the programmer (author) described the problem, the solutions and the trade-offs. Very similar to writing.
Maybe it is a vague term. But it is not an excuse to write "bad" code. Perhaps every team need to have a "definition of clean code" for themselves.