进入软件开发这个行业已经有近一年时间了,感觉有必要整理一下,让自己清楚自己要走的路,以此勉励自己。
大方向抉择
我所学专业是通信工程,偏硬件,单片机、信号与系统、嵌入式、模电数电。。。毕业了,很想找一个与专业对口的行业。将自己的简历挂在智联上,有几家公司联系了我,可是考虑到发展前景问题,都选择放弃了。记得第一次面试的公司是某内公司,当时懵懵的,问她招做硬件的吗;她说我们这边有的,让我过去面试看看。去了之后是“先扬后抑”,对你一阵夸赞,之后就开始游说,“虽说你的学习能力很强,但是你的技术还是不到位,我们这边可以对你进行包装一下.......”,当时被她说的一阵一阵的,有点下定决心的意思了。还好自己比较明智,没有签合同。后来听说它特别坑人。
之后对自己的发展前景有了很好的认识:硬件对我来说确实很对口,但是门槛比较高,需要好的学历,即使进入普通公司也只是焊点电路板,排排线。软件对我而言门槛就相对较低了,当时也是需求量最高的职业,但我没有什么就像某内公司所说的我没有什么技术。
不过一个偶然的机会,我收到某软件公司的电话,只是简单的电话面试,我就收到了offer,网上查了一下该公司的评价,还可以,公司挺大的,感觉不会太坑,正好当时辅导员也催着我叫三方协议,我就签了这家公司。
就这样我就走上了软件这个行业。
小方向比较纠结
去公司报到的路上,没想到遇到同去报到的同伴,她们的技术相对来说比我好,而且毕业学校比我也好,这两方面一点优势没有,我的心开始虚了。后来很荣幸被分到了一个比较人性化的部门。
公司企业培训完就是部门培训。培训期我们可以根据自己意愿进行针对性的学习,当时对软件开发一点概念没有。听同事说,学iOS开发比较难,学习Android的人比较多,我就跟着选了Android。我们的培训也没什么,每天的任务就是敲培训教材里500行代码,学习到了后期我发自己跟不上,Java代码都不能完全理解(Android是基于Java),我和组长商量一下还是选择了Java。不过后来大领导出差回来了,听说我只会C,单独找到我希望我转iOS,领导开口我也没什么好说的,那就干呗。不过我也有担心的,我的课程落后很多,担心公司会辞退我。不过领导一句话打消了我的疑虑,“只要你态度端正,我们很人性的”。
从这一刻开始我就踏上iOS这条不归路。
完全靠自己
投身iOS,唯一的好处就是没有500行代码的要求。
一号坑:设备问题,大公司设备都是要申请的,像苹果设备这个只有进入项目组才会有的,我们只能用黑苹果,关键是黑苹果还得自己装。这个坑大了,捣腾了半星期才把黑苹果装起来,但是系统只能装Xcode5,系统版本太低。又花了半星期才把系统升上去(不是网络升,换镜像)。总算填了这个坑。
二号坑:没人教,公司对网络限制比较严,我们只能自己买书,自己看,对着书上敲代码。一开始在StoryBoard上拖控件,后来看了视频才知道一个完整代码怎么写。后来靠一些控件属性整理才将整个界面搭起来。
填完这些坑领导就把我拉到项目组了,项目组里我就是天天打酱油,还好组长每天给分我一两个缺陷让我改,我就这样熟悉了代码。
但是后期想学点东西只有抽空自己学,每天晚上自觉加班,看着视频敲点代码。后期优化代码还是得看点书。
学习心得——这才是重点
其实前期我看写iOS方面的书,可是看了发现一点用也没有,都是些Objective—C的基础,不能深入人心,看完就忘了,不如看些写界面的书。后来才开始看书。
第一阶段:写界面只是提高兴趣。不要认为界面是iOS的核心,界面搭建只是为我们创造点成就感。但是写界面还是需要点对象的思想的。关于对象思想,我也是后来在写代码中领会的,因为只学过C,只懂得面向过程编程。这个思想转变需要一定的过程,其实这中间有种只可意会不可言传的意味。代码写多了自然就领会了。界面后期会变的复杂话,这就需要你回去看一下OC基础了。
第二阶段:这个时候OC就派上大用场了。什么数据类型,什么forin循环,以及控件的代理等就在这个时候领会。但是你会发现有些数据怎么也显示不上去,但是你的程序也没有报错。这就要更深入了解OC了。
第三阶段:ARC机制,对象管理,内存管理就不得不去了解了,这个时候学习也能结合实际解决问题。
第四阶段:你会发现你的代码很不美观,你就需要了解一下Block,了解对象如何封装,什么类方法,什么实例方法自然而然就领会了。
第五阶段:结合项目,对一些问题解决。这样才可以丰富你的经验。
我认为OC是学无止境的,总有一些新需求让你去学些新东西。
总结
以上是我学习iOS这么久以来最想说的,其中的意味只有经历过才能领会。后期我将我平时项目中遇到的问题以及解决方案放出来。重在总结。