谢邀,这问题很好很难,我只能以自己的经验试着回答下,仅供参考。 首先声明,编程越往'高级'发展,门槛越低,对底层要求越低。 一、操作系统与硬件知识。 编程避免不了和操作系统、硬件打交道,越理解操作系统和硬件的原理,编程'内功'越高。 相关书籍《深入理解计算机系统》第三版、《the linux command line》、《windows程序设计》第五版。 手机开发的话,《深入理解Android 》。 二、编程语言、编辑器和IDE。 编程语言视乎个人的需求选择,这里仅以C/C++/C#/Java/JavaScript/python为例。 1.C语言《C和指针》。 2.C++之父的《C++程序设计语言》。 3.《深入理解C#第三版》。 4.提主手机开发,请选Java,《java编程思想第4版》《Effective java 中文版(第2版)》 另外, 今年Google推出手机开发新语言Kotlin,个人不熟悉,无法推荐,请自行搜索经典教材。 5.《JavaScript高级程序设计第3版》 6.《python核心编程第3版》《python基础教程第2版》《笨方法学python》 vim、sublime text、Eclipse、notepad++编辑器需要配置; 新手可以选择对应语言的IDE。 编辑器和IDE不必过于纠结,本身就是开发语言的工具而已。 三、代码风格和编程技巧。 易读易懂易扩展易维护的代码,是编程的基本功。 《代码大全》是一本必读需反复读的书。 另外,设计模式《headfirst设计模式》《设计模式-可复用面向对象软件的基础》《大话设计模式》。 四、数据结构和算法 编程语言或者会变更,算法经典永恒。 《算法导论》《算法》《编程珠玑》《大话数据结构》请拿走。 五、团队协作与项目管理 .卓越的软件由团队合力而成,程序员需要提高团队协作与项目管理能力。 《极客与团队》《人月神话》 六、相关领域的必备知识 1.网络编程的必备知识《tcp/ip原理》《http权威指南》《https权威指南》。 2. WEB 开发的必备知识,w3cschool是个极好的学习网站。 3.数据库的必备知识,主要分为sql数据库和nosql数据库。 《数据库概念第5版》 《sql必知必会第四版》《深入浅出sql》《SQL基础教程》三本任君选择。 sql数据库如oracle、mysql等各自支持的sql语言稍有不同,具体需查阅相关文档。 nosql有Redis、MongoDB等各自用法不同,runoob网站入门教材还不错。 4.UI设计。 网易云课堂《UI设计师》和Coursera上课堂。 Coursera毫无疑问是自学的顶级网站。 5.字符串提取《精通正则表达式》。 七、android开发 《疯狂Android讲义第3版》 《Android编程权威指南》 《高性能Android应用开发》 《第一行代码:Android(第2版)》 八、面试能力《程序员面试金典第5版》。 每个人答案都不一样,欢迎评论你的看法。 如果对你有帮助,请点赞支持。谢谢 |
|
来自: 庆亮trj21bcn0z > 《编程》