论程序员最重要的从业素质

论程序员最重要的从业素质

ID:42851180

大小:23.00 KB

页数:4页

时间:2019-09-23

论程序员最重要的从业素质_第1页
论程序员最重要的从业素质_第2页
论程序员最重要的从业素质_第3页
论程序员最重要的从业素质_第4页
资源描述:

《论程序员最重要的从业素质》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、论程序员最重要的从业素质网上有很多关于程序员到底学什么最重要的帖子。人家的回答也是各不相同,下而是我归结的儿个主流方向:1•语言学派,全面掌握编程语言的各种特性:列举出各种语言的各种炫酷特性。2.算法学派,算法为王,努力学习各种算法:基础的排序就不说了,什么贪心算法,动态规划,BFS,DFS都在掌握之列,更有牛者研究人工智能遗传算法,图形学各种插值求精算法等等。3.数据学派,数据结构为解决问题的关键:学习数据结构,队列,向量,链表,二叉树,红黑树,哈希表等等4.上而三种的集合学派:强调2种组合或者三者都重耍5.思维学派:这种人往往是大牛(

2、或者…)经典言论是一一语言什么的都是浮云,训练编程思维才是重要。而对下而大家追问何为编程编程思维,也许大牛们都比较忙,能提点一点就不错了,没时间细细分析什么是编程思、维。下而是本人对于程序员(不狭义的指编码人员,包括设计,编码,项冃管理等程序设计相关从业人员)最重耍的从业“素质”思考首先摆出论点:程序员最重要的是编程思维(纯个人拙见,大牛轻拍)依据小时候学到的议论文的标准协作格式下面显然是要摆论据了:首先阐述个人理解的编程思维:编程思维的核心是:发现问题,分析问题,解决问题。大二暑假参加了一个本校的为期20天的研究生入学培训,当时和研究生

3、学长和研究生老师交流,问他们研究生和本科生最大的区别是什么?答曰:发现问题(这个研究生阶段还很难做),分析问题和解决问题的能力0发现问题,这个层次研究生一般都很难达到,我显然也是无能为力了。下面从分析问题和解决问题着手。分析问题:当我们(程序员)拿到一个问题时,第一件事要做的就是分析问题,提出可能的解决方案。解决方案一般情况以软件的形式给出,以软件工程学科对软件的定义为:程序+数据+文档这里暂且不论文档,而从程序和数据的方面来论述。程序就是算法对于数据的操作逻辑,将原始数据(输入)按照“客户”需求以各种方式处理以后输出,得到想要的结果。程

4、序是算法的具体实现,所以说算法很重要,读到这里你是不是想说你这不扯淡嘛,扯回开头了。我要强调的是我说的算法和上而提到的算法不同。算法就是解决问题的方法,小到一个序列查找,大到为核武器爆炸提供模拟。作为一名应用层(只有数学才是系统层)的程序员,我们没必要去纠结各种算法的具体实现,更没必要去B己再去实现它们然后加入到自己的库中,“不要重复造轮子"这个编程界响当当的戒律应该吋刻在你的实践中应用,如果你无法控制口己,那么建议你读一读《TAOUPUnix编程艺术》。这是不是说我们不需要知道这个算法呢?我觉得我们应该关注于现有算法的输入和输出知道这些

5、算法能为我们提供什么样的功能就足够了。同样的,我要说数据结构也非常重要,但是我反对重复造轮子,学习数据结构不是一遍一遍的去实现自己的链表,树等等数据容器,往往很多语言都为这些容器提供了良好的实现(C++STL),我们耍关注于各种容器的内部纽织:链表的插入删除优势,向量的查询优势,set是数学集合的抽象,map是单一键值映射,hashtable是哈希表的组织方式。我觉得实现口己的容器也是有必要的:一方而能够让我们对容器的内部组织冇更好的了解;另一方能让我们对指针和迭代器有更好的认识。拿到一个问题,首先要将数据进行良好的组织,所谓良好的组织就

6、是把E确的数据放入容器(nJ'能是各种容器的组合,如以map为节点的链表)正确的位置,然后用处理安置好的数据结构得到想要的结果。基于上述我觉得与其说“数据结构”最重要不如说是“数据组织”最重耍。分析问题结束了,有了如下输出:良好的数据组织和可行的算法描述。下面进入解决问题阶段:有了分析问题的输出,相对来说解决问题就“应该”轻松多了,注意引号,就是说理论上是应该轻松愉快了,但是实事往往并非如此,你可能在具体的编码中痛苦的煎熬着,究其原因:【.具不熟练。解决问题核心是:熟练使用手边工具,即使手边没有,也知道到哪里去拿。编程语言是工具,调试器是

7、工具,函数库是工具,帮助文档是工具…我们只有熟练使用T具才能够更高效率的创造价值。古人语:“工欲善其事必先利其器”还是大二暑假研究生培训,一个老师上课强调说:“我一直强调我的学生要把手边的工具熟悉好,解决问题的吋候能随手拿过來用,即使没有现成的工具也要知道到哪里能找到。”深以为然。另外一则故事是看白一个业内大牛的博客:一次我去参加摄影班,一个老外老师一直强调摄影授垂要的快门和选景,但是真正一个月的时间他都在教我们怎么曝光,怎么调整光圈…因为只有熟练知道了工具怎么使,才能更好的专注于摄影的核心。我觉得这则故事在编程过程中同样适用:程序设计(

8、算法和数据组织)是编程的核心,编程语言的特性,函数库,调试器等都是我们的强有力工具,我们只有熟悉了这些工具才能更好的集中于编程问题的核心。总结:程序员最重要的从业素质是:算法(解决问题的方法)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。