文章作者:张虎,极光推送创始人、前 CTO,现为云巴(yunba.io)创始人。
最近越来越多人的在谈论 全栈工程师 (full stack),从某种意义上来说,一个优秀的工程师,必然是一个全栈工程师,或者至少一两种跨语言、平台工作的能力。 就我个人的理解,来探讨一下如何定义一个优秀的工程师。
简单版本
复杂版本
有扎实的基础知识。理解计算机、操作系统、编译、链接、装载等各个环节的原理;理解网络原理;熟悉常见算法和数据结构。
深刻的理解至少一门计算机语言。有完整的用一种语言实现一个产品的经历,有10万行以上的编码经验;完整掌握整套工具链。
有良好的学习能力。可以阅读英文文档,经常上几个活跃的英文网站看文档、代码。可以在几个星期内上手一门语言。
良好的沟通能力。可以有条理的描述事情、问题;能根据对方的背景,用对方更能理解的语言沟通;习惯编写友好的文档;有良好的心态接受挑战,并从中找到积极因素。
良好的自我管理能力。可以在复杂繁多的问题里,找到最能推动项目前进的点;在有限的时间内,达到既定目的,并能控制风险。
有追求更好最佳实践,更佳方法的激情。
除了上面列举的具体能力,还有一个非常重要,或者可能最重要的是,知道自己什么东西不懂。
虽说列举了很多,但个人感觉还不够。一个以技术为导向的公司,顶级工程师的能力直接决定了整个公司的能力。
最近观察美国的几个小而美的互联网创业公司,几乎都有很好的技术实践,有的创始人更是跨 产品设计、视觉设计、软件设计、文档编写的更大范围的 full stack。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
### 如何成为一名优秀的软件测试工程师 随着信息技术的快速发展与应用领域的不断拓展,软件产品的质量日益成为用户关注的重点。为了确保软件质量,软件测试工作的重要性愈发凸显。越来越多的人才加入到软件测试...
【如何成长为优秀的软件工程师】 在IT领域,成为一名优秀的软件工程师是许多人的追求。这不仅仅意味着技术的精通,更包括了全面的专业素养和个人品质的提升。以下是一些关键的步骤和建议,帮助你在这个过程中不断...
为了成为一位优秀的软件工程师,深入学习和不断实践是必不可少的。这份资料集《历年软件工程师真题和答案》提供了宝贵的学习资源,帮助备考者和从业者提升技能,掌握考试要点。 一、软件工程师考试概述 软件工程师...
在团队合作中,软件工程师要学会与设计师、产品经理和测试工程师等不同角色协同工作,理解他们的需求和限制,以实现项目的成功交付。良好的沟通技巧和团队精神是确保团队效率和凝聚力的重要因素。 此外,随着行业的...
《软件工程师考试大纲》是为准备参加软件工程师资格考试的考生提供的一份详细指南,旨在帮助考生更好地理解和准备考试内容。这份大纲包含了考试的核心要求、科目设置和推荐的学习资源。 一、考试要求 软件工程师...
本文将围绕“软件工程师管理系统”这一主题,深入解析其中涉及的Java核心技术,包括集合、I/O流和异常处理,帮助读者更好地理解和运用这些知识。 首先,Java集合框架是Java程序设计中的基石,它提供了数据结构和...
综上所述,软件工程师的工作涵盖了从需求分析到项目实施的全过程,需要具备全面的技术能力和优秀的项目管理能力。通过上述分析,我们可以更加深入地理解软件工程师在IT项目中的重要地位及其所承担的关键职责。
2. 优秀的软件工程师深知没有完美的设计、服务和工具,他们还深刻理解可选方案以及实际状况的约束并能做出适当的权衡。 3. 优秀的软件工程师会将大问题分拆为小问题,针对小问题进行理解、构思、计划、维护和重用。 ...
《软件测试工程师基础教程》是针对初学者设计的一本全面且...通过学习本书,读者将能够建立起扎实的软件测试理论基础,掌握软件测试的全流程,同时熟悉常用的测试工具,为成为一名优秀的软件测试工程师打下坚实的基础。
《软件工程从入门到精通--软件工程师...本教程的"电子教案"可能包含了以上各个方面的详细讲解,通过案例分析、实战练习等方式,使读者能够理论联系实际,深入理解并掌握软件工程的各个环节,成为一名优秀的软件工程师。
通过阅读,读者不仅能学到软件开发的专业知识,还能培养出独特的软件工程思维,这对于成为一名优秀的软件工程师至关重要。 总之,《软件工程师精通》是一本全面而实用的指南,无论你是初入行的新手,还是经验丰富的...
《软件工程师考试(HTML版)》是一套全面且详尽的资源集合,旨在帮助考生准备软件工程师相关的资格认证考试。...同时,持续关注行业动态和技术发展,保持与时俱进,是成为一名优秀软件工程师不可或缺的部分。
一位优秀的软件工程师在六年的职业生涯中,经历了许多挑战和成长,总结出以下几点关键经验,对于初入职场或正在发展的软件工程师们具有很高的指导价值。 1. 学历与能力的平衡:学历虽然代表过去的学习经历,但能力...
这份“软件工程师(高级程序员)复习资料”涵盖了几个关键的领域,包括操作系统基础知识、编程语言原理以及存储器系统,这些都是一个优秀软件工程师必须掌握的核心概念。 首先,关于“安全性”,这是软件开发中的...
总结来说,成为一名优秀的工程师需要具备良好的代码编写习惯、清晰的代码逻辑、易于理解的代码结构、合理的代码复用、安全的代码审查以及明确的命名规范。只有在这些方面都有良好的掌握,才能够在软件开发工作中...
优秀的工程师会提前完成,良好的工程师能按时完成,正常的工程师基本能在计划内完成,而需改进的情况则表现为频繁的延期。 2. 工作量饱和度与生产率:评估工程师的工作效率,通常通过代码量和完成时间的比例来衡量...
在软件工程师的职业生涯中,无论是求职还是晋升,笔试和面试都是至关重要的环节。这份压缩包文件"软件工程师笔试、面试题大全"包含了丰富的资源,旨在帮助准备...记住,持续学习和实践是成为优秀软件工程师的不二法门。
【Java高级软件工程师就业培训班课程设置】的详细解读 Java高级软件工程师的培养是一个系统而全面的过程,旨在提升学员在Java开发领域的专业技能和实践能力。这个培训班的课程设计覆盖了从基础到高级的多个阶段,...