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

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

3天内不再提示

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

工程师人生 来源:wv 作者:简书网 2019-09-04 14:52 次阅读

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

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

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

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

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

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

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

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

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

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

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

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

    关注

    8

    文章

    217

    浏览量

    20923
收藏 人收藏

    评论

    相关推荐

    Cognition发布首款AI软件工程师Devin

    据报道,Cognition公司今日公布了其首款人工智能软件工程师——Devin,掀起了打造软件模式变革的序幕。该产品在SWE-bench代码测验中展现出卓越表现,甚至超过了部分顶级人类工程师的水准。
    的头像 发表于 03-13 10:57 316次阅读

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    如何构建linux开发环境和编译软件工程、应用程序

    前文介绍了如何使用官方提供的镜像文件启动开发板,本文将说明如何构建linux开发环境和编译软件工程、应用程序
    的头像 发表于 01-03 12:31 418次阅读
    如何构建linux开发环境和编译<b class='flag-5'>软件工程</b>、应用<b class='flag-5'>程序</b>

    嵌入式软件工程师常用的

    最近我换工作了,看见不同嵌入式软件工程师用的平台都不一样,所以我整理了一下。PlatformIO:多平台支持:PlatformIO支持多种嵌入式平台,包括Arduino、ESP8266、ESP32
    的头像 发表于 12-24 08:00 209次阅读
    嵌入式<b class='flag-5'>软件工程师</b>常用的

    Linux开发工程师是吃青春饭的吗?

    Linux开发工程师怎么样?都说程序员是吃青春饭,Linux开发工作35岁之后还能做吗? 坦白说,如果程序员在35岁的时候,“工作经验”与刚毕业的时候差别不大,则其不可替代性就不高,很难在
    发表于 08-24 09:59

    移植ARM DHCP服务器版本1程序员指南

    这本书由ARM DHCP服务器服务器软件提供, 假定ARM DHCP服务器移植源可以作为参考, 也假设您可以访问程序员的 C 和 ARM 组装语言指南。 本程序员指南是为有经验的内嵌系统程序员
    发表于 08-18 06:46

    霓虹灯程序员指南

    如果您对ARM技术完全陌生,请阅读Cortex-A系列程序员指南,了解有关ARM架构配置文件和一般编程指南的信息。 ·霓虹灯技术是ARM高级单指令多数据(SIMD)扩展的实现。 ·霓虹灯单元是执行
    发表于 08-17 06:32

    PrimeCell DMA控制器(PL080)技术参考手册

    使用本手册 rnpn 识别符号表示本手册所描述的产品的修订状况,其中:rn pn 指明了产品的主要修改情况。确定了产品的微小修改或修改情况。本手册是为硬件和软件工程师编写的,用于实施系统芯片(SOC
    发表于 08-02 15:36

    PrimeCell单主DMA控制器 (PL081)技术参考手册

    使用本手册 rnpn 识别符号表示本手册所描述的产品的修订状况,其中:rnpn 表示产品的主要修改;确定产品的微小修改或修改状态;为硬件和软件工程师编写手册,以实施系统芯片(SOC)的设计;提供信息
    发表于 08-02 15:27

    ARM PrimeCell多端口存储器控制 (PL176)技术参考手册

    本文件是ARM PrimeCell MPMC(PL176)的技术参考手册。本文档是为实现片上系统(SoC)设计的硬件和软件工程师编写的。它提供信息,使设计者能够尽快将外围设备集成到目标系统中。本文
    发表于 08-02 10:54

    ARM PrimeCell通用输入/输出(PL061)技术参考手册

    本文件是ARM PrimeCell GPIO(PL061)的技术参考手册。本文件是为硬件和软件工程师在芯片上实施系统设计的硬件和软件工程师编写的。它提供信息,使设计能够尽快将外围设计
    发表于 08-02 06:49

    PrimeCell多端口存储器控制器(PL172)技术参考手册

    rnpn 识别符号表示本手册所描述的产品的修订状况,其中:rn pn 指出产品的主要修订情况。确定了产品的轻微修订或修改情况。使用本手册的预定受众。本手册是为硬件和软件工程师编写的,以实施系统对齐
    发表于 08-02 06:32

    热门推荐:硬件工程师必备工具

    硬件PCB产品顺利投产。 华秋DFM可制造性检查软件,在硬件开发流程中起到了非常关键的作用,对于广大硬件工程师来说具有很大的便利性和实用性。 华秋DFM软件下载地址(复制到电脑浏览器打开
    发表于 06-21 10:15