:)算法是另一个世界。算法世界里别怕死。
如果你赶时间,直接看小铁兄的回帖: http://ourcoders.com/thread/show/6605/
然后你可以看看小铁兄的博客: http://xiaotie.cnblogs.com
如果还是赶时间,可以先看以下五篇小铁兄的博文,是我花一晚上遍历小铁兄博客后挑出来的:
工作中任务管理的四个原则和四个技能
http://www.cnblogs.com/xiaotie/p/4427464.html
如何自学图像编程
http://www.cnblogs.com/xiaotie/archive/2012/03/25/2416267.html
只学一点点:我的技术学习策略
http://www.cnblogs.com/xiaotie/archive/2011/12/10/2283384.html
在家赚钱,威客网站的使用方法
http://www.cnblogs.com/xiaotie/archive/2011/04/15/2016873.html
自学资源推荐
http://www.cnblogs.com/xiaotie/archive/2010/04/23/1718997.html
下面,我们来讲讲此文题目。
算法,是程序员的浪漫。
退一步讲,程序大军的不断扩张,第三方库横行,将使得逃离苦逼大众的路上越来越依赖算法。只因算法的优化,还是只能依赖人。
@xiaotie : 算法是对工程问题的形式化解决方案。
形式化就是把模拟过程离散化,把模糊的概念标准化。
在算法世界中,不同层次的人做着不同的工作。
1 、发明新算法。
这是数学家干的活。或者数学底子好,不妨试试。如果基础差,先跟着小铁兄给出的书目把数学补起来吧。
2 、解决世界未解决的问题。
此类问题,就算把最新的论文找来,还是不会有现成的解决方案,也是所有算法活里最赚钱的部分。但算法学习对这部分工作的帮助并不大。主要依赖对业务领域的理解,对边界条件的把握。这是 @xiaotie 兄努力布局,马上要进入的层面。
张五常是在经济学里通过局限的边界变化来解析世事的高手,大家有兴趣不妨看看:
http://blog.sina.com.cn/zhangwuchang
3 、优化、移值算法。
算法优化和移值,是一般人努力可以达到的。在这个层面好好干就能完成满足生活一般所需。这是 @xiaotie 兄现在所处的层面。
4 、改算法边界条件,化通用为专用。
根据企业的特殊需要,把学术上的通用算法改造成企业专用的算法。这是算法工程师最广泛的基础一线。
5 、熟悉现有数据结构算法,直接套用。
一般高级程序员在开发过程通过选择更适合的数据结构和算法提升程序性能。非算法工程师不妨多看看算法方面的书,从了解、试用、理解,把半只脚踏进算法界。
从 @xiaotie 兄的分享里,还有很多程序开发的一般经验,比如:
通过扎扎实实地手写算法,不用第三方库。目的在于更理解算法的边界条件,快速调整到符合需求所要。
数学的学习可以按这样的顺序:平面几何、线性代数、概率统计、机器学习、数学分析。
这次算是对算法对一个最基本的认识,还想问 3 个问题:
1 、算法从 PC 到移动,是只需要换个语言写一遍吗?还是有很多其它的事情要做呢?
2 、一个算法卡壳很久,是继续一直强攻呢?还是告诉客户一时半会解决不了,放一放呢?
3 、业界算法论文,是接单后再去看呢?还是平时就每天抽点时间看?
后记(下面以聊家常为主,没时间没兴趣的朋友请直接忽略):
昨天跟沈兄约了一面。沈兄是一个非常有趣的人,性格、经历、爱好都很有趣。然后突然发现自己已经变得无趣得很,除了代码、阅读、健身外,对其它事情越业越不感兴趣。
三天前收到 @柴茝 对《拆分代码与泛型》 http://www.jianshu.com/p/05f1273a7129 的打赏,非常感谢啊:)
我还在继续用“递减原则”改造我自己的方法论:疯子一般深入系统。已经用“递减原则”改了 5 版。