怎样成为优秀的程序员或软件工程师?

文章来源:吾爱培训网         发布时间:2021-01-26 09:04

软件开发培训

一、学习阅读代码。

大部分程序员只愿意使用他们自己编写的代码,但是高手一般都能轻松调用其他人编写的代码。看起来是工作习惯不同,其实是能力的差异。查看代码比编写它要困难许多倍。

二、回顾。

编程人员通常都非常忙碌,他们手边有无法完成的工作。但是在一些公司,你只是重复做着同样的事情。时不时地丢掉手头的工作,留出一些时间分析自己的弱点,改掉坏习惯,阅读新书,或者学习一门新的语言。

三、进行个人项目。

职业编程一般只能让您熟悉部分技术,从而导致漏洞的形成。看起来你一直都是在自己后院练习投篮,但是第一场比赛才输了,发球的时候还需要传中、防守、篮板等一些概念。

facebook倾向于雇佣所谓的“fullstackprogrammer”,即一个人可以从设计、交互、html、css、javascript、server、sql、架构、数据统计等方面进行工作。作为一个fullstackprogrammer,最好的方法就是持续地进行个人项目。

四、问答网站。

提问和回答问题都是学习的好方法。有时候,写出一个好问题比写出解决某个问题所需的代码要困难得多。写作能帮助你理清思维逻辑。您可以尝试每周在http://stackoverflow.com上提出一个很好的问题或者写下一个很好的回答。

五、参加良好的团队。

进步的最佳途径是与比自己更优秀的人共事。能人们愿意聚在一起,所以很多人会选择去早期创业。当我在硅谷和创新工场做生意的时候,我遇到了许多神人,并向他们学习。

Coursera的所有工程师共享同一个名字:“软件工程师”。也许你认为这会导致职业发展的模糊,但是我们喜欢这个模型而不喜欢严格的等级制度。

作为一家小型的创业公司,我们在一个紧凑的工程学组织之下,致力于共同完成我们的使命:为世界提供最好的教育。每一位员工都是公司的一份子,职位和角色都会约束他们去发挥他们最大的潜力。

我国文化是谦逊的体现。卓越的工程师被认为是公认的贡献、领导能力和态度,而非他们的头衔。

人人都是领袖。我国的文化非常开放,很具包容性;一些最好的思想,通常来自大学新生或者实习生。希望能帮助大家在这里成长为技术的领导者。

身为技术员,我们一直在努力提高自己的技能,帮助我们的工程师不断进步。我想在这里工作,就是我们改变自己的经历,并且用同样的方式改变公司的轨迹。

为引导我们的工程团队,我们列出了一系列品质,这些品质是由一些杰出的高产工程师体现的。Coursera和LinkedIn、谷歌、Facebook等其他硅谷高科技公司的员工都很欣赏这些优秀的人才。本文分享了这一清单,希望能激励其他工程团队思考他们所重视的品质,以及如何建立一种企业文化,以培养和奖励优秀人才。

领导层。

软件开发培训

领导未必就是管理者。科技领袖就是你如何工作。您为您的项目、团队、整个技术团队服务。优秀工程师至少表现出以下几个特点:

优秀的工程师在不同的项目中都能扮演起技术领导者的角色,项目的范围从小到大,影响范围从低到高。它们能够提出好的想法,阐明设计,排除障碍并持续改进。它们与产品团队一起建立正确的产品上线顺序,它们知道如何权衡质量、完成度和速度。有时候,他们会确保项目通过数据驱动的决策完成。

发现差距:伟大的工程师能够广泛地思考差距和他们所面对的问题。而且,他们是第一次发现,我们从来没有意识到自己的问题所在。与抱怨相比,他们更重视解决问题——事实上,他们渴望保持手足无措,用创造性和真正的热情来应对面前的挑战。

看齐:伟大的工程师总是围绕着那些比他们更优秀的工程师。它们是以身作则,提高生产力,领导和激励他人。它们以编码和设计审查的角色帮助每个人。

热爱学习:伟大的工程师为了持续提高技能,他们热情洋溢地阅读技术文档、研究论文和博客。她们喜欢上课,吸收他人的经验。

机构意识:伟大的工程师将知识和经验传递给整个机构。她们通过技术讲座、阅读分享、哈克竞赛来分享她们的作品。一位优秀的工程师可以对外发表博客文章、会议演讲或研究论文。

影响:伟大的工程师影响着其他工程师采用新的技术、结构、过程和标准。可通过它们能够影响的工作空间距离或代码审核队列的大小来衡量。

态度:像所有Coursera的员工一样,好的工程师关心团队成员,保持谦虚。她们意识到每个错误实际上都有机会使她们做得更好。

科技卓越

杰出工程师在技术上的卓越体现在许多方面:他们可以是厉害的产品黑客、算法高手、注重细节的基础设施工程师,或者更多。在设计解决方案时,我们非常重视那些能思考复杂产品和基础设施问题的工程师。

优秀的工程师设计强大、直观、可扩展、灵活、可维护、可操作、可扩展、高效。它们在质量和执行速度之间取得平衡。

折衷。

除业务目标之外,优秀的工程师还可以通过提高工程团队的生产力、构建可重用组件、提供工具使代码库能够更好地管理这些工作来提升工程组织的整体性。这就是说,要构建抽象的服务或组件,使其成为多个产品的需求,或者提高开发者的工作效率。它还意味着积极地构建工具、提取功能库、修补破损的窗口、编写工程文档或测试用例。

这里没有列表!

好的工程师未必擅长以上所列的所有方面,但他们一定擅长一些。它们可以非常全面,也可以在一些项目中非常突出。你很可能不会像以下游戏中的角色(左)那样得到高分,但是你可能更像哥拉斯(右)那样得到高分。