抱歉,软件开发不是你想的那样

抱歉,软件开发不是你想的那样/p>

 

 

这篇文章写给初入职场的同学。

毕业刚参加工作,正式进入项目组,会对软件开发行业有很多不切实际的憧憬和期待,但现实和期待大为不同,下面列出了Top 5。

 

1. 到处都是遗留代码

 

在大学的时候,我做过几个项目,每次都是从头开发,验收完就结束,开始下一个。 

但实际的工作从来都不是这样,我十多年的工作经历,从第一行代码开始开发的项目,记忆中只有三个,没错,只有三个!

剩下的全是在现有的代码上修修补补,添加新的功能, Fix Bug。 

这就意味着必须要理解这些遗留代码,这是一件极为痛苦的事情,因为这些可以工作的代码通常发展了几年,甚至十几年,经历了血与火的考验,无数程序员在上面或好或坏地在上面添砖加瓦,最后变成了一座让人畏惧的大山。

在处理它们的时候得战战兢兢,只有经验非常丰富的老家伙才能游刃有余地在其中来回游走。但是作为新人,你必须得迈过这一关。建议你看看这篇文章《没有文档,没有老员工讲解,悲催的新人如何快速熟悉一个新项目

 

2. 我学的那些算法怎么用不上呢/strong>

 

大学里学了很多基本的数据结构和算法, 队列,栈,树,图,排序,搜索,最短路径, 做了不少习题,到了工作中就想看看他们的实际用途。 

可让人失望的是大部分数据结构和算法都用不上,用的最多的是Array, List,Map, 队列和栈都用得不多,更不用说那些树,图,还有那些排序,搜索算法了。

工作中最常见的就是实现业务,很少有业务能复杂到你发明一个新的算法来解决的,大部分都是对数据库的操作。 

但是不要沮丧,数据结构和算法的训练还是很重要的,因为它能教会你用计算机的方式来思考和解决一个问题。

 

3.  软件怎么这么复杂呢/strong>

 

大学里做的项目都是小儿科,实际项目是非常复杂的,上面说到工作中用的都是简单的数据结构,那开发一个系统应该不会有多少挑战吧nbsp;

错!虽然每个小功能很简单,但是当很多很多的小功能聚集在一起,互相发生交互的时候,整个系统的复杂度就骤然上升,这些小功能之间的“微妙”交互常常是产生Bug的温床。 

所以在设计中得想尽一切办法去封装,分层,或者把他们做成正交的,可以独立变化的。 你需要不断地学习,实践才能掌握这种能力,一旦掌握就会无往而不利!

 

4. 沟通很重要

 

在大学中编程似乎是一个“单打独斗”的工作,只需要做到电脑前编码即可,最多和几个同学和老师定期通通气就行, 但到了实际的项目,都需要深度的有效的沟通。

和产品经理讨论/争论功能。

让其他程序员理解你的设计。

向项目经理据理力争工作量。

和别人一起Review代码。

同测试一起讨论Bug。

……

在这些沟通中如果你不采取一些“机智的手腕”,可能就会碰得“头破血流”,最后被别人贴上一个标签:此人不擅长沟通,难以合作。

 

5.  写作很重要

 

对于正规的项目,文档是非常重要的一环,日常工作中需要写很多邮件,写需求文档,设计文档,用清晰的语言来描述Bug,总结Bug的原因。在大学中普遍对写作不重视,工作中就会词不达意,力不从心了。

在大学没有开博客的,工作以后应该开一个了,写作能逼着你梳理你的想法,锻炼逻辑思维能力,真正地理解一个技术点。就是写的时候比较痛苦,也可能没有人去看,没有立竿见影的成就感, 但还是要坚持写,相信我,你的付出会获得回报的!

后记:本文列出的五个想法来自于

https://henrikwarne.com/2012/08/22/top-5-surprises-when-starting-out-as-a-software-developer/ , 我觉得很好,用自己的经历和经验重新写了一遍。

 

抱歉,软件开发不是你想的那样

来源:高校俱乐部

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年9月25日
下一篇 2019年9月25日

相关推荐