写点什么

从“野路子”到“正规军”的软件开发之路

  • 2019-02-21
  • 本文字数:1166 字

    阅读完需:约 4 分钟

从“野路子”到“正规军”的软件开发之路

大家好,我是宝玉。我的专栏《软件工程之美》刚刚上线,很开心看到了很多同学对软件工程的理解和期待。



有同学说是从自学编程出身的,碰到过很多的问题,和很多人一样,我也是野路子出身的,2000 年自学 Asp 编程,大学期间兼职给别人做了不少网站。但那时候拿到一个项目,上手就是写代码,没有对需求进行梳理分析,也没有设计,直接就是想到哪写到哪。


这种边写边改的模式看起来开发速度很快,但是后面遇到了不少问题。比如说因为没有分析需求,所以做出来的东西不是客户想要的结果,就得要多次返工重写,浪费不少时间;写之前也没有设计,逻辑都混在一起。最夸张的一个代码文件有上万行代码,最大的函数有一千多行的逻辑。可以想像维护这样一个项目是多么的痛苦!因为很多逻辑也没有抽象,都是重复的,修改的时候得一个个查找替换,一不小心漏了就出 bug 了。


有一件事我一直没好意思提起,就是大二暑假还给别人山寨过一个“金领办公系统”,如果你搜索一下“金领办公系统 asp 源码”估计还能找到下载,可以看看我当年作为一个野路子程序员是什么水平了,各种拼音+英文混合的命名、意大利面条式代码、重复代码到处复制……


幸运的是,我大三转到了软件工程专业,重新学习了软件工程、数据结构、面向对象这些基础课程,毕业也顺利的成为一个程序员。


经过专业学习后,对我后面成长还是帮助很大的,这个帮助主要体现在两个方面。


第一个,就是学习新技术的时候,很快能领悟和融会贯通。比如说我学过瀑布模型,后来去看微软的 MSF,去看敏捷开发,就能根据以前的理论基础,去看它们共通的地方、不一样的地方、各自的优缺点,这样很快就能掌握。


第二个呢就是做事的时候,会更有章法,有理论指导。写程序前会先注意对需求进行梳理,搞清楚产品经理想要的是什么,这样就不用有太多的反复。写代码之前我会先做设计,思考有哪些共同的模块,应该怎么抽象。


后来到飞信的时候,因为表现出色,我开始有机会去管项目。


我还记得第一次作为项目经理去管一个小项目,我一时之间还真有点懵,不知道该怎么做。好在学过软件工程,尤其对瀑布模型、软件生命周期特别熟悉,于是就尝试着按照生命周期模型,先把项目拆分成几个阶段,然后在每个阶段里面,按照模块再去细分,再去制定项目计划。


幸运的是,我还找到了当初的项目计划表,分享给大家看看。



在制定计划的过程中,也帮助我做了一个很重要的转变,那就是不再是像以前只盯着一个小模块,不是再只想着技术实现,而是站在项目的整体去思考。


这个项目后来按照我当时制定的计划进展的很顺利。如果之前没有软件工程的这些理论基础,也许我后来还会转型做管理,但是一定没有当时那么顺利,要多走很多弯路。


所以我其实一直在微博上、微信上,很多地方都说过,软件工程是大学里最重要的一门课程。


我希望《软件工程之美》专栏能帮大家重新理解软件工程,从苦钻技术不得法变得行有章法。


2019-02-21 16:265726

评论

发布
暂无评论
发现更多内容

2024年终总结:终于把北京房贷还清啦!

王中阳Go

面试题 找工作 年终总结 就业辅导 程序员创业

流程+数据,双轮驱动世界一流财务管理体系访谈分享

用友智能财务

投资 访谈 会计

如何让敏捷落地?谈谈敏捷工具在团队中的应用实践

爱吃鱼的小雨

敏捷开发 敏捷项目管理 敏捷工具 scrum工具 敏捷研发工具

从0到1:基于SSM的陪诊小程序开发笔记(一)

CC同学

人形机器人的ChatGPT时刻即将到来,如何转入?

机器人头条

自动驾驶 大模型 人形机器人 科技、

SimCorp最新买方调查显示,人工智能必须更好地融入投资流程

财见

加入我们|申请成为亚马逊云科技 Community Builder,共建云端社区!

亚马逊云科技 (Amazon Web Services)

Easysearch Rollup 使用指南

极限实验室

Rollup Performance easysearch

通义灵码 2.0 全新升级,阿里云正式推出繁星计划

阿里巴巴云原生

阿里云 云原生

TikTok直播网络方案推荐

Ogcloud

TikTok 直播专线 tiktok直播 tiktok直播专线 tiktok直播网络

10 分钟了解 18 个冷门编程概念

俞凡

最佳实践

如何在 Windows 上安装 Python 环境的详细指南

克莱因瓶

《CPython Internals》阅读笔记:p151-p151

codists

CPython Internals

通义灵码 2.0 全新升级,阿里云正式推出繁星计划

阿里云云效

阿里云 云原生 通义灵码

云投集团:流程+数据,双轮驱动世界一流财务管理体系

用友智能财务

报表 财务 会计

利用原生IP做海外电商平台店铺运营有哪些好处

Ogcloud

海外原生IP 海外IP 原生IP 海外IP代理 海外静态IP

Kyutai开源端侧模型Helium -1 preview;FoloToy内测「超级智能体」,支持联网查询和语音调整音量语速

声网

工作流程图怎么制作?10个流程图模板案例盘点!

职场工具箱

流程图 画图软件 绘图 在线白板 流程图绘制工具

2025年,全球人形机器人市场迎来新格局!!

机器人头条

自动驾驶 科技 大模型 人形机器人

地平线Vision Mamba:超越ViT,最具潜力的下一代通用视觉主干网络

地平线开发者

自动驾驶 算法 地平线征程6

PIRF 421:Measurements – Embracing the Imperial System

Echo!!!

English

我在腾讯用AI写代码

CodeBuddy

专业解读:JNPF低代码开发平台怎样为企业财务管理创新转型提供数字化赋能

不在线第一只蜗牛

低代码

图片秒变短视频!阿里妈妈“淘宝星辰·图生视频”向商家开放使用

新消费日报

用DevEco Studio模拟器这些能力 没真机也能高效调测鸿蒙原生应用

HarmonyOS开发者

群体基因组文献解读-Prediction of axillary lymph node metastasis in triple-negative breast cancer by multi-omics analysis and an integrate

INSVAST

基因检测 生信分析 Sentieon 三阴性乳腺癌 变异分析

去哪儿 Node 生成 1 亿张图片实践 (Satori + Sharp)

Qunar技术沙龙

人工智能 Ai绘图

火山引擎上线鸿蒙原生智能美化解决方案 轻松提升图形视频美化体验

HarmonyOS开发者

火山引擎

从“野路子”到“正规军”的软件开发之路_技术管理_宝玉_InfoQ精选文章