你的位置:首页 > 操作系统

[操作系统]半年的iOS代码生活


半年的iOS代码生活

在高考大军中拼杀过,也在大学校园中荒芜过,曾经低迷消沉,也常满怀壮志…… 但是最多的还是被称为小伙子以及自称为iOS工程师!博主就是这种喜闻乐见的这类人,实习一年后在2015年的毕业季顺利拿到了自己向往的一家创业公司的offer,也许相比很多毕业季的同学职场上顺利许多,但当深夜来临,显示器熄灭后望着荧幕出神的时候,毕业季我错过了很多也许一辈子都不会再相见的同学们的合影。半年里真正领略到了企业项目的开发的艰辛,以及团队协作的魅力,有太多太多的要说,终将其汇成一句话:哥加班半年后终于回来了!

图1

 


 

半年时间,反正撸啊撸段位已经是万劫不复了,iOS9一发布加班的觉悟早有了,潜伏的XCodeGhost也被拎出来了,各种被脱裤的同行大佬们也是尿了一地,哥也被吓了一哆嗦,赶忙修改了1024的账号密码…… 2015年就是伴随这些琐事发展着,但是博主作为一个初入职场半年的工作总结当然不会是简单地流水账。

我知道你们都惦记着什么是1024,1024就是,呵呵,就是一款妈妈都说好玩的游戏啊~。

 

 学习

 

干挨踢的学会学习远比你死背一个功能的代码来的有用。

在iOS学习中去尝试体会Cocoa模式,多留意Cocoa中的框架的类,他们的命名都有规范,相似抽象的对象会有相似的方法或者写法,比如:Mutable的类可能都有addXXappendXX方法,SetArray类型的类可能都会有enumerateXX的遍历方法……,又比如一个类的功能如果注重过程的话,苹果会选择使用delegate的方式,注重结果的话则会使用block ,学会总结比较、触类旁通、举一反三!

如果你能做到对Cocoa模式很熟悉的话,那么最新的3DTouch功能直接看类的头文件就会用了。

并且,第三方优秀的、热门的库都会遵循这一套编写规范,所以使用起来或者修改起来也才能够游刃有余!除了ReactiveCocoa之流除外。。

学习时候看一本书远没有敲一个项目来的有效果。

看书的时候总是会犯一个毛病,就是一看就懂,一写就懵。所以学习技术,我更推荐的是实践检真知!敲出来的代码才是学习到的,因为你在电脑前,你遇到不懂的你可以立刻Google,看到感兴趣的新类可以直接option+左键查看文档或者command+左键直接摆出头文件一览无遗!

当然WWDC别忘了看看,这是iOS最前沿的技术教学,即使听不懂也没关系,把音频外放,同事问你:哇,你听得懂呀。你微微一笑答道:听不懂。留下认真聆听却似享受的一道背影给同事,那可是满满的逼格。。呵呵,其实不然,视频中有大量PPT,有关键字,拿出来Google一番,再敲打一番,肯定你心中会觉得不虚此举哈,这样也锻炼了英文水平,这样的一波绝逼不亏呀。

说到英文,这个是技术进阶的基础,不要畏惧,刚开始看一篇英文文档可能花费你一天的时间,但是这才是第一手资料!国内译者的水平毕竟参差不齐,谬误在所难免,而且二手的资料,对于充满处女情结的你能接受么?能忍么?所以百度还是用来搜搜绯闻、床照之流就好,技术索引真不是它的强项,搜出来的东西都是deprecated的,实在浪费感情。

NSHipster、Objc.io ……都是不错的去处,大量的紧巴巴的干货,他们都有中文版,但是最新的资料的中文版还是会相对滞后。

再一个就是大婶们的博客,一天不读都浑身难受!

之前拜阅唐巧Boy的新书的时候,有一个博客列表非常不错,强势插入我的Feedly列表,我自己也有一些关注的大婶也加入了列表当中,这里给出分享OPML拿去玩。

沙龙、研讨什么的可以适当参加,看看荧幕外的世界,不要老说没有搞iOS的姑娘。

 

 团队

 

讲一个故事:从前有个产品经理,他修改了3次需求,第二天他死了。

博主只想说的是,若不是博主心慈,我想我公司的产品经理已经死完后投胎又死一百次了。

我们都知道项目完成的水平直接由团队中是否有高效的协作而决定,也许有很多程序员长期的孤高冷艳惯了,他们说自己不需要团队!自己一个人就可以搞定一切,自己是UI、UE、产品、编码、测试甚至后端一条龙拿下,但是你将没有女朋友!!!

团队协作远比个人的英雄主义更有魅力,个人认为!

当下的快速迭代的大环境下,企业级开发下英雄主义是不太可取也不太可行的,所以融入团队,学会交流是工作顺利进展的保证;

当然团队协作中是否高效是否愉快就需要交流技巧了,每个人都有自恋的情节,即使是自己的工作技能也是如此,所以世界上存在着各种鄙视链

图2

 


 

举一个简单地例子吧

公司常见撕逼的三个部门:研发部、产品部、市场部

研发的看不起产品、市场,觉得他们都不懂技术,只是天马行空,遇到Bug还大惊小怪……

产品的觉得自己的设计是天才的设定,参考了社会伦理学,色彩心理学,严格的人体工学设计……反驳自己的都是傻逼……

市场的觉得自己深入客户,自己才是最了解这个产品市场的,所产品应该按自己的市场为导向,颜色不对,字体客户肯定不喜欢,改改改……

在排除消极因素,投机倒把的极个别人存在,团队中的成员还是希望共同的目标能够完美的实现的,也就是说其实我们的“争吵”也是为了更好的产品,但是“争吵”的度确实很难把握,难免就因为工作却伤了私下的感情,这也是离职中众多原因之一,频繁的离职却会使得你的职业生涯成长增加时间成本,所以更好的工作方式是“学会交流”。

“学会交流”不单单是工作中用到,这也是我们的一生的学问!

例如有时候,产品部门不是很负责任的频繁变更需求,这可苦了研发的成员,你便可以玩笑似的给他讲一个故事:从前有个产品经理,他修改了3次需求……,我想这样的诙谐即会是的工作氛围愉悦许多也可能让产品的同事知道自己不负责任行为的影响。

但是需求变更,这个是研发一直要面对课题,所以你必须学会“预置性开发”,预置性包括使用一些优秀的设计模式的使用降低模块间的耦合,增加系统维护的灵活性,也可以有类似Placeholder的编码技巧,来随时应对不期而遇的需求变更,具体的做法,这也许需要另开一篇博文来讲述。

 

 健康

 

如果还没有升职加薪,当上总经理,出任CTO,迎娶白富美,走向人生巅峰。却出师未捷身先死,这个都不太好玩,身边的同事以及博主自己都有或多或少的职业病产生了,博主躬亲力行地验证了一个道理:樯橹灰飞烟灭!别说撸代码还真的很带感,根本停不下来,所以最后颈椎,肩膀就是各种不适。说多都是泪,不过后来博主秉承了国人”先污染后治理”的方针,总算把身子调过来了,秘笈如下:

    • 练此功,不强制自宫

    • 好吧,这才是第一条,”不可久坐”x循环3次!!很重要,久坐流入脑子的血液会增加,从而造成下肢浮肿。由于久坐只限于局部肌肉活动,缺乏全身较大肌群动作,时间一长,久不动作的肌肉会逐步萎缩,机能衰退,还会使心、肺的后备能力降低,不能适应肌肉活动对血液循环和氧气供应的要求,一动就会心跳气急。肌肉长期不活动,热量消耗少,会加重脂肪和糖的代谢障碍,导致身体过分肥胖、动脉硬化及糖尿病。而且久坐一般皮肤质量较差,长时间静坐,受压血液流通不畅,易引起臂部瘙痒和隐痛,伏案工作者更甚,长期下去易导致颈椎炎,肩周炎,腰椎突出,脊柱变弯……我编不下去了,就问你怕不怕!!!所以多起身活动往非技术部走走,不然就会生病的哟(认不出雌性生物了)。

    • 坐姿

      图2

       


       

    • 尝试全键盘操作,多记记几个快捷键世界就安静了,反正博主的magic mouse干电池已扣,什么你的是最新款的鼠标没干电池?那为了你的健康着想拿给博主用吧,可减少手腕以及肩膀劳损的风险。这里分享一个Mac屏幕效率工具SizeUp 可减少鼠标的使用!
    • 运动运动运动!不要在被人黑了,老是被黑码农,油头垢面,肾虚患者……有意思么?我们是改变世界的工程师!不要再穿拖鞋上班了!!大家薪水都不低,穿得体面点吧。你可以和博主一样帅的。
    • 努力陪伴回你身边一直陪伴着你的人,那使你的精神最远是最佳的状态!什么?那就多打打电话给你妈妈吧,那是最美的人。

 追求

 

不要担心30岁要转行,不要认为30K就是终点,不要一天工作30个小时。保持初心。

O ever youthful,O ever weeping.

 后记

 

博主新开了一个博客系统,托管在了Github.io上,喜闻乐见的Jekll加借鉴~~(抄袭)~~的精美主题构建而成,反正样子应该还看得过去,如果有朋友有兴趣想了解iOS程序员为何日撸万行代码?数百奇巧淫技如何施展?无数干货为何频频送出?究竟编译器背后又隐藏着什么?这一切的背后是技术与生活的碰撞还是高效与投机的权衡?我真TM编不下去了,欢迎前往 [任意门]围观。

严肃地,如果你刚开始学习iOS开发或许可以从博主这里得到一些半干货。

生活愉快!