title: 数学专业转机器学习，需要哪些计算机和编程方面的积累？
desc: RT， 非常非常感谢众位指教。<br><br>本人本科数学和统计背景，修过国内大部分数学和统计的基础课。自认为基础马马虎虎还算扎实。但是计算机非常薄弱，本科以前无计算机知识。大学修过C语言，但是对非专业计算机要求非常低，指针内存管理这些差不多都算没学，后来修过算法课，大部分的编程经验也是MATLAB和R这种科学计算语言，做的基本都属于数值优化模拟的东西。<br><br>读研开始接触机器学习相关的一些东西，个人非常感兴趣，也希望以后能从事这方面工作（看自已能力，研究与应用均可）。<br><br>最近一年，修过和旁听的相关课程包括：机器学习计算机视觉自然语言处理深度学习神经网络（Coursera）. 自认为在模型的理论理解上还行，算法都能理解，自己课余看一些课本以及应用类的paper对把握中心意思也没有问题。<br><br>但计算机水平的局限却很大，大概有以下几件事情令我捉急：<br>1， 深度学习需要用theano实现，但安装的时候就有问题，我读不懂错误信息，只能copy到google上一个一个找再对照调试，非常累。<br><br>2，shell vim等等这些工具的使用非常不熟练，其中的配置文件很多都是同学帮忙调的，同学问我github时不知道为何物，深感惭愧。<br><br>3，代码能力很弱。大部分作业是python完成，但发现自己写码时比别人慢很多，需要在纸上写比较详细的伪代码。很多时候代码很慢。例如：nlp写hmm都比别人慢。同学10s可以跑完的代码我需要23分钟。找一些同学的代码看需要很长时间看懂，而且用了一些我不知道的数据结构和method。<br><br>如果按我目前的计算机水平，想通过数年时间（合理安排，越短越好），达到一名合格的（优秀的）机器学习研究者工作者的要求，具备独立解决机器学习问题的能力需要弥补哪些计算机知识（感觉其实基本没有）？如果有更为具体的学习课程书籍视频方法推荐，感激不尽。<br><br>PS 了解凡事应循序渐进，自己学习倾向先有个大体理解和框架，再对框架内的知识各个击破缓步积累。<br><br>PS 朋友建议编程慢是因为不懂编程的思想和精髓，需要学OOP和functional programming， 不知有无必要。朋友建议我学好C， 再学一下scala。
topic: 编程
content: 哈哈 我也是数学系的 也在搞机器学习的方向 。题主的情况正常，太正常了。不是所有人一出生就会code的好吧，都是积累起来的。我就是看了算法导论，CSAPP后才在成为数学系编程比较厉害的，计算机系里数学比较厉害的“水货”。题主是需要看一些计算机的书籍，但更多的是需要练，练，练！！！没办法的，短板就是要靠努力往上冲的。过了这个坎，凭借你的数学功底，说不定就能成为大神呢。所以给自己一个跨过这个坎的理由，然后往
answerer_tags: 正在减肥的数据挖掘工程师