0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件工程师如何走向成功

工程师人生 来源:wv 作者:简书网 2019-09-26 17:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

众所周知,并不是每一个程序员都能成为优秀的软件工程师。许许多多发展潜力良好的“种子选手”,有着多年的的工作经验,并且曾为大型或者超大型的技术公司服务过,按时到且止步于面试。

我们可以肯定,应聘人员都是能力不错的软件工程师,甚至可能很擅长他们目前的工作。在面试中否决这些人,只是因为面试官不认为他们能成为一名优秀的软件工程师。而具备一些特殊的品质能让软件工程师更容易在创业环境中取得成功。同时这些品质在初创企业比在一个更成熟的公司更为关键。

因为在一家初创企业:

1.由浅及深,可以对产品、软件系统、文化及团队有一个更为深刻的认识。

2.成功源于团队的表现,而非个人之功。如果位于一家更大更成熟的公司,你的出色表现就会成为你向上爬的踏脚石,但是在一家又新又小的公司,这根本不值一提。

3.时间是控制因素,一是因为初创企业盈利能力薄弱,另外则是和那些盘根错节根深蒂固的老牌子公司相比,灵活敏捷是他们最大的优势。而时间有限就意味着必须马不停蹄、加班加点,不能拖拉磨蹭,也就是说没有太多的时间供你挥霍在需要解决的问题上。

而有着卓越的决策能力和熟练的技术,则是最有效率的软件工程师。这样的工程师大多内涵以下7种特质:

1.很大一部分时间其实是花在系统调试上的,而非技巧编程

当有用户报告紧急问题,尽快将其修复;当数据莫名遭到破坏,要尽快找出罪魁祸首;当服务器的CPU出现负载高峰,尽快找出原因等等,都是工程师的工作。而良好的调试技巧则能让企业干净利落地解决这些问题。

所以在调试时,应采用一种科学严谨的思维看待问题:先去假设出错的地方,然后用最小可重现的情况或者最有效的方法去验证。此外,调试过程还需要涉及各种的工具:缩小回归原因范围的git bisect、交叉分析现状的UNIX命令行、发现瓶颈的分析器、单步执行代码的调试器等等。当然,调试的应用范围不仅仅局限于技术领域。

如果产品的使用率和增长率趋于平稳,那么该如何假设和测试用户的行为以调试未来目标的重心?若一个团队完不成他们的项目目标,又该怎么调试才能知道导致项目流产的最终原因是团队沟通不畅,技能不足还是别的其他原因?关键:先从数据入手

2.对于未知勇于挑战。

面对未知作为一名软件工程师,需要经常专研那些又大又不熟悉的代码库。可能需要好好研究正在使用的开源工具的代码;又或者需要掌握其他团队成员写的代码等等。所以,能快速驾驭大型代码库和精通相关区域的能力显得至关重要。而这种能力一般来自于经验,通过阅读大量代码积累。另外则需要靠熟悉能搜索代码库、跳转到相关部分的工具,以及会查找有关提交历史中的版本控制——这些捷径都能减少了解新代码所需的时间。

若是在成熟的公司,这种未知也能让我受益匪浅,不过不同的是,工程师往往只需要专注并精通一部分代码库就能成果斐然了。当然,其他非代码领域有时候也需要你去探索。软件工程师常常需要与销售人员讨论客户要求的可行性、接待客户、给新的工程师培训,以及其他领域甚至完全没有接触过的事物。

3.在一家大规模公司决策的务实态度,在代码审查和单元测试坚持己见有助于改善组织平衡。

但在一家初创公司,关键因素是:务实。这能让团队快速完成任务。比如:知道什么时候应积极辩论,当一旦有了决策,即便你再不同意,也能一丝不苟地作为团队的一份子认真执行。而对决策的指导启发式评估应侧重于“是否最终能增加团队成功的概率?”。很多因素都会对这个问题产生效果:团队的文化、产品的选择、架构的侧重点、人才结构等等。在决策前最好限定讨论的时间,然后执行,参与人员各抒己见。

4.工欲善其事,必先利其器。

工具的合理运用能节约大量的时间,时间则是工程师最重要的资源。对于初创公司,工程师善用工具的能力越强,完成的任务数量就会越多。而高效的工程师常常是那些善于利用工具的人,这一点在刚创业公司尤为重要。一些大型的组织一般会有专门的工具团队。若这些工具也为其他团队成员所接受,那么团队生产力将会发生乘数效应。

5.高大上的多元化初创企业,早期出现的许多问题并不需要很专业的知识。

具备的技能越多,在解决问题时所遇到的瓶颈就越少,哪怕只对这些技能有一个最基本的了解,甚至还在熟悉摸索的过程中。如果前端Web工程师同时装备了基本的服务器技术(server skill),当下次再遇到与此相关的问题就不必去请服务器工程师了。而后端工程师,若会一些基本的HTML、CSS以及JavaScript技能,就能将其所制作的工具设计成一个Web界面,方便其他成员使用,不必因为缺乏Web设计师而裹足不前。一个在成长的工程师,应该能达到顺利使用基本的数据分析工具分析实验数据,而不必受制于数据分析员。不过,还有一种更欢迎“专家”的例外,如果是在利基、重技术的环境中,拥有更加精深的专业知识和工作效率。随着创业公司的不断发展,对于杂而不精的多面手,越到后期,替代品就会越多。

6.保持玩家心态,而非受害者心态

在《Conscious Business》一书中,Fred Kofman描述了人们对待问题采取的两种不同态度。一种就是玩家的心态,审视自己的能力,一旦确定能做补救,毫不犹豫投入。一种是受害者的心态,怨天尤人,责怪他人的不是,例如产品推出不当、项目时间太少、以及和队友之间发生争执等等,通通归咎于外部因素。在短时间内,受害者心态可能抚慰受伤的心情,但是从长远角度分析,拥有玩家心态的人可以不断进步和发展。而在创业公司工作压力是很大的,同时随着压力程度的增加,人们往往回顾,不去勇于承担个人责任,陷入逃避责任和互相推诿的怪圈。

7.不断学习与回顾,持之以恒。

研究发现,只要程序员有足够的激情和动力,上述品质是可以通过学习和培养后天养成的。坚忍不拔是一种专注于长远目标的激情和毅力。众所周知坚持梦想,坚持未来,不是一两天之功,也不是一周两周之效,更不是一个月两个月就可以实现,而是持续多年,不畏艰辛、勇往直前,为了目标而奋斗。随着时间的推移,不断进步,一定会成为一个更为优秀的软件工程师。

上述这些技能即便是在更为成熟的公司也是能助你一臂之力的,不过在初创公司发挥的作用更大。当然,并不是说不具备这些技能就能成为一个好的工程师了,这说明,可能你不大适合这种创业环境。但是,如果要立志成为一个优秀的软件工程师,不要让上面这7种因素限制发展。从现在开始,模拟一个学习计划来提高技能吧!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件工程师
    +关注

    关注

    8

    文章

    243

    浏览量

    21549
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源鸿蒙技术大会2025丨AI软件工程分论坛:智能创新,赋能开源鸿蒙软件工程

    师生深度参与技术交流联动。论坛由华为终端软件工程与IT装备部孙为国与开源鸿蒙AI软件工程SIG副组长王意明联合出品。此次论坛的成功举办标志着开源鸿蒙AI软件工程从技术探索步入规模落地阶
    的头像 发表于 11-20 17:32 599次阅读
    开源鸿蒙技术大会2025丨AI<b class='flag-5'>软件工程</b>分论坛:智能创新,赋能开源鸿蒙<b class='flag-5'>软件工程</b>

    工程师变身AI“指挥者”,吉利与阿里云的软件开发变革实验

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单一技术能带来数量级
    的头像 发表于 11-13 10:43 201次阅读
    <b class='flag-5'>工程师</b>变身AI“指挥者”,吉利与阿里云的<b class='flag-5'>软件</b>开发变革实验

    硬件工程师面试必会:10个核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    做了电子工程师之后,最好拍的视频出现了#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57

    (仰天长啸)为什么受伤的总是硬件工程师...#MDD#MDD辰达半导体 #电子工程师

    电子工程师
    MDD辰达半导体
    发布于 :2025年04月27日 18:21:47

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37

    工程师经验分享:社区之星 赵云 沉着稳定才能做好技术

    控制算法理论和实践有过推导和大量的研发调试经验。   工作经历: 华为技术有限公司---芯片验证工程师 上海问问网络科技有限公司---电机驱动软件工程师       社区访谈: 社区小助手:可以分享一下您的学习、工作经历吗,您是怎样进入电子行业的呢? 赵
    的头像 发表于 04-15 15:58 988次阅读
    <b class='flag-5'>工程师</b>经验分享:社区之星  赵云 沉着稳定才能做好技术

    如何成为一名嵌入式软件工程师

    如何成为一名嵌入式软件工程师? 01明确岗位的角色与定位 嵌入式软件工程师主要负责开发运行在特定硬件平台上的软件,这些软件通常与硬件紧密集成,以实现特定的功能。 不仅需要精通编程语言
    发表于 04-15 14:37

    硬件工程师:回答我!#回答我 #硬件工程师 #YXC晶振 #扬兴科技

    硬件工程师
    扬兴科技
    发布于 :2025年03月25日 18:46:59

    一招拿捏电子工程师#被AI拿捏了 #电子工程师 #电子电工

    电子工程师
    安泰小课堂
    发布于 :2025年03月25日 17:30:51

    嵌入式软件工程师就业好不好?

    嵌入式软件工程师就业好不好?会不会越老越吃香?今天一起来看看。 首先看下市场需求。 随着物联网、人工智能、5G等前沿技术的快速发展,嵌入式系统的应用领域不断扩大,从智能家居、汽车电子到工业自动化
    发表于 02-20 10:19