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

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

3天内不再提示

程序员技术人员的崛起 “码农”和“开发人员”开始涌现

工程师人生 来源:csdn 作者:读芯术 2021-02-20 11:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我周围大多数人都是软件工程师或计算机科学家,大多经验丰富且接受过严格的计算机科学教育。当然,这只能成就一个计算机科学,却不一定能成就编程。许多经验丰富的同事都痛惜年轻同事技能和教育水平的下降。

同时我也发现,入门级编程学习者在工作和课堂上的技能和教育方面有所转变。似乎软件工程作为一门学科和职业已经让位给了“黑客”和“牛仔”开发人员,但他们对实际的计算机科学知之甚少。事物发生变化了吗?如果有,怎么办?

历史101

如果追溯到计算机科学的起源,它还不叫计算机科学,学校甚至还没有设置计算机科学系。计算机科学作为一门学科是数学和(或)工程学的一个下设学科。第一个计算机科学系于1962年在普渡大学成立,15年后,大学计算机科学系才相继推出。在20世纪80年代,计算机科学在很大程度上仍被认为是数学或一般工程的一个子领域。然而,早在20世纪40年代,我们就有了计算机程序员。这些早期的开拓者是谁,他们做过什么的呢?

奥古斯塔·阿达·金,勒芙蕾丝伯爵夫人; 也叫阿达·洛夫莱斯。计算机科学家之母。

最早的程序员是数学家。那时通常不称为程序员,而称作分析员、工程师、数学家,或者被称作“冰箱里那些真正聪明的女人”(最早的程序员大多是女性,大多数电脑都在“冷库”里)。这些“程序员”必须在数学和(或)工程方面受过广泛的正规教育。与我们今天所认为的程序员相比,早期的程序员更像科学家。随着时间的推移,到20世纪60年代末,这一领域发展壮大,进行计算机编程的人们被称为软件工程师。这些人接受过高等教育(仍然主要是女性),通常拥有数学高级学位。这种情况持续了一段时间。

玛格丽特·汉密尔顿, 第一个真正的软件工程师;最伟大的工程师之一。

到了20世纪80年代,计算机科学系和学位开始在各个高校中崭露头角。有人认为这是计算机科学的黄金时代。私人电脑出现在美国各地的家庭中,像《战争游戏》(Wargames)这样的电影引起了人们的兴趣,使他们想更多地了解电脑,而传说中的“互联网”又在挑战人们的认知。在此期间,我们见证了正式而又的传统软件工程师的崛起。该头衔令人垂涎,同时也让人肃然起敬,只有那些在数学、计算机科学和(或)电子工程方面受过正规教育的人才能获得该头衔。这也发展了一段时间。

开始转变

到了90年代末,我们现在简单地称之为“程序员”、“码农”和“开发人员”的人开始涌现,他们不是正规大学毕业,而是拥有军事技术培训学位或动手编程副学位等证书的人,或者仅仅是通过互联网自学的人。渐渐地,这个新的团队以新的头衔进入软件工程领域,比如“程序员”或“开发人员”,而不是“工程师”,我们也见证了网络专家和系统管理员等计算机相关技术领域的爆炸式发展。

即使到了2000年初,作为一名招聘经理,我看到过任何申请软件工程职位的人几乎都有相关的四年学位。如果我看到这样的简历,我会不假思索地跳过。快到2010年末,我看到的申请中至少有一半来自没有正式学位的人。现在作为一名计算机科学教授,经常有学生在一两堂课后辍学,因为他们得到了一份类似程序员的工作(通常不是一份好工作,也不是他们理想中的工作,而是一份名为“开发人员”的工作)。

“软件工程师”这个头衔要么不受欢迎,要么专属于大型科技公司的传统和高级职位。现在,通常是以“开发人员”或“程序员”作为一个职位,或者不幸的话,荒谬和滑稽的“黑客”、“码农”或“代码大师”成为职业。我们也看到了荒谬的“全堆栈开发人员”的标题到处乱扔,似乎这有一些特殊的意义(但其实没有)。学位不再是衡量程序员工作适合与否的必要条件,事实上也不一定需要正规教育。标准似乎在急剧下降,以至于任何能打字的人都能叫“程序员”。

发生了什么?

对于保守派来说,典型的结论和论据是标准下降了。很明显,对任何一个能编程的人(甚至是初级的)的需求都急剧上升。典型的论点是必须有人这样做,所以我们降低了标准杆,只是为了藏在键盘后面。表面上看这是有道理的,很少有人适合攻读四年制的数学、工程和计算机科学等学科的高级学位。

很明显,它变成了简单的数字。对开发人员的需求高得离谱,能够获得计算机科学四年学位的人数相对较低,我们现在需要这个领域的程序员。不管怎样,我们必须该满足需求,所以我们只是降低了标准。显然,现在人人都能成为“工程师”,我们盲目地希望得到最好的。表面上,真正的软件工程正在消失,而几乎没有正规教育的“编码”和“黑客”正在取代它。这是一个简单的答案,许多受过正规培训的工程师(包括我)都愿意相信。然而,和大多数简单的答案一样,我们应该在下结论之前深入研究。

真正改变的是计算机技术的成熟化、模块化和产品化。我们过去要求在计算机各个方面都是训练有素、受过正规教育的软件工程师,因为一个企业或机构中的计算机数量是…一台。一台非常大,非常复杂,非常昂贵的计算机。那时也没有如今所谓的“互联网”。在这些机器上工作的人必须是一体化的科学家、工程师和数学家。这些早期工作的严格程度令人难以置信,因为这项技术本身还不成熟,大部分是实验性的。随着计算机技术的成熟,它变得模块化、产品化和包装化(就像任何技术一样)。不再需要一个集数学家、工程师、程序员、网络管理员和数据库管理员于一体的人。技术变成了即插即用,他们的工作也变成了即插即用。技术角色(如技术本身)在许多受过重点培训的专家中被分解,而不是在少数受过高等教育的通才中。

找到故障了!原来是一只飞蛾。

这在所有领域都会发生。第一天是属于那些具有远见、最具天赋和受过高等教育的人。在早期,只有受过正规教育的人才能拥有,因为每个人都必须对整个领域有充分的了解。想想汽车工业的早期(在它成为一个工业之前);只有那些对冶金和工程有着深刻理解的人才能制造、设计或修理汽车。在1900年初建造或修理一辆汽车可能需要铁匠、冶金、制造、工程、物理和化学方面的知识和技能。在1930-40年代,汽车需求猛增,装配线和模块化零件出现。如今,生产汽车流水线上的普通工人对汽车的工程和冶金知识几乎一无所知,更不用说控制汽车所需的计算机科学了。同样地,我们的汽车技术人员对工程、冶金(或计算机科学)也几乎一无所知。他们使用诊断设备来找出问题所在,在线订购和交换零件。这些技术人员和装配线工人受过培训,技术娴熟,但工作方式与机械工程师或冶金学家完全不同。这已经在计算机科学和软件工程领域发生了,也是必须发生的。

编程技术人员

正如汽车行业的例子一样,编程行业对熟练工人的需求激增。同时,计算机和软件变得模块化、包装化和产品化。网络、系统管理、加密、数据库、电气工程等与计算机科学相关的领域也出现了爆炸性的增长。让计算机领域的每一个人都成为训练有素的计算机科学家和数学家,我们根本负担不起,就像如果每一个装配一线工人和机械师必须要求具有机械工程硕士学位,我们永远不可能实现汽车制造或修理。这样根本行不通。

电脑键盘背后的人越来越类似于熟练和训练有素的汽车技术人员(而不是正式培训的机械工程师)。越来越多的“程序员”或“开发人员”没有接受过正规或广泛的计算机科学教育。相反,这类人接受过编程技能的专门训练,也有一些基础的计算机科学教育。如今,编程不再需要广泛而正规的计算机科学教育,在免费的复杂实验环境中进行。今天的许多编程都需要类似于汽车技师的人,有能力识别所需零件、知道在哪里找到零件并将其正确插入。日常程序员不再需要知道如何设计和构造排序或搜索算法,并在实现之前对其性能进行数学分析。程序员只需找到排序或搜索“部分”并将其插入。

我们看到的不是软件工程师或计算机科学家的衰落,我们看到的是程序员技术人员的崛起。

这些新技术工人是那些具有计算机科学基础知识的人,但这只是因为它与编程以及编程方面的实际培训直接相关。

真正的计算机科学与软件工程:生机勃勃

计算机科学家和真正的软件工程师并没有被“程序员”、“开发人员”和“黑客”所取代,我们只是重新规划职业和职位,进入一个成熟的行业。正是由于计算机科学家、工程师和数学家的努力,编程技术人员(即现代的“开发人员”或“编码人员”)才在如今得以出现。由于计算机科学的进步,软件的构建现在已经模块化,并且大部分是预先打包和指定的,这迎来了广泛的软件库、软件包管理器、依赖关系管理器、集成开发环境、软件即服务、基础设施即服务、分布式代码库,当然还有因特网的出现;所有这些开始于计算机科学研究实验室的博士和工程师。此外,像Python这样的编程语言已经把细节抽象到了某种程度,几乎任何人都可以只用基本的计算机科学知识来做到这一点。

计算机科学家仍在努力建立新理论和新技术。受过正规教育的拥有计算机科学学位的软件工程师仍在将这些理论付诸实践。然而,随着这些新技术逐渐渗透到一线,软件开发中的大部分日常工作都是由程序员技术人员来完成的。

接受正规教育、获得计算机科学的高级学位的计算机科学家、数学家和软件工程师现在仍然在这里,对他们的需求比以往任何时候都高,只是在这个领域中占总人数的比例有点难以确定。正式的工程师和科学家在这个行业中占了100%,现在他们所占的比例越来越小,不是因为他们被替换了,而是因为那些受过正规训练的计算机科学家和软件工程师创造了一个新的高需求工作:程序技术员。

真正的软件工程师和计算机科学家不仅没有衰落,并且还依然坚守,做得比以往任何时候都好。我们应该张开双臂欢迎新同事,因为我们要面对现实,他们现在正在战壕里做大部分工作。

现在是做选择的时候了

由于技术的爆炸性增长,以及那些早期软件工程先驱的辛勤工作,让整整一代人都可以在过去几乎无法进入的领域拥有有利可图的职业生涯。正如20世纪30-40年代的汽车和制造业革命导致中产阶级的产生和生活水平的空前提高一样,2000年的IT革命也在做同样的事情。我们见证了计算机科学的民主化,这是件好事。

现在选择权在于你。几乎每个人都可以成为持续技术革命的一部分,并在技术领域获得高薪的职业。现在的选择不是你是否能进入科技行业,而是你想进入哪个行业,达到什么水平,如何进入这个行业。计算机科学博士仍然每天都在研究和提出新的理论。那些拥有数学和计算机科学高级学位的人仍在测试这些理论,并将其应用到实际技术中。受过正规培训和教育的具有计算机科学学位的软件工程师是该领域的软件架构师和领导者。编程技术人员(即现代的程序员、开发人员和程序员)站在第一线,将部件放置到位,组装和维护系统,而分析师和管理员则为其提供支持。

与早期只有受过最严格训练和高等教育的人才会想着进入计算机领域不同,现在你可以选择你的教育水平,通过提高你的教育水平来随意选择或改变你的位置。然而,要清楚的是,如果你想谋生,你仍需掌握计算机科学的一些基础知识,需要有丰富的技能和生活经验。这并不容易。只是现在你可以选择从哪里开始,走多远。
编辑:hfy

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

    关注

    1

    文章

    144

    浏览量

    11781
  • 程序员
    +关注

    关注

    4

    文章

    955

    浏览量

    30801
  • 软件工程师
    +关注

    关注

    8

    文章

    243

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    程序员最常见谎言

    问题可能是由于网络连接不好导致的。 19我已经按照你的要求修复了 Bug。 20我会在今天下班之前完成任务的。 21那个简单,几天就搞定了。 22在我机器上好好的…… 23开发人员:这个需要10天做完。老板
    发表于 12-10 08:24

    Bourns 深耕印度,在地设计 - Bourns 印度设计中心 为开发人员提供当地先进技术资源助力客户加速创新!

    班加罗尔 (Bengaluru) 正式成立首座设计中心。此新中心将作为以客户协作与创新为核心的研发枢纽,为当地开发人员提供完整的设计工具与技术支持,包括运用 Bourns 具业界领先地位的电源与保护组件之参考设计专业服务。 Bourns 印度设计中心采用成熟流程,协助客户
    的头像 发表于 11-19 14:26 255次阅读
    Bourns 深耕印度,在地设计 - Bourns 印度设计中心 为<b class='flag-5'>开发人员</b>提供当地先进<b class='flag-5'>技术</b>资源助力客户加速创新!

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技中扮演着非常重要的角色。随着物联网的发展,嵌入式系统的需求也越来越大。嵌入式开发不仅需要开发人员具备深入的硬件知识和编程经验,还需要不断学习新的技术和工具,以满足不
    发表于 11-13 08:12

    奔赴热AI,力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 473次阅读
    奔赴热AI,<b class='flag-5'>码</b>力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    AI技术在工程设计的应用

    在不需要硬件交互的纯软件项目中,ChatGPT和Gemini等大语言模型(LLM)可以帮助程序员以前所未有的速度加速开发进程。这种辅助通常包括在开发人员编写代码时提供补全建议,或在排查错误和语法错误时提供故障排除建议——这些都是
    的头像 发表于 09-23 16:21 592次阅读
    AI<b class='flag-5'>技术</b>在工程设计的应用

    Andes晶心科技推出AutoOpTune v1.0提升开发效率

    Andes AutoOpTune v1.0 可自动探索并选择优化编译程序选项,协助软件开发人员在效能与程序代码大小间取得最佳平衡,加速整体开发流程。
    的头像 发表于 08-18 10:23 923次阅读

    什么是零代平台?

    零代平台是一种无需编写传统代码,通过可视化拖拽、参数配置、逻辑连线即可快速搭建业务流程与应用系统的工具平台。它将复杂的软件开发过程转化为 “搭积木” 式的操作,让非技术人员(如业务人员
    发表于 07-12 20:28

    Nordic PMIC全家桶,让电源管理和节能更进一步!

    Nordic 发布了 nPM2100 PMIC 和 nPM2100 评估套件,现已向开发人员提供 nPM2100 评估套件、软件和技术文档! 此次发布公布了 PMIC 的完整文档,供开发人员
    发表于 06-29 17:19

    Thingy:91 X 为开发人员提供了一个经过全球认证的、多传感器、电池供电的蜂窝物联网原型平台

    Thingy:91 X 为开发人员提供了一个经过全球认证的、多传感器、电池供电的蜂窝物联网原型平台 挪威奥斯陆 – 2024年12月10日 – 全球领先的低功耗无线连接解决方案提供商Nordic
    的头像 发表于 05-08 17:41 2288次阅读

    NanoEdge AI Studio 面向STM32开发人员机器学习(ML)技术

    NanoEdge™ AI Studio*(NanoEdgeAIStudio)是一种新型机器学习(ML)技术,可以让终端用户轻松享有真正的创新成果。只需几步,开发人员便可基于最少量的数据为其项目创建
    的头像 发表于 04-22 11:09 1019次阅读
    NanoEdge AI Studio 面向STM32<b class='flag-5'>开发人员</b>机器学习(ML)<b class='flag-5'>技术</b>

    基于RV1126开发板的人员检测算法开发

    在RV1126上开发人员检测AI算法组件
    的头像 发表于 04-14 13:56 646次阅读
    基于RV1126<b class='flag-5'>开发</b>板的<b class='flag-5'>人员</b>检测算法<b class='flag-5'>开发</b>

    GoPoint嵌入式开发平台 释放i.MX潜力 简化Linux开发

    GoPoint是一个以用户为中心的平台,旨在释放恩智浦i.MX微处理器的潜力,从而优化基于i.MX应用处理器的开发。凭借丰富的交互式演示库和强大的技术支持,GoPoint帮助开发人员更快、更智能
    发表于 02-28 10:07 1098次阅读
    GoPoint嵌入式<b class='flag-5'>开发</b>平台 释放i.MX潜力 简化Linux<b class='flag-5'>开发</b>

    ALINX NVME SPCle IP特性详解

    在嵌入式设备、边缘计算、工业控制等领域快速崛起的同时,开发人员越来越多地面对一个问题。
    的头像 发表于 02-19 16:27 660次阅读
    ALINX NVME SPCle IP特性详解

    阿里云升级通义灵AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵AI程序员,在功
    的头像 发表于 01-09 11:16 971次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南