AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

    阅读完需:约 4 分钟

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

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



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


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


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


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


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


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


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


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


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


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



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


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


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


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


2019-02-21 16:265655

评论

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

Python爬虫实战:调用微店商品详情接口(Micro.item_get)

代码忍者

API 接口 pinduoduo API

Steinberg Cubase Pro 14 for Mac破解版安装教程 多功能音乐制作

Rose

DaisyDisk for Mac:可视化磁盘清理,释放空间超轻松

Rose

Understand for Mac(优秀的源代码审查工具)

Rose

Cinema 4D 2023激活补丁(C4D 2023中文版)-Mac/win

Rose

Agisoft Metashape Professional 高精度3D模型 + 多格式支持,协同工作无忧

Rose

SmoothScroll for mac v1.6.0永久激活版 鼠标增强工具

Rose

Lakehouse 架构下的元数据“大一统”管理深度解析

袋鼠云数栈

音视频编解码SDK开发的流程

北京木奇移动技术有限公司

音视频开发 音视频技术 软件开发定制

得物商家客服从Electron迁移到Tauri的技术实践

得物技术

typescript rust Vue 前端 前端 electron

以数据驱动增长,火山引擎数智平台“数据找人”为双12营销提效

字节跳动数据平台

电商 数据飞轮 双十二

超强不限速BT/磁力下载工具—Transmission for mac苹果版

Rose

铁路运输行业怎么定义?为什么要用到堡垒机?

行云管家

等保 堡垒机 铁路行业 运输

Word 2024 LTSC for Mac(word 2024)永久破解版

Rose

2024中国大模型,一超多强格局依旧

脑极体

AI

HarmonyOS 5.0应用开发——UIAbility生命周期

高心星

HarmonyOS Ability 鸿蒙Next

PHP爬虫的使用与开发

科普小能手

php 爬虫 爬虫教程 PHP开发

音视频监控SDK开发的技术难点

北京木奇移动技术有限公司

音视频开发 音视频技术 软件开发定制

工单+远程技术支持一个方案就搞定!贝锐向日葵技术支持方案升级

科技热闻

DispCam DisneyPlus Video Downloader for Mac(迪士尼视频下载工具)v1.1.1 激活版

Rose

智源Aquila-VL-2B模型成为首个Linux基金会MOF评级达到“最开源”Class I等级的模型

智源研究院

安全研究年终总结-分享2024年RCE类的CVE漏洞高危EXP集合!

安全乐谷

网络安全 数据安全 安全漏洞 漏洞分析 安全扫描

TunesKit Subtitle Editor Mac版 功能强大的字幕编辑工具

Rose

火山引擎数据飞轮帮助音乐APP充分洞察用户需求,提升用户粘性

字节跳动数据平台

数智化 数据飞轮 营销增长

京东商品详情数据接口(JD.item_get)丨京东API接口代码指南

tbapi

京东API接口 京东商品详情接口 京东商品数据采集

CST软件如何得到方向性系数随频率扫描的曲线

思茂信息

教程 仿真 cst

曲靖具有资质等保测评机构在哪里?电话多少?

行云管家

等保 堡垒机 等保评测 曲靖

Renamer 7 for mac 中文激活版 最好的批处理文件重命名工具

Rose

LED电子屏厂家解密:LED控制系统的硬件设计

Dylan

系统 电子 LED display LED显示屏 市场

HarmonyOS开发宝典震撼来袭,卓越应用开发之旅一触即发,轻松启程!

HarmonyOS开发者

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