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

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

3天内不再提示

软件工程师如何掌握终极技术

工程师人生 来源:网络整理 作者:工程师吴畏 2018-10-19 10:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

身处节奏很快的IT行业,软件工程师一定希望自己在职业发展的道路上掌握“终极技术”,以便将来即使“长江后浪推前浪”仍能获得竞争优势。掌握“终极技术”对于我们究竟意味着什么?深刻理解这一问题有助于我们在面对技术学习和技术选择时不至于迷茫或人云亦云。我认为,掌握“终极技术”的最终目的不是为了能在工作中“耍酷”(“哇,这问题其他哥们都搞不定,只有我能!”),也不是为了追赶“技术潮流”(“听说Go语言以后能替代C/C++Java,我得赶快去学!”),而是为了高质高效地工作,因为只有这样才能提高我们的生活品质和减少浪费(浪费可能包括奢华的青春和/或宝贵的社会资源)。

实际上,我们一生都是在工作质量和工作效率的二维坐标系上“画线”。有的人一生都难以走出低质低效的困境,而有的人却能进入高质高效的殿堂。

明白了掌握“终极技术”的意义,那“终极技术”究竟是什么?会是C/C++、Java、Objective-C或Go等编程语言吗?当一个只精通C/C++编程语言的人加入到以Objective-C为编程语言的项目上时,显然他必须重新学习编程语言。由此看来编程语言因为对不同的项目并不具备普适性,难以拥有“终极技术”之名。对于网上不少为编程语言而打口水仗的人,我真怀疑他们将编程语言当作是“终极技术”了。一旦知晓了“终极技术”的存在,你一定会发现,其实所谓的编程语言“优劣”跟本就不是业内的大问题。如果某种语言直接导致了项目的失败,那该语言早就绝迹了;反过来,如果某种语言直接导致了项目的成功,那世界上估计也只会有这一种语言了。因此,选择编程语言的重点不是考究其“优劣”,而是其适用性。过分计较编程语言的“优劣”其实是不成熟的一种表现。这类人还容易犯的一个毛病是 — 生怕落后,热衷于学习新的编程语言。请别忘了,编程语言我们无论如何也学不全,即使真有人学全了,我也怀疑他所学的只是皮毛。

“终极技术”又会是Linux或Windows这样的操作系统平台吗?由于它们同样不具普适性,所以不可能有“终极技术”之实。同样地,.Net、ACE、QT等都不可能是“终极技术”。

真正的“终极技术”一定具有一定的普适性,能让我们将之运用于各种不同的软件项目。正因如此,“终极技术”具有一定的抽象性。对于软件行业来说,真正掌握“终极技术”意味着:深刻地理解软件(开发)的复杂性本质,并拥有有助于实现高质高效工作的行为(意识、工作习惯等)、能力(思维、业务、沟通)和方法(流程、工具、复用)。

由于“终极技术”过于抽象,使得我们不得不通过一些问题来间接感知。比如:

1)编程好习惯对于软件产品的质量重要吗?如果重要,如何让团队形成良好的编程习惯?哪些编程习惯算是好的?

2)软件质量的根本是什么?是设计,抑或测试?高质量的软件对工程师的工作与生活又意味着什么?

3)软件架构师重要吗?还是只是个虚职?如果重要,软件架构师需要掌握哪些技能?

4)在软件行业具有很大影响力的CMM(软件成熟度模型),其倡导用软件过程的成熟度来度量组织的软件开发能力。那为什么通过CMM最高级别认证的组织仍会开发出质量一塌糊涂的软件?如果你身临其中,能发现导致这种糟糕结果的关键因素吗?

5)软件平台与框架被广泛地认为是高效开发高质软件的方法,但为什么企业运用这一方法后,平台与框架最终却成了一个包袱?困境的表现是什么?什么因素造成了这种困境?有方法避免进入这种困境吗?

6)业内大量使用“最佳实践”这一词汇。真正存在最佳实践吗?为什么有的“最佳实践”在组织中却无效?

7)……

这些问题大多是开放性的,而且不少问题既涉及管理域,又涉及技术域。面对这些问题的关键不在于其是否有标准答案(或许根本没有标准答案),而在于我们是否为之痛苦过、思考过,并形成了自己的想法。要知道,这些想法就是我们在工作中面对选择时用作决策的依据。如果从来没有这类苦恼,很难想象我们真正掌握了“终极技术”。值得一提的是,这些问题只是基于我自己肤浅的认识所提出的,我相信读者还有很多类似或其他的问题。

如果将软件(开发)的复杂性比喻为一头大象,那么我们每一个人或许是正在摸象的又瞎又聋的人,我们穷一生通过“摸”的方式,在头脑中构建“象”的模样。这个比喻间接地告诉我们,“终极技术”并非是某种一成不变的内容,其中更涵盖有每个人根据自己的阅历所总结出来的在高质高效工作道路上成功应对困境的方法和信念。

“终极技术”一定是通过掌握象编程语言等非“终极技术”而最终掌握的,也需要我们通过经受软件项目的痛苦磨砺去沉淀。在没有掌握“终极技术”之前,请不要停留在编程语言专家、Linux内核专家、.Net专家这样的光环之下,继续探索,前面还有更大的舞台等着你!在掌握“终极技术”的职场旅途中,我们得先认识到一点:就技术内容而言,职场首先比拼的并不是智商,而是我们的坚持与良好的工作习惯。工作中的很多道理我们都懂,但就是不能坚持做到深究,也难以通过坚持克服陋习去形成更多的好习惯。在掌握“终极技术”的道路上,我们一定会看到很多不尽人意的内容,也会面临不少困难与挫折,即使理智上悲观,但我们在行动和意志上一定要保持乐观。

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

    关注

    8

    文章

    243

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    你知道电子工程师,到底分几种吗?

    第一种,硬件工程师:他们擅长画原理图、选元器件、调板子,是电路的专家、产品项目的“总导演”!第二种,软件工程师:脑子里全是代码,天天跟驱动、算法打交道,芯片怎么跑,他们说了算。第三种,固件工程师
    的头像 发表于 04-20 08:52 200次阅读
    你知道电子<b class='flag-5'>工程师</b>,到底分几种吗?

    电子工程师的双标瞬间 #电子 #电子爱好者 #电子工程师 #扬兴科技 #双标

    电子工程师
    扬兴科技
    发布于 :2026年03月02日 18:04:13

    什么是BSP工程师

    一、嵌入式系统 要明白什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)说起。维基百科上对嵌入式系统的定义如下: 嵌入式系统(Embedded System),是一种嵌入机械或电气系统内部
    发表于 01-13 06:54

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

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

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

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

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

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

    电子发烧友工程师看!电子领域评职称,技术之路更扎实

    电子发烧友的各位工程师、硬件开发者们,咱们每天在平台查芯片手册、讨论电路设计难题、分享嵌入式项目经验,从调试 PCB 板到开发 AIoT 系统,靠的都是过硬的技术实力 —— 而电子领域的职称评审
    发表于 08-20 13:53

    从线性到非线性:工程师必须掌握的Abaqus三大非线性来源

    硕迪科技为您深入剖析Abaqus三大非线性来源:材料非线性、几何非线性、边界条件非线性。掌握工程师必备的非线性分析核心知识,理解复杂工程问题的本质
    的头像 发表于 08-07 18:08 1877次阅读
    从线性到非线性:<b class='flag-5'>工程师</b>必须<b class='flag-5'>掌握</b>的Abaqus三大非线性来源

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

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