零 写在最前面

零 写在最前面

在三线城市从事软件相关工作也已经有5年半左右的时间了,对于项目、技术、管理、团队、模式等等各方面的疑惑和困扰一直笼罩着我,无所适从,想写些东西,但是感觉无从下手。像一只兔子被扔到了沙漠,找不到方向。

根据以往的经验,写点东西总是能让自己安静下来。那么,就写点东西吧,就写个新项目吧。

现在软件项目拜github和码云所赐,获取相对容易,学习成本较低,新技术也能较快的看到其使用价值。那么,我要写个什么新项目呢?或者说,这个新项目的意义是什么呢?

先说一下个人经历。

个人经历

个人经历决定了文章的高度和可读性。所以,需要对个人经历进行一下介绍,或者总结吧。另外,既然写博客,当然是希望有人去阅读,那么就先简单的说一下自己的经历。

关于教育

教育的话,受过计算机科学与技术和软件工程的专业教育,俗称“本专业出身”。

现在来看,大学教授的基础知识是有意义的,而且,我并不认同“国内大学教育模式有问题”的说法。

“你们现在学习的知识是一些基础工具。举个例子,如果你不知道螺丝刀的概念和存在,那么如果要把一个螺丝拧掉,那么你需要发明一个“螺丝刀”,或者你只能束手无策。不管你怎么选,都太蠢了!” --我曾经的高数老师教授拉普拉斯定理时如是说

基础工具的学习通常是漫长和枯燥的,就像学习一门编程语言,如果连关键字都不知道,那么大谈什么效率,什么并发,不是很可笑么?而大学生活可能是我们最后一段能够专心脱产以纯粹的学习为核心目的的阶段。

所以,较为有幸,我确实是“本专业出身”的受益者--基础工具的学习很多在在校期间就完成了。另外当时学校的一些课程采用纯英文教学,教材什么的都是英文,所以,看个英文资料的习惯保持到今天。

工科三大巨头:美德日,如果你连最基本的英文资料都看不懂,那么真的是吃*都吃不到热乎的。

当然,现在的大学也开始追求实用性,通常会在毕业前接触一段时间教育机构的培训或者项目实践。对,我刚好也赶上了我们学校的实训试点,所以,我其实也是有教育机构的培训经历的。

综上,我在真正工作之前,就已经具有了基本的编码能力。

关于工作

所以,第一份工作,我以为我会上手是比较快,但实际上并不是。我当时的痛点:

  • 缺乏业务培训,不了解业务知识
  • 代码错综复杂,不打debug,完全不能推测代码的走向
  • 文档缺失,需求、设计甚至测试的文档都没有
  • 拿到任务,但是不了解前后文,甚至不知道自己要做什么

那时,我就产生了第一个疑问,“我如何保证我做的东西是符合要求的?”,当时应对的办法就是问,抓到人就问,这个人不知道就换一个人问。

然后,就迎来了公司过CMMI3认证,开始补大量的文档。也是那个时候,开始从“计算机科学与技术”的视野,逐渐切换到了我的另一个专业“软件工程”。一个项目超过500份的文档,大量的表单、审批、变更记录等等,虽然是后期补的材料,但,我开始尝试用另外一个维度观察项目,并乐在其中。令我觉得有意思的东西:

  • 了解了一种通用方法:识别它-分析它-定义它-管理它-优化它
  • 了解了一种标准化项目(工程)的运作方式
  • 各种文档的模板

这时,我的第一个疑问被解决了,“可以通过系列的过程,在开发前,明确需求,确保我做的东西是符合要求的”

然后,有一个疑问被抛出了,“实际情况下,我们的需求开发和设计文档基本不写,我的问题依然没有被解决”

之后请教了一些行业大佬和公司内的大拿,发现他们这样解决这个问题:“可以使用个人开发经验,来确保我开发的东西,就是公司(客户)想要的,如果不是,那么说服他们”

那么,新的问题又被抛出了,“如果个人经验不足或者纯粹是新产品,如何保证我在做正确的事情?”

对的,如果一句话来总结我5年半的工作经验,那么就是:“一直在尝试寻找保证我(或我们团队)在做正确的事情或者说保证我(或我们团队)在做的事情没有那么蠢。”

另外,三线城市,做开发的不多,大部分时间在做集成,某种或某些解决方案的集成。这是地理因素导致的,所以,另外一个问题就是:“如何更有效的生成集成方案”

所以,这就引出了新项目的意义,有效集成

新项目的意义

有效集成 是我自己创造的说法,实际很可能并不存在这种说法。那么,谈“有效集成”就不妨说一下个人认为的“无效集成”,无效集成应表现为:

  • 开发了一个功能,但无业务场景
  • 使用了一种技术,之后几乎每次改动只能依赖debug调试
  • 封装了一个工具,但是除了自己没人用。即使使用也用的很诡异。
  • 代码不具备任何可读性,一个方法500行,n个if各种嵌套。

总之,其结果就是无法维护或者难维护。

当然,如果要做到,需要很多看起来很麻烦的东西,比如文档,比如标准,比如自动化测试等等。对,有效集成,从任何意义上来说,都是增加了工作量。所以,他并不适合一个很小的项目。

当然,如果你听说过“脚手架”的概念,那么“如何有效集成是任何脚手架都难以避免的一个问题”。

所以项目的意义,其实就是我个人根据自己以往的经验,来模拟一个团队如何通过各种工具来实现一个符合“有效集成”概念的脚手架项目。

工具集及环境

上面提到的工具,包含了技术、文档、软件、系统等等,主要包含:

  • JDK8
  • Spring boot 2.0
  • Mysql 5.7
  • Word
  • Excel
  • PowerDesigner
  • YouTrack
  • Idea
  • git

谁适合读我

可以根据上文提到的我的履历,分析而得,预定的读者群体为:

  • 软件工作经验少于4年
  • 三线城市从事开发工作
  • 在校学生
  • 有基本的Java编码能力

读了我好处都有啥

好老的梗啊....好处:

  • 最后应该是个可运行的项目
  • 中间会产出很多文档
  • 帮助新人对这个行业快速入门

转载于:https://my.oschina.net/u/4006306/blog/3049763

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值