苹果产品之美Macbook,iphone,ios 及其他iOS开发@IT·互联网

【Mac流派】程序猿修炼之道(5)-生存高阶篇

2016-09-24  本文已影响453人  代码咖啡

我叫程序猿,于公元2013年9月1日被一股洪荒之力推入一个名叫挨踢圈的巨坑,从此开始了我的程序猿修炼之道。学了一章的Markdown,这一章本猿和各位猿猿们回到生存篇,来聊聊生存的高阶级别,一起向Level 5迈进!

1. 不要写死

“不要写死”,这句话或许是猿猿们刚入职时听到的最多的话,为了更好地适应以后的工作岗位,从现在起猿猿们需要养成“不要写死”的习惯。不要写死范围很广,可以是图片的尺寸、控件的宽高,也可以是方法封装和文本内容,它的核心思想是:通用性、普适性、可扩展性

通用适配器

本猿做安卓开发,就拿安卓常用的适配器 举例子,平时我们写适配器都会根据ListView/GridView/RecyclerView的子项的具体布局写具体的Adapter,但是为了更好地适应不同的布局,我们通常会写一个通用的Adapter,这样不论我们的布局多丰富,我们只要调用这个Adapter就好,节省了代码的行数,提高了工作效率。

曾经看到这么一个小故事:

一个老总想要招聘一名高级程序员,经过轮轮淘汰,最终留下两个人,能力不相上下,正当老总在愁该选谁的时候,公司的技术主管提出了一个建议,让两人根据需求写一个小项目,然后项目依次迭代更新,最后选择BUG少的那一位。在小项目的第一个版本,两人写的程序都运行流畅,看不出谁强谁弱,第二个版本、第三个版本...随着版本的升级,程序员A的程序开始屡屡出现崩溃的情况,而程序员B的程序依然运行流畅,没有太大的问题,后来程序员B应聘成功。

其实在项目实战中经常会有迭代更新的情况,而不要写死是一个很重要的思想,它不仅仅是用动态变量代替常量那么简单,还关系到程序的可扩展性、鲁棒性,它需要我们在平时写代码的过程中多思考,日积月累,一点点提高对不要写死的理解。

2. 保持沟通

在本猿实习前,我们老师曾给我们讲过这样一个故事:

之前有一名到大我两届的师兄,去公司实习,拿到了一个小任务,结果做了两个月都没有完成。后来他的组长去检查进展,发现他因为卡在一个小问题上,自己百度谷歌一直没有找到解决方法,然后一个人闷在那里毫无头绪,最后整个项目因为他未如期完成任务延迟了发布时间。

图片来自网络

我希望通过这个故事让各位猿猿们认识保持沟通的重要性。我发现,大学刚毕业的准程序猿们都有一个通病:不善言辞,不自信。很多猿猿们进入实习岗位以后,变得蹑手蹑脚,因为自己技不如人,怕问的问题太低级被自己的老大嫌弃。但是猿猿们忽略了一点:我们是应届实习生,这是大家有目共睹的事实,技不如人很正常,大多数人不会因为你问低级的问题看不起你,因为大家都是从这个阶段过来的;而且你有一个很大的优势,那就是你很年轻,你是允许犯错误的,但是你需要在面临错误、面临问题的时候,能够主动寻找解决方案,即使自己找不到,也会通过主动沟通,集思广益,以此来提高自己,那就是年轻的资本!而如果你拥有这个资本却不使用,一直被动,这样久而久之,你会一直处于原地跑的状态,当你不再年轻,你就被沦为真正意义上的老菜鸟!Sorry,你被淘汰了!

3. 先弄明白再写代码

图片来自网络

我学软件工程的都知道,一个项目制作的流程往往是:
需求分析->概要设计->详细设计->编码->测试->发布

我们可以看到,需求分析编码之前,这就是本节我想和大家说说的。正好比我们去旅行,我们一定要知道自己去哪里,规划好行程才上路,编码亦是如此。

图片来自网络

拿软件工程的服务外包举例子。一个外包团队在接手一个项目前会和发包方进行多次详谈,在十分确定需求以后才开始进行下一步的设计编码阶段;如果外包团队遇到经常改需求的客户,那就头疼了,频繁的需求更改会让项目寸步难行,因为程序猿需要先弄明白再写代码。

写代码好比搞建筑,需求好比图纸。中途改需求就好比建筑工人已经建好了一半的大楼,这时候图纸改掉了,要建一个游乐场,程序猿就不得不将自己之前辛辛苦苦建起的大楼夷为平地。而没有弄明白就写代码的,就好比老板让你建一个豪华别墅,而你却建了一个厕所,等你醒悟过来,你就不得不将自己建的厕所拆掉改建别墅,这是非常耗精力,在项目实战中这是万万使不得的。

4. 能谷歌百度就别逼逼

图片来自网咯

在之前的文章中,我们提到过使用百度谷歌自学的重要性。而进入实习岗位,会有特别积极的实习生,和自己的师父特别聊得来,所以很多问题本来百度谷歌可以解决,全部交给师父解决。如果遇到比较耐心的师父,情况会好一点,但是如果师父是一个急性子,徒弟问的次数多了,师父就会有厌恶的情绪,一时情绪没控制住,会对徒弟说教一顿,这么一说,徒弟怕了,以后即使遇到难以解决的问题也不敢问了。

为了避免上述情况的发生,各位猿猿们要在平时养成自己百度谷歌解决问题的习惯,所谓“师父领进门,修行在个人”,什么问题适合问师傅,什么问题自己解决,这个是需要我们细细揣摩的。

5. 别放弃每一次发言权

本猿大二上软件交互设计的时候,老师曾这么对我们说过:开发人员应该多多参与项目界面设计的过程 。有很多程序员持着事不关己,高高挂起的姿态,坐等PD的下达,然而这样往往不利于项目的完成。并不是所有的UI设计师都对开发有所了解,一些设计的特效是设计师脑洞大开的产物,对于开发者来说是难以实现的,为了将这样的情况扼杀在摇篮里,我们要多多参与页面设计的过程,该发表言论的时候,决不妥协。

在其他方面也是如此,公司在进行每周的周报的时候,都会问项目组成员遇到什么问题或有什么想法或意见,这时候我们应该多多抓住这样的发言机会,不要等问题出现了才提出来,这样是不利于项目的进行的,同时这样也会影响到与同事的相处。

图片来自网络

嗯!有逼逼的机会,绝不嘴软!

6. 别犯拖延症

图片来自网络

本猿实习已经差不多过了半个月,最大的感触就是:
做项目真的不是闹着玩的!

之前在学校的实验室也确实做过不少项目,但是学校的项目做不完就是做不完,大不了流产,但是公司的项目是需要交付的,一旦没有如期完成,影响到的是公司的声誉和盈利,影响到的是自己的饭碗问题,因此决不能拖团队后腿。

远离微博、远离微信、远离QQ 是程序猿如期完成项目的三大准则,当然这个是虚指,我们需要屏蔽所有分散我们注意力的事物,聚精会神敲代码,一心一意调BUG ,待到项目发布时,舒一口长气,然后继续忙下个版本。。。

以上是本篇程序猿生存高阶篇的所有内容,感谢大家的阅读!

如果猿猿们对程序猿系列文章感兴趣,希望大家点击文章下面的“喜欢”留下你的足迹,谢谢_

上一篇
【Mac流派】程序猿修炼之道(4)-技能篇之Markdown(附:工具推荐)
下一篇
【Mac流派】程序猿修炼之道(6)-技能篇之git指令

上一篇下一篇

猜你喜欢

热点阅读