The way to become a good writer is much like one becomes better at any skill. You attempt the skill, and then you review and revise, or get feedback from others and revise based on that. You suck at first, it will be awkward, but you get better through practice. Sports, coding, soft skills, writing, it's all possible, but you may feel dumb or bad at it in the beginning. That's good, that means you are learning.<p>The first thing you need to consider is your fundamental thesis, the big high level idea you want to convey. You may not know at the beginning, or maybe it's just, "there's this interesting thing!" Honestly that's a fine thesis. You may also find, as you write, that your thoughts clarify and your thesis changes or develops. It's okay if not though, sometimes you just want to talk about the way something is cool to you.<p>Now you have to consider your audience. Who do you want to read your work? Is it for kids? for adults? for developers? For developers with kids? Maybe you aren't sure, and that's okay, but thinking about who you want to read it will give you a better sense of how to write, what metaphors or similes are useful, etc. Keep in mind your audience as you reread what you write imagine them reading it. What parts are boring? What parts would they be less likely to understand?<p>Now you need to develop your thesis. The way you do that is you share ideas related to, or that are aspects of, your thesis, and then you provide evidence for them.<p>One thing to consider in doing this, if you feel like your content isn't structured well, is maintaining a consistent level of detail returning to it after going down a step or two. I feel that one to two levels below your central thesis is enough. You might break your thesis into topics and those are sections or chapters. Or maybe they are paragraphs.<p>For example if you are talking about python abstractly, say generators, you might provide a real example, discuss why you use a generator for that, then go another level down to give example code, but you probably shouldn't talk about python byte code, C, assembly etc.<p>If you want to practice, I find a good place is open source documentation for stuff that lacks sufficient documentation, and there is the potential for feedback built-in and your practice also generates something useful. You can also write book reviews on good reads, write emails or letters to friends and colleagues.<p>But yeah, I'm told I'm a skillful writer, and maybe that's true and the way I got there wasn't a coach. It was basically reading a lot as a kid, and then writing a lot. I'm still not sure I'm all that good, but I don't worry much about being a good writer. Maybe it's crap work, but hey, it's done. Done is better than perfect, as the old saying goes.