各行各业的工作者,都有其要求,那么作为程序员,我们又该具备哪些素养呢?博主在这里浅谈个人看法,如有不当之处,请大佬们指正。
一、知识储备
1、数学
或许在很多人看来,学计算机用不到什么数学,最多也就是一百以内的加减乘除,用在for循环、数组索引之类的上面。但其实不然,大部分人这样觉得是因为基本都工作在应用层,所以相对而言,用到的数学知识会比较少,也比较浅显。
而当从应用层更深地学习研究时,就需要一定的数学能力了。
2、计算机
1)操作系统
操作系统(OS)是配置在计算机硬件上的第一层软件。是对硬件系统的首次扩充。所有编程语言的开发以及应用程序的运行,都直接依赖于操作系统的支持。文件系统。进程等桌面编程中的场景大都来源于操作系统的定义和概念。因此完整地了解操作系统的起源和组成以及运行逻辑,对多线程、复杂界面、文件管理以及一些难以正常理解编程思路等开发中遇到的场景,有非常大的帮助,不仅帮助理解,也能掌握更多有效的程序写法。
2)汇编语言
汇编语言是一般程序员能为机器编程的底层语言(现代的CPU/GPU还是会把指令再分解成微指令),所以学习汇编能让程序员知道机器在软件层面上的最底层操作。那么,熟悉汇编后,可以更容易理解C/C++/OC这类语言如何在机器上执行。一些有经验的程序员,看汇编时可以快速反映为C/C++代码。这些经验和知识有很多好处:
- 性能优化:在设计及编码中能考虑到底层的执行方式,从而编写出高性能的代码
- 深度调试:遇到一些崩溃火其他问题时,在没有调试信息下也可以找到问题所在。有时候遇到编译器本身的错误,单凭研究源代码无法定位。
- 工具开发:可以实现AOT/JIT编译、native调试器、内存/性能剖析工具等
3)编译原理
编译原理蕴涵着计算机学科中解决问题的思路、抽象问题和解决问题的方法。编译原理课程的学习有利于加深对程序语言的理解,可以帮助我们更加快速地掌握新的语言工具;课程中包含了很多软件技术,程序设计语言编译程序构造的基本原理和实现方法是软件的核心技术之一。同时编译原理中的词法分析、语法分析等内容对自然语言处理领域有大用处,是计算机基础。对模式识别(模式串的分析、匹配)、人工智能的学习也有帮助,对我们写代码、了解程序本质也有着举足轻重的作用。
4)数据结构
在计算机界流传着这么一个公式:程序 = 算法 + 数据结构,数据结构对我们的重要性不言而喻。数据结构记录了我们如何对数据进行存储,以及数据之间的关系,是我们的程序的基石。
5)数据库
数据库是数据管理的有效技术,是计算机科学的重要分支。现如今,信息资源已成为各个部门的重要财富和资源,因此作为信息系统核心和基础的数据库技术受到越来越广泛的应用,越来越多的应用领域采用数据库技术来存储和处理信息资源。特别是随着互联网的发展,广大用户可以直接访问并使用数据库,例如网购。数据库已经和我们密切相关,我们开发过程中更加离不开数据库的使用。
3、英语
很多人觉得计算机编程不需要很多英语知识,所以觉得英语就不重要,博主认为这观点有失偏颇。虽然我们在编码过程中所使用的英语很少,但我们仍应该学好英语。首先,目前很多的资料原版都是英文的,而翻译过来的有相对一部分和原版相差比较大(当然,也有一部分翻译的还是不错的)。其次,随着经济全球化的发展,我们难免需要与外国人打交道,日常沟通、合作等,这都需要我们有一定的英语能力。
二、信息检索能力
我们在学习、生活、工作中,都需要检索一些信息,如果我们有比较好的检索信息的能力,那就可以大大提高我们的检索效率,让我们更好更快地完成我们要做的事。
三、独立思考的意识
在我们的身边,有一部分人总是期待别人帮他做好一些事情。每次遇到困难,第一时间不是自己想办法解决,而总是找别人帮忙。这样的人,缺乏独立思考的意识,很难成长起来。独立思考的意识,是指当我们遇到问题时能独立思考,自己寻找解决方式而不是一味地靠他人,这说起来简单,做起来却并非那么简单。
四、好的编程习惯
1、习惯使用快捷键
快捷键可以帮助我们更快更好地进行编码,可以提高我们的编码效率,如果可以使用快捷键代替所有的鼠标操作,想想那会为我们提高很多效率。
2、习惯于写注释
很多人不愿意在编码过程中写注释,总觉得这是浪费时间的事情。事实上,写注释是很好的习惯,可以帮助我们在经过很长一段时间再去看代码时能够更快地看懂那些代码,同时也方便别人去读我们写的代码,毕竟很多开发中不仅仅是一两个人进行开发,是需要团队合作的。
3、习惯于数据备份
“永恒之蓝”相信给很多人留下了深刻的印象,很多人的数据因此丢失了。但如果经常进行数据备份,那么在面临这样的问题时,就能减少我们的损失。同时,计算机作为电器,抛锚也是很普遍的事情,如果做好了备份,也可以帮助我们在计算机出故障时,减少不利影响的产生。
作者:耑新新,发布于 博客园
转载请注明出处,欢迎邮件交流:[email protected]