个人建议广度优先。 因为你必须知道适合什么, 才能够确定自己想要深入的。公司有个孩子做了四年流媒体,发现根本不是自己喜欢的行业, 然后转行ios, 又开始从最底层做起。 转型有痛点, 如果不能博览整个行业, 没有一个整体的知识体系, 很容易沦为重复劳动的码农。
作一个真正合格的程序员,应该具有的素质。
1:团队精神和协作能力
团队精神和写作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
2:文档习惯
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。
4:需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
5:模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
6:测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
7:学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:
1、 需求分析能力
2、 整体框架能力
3、 流程处理能力
4、 模块分解能力
5、 整体项目评估能力
6、 团队组织管理能力
1、计算机运行原理与发展历史:计算机运行原理与发展历史与普通程序员关系不大,只要有一台配置高一点的电脑就可以编程,这是很多程序员正常想法,所以很少有人去了解计算机的结构。计算机运行原理与发展历史可以让一名从程序员更好了解程序运行的条件与原理。
2、编程语言:学习一门编程语言这是作为程序员必备的条件。选择一门自己感兴趣与喜欢的编程语言,每种编程语言都有它的优势,所以不管你学习哪种编程语言都有竞争力。
3、学习前端技术:也许很多程序员会问,这是前端工程师技术范围,为什么每个程序员都要学习我们要知道开始接触编程都是从前端技术开始,前后端技术是联系在一起的,了解前端基本课程,这也是方便你以后编程开发方便与前端工程师交流。建议必学JavaScript与简单了解HTML5。
4、数据库结构与使用:数据库与后端工程师关系最密切,数据库是所有数据保存的空间,正常情况都是后编程语言处理这些数据。
5、学习算法:过去几年或未来一段时间人工智能都不会被人们遗忘,更何况像大数据处理,复杂程序结构,终端开发等都需要算法。
其实程序员应该学计算机与技术专业,而程序员是一个辛苦的职业,每时每刻就都坚持学习,做为一名专业的程序员都应该学习以上五门课程。
程序员是指从事程序开发、程序维护的专业人员。程序员就是把解决问题的方法以计算机可理解的方式告诉计算机并让之执行以解决问题的工程师。开发程序员主要分为设计和编码:前端开发,后端开发,全栈开发,设计师、架构师、测试工程师等。
对于世界上的IT程序员来说,年平均年薪大概在61000美元,高端程序员接近99,000美元,IT业的薪资待遇主要受其经验和技术水平的影响,其次是所在的城市和公司。根据采访数据,84%的计算机程序员为男性,大多人也享受完善的保险,有比较高的工作满意度。
2018美国各IT职业软件开发平均薪水:
软件开发 - $ 92,240
入门软件开发员 $ 65,204
高级软件工程师 $ 115,593
Java开发 $ 102,985
C ++开发 $ 115,430
C#开发 $ 94,567
NET开发 $ 88,919
JavaScript开发 $ 110,514
PHP开发 $ 86,335
参考资料:
以上就是关于程序员学习技术是深度优先还是广度优先全部的内容,包括:程序员学习技术是深度优先还是广度优先、一个初级程序员应该具备哪些素质、程序员是学什么专业等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)