it背景缺失
初学者对于IT世界没有足够的认知来搭建起一个世界观。无法把所学的基础转换成地图的一个块。容易感到失落(不知道学会了一门新技术的意义和使用方向)
1.学科基础
《高等数学》、《离散数学》、《电子电路》、《数据结构》、《程序设计》、《计算机组成原理》、《编译原理》、《计算机网络》、 《软件工程》、《数据库原理》等。有些学校会有一些额外的课程,例如《通信原理》、《汇编语言》、《线性代数》、《C语言》、 《Java 语言》等
尽管IT行业知识更迭非常快,但是基础知识并不容易过时,因此有大量的资料可以选择。可以选择从计算机经典丛书系列开始,比如佛罗赞和莫沙拉夫的《计算机科学导论》,甚至可以阅读一些计算机科普类读物例如《穿越计算机的迷雾》。另一种直观的方式是观看大学精品课和去跟慕课课程,比较推荐的有几个:
中国大学精品开放课程,高等教育出版社的精品课程项目,有全国大量的名校授课视频和课件
中国大学MOOC ,这个是中国大学MOOC和网易合作的,提供了上文附图中计算机课程体系中所有课程
果壳网的MOOC学院,主打翻译全球名校的优秀课程,比如斯坦福的《编译原理》和MIT的《Python》
2.从知识到实践
除此之外,还需要了解实际应用于设计软件或者开发网站中的实践类知识,包括某个特定语言以及周边的库、框架和工具等。 我们可以把特定需求中用到的语言、库和框架以及其他的工具称为技术栈,在技术选型上通常也是被这样考虑的,HR常常会根据技术栈来寻找需要的工程师。比如需要学习SSH三大框架和Java的Java技术栈;为服务器web开发而生的PHP技术栈;在移动开发领域流行的iOS、安卓技术栈等。当然这里面有一些重合和共用的技术也需要学习,比如版本管理器Git、SVN就是每个合格的工程师需要去学习的。
3.武器的选择
老实来讲IT行业的最终目的是交付可用的软件,编程语言也是适应市场的。在工作中我们发现最好的语言是用来处理工作任务或者构建合适的应用,并不是出于爱好或者某种Geek精神。
选择工具语言的考虑
1.适合目标,选取尽量优化的对应语言
2.在满足第一条的情况下,降低学习成本(语法,环境搭建,以及未来的技术迁徙,轮子数量,资料)
3.IDE,不用在意他的提示功能,顺手就行。毕竟熟练以后对这方面的需求不是特别高。
4.新手建议使用视屏教程,毕竟内容更丰富,防止出现内容理解的偏差。高手随意看源码和官方文档。
5.读工具书的时候一定要敲代码,同时对于任何的疑问,理解都可以画思维导图。
6.长期的编程学习,十分的枯燥。要学会利用todo工具,给予自己阶段式的奖励。将一个巨大的目标拆分成多个合适的小目标。有利于目标的实现。
###4.最后的话
“聪明”从来不是这个行业的门槛。引用流行于知乎的一句老话“以大多人的努力程度,还轮不到拼天赋的程度”,在Thoughtworks有大量优秀的工程师,从他们身上我能看到聪明不是学习编程成功的关键,坚持和勤于思考才是。
原文地址:https://www.cnblogs.com/sinjin/p/8638875.html