文章作者:张虎,极光推送创始人、前 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版)》是一套全面且详尽的资源集合,旨在帮助考生准备软件工程师相关的资格认证考试。...同时,持续关注行业动态和技术发展,保持与时俱进,是成为一名优秀软件工程师不可或缺的部分。
这份“软件工程师(高级程序员)复习资料”涵盖了几个关键的领域,包括操作系统基础知识、编程语言原理以及存储器系统,这些都是一个优秀软件工程师必须掌握的核心概念。 首先,关于“安全性”,这是软件开发中的...
总结来说,成为一名优秀的工程师需要具备良好的代码编写习惯、清晰的代码逻辑、易于理解的代码结构、合理的代码复用、安全的代码审查以及明确的命名规范。只有在这些方面都有良好的掌握,才能够在软件开发工作中...
优秀的工程师会提前完成,良好的工程师能按时完成,正常的工程师基本能在计划内完成,而需改进的情况则表现为频繁的延期。 2. 工作量饱和度与生产率:评估工程师的工作效率,通常通过代码量和完成时间的比例来衡量...
稳定高效的工作设备和良好的办公场所是软件工程师能够集中精力开发优秀软件产品的基础。同时,合理的工时安排和对加班制度的适应性也是工作环境的一部分。软件工程师需要在保证工作质量的同时,遵守公司安排,灵活...