记一个iOS开发者的心路历程。--两年记。
为什么写这篇文章呢? 因为,现在要向过去告别了,真的要告别了,告别过去那种恐惧,那种非专业,业余的工作状态,以及自己对计算机粗浅的理解,仅仅停留在那种程序员天天加班很屌丝的层面,告别那种对未来迷茫,因为不懂所以不想去学,然后去逃避的那种迷茫,在两三个公司开发iOS,曾多次被人称为‘大神’,但每次听到这个称呼,心里总是一阵阵不舒服,总是很虚,很空,而我仅仅只是毫不费力地做了一些东西,而且也毫无技术含量可言,所以每次都会觉得伤感。曾经一次次想去追求的金融梦,越来越远了,又不想放弃现在的,对未知的又不敢去追求,在这样的场景下,我辞职休息了一个半月。
如今,已经完成了一次思想的转变,心态变了,目标清晰了。
我想应该也有不少人遇到这样的困境。接下来,请听详细分解。
从13年4 5月份左右,第一次接触iOS,可以说是第一次接触编程,对编程为何物一无所知,大学也只是学了C语言,计算机二级考试还没过,就是这样的一个状况,可以说计算机素养很差。这也有一个原因,就是大学期间一心关注金融,看的书全书金融经济相关的,当时就决定放弃计算机了。所以说,计算机基础为零。
接下来,还是从C语言学起,谭浩强谭爷的C语言教程。看吧看吧,也算可以编写一些很小的程序了,可算知道编程咋回事了。学了半个月,开始了OC语言的学习,学习阶段并不努力,也就是随便敲敲代码。循序渐进学习罢了。
就不废话学习过程了。
后来毕业后,9月份左右吧,参加工作了,人生第一份工作啊,以前连兼职都没做过,不知工作啥滋味。刚开始,可以说一无所知,最开始做的是天翼电信移动办公,一个企业级项目,刚去的时候开始了一部分,上面有一个工作四五年的经理,之前部分是他做的,搭了个架子。也是一些最基本的网络请求部分。企业级项目嘛,业务就是繁琐,复杂,请求部分系统自带的,base64 编码,DES加密,当时肯定不知道这些玩意了。第一周,接到的第一个任务是,扇形图,柱状图,折线图。刚开始,甚是慌张啊,以前从来没接触过,就赶紧找资料,学习。好在也是完成了这部分,主要就是一些企业报表数据的呈现,看看趋势销量啥的。这也算第一个有点挑战的地方了。
接下来另一个挑战的东西就是 企业邮箱模块的开发。
完全不知为何物。第一次听POP3协议,IMAP协议。其实也就是两种与邮箱相关的协议,同http,ftp一样属于 应用层协议。
邮箱模块,也完全和其他邮箱客户端类似,只是没那么智能,完善,收邮件,发邮件,转发邮件,浏览附近等等。反正前前后后也折腾不少时间。
balabala,后来就是一个复杂的业务流程了,具体做的啥,都忘了,是企业的工单 公文审批流程,ERP单据审批啥的,反正就一堆业务流程。
后来又来来一波图表方面的工作,这次比较奇葩,栈式样的柱状图,结合折线图,雷达图,一堆堆的,当时实在没有好的实现方法,用的 echarts,webview加载图表,传动态数据给页面展示。折腾了不少时间。
最后一阶段大概就是 企业的 人力资源管理,这个阶段无力吐槽了。前前后后开发调试,花了很多时间。
接口开发,接口soap协议包装数据,通过http传递,中间都要通过ESB总线,转一下,调接口阶段很痛苦,而且两边接口分开写的,咱们服务端 调用那边ESB的接口,中间无形中多了一层,每次看的时候更复杂,再加上我们经验有限。
中间也遇到企业版发布的一些事情,苹果折腾的 iOS7.1以上必须https,itms-service协议发布的一些问题。
上面也就算职业生涯第一阶段的大体工作了,就是做的这些。大体对企业版app开发流程都熟悉了。
总结一下第一阶段,这一阶段既有对知识的不断获取,同时也经历了人生的第一个迷茫期。
这一阶段期间,看了看设计模式,看了看数据挖掘相关的知识,当然这两块基本没咋看懂,有个印象,买了书看了看。
接下来,就是换了公司,去了一家做社区O2O的公司,开始了生涯的第二阶段。
公司呢,本身是做传统软件的,新成立一个部门,做社区O2O,可以说是创业公司吧。
新部门,基本都是年轻人,差不多大,而我1年多开发经验,也算凑合,我司另外还有两个iOS开发,安卓3个,6个php,2个产品经理,2个UI设计,产品运营若干人员,一个CTO,可以说团队也很完整。
最初的时候,也是先参考了万科的企业版APP,关于物业管理的。 最初一个月,从原型设计,切图,编码,大概一个月,出了一个beta版本,也算是对最初的一个探索。物业管理,得和物业公司合作,方能行。后来又与龙湖合作,开发 物业管理APP,采用的是 h5 native混合开发模式。界面都是html css写的,业务逻辑都是js和本地交互,网路数据都是来自本地,以及存储采用的是sqlite数据库,拍照,扫码,陀螺仪,都是native端暴漏接口,文件IO也是同样,图片下载,云推送等等。html js方面的话,支持本地的文件,和下载html js文件压缩包 到本地方式,js方面基于jquery,用requirejs异步加载框架加载js文件,以防阻塞,影响页面执行速度。
之间也是遇到不少问题,由于之前经验不足,js html也都是现学的,遇到不少坑。
blablabla....
后来也一次次调整发展方向,开发方向也有所改变,微信公众号开发,业主版APP开发,商家APP开发,等工作同时进行。
就不详细叙述了。
这期间呢,思维就稍微有点混乱了,跨平台html5那一套,后端开发那一套,安卓那一套,开始扰乱我,开始陷入混乱状态,期间看了看python,看了djangoweb框架,flask web开发框架,scrapy爬虫框架,以及scikit 机器学习框架,等等,方向多的不行,一时难以把握。这时候,就暴露出计算机素养和基础差的问题了。由于对一些基础的东西把握不了,才会造成一些理解上的偏差,以为一些东西很神秘,就比如服务端开发,一直不明白啥回事。所以造成了混乱。
这期间,有一段时间,对计算机失去了兴趣,一心准备去转金融,从头开始。
经历了一个非常痛苦的过程。休息了一个月,这期间深刻反思,查资料。开始恢复,开始振作,开始回头。这一个月,我想是我人生经历的最灰暗的时期,精神上的折磨。正是这样的一个深刻自我反省的过程,让我重新找回自己。
一个深刻的体会--- 懂了就有兴趣了,明白了,就更热爱了,因为不懂就说不敢兴趣,是无知的,是懦弱的。
这个期间呢,来到了新公司,新气象。同时也遇到了我爱的人,已经健身也小有成就,自信心有了极大提高,心态也变好了很多,很平静。
在工作期间,指导同事,同时提升自己。最深刻的变化是,我意识到,既然做了软件开发,就要成为一个专业的软件开发者。 那么专业的开发者应该具备什么素质呢?这个问题,再一次摆在我的面前。从前的逃避,到如今的敢于面对,而且想去面对。
这期间,我从基本做起,一步一步了解计算机。从计算机体系结构,组成原理,到计算机操作系统,编译原理,到计算机网络,以及数据结构与算法,一一涉猎,开始对计算机这个神秘的东西越来越喜欢了,觉得没有那么神秘,觉得很有趣,也是对现实世界的一个很好的诠释。
在这里推荐一本书,深入理解计算机系统,这本书很全面,读完有一种醍醐灌顶的感觉。
数据结构方面呢,看的基础的书,大话数据结构。
计算机网络方面呢,http权威指南,TCP/IP协议卷一 卷二 ,
编译原理:龙书,程序员的自我修养。
操作系统:现代操作系统,Mac OS X/iOS 内核编程。------------------------------------------------------------------------------
2015年,是一个收获的一年,成长了不少,成熟了不少。实际上,我是在超越自己。
暴漏了自己的缺点,就要好好克服,所以我选择了健身,和学习系统编程。
我也是一个特别有情怀的人,我喜欢科比,我热爱篮球,所以我喜欢24这个数字。曾经也是一个梦想着美国梦的年轻人,如今我依旧在努力。ps:我女友目前在学英语,以后可以跟她一起学了,好开心,有了她,我感觉真好。
最后一句话:不断超越自己。 这是我所理解的成功。--by tsl