Monday, March 7, 2016

How to Write Tech Blogs



https://jamesbvaughan.com/markdown-pandoc-notes/
You might be wondering what things I’m taking notes on that are important enough to warrant a whole post on how I take them. Right now, the main thing is lectures for classes, but I also take notes on:
  • books that I read
  • movies that I watch
  • important conversations
  • interesting things that I learn about people
  • projects that I am work on
  • recipes
  • ideas for future blog posts


https://www.xilidou.com/2018/08/17/write-tools
  1. 泛读书籍

    当我拿到一本书的时候,我需要的是快速的建立印象。略读了解书的结构,知道书的每个章节大致覆盖的内容,在脑子为这本书建立索引。这个时候的读书笔记,或者读书心得就好像一份落地的索引。为将来需要的时候提供查询的依据。
    1. 对于电子书,我使用 MarginNote 这个软件来阅读。MarginNote 是一款,集文档管理,标注,思维导图,大纲等功能于一体的学习软件。可以说功能相当强大。
    https://henrikwarne.com/2017/11/26/6-years-of-thoughts-on-programming/

    Why

    Knowing what I think. Formulating or explaining something in writing makes me think it through really carefully. The act of writing it down exposes gaps in my arguments and knowledge, forcing me to clarify my own thinking. It really is like this quote from Joan Didion: “I don’t know what I think until I try to write it down.”
    Sharing. Sometimes there are ways of working I think are really helpful, but maybe not so well known. Then it is nice to be able to describe what we do, and why I think it is useful. For example, Learning From Your Bugs and Developer Book Club.
    Venting. From time to time there are things that annoy me, or ways of working that I don’t like. Then I can write a blog post and argue how things should be instead. Examples of posts in this category are Great Programmers Write Debuggable Code and Developers – Talk to People.
    To learn. In general, I like to discus my posts in the comments and in forums. The only exception is when people resort to insults instead of discussing the merits of the ideas (happens occasionally). But if there is a healthy discussion I usually learn something new, for example under what conditions an idea works and doesn’t work. Sometimes the discussion makes me change my mind, like on Unit Testing Private Methods.
    To remember. When I read a book on programming or take a MOOC course, I usually write a review of it. Knowing that I will write a review makes me learn the material much better – I am learning more actively. I take notes and try to summarize the most important takeaways. I also think more about what I liked the most and the least, as well as how it compares to what I already know about the subject. Hopefully the reviews are also valuable for people considering reading the book or taking the course
    Keep a list. Whenever I think about something for a blog post, I write it down in my list of topic ideas (I use Toodledo). I add any arguments for and against that I can think of. Sometimes it is just a title, and sometimes there are quite a lot of notes. Currently I have around 120 entries (of varying quality) in the list.
    Mull it over. Before I write about a subject I usually think about it on and off for several days – maybe while going for a walk or having a shower. If I come up with more arguments or different angles on the subject, I add them to the list. By taking a few days of thinking about the subject, I let my subconscious work on the ideas.
    Quality over quantity
    When I have finished a blog post, I submit it to Hacker News and Reddit/r/programming. Somebody questioned submitting your own posts, but I think it makes sense. I write about aspects of software development that I find interesting, so there is a chance that other people will find it interesting too. Besides, I don’t only submit my own posts – I submit whatever I find interesting that isn’t already shared there.
    Hacker News. It is quite hard to get on the front page of Hacker News. It takes around 5 upvotes within the first 45 minutes of submitting for that to happen. This is partly because there are so many stories submitted – sometimes one a minute. Once on the front page, a post usually stays there for a couple of hours. It is great if people comment on the post – the quality of the comments is usually quite high. I also like that you only see upvotes on stories at Hacker News, not downvotes

    Reddit/r/programming. It is easier to get on the Reddit/r/programming front page, mostly because there are not as many stories submitted there. Often I write my blog posts on the weekend, and submit them on Monday morning (European time). 

    http://www.cnblogs.com/coffeedeveloper/p/4825177.html
    多写,是有讲究的。特别是对于技术类的文章来说,为什么?因为技术文章是有套路或者说模板可循的。例如:介绍一个新技术
    • 介绍技术名称和大概作用
    • 抛出一个常见的问题
    • 以往的技术是如何解决的
    • 新技术是如何解决的
    • 新技术在解决方案上对比旧技术的优势
    • 新技术存在的问题与不足
    • 展望新技术的发展和提出更多的应用场景
    • 有条件的还可以提供性能测试结果等等,加强说服力
    可以看到这个套路模板是清晰明了的,同时便于读者理解与交流的。当你按照这个规则去写的时候,文章会引导你向前。什么时候应该抛出问题,什么时候给出解决方案与结论。整个过程只要描述文字不要太过于混乱和前后矛盾,最终呈现出来的效果是令人愉悦的,而且槽点不会太多,也容易形成体系。
    晚一天发布文章!当你写完一篇文章后,你巴不得全世界都知道,都来关注,这是人性,我亦如此。但是,在短时间内你会处于亢奋状态(不知道你们有没有我是有的- -!),会让你忽略一些文章的细节。如:标点字符的选择、错别字、语句是否通顺。而让你晚一天发文章则会让有一个机会,在第二天早上以一个读者的身份去细细阅读一番你的成果,往里面挑挑刺找找茬。而经过一两遍阅读后往往能够修改上那么一两处地方。久而久之写作能力就得到提升了(之后你喜欢的话就写完直接发布),也更好的理解读者了。
    使用Markdown书写你的文章,原因很简单,Markdown现在已经算是广大社区平台的事实标准。你通过Markdown格式的文章能够迅速的发布到各个平台中,而不需要进行太多的更改。扩大你文章的受众面,而你只需要几个复制粘贴就可以了,不是很好么?
    提出更多的要求。尽量将自己处于一个读者(使用者)的视角去看待自己的作品,同时去提出一些你认为可有可无但是有能够带来体验提升的细节。对于一篇文章来说就是:这里需不需要分段、是否应该加入一个标题、是否应该加粗、字体选择、段落间的留白等等。最核心的:文章整体排版是否合理、顺眼。提升一个文章的阅读观感是我们义不容辞的责任,同时获得好评的关键点之一。
    从浅显/熟练的知识开始。先将你熟练了然于胸的知识做几篇练手的文章能够大大提升你的自信心。或者先从比较浅显的知识开始写起,这样你能够对比网上比较好的教程,取长补短。
    要熬得了寂寞。在你开始做这个事情的时候很大可能是无法取得让人瞩目的成绩与文章的,甚至一个人都没有回复你。不要介意,慢慢来,一步步来。
    针对网络上已经充斥着无数的类似文章,怎么去突破?我认为有几点方法:
    • 尽量完整,涵盖技术的方方面面
    • 文字描述尽量通俗
    • 配图,所谓一图胜千言
    • 提供可运行Demo
    其实,有类似文章重要么?我认为一点都不重要,因为第一个读者是你。而你是面向自己去做这个事情的。同时你要明白,同样一篇课文,不同语文老师,不同讲法。同一个老师,不同学生,不同领悟。不要介意,just do it!
    我觉得我的观点解答了之前提出阻碍你分享的原因的大部分(核心部分)了
    • 技术是一个体系,从一个点能够引出一个面。对于新人/菜鸟很难掌控,或者说自身就没有掌握好
    • 自己所理解的技术与观点很难以流畅的语言描述清楚
    • 大部分的技术内容网上已经有成千上万篇文章,想有所突破
    • 觉得写文章太浪费时间
    • 害怕写出来的文章被人喷
    此外,对于他人的劳动成果,请保持一个客观理性的态度,不要去谩骂,这是一个做人的准则。

    Labels

    Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

    Popular Posts