笔记摘要
-
在学习专业的软件开发知识之前,我们来谈谈程序员修养。它看似与程序员练级关系不大,实际上却能反映出程序员的工程师特质和价值观,决定了这条路你到底能走多远,是精髓所在。有修养的程序员才可能成长为真正的工程师和架构师,而没有修养的程序员只能沦为码农,这是码农和工程师的关键区分点。
-
我认为比较重要的几个方面:英文能力、问问题的能力、写代码的修养、安全防范意识、软件工程和上线规范、编程规范等。
-
专业基础篇这部分内容主要涵盖编程语言、理论学科和系统知识三方面知识。在编程语言方面,推荐学习 C、C++ 和 Java 这三个工业级的编程语言。理论学科方面,需要学习算法、数据结构、网络模型、计算机原理等内容。系统知识方面会讲述Unix/Linux、TCP/IP、C10K 挑战等专业的系统知识。
-
你可以选择的几大从业方向。
- 如果你对操作系统、文件系统、数据库、网络等比较感兴趣,那么可以考虑从事底层方面的工作。
- 如果对分布式系统架构、微服务、DevOps、Cloud Native 等有热情,那么可以从事架构方面的工作。
- 如果是对大数据、机器学习、人工智能等比较关注,那么数据领域可以成为你一展身手的地方。
- 如果你对用户体验或者交互等更感兴趣,那么前端工程师也是个不错的选择。
- 此外,安全开发、运维开发、嵌入式开发等几大方向中,也为你提供了丰富多彩的发展空间。
-
这里我只想和你说两观点:各种技术方向不是鱼和熊掌,是可以兼得的;很多技术是相通的,关键是你是学在表面还是深入本质。
-
软件设计能力是每个程序员都需要具备的基本素质。软件设计是工程师非常重要的能力,这里描述了软件工程自发展以来的各种设计方法,这是从工程师通往架构师的必备技能。
-
并不是理论和现实的差距大,而是你还没有找到相关的场景,来感受到那些学院派的知识的强大威力。
-
技术能力的瓶颈,以及技术太多学不过来,只不过是你为自己的能力不足或是懒惰找的借口罢了。只要你的方法得当,多花点时间在基础知识上,会让你未来学习应用知识的时间大大缩短。以绝大多数人努力的程度,和为自己不努力找借口的程度为参考,只要你坚持正常的学习就可以超过大多数人了。
-
这里没有学习技术的速成的方法,真正的牛人不是能够培训出来的,一切都是要靠你自己去努力和持续地付出。
心得体会
- 注重能力的培养。包括英文能力,文档写作能力和软件交付方面的一些能力。写几行干巴巴的for和while循环,虽然轻松,简单不需要动脑子,终究是个敲键盘的体力活。
- 选择方向,深入学习。我想在大数据、机器学习和人工智能方面有所建树。以后要多投入些时间和精力。
- 不要找借口。那是回避问题,逃避责任。没有时间也是待解决的问题。不解决这个问题,其他事情都免谈。
- 持续的关注和投入。
网友评论