程序员间的无形差距分析:
差距分析
“菜鸟”程序员的代码是什么样子,自己想一下。“菜鸟”程序员的代码往往会会写的比较冗余,而且这些代码不是从书上找来的就是从网上找来的还有可能就是自己会这一部分代码(仅存记忆的提取,真正的原理似懂非懂,好像雾里看花)。
“大神”的代码会写成什么哪?“大神”程序员的代码,当你看的第一眼:简洁;第二眼:真“N”。用最少的代码,把这个程序写的非常精辟了,体现的自己的思维思路。
为什么会出现这样的现象,同样一个小的功能,放在不同的手里就产生不同的结果。这个难道不值得我们去探究原因吗?
真正的原因是:“菜鸟”程序员没有将自己的思维融入代码,代码是程序员思维智慧的结晶。当我们拿到这一个小功能的时候,我们首先一看,这方面的知识自己准备不足,于是就上网找去了。假如我们去想一下如何去解决,我们解决的方法一般会有两种,第一种是自己会从网上或者是书中找到类似的代码,第二种就是请教别人指点,这种方法感觉不太可能,因为在工作中,大家都很忙,相互讨论帮忙很少的。上网搜的时候我们会经常出现这样的现象:看到这个要编写的程序,感觉自己没什么思路,自己从网上找,找了半天我们收获不大,看了很多实现的方法,但是我们花很长的时间去理解,这样虽然把问题搞出来了,然后就去玩去了。有些时候运气好,想找的问题正好有这类问题的解决方法,那我们就直接把代码搬过来,搞定!所以我们就一直这样循环下去,到最后我们什么也没有留下,下面一幅图就显示我们”菜鸟”程序员的现状。
“大神” 程序员首先拿到这个程序,自己做的第一件事情,就是思考!自己先思考如何实现这个问题,与原来相关知识可以借鉴,列出解决问题的可能性,考虑解决问题的最难点,所以上网搜的时候,直接搜问题的解决问题点,将其转换成自己的思想,用自己的思维写出自己想要的代码来,这就是代码是思维的结晶的精华。
“大神”程序员那样做通过认识几个重要的知识点,就把这个问题就解决了,所以技术对于他们来说,没有任何难度而言,因为他们经过了不断的思考,所以我们就应该认清我们“菜鸟”和“大神”之间的差距在哪里?我们不应该逃避这个问题,因为这个问题决定我们解决问题的态度,决定着我们的人生价值。
广度和深度
1、广度意味着在技术方面可支配的工具、技能和方法广泛的多。
一个只会Java的程序员站在另一个Java程序员身边,他身边的这位同时还知道C++、C#、Ruby、Python、Erlang以及每一种语言的流行框架。如果一个项目只是需要使用Java,那这两个Java程序员是平等的。但如果下一个项目需要更多的技术,这种平等的情况就会发生改变。
2、深度,是指在其工作领域内的知识含量和功底。
在过去,我所编写的COBOL代码也许跟我的E10朋友一样好。但如果我的程序有一个Bug,我的办法只是看着诊断报告不断进行调试。我的朋友不单会做这些,他还会阅读一些核心转储的数据,将一些重要数据转变成汇编程序(他可以从中获得一些启发)等等。在另一个我们一起进行界面编程的项目中,他可以更好的理解我们所操作的平台并知道如何完美的利用这个平台所提供的功能。同样,我的源码可能跟他的没什么太大区别,但如果我们需要向下一个级别进阶……是的,我们之间有一个明显的分界线。
在今天的世界里,这可能意味着程序牛人可以知道如何调整JVM,选取有用的数据分析工具;程序牛人知道如何安装、配置、调试和配置平台。牛人知道如何建立编译环境,而初级程序员也许只知道按照已经确定的方案(平台)进行开发。
技术的广度和深度,我想,我找到了成为高手的密匙。我需要学习更多并努力提到自己的广度和深度(直到今天,我还在努力!)。
分享到:
相关推荐
刚刚走出就业的程序员,技术是刚刚起步的基点。那下面我们就聊一聊有关技术的东西。首先请您先想想这几个问题。现在社会上有很多程序员,CSDN就是我们程序员的家,那您是否可想过程序员为什么会有不同的水平?你又是...
因此,中国的程序员在技术上并不一定落后于西方,而是在整个软件产业的成熟度上存在差距。 通过《程序员十层楼》这本书,我们可以清晰地了解到程序员成长的各个阶段,以及不同阶段所需要掌握的核心技能。这对于个人...
在中国,非专业程序员占据主流,而在硅谷地区,由于市场竞争激烈,非专业人员难以生存,导致专业程序员成为主流,从而拉大了平均效率差距。 - **薪酬差异**:文章指出,中美软件工程师之间的薪酬差距反映了两地平均...
然而,中国的软件行业发展面临诸多挑战,尽管有许多编程高手,但在产品化、规模化开发能力上与国际先进水平存在差距。这主要源于对技术、项目设计等方面的认知误区,如过度依赖个体能力而非团队协作,以及忽视系统...
- **识别技能差距**:发现个人技能与岗位需求之间的差异,制定相应的学习计划。 - **促进个人成长**:通过反思工作中的成绩和挑战,设定新的目标,推动个人技能和职业生涯的持续进步。 - **加强团队协作**:通过分享...
总的来说,初级程序员与高级程序员之间的差距在于技能深度、经验广度、解决问题的能力以及在团队中的角色。随着经验的积累和技术的精进,初级程序员有望成长为高级程序员,为IT行业带来更大的价值。
要解决这个问题,必须先知道程序员 有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。 当然,对于如何划分程序员的技术层级,...
报告还揭示了不同职级或经验水平的程序员之间的薪酬差距。例如,随着职级的提升,薪酬区间从99,978元到192,720元不等,反映出技能和经验对薪酬的重要影响。此外,薪酬的增长也与市场需求、技术更新换代、项目复杂度...
对于程序员而言,了解行业薪酬情况能够帮助他们评估自身的市场价值,发现差距,并在职业规划上作出相应的调整。对用人单位而言,掌握薪酬数据有助于制定合理的薪酬体系,从而吸引并留住关键的技术人才,对企业的长期...
要解决这个问题,必须先知道程序员有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。 当然,对于如何划分程序员的技术层级,...
6. 反馈循环:比较实际花费和预估时间,分析差距,从中学习并调整未来的估算。 通过这样的实践,程序员可以逐渐提升估算能力,减少因时间估算不准带来的项目风险和延误。同时,团队应该建立一个支持和鼓励准确估算...
4. **市场与高校的缺口:嵌入式人才与培训**:此话题可能探讨了目前市场上对嵌入式系统开发人员的需求与高校培养出的人才之间的差距。可能包括对教育体系的反思,以及如何通过改进教学方法和课程设置来适应快速变化...
经典书籍,一本揭示高效程序员的思考模式,一本告诉你如何缩短你与优秀程序员的差距的书
- **现状分析**:很多求职者掌握的技能与企业实际需要的能力存在差距,导致即便拥有众多技能也无法得到合适的职位。 - **对策**:针对目标职位进行技能匹配分析,有针对性地学习和提升相关技能。同时,可以通过实习...
10. **文档有效性与实际使用**:比较程序员认为最有效的理解和最常使用的理解代码方法,分析两者间的差距及原因。 11. **文档与项目规模关系**:探讨项目规模与文档制品重要性的关联,以判断是否所有项目都需要详尽...
在技术技能方面,C/C++和Java是使用人数最多的编程语言,C#紧随其后,而Delphi虽然名列第三,但与前两者相比使用人数有明显差距。 报告还提到,企业信息化和通领域是目前行业中最受欢迎的领域。小型和中型民营软件...
然而,尽管如此,超过半数的程序员对于自己的薪资表示不满,这可能源于个人期望与实际收入之间的差距。 调查将程序员薪资分为四个等级:低收入(小于2000元)、中等收入(2000~5000元)、中高收入(5000~10000元)...