在软件工程领域,搞科研的这十年!

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南) 本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。 阅读详情

文 | 刘杨
出品 |《新程序员》编辑部

技术的发展离不开科研的创新和工程的落地,本文作者刘杨的程序人生起于兴趣,成于夜以继日地编程和科研,而后他将工程与科研相结合,对软件工程数字化进行深入的研究与实践。本文中,他分享了在开源吞噬软件的今天,对软件工程数字化的一路探索心得。

过去二十多年,世界经历了信息化到数字化的转变。我们看到企业应对技术的挑战,也清晰地看到如今整个行业对软件管理和信息安全的更高需求及标准。我们在学校里做科研,用专业的论文和报告发表研究成果,同时也聚焦于帮助企业解决关键问题,提供一些更有效的技术支持和赋能方法,持续让科技提升业务价值。

作为一名软件工程领域的科研工作者,我将十多年来的思考和体会整理出来供大家参考。关于代码、程序、软件与应用,希望能通过本文的叙述,与大家共同探讨和践行。

在这里插入图片描述

本文节选自《新程序员》004,『纸质书+电子刊』已正式开售

我的编程之路

记得小学六年级时,一个非常偶然的机会,我报了一个输入法培训班,由此对计算机产生了浓厚的兴趣。后来阴差阳错地靠着会打字,竟然成为特长生进入了一个重点初中。从此就立志要学习计算机,它也成为了我的理想信念。但无奈高考成绩并不太理想,分数未能达到浙江大学计算机专业的录取线,就顺势选择了电气信息自动化专业。虽然电气信息听着跟计算机有点联系,但课程却完全不一样。恰逢优快云的《程序员》杂志(《新程序员》前身)在2000年初开始发行,看着里面程序员的故事和前沿技术介绍,更加激发了我对计算机学习的渴望。

人生有时候就是充满转折,大学入学三个月后,我非常幸运地得到了去新加坡的留学机会,顺利进入了新加坡国立大学计算机科学专业读本科,终于实现了儿时的梦想。本科四年,从一开始学程序、写程序,到组队写程序,每天都乐在其中。大学期间令我印象特别深刻的是,因为《程序员》是技术性的刊物,不太容易买到,每次回国我都在满大街的报刊亭找着买,每次读完都收获满满。到毕业时,我的代码量算起来已经有了五万行,感觉自己终于成为了一名程序员,自豪感油然而生。

本科毕业时,计算机行业正处在Dot-com泡沫(互联网泡沫,又称科网泡沫)后的低潮期,于是我决定留校继续读博(直博),主要从事程序验证的研究。当时也不是很清楚哪些研究方向有意思,只是觉得跟“程序”相关就挺好。起初给师兄做助手,写算法,没想到实验效果还不错,靠着大学实习积累的开发经验逐渐将算法做成了几个小工具,最后逐渐演变成一个软件验证平台。博士期间从写程序、设计程序,到最后逐渐转变成分析程序。四年时光,总共写了近百万行代码,那时感觉自己终于开始理解程序了,它也不断拓展了我对技术的认识。

靠着读博期间所做的软件验证平台,我非常幸运地拿到了新加坡南洋理工大学的教职,成立了网络安全实验室(见图1),到这里我才真正开始软件工程的科研之路。

在这里插入图片描述

图1 南洋理工大学网络安全实验室科研团队合影

在过去十年间,我们的科研范围基本涵盖软件开发过程中的各个步骤(需求分析、架构设计、开发、测试、运维等),软件的各种质量属性(正确性、安全性、可靠性、性能等),各种类型的软件和系统(手机应用、人工智能模型、物联网、自动驾驶系统、智能合约等)。

新时代软件开发的现状和挑战

随着软件行业的不断发展,软件系统本身日趋复杂,对应的软件开发过程亦逐渐成为一门系统、全面的工程科学。任何一个功能精良、复杂的软件系统背后,都离不开庞大的研发与管理团队。然而,当软件系统复杂度爆炸式增长,以往重复堆叠劳动力、一拥而上以扩充产能的工程手段在软件开发中逐渐失效,各式各样的软件开发过程模型、管理手段则不断涌现。

从瀑布、增量、螺旋等早期模型,到21世纪的敏捷开发、DevOps等,一代又一代的软件开发模型层出不穷。软件开发支撑体系也日益完善与系统化,如交互式团队协作、模型驱动开发、微服务、低代码、无代码开发等概念、技术、工具已经走进了我们的世界。然而,这些技术手段在不断改变软件开发方法的过程中,也在逐渐增加过程的复杂性,这就对软件工程的过程管理提出了更高的要求。

此外,与商业公司大型复杂系统自上而下的“大教堂”式的软件开发完全不同,另一种注重用户、提倡尽早发布的如“集市”般的自由软件开发模式经受住了时间的检验。其中,最典型的案例就是Linux系统的成功。正如《大教堂与集市》中所说,Linus Torvalds所奉行的“尽早尽多地发布,委托所有可以委托的事,对所有的改动和融合开放”的软件开发理念,将散布在全球的开发者,仅仅是通过互联网这种松散的合作,就鬼斧神工般地造就了一个世界级的操作系统。而这种自由环境中造就的开源软件由于其自由、开放的特性,逐渐被纳入到主流软件的开发过程中,其中不乏优秀的开源项目被广泛集成、使用到主流软件厂商的项目中,从而避免了“重复造轮子”,极大地提升了软件开发的效率。

回顾我们软件工程方向的研究经历,也是围绕软件开发一步一步成长的。从软件的质量出发,最初使用了形式化方法来对软件进行建模,并验证软件的正确性。我们开发了一系列完整的软件形式化建模语言和验证算法来分析并发系统、实时系统和概率系统,同时把这些方法应用于分布式系统、安全协议、物联网等。最终这些能力集成到了一个名叫PAT(Process Analysis Toolkit)的形式化验证平台(见图2)。
在这里插入图片描述

图2 PAT形式化验证平台架构

但当软件的复杂性增加或规模变大时,形式化方法就面临着可扩展性挑战。同时,对开发人员也有非常高的数学建模能力要求。于是,我们就将科研的方法逐渐转变为程序分析的技术:静态分析和动态测试。这两种方法虽然无法像形式化方法一样提供完美的结果保证,但就实用性而言,带来了大幅提升。

我们使用程序分析的技术做了各种应用,包括缺陷和漏洞检测、软件性能评估、软件架构逆向、软件演化和开发效能分析等。尤其在软件漏洞方面,开发了一系列动态测试技术,找到了大量的商业软件和网站的未知漏洞,由此提升了软件的安全性。到现在,我们已经开始使用动静结合的方法,用静态程序分析定位可能出现的缺陷和漏洞,然后制导测试算法来快速触发漏洞(见图3)。
在这里插入图片描述
随着代码量的增加和开源代码的广泛使用,我们可以接触到大量的代码数据,很自然地就又开始考虑如何用代码大数据和人工智能算法来赋能软件开发。我们将人工智能的算法应用到了需求理解、克隆检测、代码搜索、代码补全、漏洞检测和软件测试。这些尝试让我们真正去思考程序语义的重要性,以及如何把程序语义表征和深度神经网络做合理的集成。于是,我们通过迁移学习从强类型语言中学习弱类型语言的变量类型,其中涉及程序语义理解和深度学习的可解释性。尽管这些工作取得了一些有价值的进展,但人工智能在软件工程的应用中仍然处于早期阶段,还有很多挑战亟须解决。

立足开源,软件工程数字化的探索之路

由于软件开发日趋复杂,为了有效缓解软件开发过程的紧耦合以提升开发效率,业界对面向软件开发过程中制品的输出、验证及端到端的追溯提出了更高的要求,比如正向开发过程中需求文档的表达、软件架构模型的设计与验证、需求文档的反向追溯、架构设计模型在代码层面具体实现的验证、代码实现到设计模型及需求的反向追溯等。随着开源软件的大规模使用,由于其自由、开放、不可控,进一步加剧了对软件工程端到端验证的迫切需求,这最终促使我们逐渐明确并走上了探索面向开源软件工程数字化的道路。

据Gartner数据,99%的组织在其信息系统中使用了开源软件。Sonatype公司也对3000家企业的开源软件使用情况展开过调查,结果表明每年每家企业平均下载5000多个开源软件。现代软件业高度依赖于开源体系存在的趋势已不可更改,但开源软件在为企业提供便利的同时,也有一些风险问题不容忽视,包括知识产权、开源协议组件冲突、安全漏洞、数据泄露等。如近半年来接连出现的Log4Shell及Spring4Shell“核弹级”漏洞事件、开发者Marak Squires“删库跑路”事件、Elasticsearch许可证变更事件、node-ipc反战“投毒”事件,以及高频出现的npm恶意组件攻击等,这些无一不在撕扯着脆弱的开源供应链。

在这种情况下,想要同时做好软件质量和安全管理,已经变成了非常有挑战的事情。这也更坚定了我们接下来的研究方向:探索更好的方法来开发程序,开发更多的标准化工具来分析,理解和管理软件及其开发过程,并完善整个开源的管理机制。尤其是在开源代码大量被使用的情况下,开源治理和软件供应链治理变成一个重点的科研课题。

基于此,我们在2017年孵化了面向开源组件检测的软件安全公司Scantist。以软件安全为切入点,软件成分分析为基础,从开源软件本身的开发、维护、发布、被依赖使用的过程中,寻求对开源软件的有效维护及管理策略,并通过深入理解各个编程语言、包管理器等开源核心模块的工作模式,探索开源供应链的形成、传递及演变,形成一套面向开源供应链治理的解决方案。

除了当前业界较为关注的安全漏洞及许可证相关的诉求,我们也开展了大量针对开源软件质量评估的相关研究工作。基于团队在软件工程、程序分析等领域多年科研工作的沉淀,逐渐凝练出一套面向开源软件的多维度软件画像的框架,围绕开源软件代码、开发过程、开发团队数字化,从质量、安全、开源成分、可维护性、成熟度、活跃度及商业风险等多个维度,度量开源软件本身的健康程度,并从团队组成、开发风险等不同角度理解开源项目核心开发团队的健康状态。从而实现软件开发过程中对开源软件的精准使用(如技术选型推荐、风险分析等),识别开源环境中的关键基础组件,监控其开源项目及开发团队的健康状态,并引导相关商企、社区积极参与以提升开源基础组件的质量,从而妥善治理整个开源生态。

在开源软件画像的基础上,我们同时提出了软件工程数字化平台的设想,把软件开发的整个过程做数字化的分解和记录,通过把软件架构和开源组件作为软件骨架串联起软件开发的全过程,让软件开发过程透明化、可视化和可追溯化,做到定量地理解开发过程、开发质量、人员效能和开发瓶颈。当然这个平台的开发和投入是非常庞大的,希望能和更多的合作伙伴一起来推动。

几乎每个商业项目都使用开源软件来节省开发时间、降低公司成本、避免重复造车轮,但软件公司对这些代码的品质和来源却未必都给予了足够的关注和重视。所以我想提几点关于开源软件行业的想法和建议:

做一名坚定的长期主义者。开源软件的正确和安全使用需要社区的力量,我们要共同维护开源市场和生态,为开源软件行业带来更加蓬勃的生机,要在规则和自由的平衡中修行。

  • 开源软件已经成为网络空间的重要基础设施。现在许多企业都已拥抱开源软件,各方也都应积极开展开源软件源代码检测工程,推动内部建设开源软件治理体系,形成开源软件管理的长效机制。政府、企业、开发者、软件从业者和使用者等各方应针对开源软件建立完善的法律规范,引入审批、技术评估、合规使用、漏洞检测、更新维护、应急处置、停用退出等制度。

  • 星辰和大海。无论技术还是科研出身,都要积极参与并开展前瞻性的技术探索和产品研发,努力推进开源事业的发展,加强关于开源的规范引导和教育,从技术、应用和法律层面做出相应的贡献。开源社区(包括代码托管平台、软件协会、行业联盟)、开源基金会等开源组织需要充分利用自身和协作优势,号召更多的贡献者,在发展壮大开源项目影响力的同时,肩负起开源安全责任与使命持续前行。

结语

软件工程作为一个复杂而重要的工程活动,其应用促进了我们的工作和生活更加高效、便利。我从一个学习编程的学生,到研究软件的科研人员,再到一家初创公司的创始人带领团队为软件开发提供自动化工具,身份的转换也不断驱使着我进行自我迭代。

这二十年,我深刻地感受到了技术和软件的重要性,并努力把它们延伸到产品服务和应用场景中以发挥更大的价值,希望通过理论和实践积累,培养富有社会责任感的复合型人才,为行业发展积蓄力量。我也希望可以陪伴程序员们一路成长,帮助他们找到“自己的事业”。在未来的五到十年中,我会继续推进软件工程数字化的研究和转化,并为更可靠、更安全的数字化世界做出力所能及的贡献。

作者介绍:刘杨,新加坡南洋理工大学(NTU)计算机学院教授,NTU网络安全实验室主任、HP-NTU实验室主任,新加坡国家卓越卫星中心副主任,网络安全公司Scantist联合创始人兼CEO,专攻软件工程、网络安全和人工智能领域。


–END–

《新程序员》001-004 已全面上市

欢迎扫描下方二维码或点击进入立即订阅即可畅享电子书及精美纸质书。

在这里插入图片描述

QcarCamera-EVS HAL实现(一) 高通车载EVS实现 阅读详情

相关推荐

Wordpress实战之第二章安装wordpress 软件需要的软件

使用下载并安装phpstudy面版工具 wget -O install.sh?https://notdocker.xp.cn/install.sh?&& sudo bash install.sh 2.安装成功如下 ==============运行状态========================= webpanel stop phpstudy running =================...

安全参透之旅 612

[论文阅读] (32)南洋理工大学刘杨教授——网络空间安全和AIGC整合之道学习笔记及强推(InForSec)

本文是南洋理工大学刘杨教授在InForSec学术报告的分享学习笔记,题目是“网络空间安全和AIGC整合之道”。刘老师是我们非常佩服的一位大佬,他们的很多安全工作都值得我们学习,这次分享真的很棒,值得大家去学习。同时,更重要是看看刘老师他们团队面对一个新方向或新热点,他们是如何去探索与安全结合,如何去从事科学研究的。本文按照刘老师汇报内容描述,并凝练出重点内容(详见博文中重点标注的思路梳理),尤其是科研探索的过程,从而方便大家学习。学习笔记文章,希望对大家有所帮助。最后感谢刘老师的分享!

杨秀璋的专栏 3398

10分钟快速搭建OpenClaw(基于Windows+飞书)

OpenClaw 是一款功能强大的 AI 智能体工具,能够帮助用户管理邮件、日历等日常事务。本文详细介绍了在 Windows11 系统上安装和配置 OpenClaw 的完整步骤,包括 Node.js 环境搭建、Git 安装、OpenClaw 部署以及飞书机器人创建与对接。通过简单的命令行操作和可视化界面配置,用户可以快速完成 AI 助手部署,实现智能办公自动化。文中还提供了飞书机器人权限设置等关键环节的图文指引,帮助用户轻松完成系统集成。

Hello, New World! 2928

计算机科学本科科研经历,秦瑶:一名本科生的科研故事

近日,我校电信学部信息与通信工程学院2011级本科生秦瑶同学的论文“Saliency Detection via Cellular Automata”被国际计算机视觉与模式识别会议(CVPR)录用,这是我校迄今为止第一次本科生的研究成果被该会议录取。卓越成绩的背后,是秦瑶以及团队的不懈努力,是“苦心人,天不负”的持之以恒,是拼搏进取、求实创新的青春践行。 积累经验 乐在科研国际计算机视觉与模式识别...

weixin_39882948的博客 1131

CANoe实战:手把手教你用J1939.dbc发送超8字节长帧报文(附完整CAPL代码)

本文详细解析了使用CANoe和J1939.dbc实现超8字节长帧报文的分包发送技术,提供完整的CAPL代码实现与优化策略。内容涵盖J1939.dbc配置、分包发送模块设计、接收端处理逻辑,并与ISO 15765-2协议进行深度对比,帮助开发者构建高效可靠的商用车通信解决方案。

weixin_29169899的博客 394

ArcGIS License Server点击启动没反应,许可管理器无法启动怎么办

4 当我们再打开ArcGIS License Server Administrator的时候。3 在【服务】中找到【ArcGIS License Manager】双击。无法启动ArcGIS License Server的情况。在使用ArcGIS的过程中,我们经常会遇到。专注GIS领域知识分享,交流行业软件技巧。欢迎关注,不定期分享GIS各种问题和技巧。1 右击我的电脑——【管理】服务状态——启动,确定即可。启动类型选择——自动。

GIS蒲公英的博客 2万+

奇安信代码安全实验室又一研究成果入选国际顶会USENIX Security 2023

聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士日前,奇安信代码安全实验室研究员张之义与新加坡南洋理工大学刘杨教授团队、国家工信安全中心等机构合作完成的学术论文《Nautilus: Automated RESTful API Vulnerability Detection》,被信息安全领域四大顶级会议之一USENIX Security 2023录用。RESTful API已经成为访问Web服务...

smellycat000的专栏 1388

推荐系统:NDCG评价指标及其Python实现方法

除了推荐任务,在二分类任务中,也可以计算该指标,代码如下: # ndcg def get_dcg(y_pred, y_true, k): #注意y_pred与y_true必须是一一对应的,并且y_pred越大越接近label=1(用相关性的说法就是,与label=1越相关) df = pd.DataFrame({"y_pred":y_pred, "y_true":y_true}) ...

lanyuelvyun的博客 8242

软件开发还算不上是一门科学 但不妨碍它是一门技术

很多大学里是把软件开发相关的专业划入工科的,这给人一种错觉,让人认为软件开发也是一个工程学科,就像土木建筑,动力机械那样。但这从根本上错了,土木建筑,动力机械的背后有确实的科学定律作为支撑,而软件开发的背后基本上什么都没有,远不是一种“科学”。 也正因此,“软件工程”的现实意义也就远不如“土木工程”,“动力工程”。 每个人对“科学”的定义可能不同,但在这里,我们可以做一个简化版的定义:当有一组

ajian005的专栏 1190

R语言实战:非正态数据下的Scheirer–Ray–Hare检验全流程解析

本文详细解析了在R语言中执行Scheirer–Ray–Hare检验的全流程。当数据不满足正态分布假设时,该非参数检验是传统双因素方差分析的有效替代方案。文章从原理、R环境配置、数据准备、代码实现、结果解读到事后比较与可视化,提供了完整的实战指南,帮助研究者稳健地分析多因素实验设计中的主效应和交互效应。

cc789的博客 406

LLC 谐振变换器开发设计1

本文档详细介绍了基于DSP28335的LLC谐振变换器开发设计。系统采用频率调制(FM)控制方式,实现高效率、高功率密度的隔离型DC/DC变换。文档阐述了LLC拓扑结构和工作原理,给出了谐振频率、品质因数等关键参数的计算公式。硬件设计包括功率器件选型和采样电路实现,软件部分提供了DSP28335的核心控制算法和代码示例,涵盖频率转换、PI控制和PWM生成。系统还设计了启动策略和保护机制,确保可靠运行。该设计实现了主开关零电压开通和低纹波输出特性。

340

软件工程发展史

2010年-2020年软件工程发展史世界软件工程发展史引言:特点:1、全球化:2、模块化:3、开发化:软件工程的新发展:中国软件工程发展史引言:发展现状:成绩:问题:发展趋势: 世界软件工程发展史 引言: 软件工程这个概念在上世纪六十年代被提出来,当时人们主要把软件工程当作使计算机系统高效地完成某些工作的计算机程序。早期的软件工程没有受到重视,然后随着计算机技术的发展,时间证明了软件工程的重要性。软件工程借鉴了传统的工程化思想并重点关注技术和管理两方面的研究,并将相关工程引入管理工程学和系统工程学,提高软件

Zju511的博客 1万+

【8】mctp & pldm

异步会check seq,保证不丢包,虽然发一条req,不用等,但是不能发下一条req,等上条response回来后才能发下一条。TO(tag owner)=1是request,TO=0是response,但是异步通信response由0改为1。如下还有kcs,i3c,serial等。

持续更新ing... 1084

科研AI IDE架构测试:从大型语言模型评测到软件工程质量体系

随着大型语言模型在垂直场景中深度落地,AI应用已从单点对话转向复杂工作流系统。科研AI IDE正是这一趋势的代表,它不仅是编程助手,更需承载文献理解、假设验证、数据分析与可追溯结论生成的全链条任务。本文从软件工程视角切入,剖析科研AI IDE的分层架构要素,包括领域感知、上下文工程、模型编排与工具集成,并阐述如何将单元测试、集成测试、端到端测试及持续集成门禁映射到AI产品评测中。通过构建结构化评测集、契约测试与灰度发布机制,研发团队可以有效控制模型不确定性带来的质量风险,支撑科研工具在真实场景中的稳定迭代。

weixin_42529328的博客 254

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

软件工程与计算II-23-软件工程职业基础

软件工程与计算II-23-软件工程职业基础

SpriCoder的博客 1174

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【25考研】西南交通大学软件工程复试攻略!

面试按专业分组进行(对于参加复试考生较多的专业,按初试成绩平行分组),主要考查考生对本学科理论知识和应用技能的掌握程度,运用所学理论发现、分析和解决问题的能力,对本学科发展动态的了解以及在本学科领域发展的潜力和创新能力。第二,然后对着往年试题刷,每个点吃透,特别是一些控制字和典型电路的连接方式,大题的话有一道是关于电路连接的,如果看不懂就多看3-8译码器的连接方式,很有可能会从这个引申。,将自己做过的项目讲的天花乱坠,什么云计算、机器学习啥的,别被一问三不知,那就尴尬了。冲,就行了,别慌,越慌表现越差。

xwsky_jiruandc的博客 1954

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

北大十年,博士毕业后,他去了华为。

付斌整理,来源 :华为心声社区一条道路,两面人生Liyi十载未名:象牙塔中的波澜起伏“说来也许很多人都不会想到,在北大博士的光鲜外表之下,我曾经做好了毕业即失业的心理准备。”2009年,...

张巧龙的博客 1953

高级软件工程第一周作业

一、个人情况介绍 经历 我的本科专业是电气工程。严格意义上讲,迄今为止,我还没有从事过比较系统的软件开发工作。目前做过最复杂的程序编写任务是本科的毕业设计。设计中,我利用野火STM32F407霸天虎开发板作为控制主板,结合通信、检测、电机驱动等多个功能模块设计了一款可按照固定路径巡航的氨气泄漏检测巡检机器人。主函数中的程序就是初始化各类功能函数后,不断进入两个中断,在10ms的中断中,完成四个麦克纳姆轮的转速闭环控制,在200ms的中断中读取检测值,判断是否需要避障,并根据结果发送信息,进行避障等。 认识

weixin_51938031的博客 485

Lisp语言的软件工程

Lisp(李斯普)是历史悠久的编程语言之一,其语法简洁且功能强大。尽管在现代编程语言的光环下,Lisp似乎有所黯淡,但它在某些领域依然发挥着重要的作用。特别是在人工智能、计算机科学理论和动态语言的研究方面,Lisp有着不可替代的地位。本文将探讨Lisp语言在软件工程中的应用,包括其历史背景、基本特性、设计哲学,以及在现代软件开发中的优势和挑战。

2501_90425665的博客 515

软件工程的就业前景如何?程序员的发展前景如何?

软件工程这一计算机类学科对口各类型的互联网大厂、工业界、外企,因此,依据时代机遇、顺势而为,是大部分软件工程学科同学的选择。就业方向也有开发、算法、基础架构、测试等方向。同公司同级别的工资待遇一般:算法基础架构 > 开发 > 测试,以上方向入门难度顺序与工资完全相反。如果对这个专业有兴趣,不妨看看下面的详细介绍:学科本身、学科知识结构、深造与就业、专业氛围。

南风fahaxiki 4260

免疫学家借 AI 重写科研边界,预言十年治愈所有疾病、15 年逆转衰老!

当免疫学泰斗变成 "代码狂魔",科研的边界便被彻底重写。免疫学家 Derya Unutmaz 教授借助 Codex 等 AI 工具,从零构建出流式细胞术分析、CRISPR 设计及 T 细胞通路模拟等复杂科研工具。他大胆预言:AI 正用指数级进化颠覆医疗,十年内或治愈所有疾病,15 年内甚至将逆转衰老。在人工智能与生命科学的交汇处,一位免疫学家正在用代码重写科研的边界。Derya Unutmaz 是美国杰克逊实验室的免疫学家和教授,也是 OpenAI 社区中最活跃的科学用户之一。在与 OpenAI 开发者关系

IT界那些事儿 39

DDD是软件工程的第一性原理?

本文书接上回《DDD建模后写代码的正确姿势》,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新; DDD框架源码(.NET、Java双平台); 加群畅聊,建模分析、技术实现交流; 视频和直播在B站。 前提 本文需要以系列前文的逻辑链条和结论为前提,如果没有阅读过前文的,可以阅读合集《老肖的领域驱动设计之路》。 故事背景 在2020年,我所在的研发团队维护着一个有近十年历...

weixin_30079201的博客 168

FORTRAN语言的软件工程

FORTRAN(Formula Translation)是一种高级编程语言,最初于1957年由IBM开发,旨在为工程师和科学家提供一种简便的编程工具,以解决复杂的数学和科学计算问题。尽管FORTRAN诞生于计算机编程的早期,但它至今仍在许多领域被广泛使用,特别是在科学计算、数值分析以及高性能计算(HPC)等领域。本文将深入探讨FORTRAN语言的软件工程实践,包括其历史背景、语言特性、在软件工程中的应用、现代发展及其优势与挑战。

2501_90425930的博客 510

道路 AND 机器学习 OR 软件工程

道路 AND 机器学习 OR 软件工程? 一年一度的高考就要来临了,我作为一个过来人虽没有什么压力,但却面临的是大学的结束。四年的大学时光,已匆匆过了三年。以后要搞什么,还是一片迷茫。有幸的是大学开始选择志愿的时候选择了计算机专业,符合我的兴趣。哎,现在的高中只授高考,在选择专业的时候只认识专业的名字,却不知道具体的方向。希望大家在选择专业的时候要 慎重考虑 !

INotWant的博客 873
上一篇: 清华“洗衣机系”学霸,如何在 GitHub 拿下 50000+Star?
下一篇: 云原生正在吞噬一切,开发者该如何应对?
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值