可以按手中的解决问题的工具来分:
如果一个人解决问题的工具都来自NLP和ML的一些经典算法,业界最新发表的论文,那么肯定算是算法工程师。
如果一个人解决问题的工具来自项目遗留的庞大的code base,N种系统架构方案,各种的可选第三方库,自己写的各种Demo中的经验,各种解决代码复杂性的经验论和方法论,以及各种可更换的存储介质(比如硬盘-》内存/SSD等),各种从单核到多核和向量处理器,那么他通常是工程师或系统架构师。
就对算法和系统了解而言,虽然各有侧重。但全面掌握更有助于在工作中解决问题。我举两个例子:
在做cache系统时,使用前缀树找到最小前缀可以显著压缩cache key的长度, 使用数据挖掘中的Apriori算法可优化分布式cache数据访问的本地性;
2. 有个故事,是说某算法课上老师让大伙优化一个算法,结果有个家伙把算法改写后跑在了PS3的Cell处理器上……,从复杂性估计上他没有把算法改进多少,但是从运行时间来说却远短于其他童鞋。金鹏信息
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。