写技术类的文章如何吸引读者,并为读者提供方案和思路。这个问题也类似于研发人员在工作中遇到技术难点后的查找资料并深入理解问题的过程。因此借由这个想法,觉得技术类文章应该包含以下四个方面的考量: 针对不同的阅读者需要控制问题分解的深度:对于一般的入门读者需要做些科普性的介绍,做到通俗易懂,以让他们更好地判断是否需要再深入了解;而对于中级的和已经入门的读者可能更想获得的是系统性和更清晰的问题分解和理解脉络,以更好地搭建他们自己的知识框架。 所以了解到自己的阅读者,或者换句话说是定位好自己的写作对象,才能调配好文章的用词和内容分配。这样也就在写作的过程中有了选择和判断的准绳不会迷失了目标,或者犹豫不决不知如何取舍。 问题是一个很好的引起读者感兴趣的点。读者都是带着问题来的,为了找到解决他们实际中遇到的问题和困难,或者文章解决了他们的问题,或者文章给了他们看待问题的不同的视角从而激发不一样的解决思路。所以应该把要问题描述清楚,解决具体的工程应用难点,同时也需要提供一些针对该问题的扩展性的思路,以让读者获得类似问题的启发。 比如针对在二维坐标系内给定一些坐标点后的曲线拟合场景,这个问题很明显就是如何得到接近所有已知点的曲线,而其扩展性的问题是:怎么才算接近。 解决问题的最理想途径是把问题理论化并建立模型公式。理论化后的问题逻辑思路更清晰,可以更好地抽象化问题从而可以从学术宝库中追根溯源找到更多的解答方案,也可以方便问题的分享和讨论,建立共识。 针对上面曲线拟合的问题的理论建模就是解决怎么才算接近的问题,传统的解决方案就是最小二乘(Least Square),它的表达形式如下: 在完成了理论化建模后就可以应用各种理论上的线性或者非线性最小二乘的解决方案,比如高斯-牛顿法等。 工程化是在实际的研发项目中应用该技术,得到稳定可靠的结果。一些理论性的操作并不适合实际工程应用,当然也可以通过一些工程方案来简化理论的操作。如果说建立理论框架是智力活动,那么稳定地工程应用是智慧的结晶。工程应用案例是让读者更好地理解算法的最快途径。 像我们已经列举的拟合例子一样,理论上的高斯-牛顿法是可行的方案,但是实际也会计算失败而得不到理想的拟合效果。针对这些缺点,在实际的工程应用中就会加入一些辅助参数来动态调整拟合的过程,从而实现结果的优化,比如L-M方案。