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

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

3天内不再提示

软件工程师和程序员的区别

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

扫码添加小助手

加入工程师交流群

软件工程师通常认为好的软件是采用正确的模式、遵守规范、制定规则、遵循最佳实践和正确处理流程的产物。

程序员知道这些都是狗屎。

相对于建设一座大桥,编写代码更像是创作音乐,编写书籍,拍摄电影,或者是绘画。事实上,编写代码更难。这需要我们做更多,使我们的产品不仅仅是好看或者好听那么简单。大家知道,好的音乐、绘画、文学作品不是关于如何循规蹈矩,更多的是关于如何打破常规,探索新想法。你以为音乐排行榜或者最佳销售榜上那些最流行的作品是因为遵守了什么标准或者规范而上榜的吗?如果是那样,那些榜单将会变得很不一样,而且也不那么流行,因为社会在向前发展,总会出现新事物,或者以不一样的观念审视旧事物,而且永远不会停止。

最好的程序员能够简单自然的完成他们想做的事情,工作稳定,而且有足够的直觉让自己不那么讨厌。通常那些被忽视的东西,要比显而易见的东西要重要的多。比如:相对于一个可配置的软件,我们更希望得到一个可以自己完成配置,或者干脆不需要配置的软件。我们大概没有意识到身边存在许许多多正在使用的运行良好的软件,因为它们只是在默默的在运行,我们不需要关心或者担心他们。当软件出现问题的时候,我们才会关心那些“软件工程师”是不是遵循了规范和流程,软件崩溃让我们很满脑,因为软件是一样关注人,关注解决问题的东西,而不仅是工具或者技术(直到有一天,你尝试了各种各样的软件最后发现一款合适的软件的时候才能深刻的理解这一点),也不是其他什么。当软件好用的让我们吃惊时,我们仍然不会记得什么规范什么流程,除非我们做过类似的事情。所以看起来只有软件工程师关心规范或者流程之类的东西。

我发现那些倾向于工程师的心态, 倾向于聚焦技术、代码、流程是否被正确执行、以及测量那些武断的规范或风格的执行是否到位 的人往往忽略了真正的问题是否被解决了?使用者的真正需要是什么?好的软件能够在用户体验、实际问题以及技术之间取得平衡。最好的结果通常来源于对三者都做微小的修改,但是如只聚焦于工程本身,那就显得过于短视。

当被要求遵守规范的时候、当纠结于繁复的流程的时候创造力被扼杀了,这是个问题。大部分主流的指导和流程是对管理友好的,管理者得到了他们想要的东西。但是软件工业发展非常快, 真正的创新不会产生自“最佳实践”。当工程师还在纠结于流程的时候,程序员则在不断创新,不断寻找更先进方法,这时候他们也许不会遵守流程,不会按部就班,但是他们往往能成功。

举个例子:也许大约200行 Node.js 代码也许能比10000行 java EE 代码更好跟容易的解决问题?也许稍微修改一下用户需求能大幅降低实现的复杂度?

当用户体验、软件功能、技术实现出现冲突的时候,只有程序员能看透其中的奥秘。而软件工程师倾向于忽略这些问题,因为在搞清楚到底出了什么问题之前他们已经决定该如何解决了。他们会控制变更,好像问题会自己修复一样。

当我14岁的时候我成为了一名程序员(自学的),后来我成为了设计师、架构师,然后我意识到我整天只是在画流程图,编写文档,这是在浪费时间,而且感觉糟透了。我现在48岁我又开始写代码了, 而且很喜欢,这是因为相比之前,我能让软件变得更快更好,让它能真正满足用户的需求, 而不是整天在宏观层面胡扯。

有些人认为雇佣工程师能够带来比卑微的‘程序员’更多的稳定性,但我更愿意雇佣程序员或者叫软件开发者,因为工程是反自然的,比如钢筋混凝土,我们如果正确的安装它,但是计算机、人、软件并不是这样运作的,想想一下你需要给一个飞行中的飞机更换零件。

对于我而言,编程和软件开发不仅仅是需要实践的天赋或艺术,虽然它的确需要一些规矩,而更多的是关于创造一些真正的新的充满希望的,让人快乐的或者能够带来真正价值的东西。

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

    关注

    8

    文章

    243

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    电子工程师看书的四个阶段 #电子 #硬件工程师 #电子爱好者 #反转 #扬兴科技

    硬件工程师
    扬兴科技
    发布于 :2026年01月17日 17:29:53

    什么是BSP工程师

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

    Wincc7.5工程师站与操作站配置方法

    ”下载程序,Wincc7.5这个版本是绝对无法直接下载程序的,这个是肯定的,网上有些说怎么操作就可以下载了,这纯属瞎说!“工程师站”等同于“多用户项目”“操作站”等同于“客户机项目”
    的头像 发表于 11-14 16:46 3434次阅读
    Wincc7.5<b class='flag-5'>工程师</b>站与操作<b class='flag-5'>员</b>站配置方法

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

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单一技术能带来数量级
    的头像 发表于 11-13 10:43 501次阅读
    <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

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

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