注册快一年了,但是到目前为止,还没有写过一篇文章,近日闲来无事,觉得竟然有这么好的平台,不能浪费了,决定静下心来,给大家分享一下自己工作中的成长与踩坑之路.
进入程序这个行业不知不觉也快三年了,三年时间,有一个仅仅只会一点点还是大学老师教的C,到现在能自己用OC独立开发能用且自己觉得还不错的APP,从内心来说,还是有一些成就感的.每个人由于性格或这或那的原因,选择了不同的行业,从事了不同的工作,且先不论这个工作是否逞心如意,是否能奋斗一身,但想来,这一路走来,走有些自己的见解和经验之谈.
第一年,也就是刚开始从事iOS的时候,那个时候觉得能写出一个界面,能把一个界面完整的按照自己的想法写出,感觉自己很牛逼,很有成就感,觉得开发原来就这么简单,我都能实现某某某界面,某某功能, 深深的陶醉在这种迷之自信中无法自拔.当然,为了能实现更多的功能和界面,也会去学习更多的控件使用方法和一些注意的事项,但是主要的方向,是界面的效果,其它的一切靠边站.现在去看那时的代码,自己都觉得菜,看不下去.我想,如果这样一直下去,那么我可能一直都是一个连入门都不算的,还在自我陶醉的菜鸟.然而现实是不会让这样的菜鸟生活下去的.
随着工作的进行,需求的改变和提高,接触的东西越来越多,发现只是简单的绘制好了界面,拼接好了控件,只是一个空架子,复杂的功能交互,以及随着代码量的增多,维护变得越来越艰难,其中最难的一点我觉得应该是数据的交互和处理.但是,随着不断的百度,踩坑,帖子请教大神,storkOverFlow查询,这些问题都一一解决,不得不自恋一下,我还是一个很聪明和学习能力自认为不错的人,公司的基本需求也解决了,数据的传递,有OC强大的各种方法,比如代理 通知 block 存储赋值等等,各种传值赋值,可以说,只要你想,没有传递不了的值.瞬间感觉自己又牛逼了下.
然而数据传递通了,就没问题了吗?和控件一样,数据和绘图都只是功能的必须,这些都是最基础的,你会绘图,写控件,传数据,那么你只能算是简单的入门,能写一些最简单的程序,问题依旧有一大把的等着你,比如用到网络传输的方式,长连接,HTTP,webService,再比如网络处事的时候,会出现各种情况,无网络,网络切换,因为网络数据丢失;比如请求时候的线程问题,音视频下载上传需要异步线程,音视频编解码,数据传递是变录变传还是录完传,比如交易的加密方式,各种加密协作的时候会出现哪些情况,怎么解决,第三方集成的时候出现一些从没见过的警告怎么消除等等
上面的这些问题都是开发中会出现的,而且对于没有相关开发经验或者开发经验很少的开发者来说,这些事件的发生是很频繁的,但是,没关系,只要你肯学,肯动脑,在万能的百度 谷歌 和storkoverflow上,基本没有解决不了的问题.所以第二阶段的时候,需要的是一个肯学,肯动脑,肯认真去干的心态,去解决一些项目中的问题.做到了这些个人感觉一些平常的项目,应该难不倒你的.但是,大家都知道,任何一个公司在确定研发一个项目的时候,都是希望这个项目能够维护,更新下去的,那么如果没有一个好的框架,好的代码习惯和逻辑,这个项目是很难维护下去的,
综上所述,我觉得如果你在能做一些基本的项目后,如果你还想再进一步,那么,你需要去阅读一些大牛的源码,看下别人的框架,以及别人在实现功能时的源码结构,怎么让你的代码能够更好的区分,更好的维护.这个是一个开发者基本的但也是很少有人能做到的,很多大牛说,一个好的源码就是一篇文章,能让你通俗易懂,能让下一个花费最短的时间接手你的项目和你的功能模块划分.所以,代码的逻辑和框架是很关键的,这也是你进入大公司的必须.
很多人都说过,开发是一条无止境的路,思想有多远,代码的世界就有多大,没有你做不到,只有你想不想.所以,想要高薪,好的工作岗位,那么就珍惜你觉得能够用来学习的时间,如果觉得没有进步了,也可以学习一下其他的语言,比如HTML Python JavaScript PHP等等,不一定要学的多深,但是如果你愿意学,总会有收获的,说不定触类旁通之下,能让你更加的熟悉代码的世界,让你能走的更远.