zoukankan      html  css  js  c++  java
  • iOS开发如何快速成长?

    iOS开发如何快速成长?

    NO.1 毫无疑问,做有难度的项目.
    当时正在快乐的当一只小菜鸡的我沉浸在了解了delegate原来是回调的意思正充满着满满的幸福感的时候,被产品告知必须完成以下几个功能.

    1. 完成类似于vine的短视频录制功能和画中画(我记得当时vine的版本只到1.X),而且AVFoundation什么的完全没听过.
    2. 完成City Guides里的地图动画.(如果有不清楚这个的去appstore下一个国家地理杂志出的City Guides,你可以观摩一下地图的交互设计)
    3. 做一个扇形的menu,开启和闭合的动画参考真实世界的扇子打开和收起.
    4. TableView的background用实时动态模糊效果(当时是iOS6.0,完全不知道动态模糊大概是什么样的)
    5. 寻找不规则范围里的所有基于GPS的搜索结果.(当时我们有个创意是用户随便用指头上一划,我们提供这个区域内的所有相关搜索结果).
      所有的东西在两个月内完成.
      结果是,不管完成度如何,我在两个月后东拼西凑都给他弄出来了.

    通过找短视频录制,我知道了AVFoundation,视频剪辑.
    通过模仿CityGuides的地图,我知道了他们的地图是用一个叫做mapbox的第三方地图做的.因为我用了google地图,高德地图,百度地图和原生地图,都不支持custom tiles.大致了解了LBS的东西.
    通过做实时动态模糊,我知道了有个第三方库叫GPUImage,也知道了有个东西叫CADisplayLink.
    通过做扇形menu,我学会了CoreAnimation和贝赛尔曲线.
    通过搜索在不规则范围内的所有点,我知道了射线法.

    试想一下,如果你做的是一个界面粗糙,逻辑简单,交互乏味的app, 那么相应的,从中获取的东西肯定是不多的.所以,当你的技术进步缓慢的时候,很可能就是缺乏挑战的时候.

    NO.2 尽量少抱大腿,或者压根就别抱大腿
    不知道你们有没有这种体会,在你寻找问题A的答案,不停的网上搜索,阅读代码的时候很多时候可能会顺带的把困惑已久的问题B和问题C的答案找到了.这时候往往会恍然大悟,哦,原来还能这么写.
    那么如果你的公司恰巧有个大牛,基本功扎实,业务逻辑烂熟于胸,态度温和,来者不拒.你每每碰到什么问题过去问,总能得到完美的解答,甚至大牛会帮你"结对编程",直接代码都给你敲了.你肯定会感到幸福爆棚.
    但是,这意味着,你丧失了很多触类旁通的机会.
    我当年也是比较迷信各种大牛的,加了很多开发群,有问题积极提问.后来就感觉这样很蠢.
    1是答者寥寥,顶多给你提个方向.
    2是感觉就算是技术很好地人,在不了解你代码的情况下也不大可能直接告诉你正确答案.
    所以,凡事靠自己,是个很好地习惯.少麻烦别人,还能促使自己进步.何乐而不为呢?

    NO.3 多读源码
    大家对读源码有个错误的认知,觉得不读懂每句话就不叫读源码.
    其实不是这样的,你完全可以用读网络小说的态度来读源码,觉得这段写的看不懂,你看的不爽,直接略过.用五柳先生的话就是,不求甚解.
    这样反复看反复看,而且随着平时代码量的增加,有些以前看不懂的地方也会慢慢豁然开朗,当然,该查的地方还是要查,也不能略过略过的把所有代码都略过了.
    但是读源码也不能盲目的看,最好是看和最近的工作相关的.比如,你最近在搞一些与网络联系比较紧的项目,那肯定要找AFNetworking这种经典的来看.如果最近在搞图像处理,那肯定要找GPUImage或者CoreImage方面的源码来看.
    因为这样和项目结合比较紧,你看的代码和你写的代码很容易结合在一起,事半功倍.

    NO.4 多读国外的iOS开发网站和blog

    翻墙软件肯定是要有的.你要知道,第一手的开发资料永远都是英文的,而且以英语为母语的开发者学起新技术来有天然的优势.举个例子,最早我有个法国 同事(虽然法国人的英语普遍比较烂),学习新技能可以用神速来形容,以前开发的一个模块需要用到cocos2d,他花了不到一个周的时间就自学 cocos2d把东西搞出来了.
    要把看Raywenderlich和nshipster还有objc.io当做生活习惯来看.而且现在的国人开发环境真的比早年的程序员幸福太多了.swift刚出没到一个月就有团队全部翻译完了那本官方指南.所以,现在学不好编程是没有任何借口的.
    而且,说自己英语不好而拒绝看英文文档的人,我感觉完全是态度有问题.这种文档类的资料,基本没有俚语或者日常用语,高中的那些英文基础都够用了,随时备一本词典,随看随查,是完全没有问题的.

    NO.5 要孜孜不倦的学习
    有句话叫技多不压身,编程本来就是一个更新换代非常快的工作.每年都有新的技术出现,我认为要成为一个出色的程序员只掌握一门语言肯定是不行的.
    那么,要怎么选择自己的第二门,甚至第三门语言呢?
    我觉得要靠自己多试试,从12月份一直到15年2月,我一直在尝试不同的语言和框架,从node.js到golang到python,中间还学了一点点erlang.
    我觉得最适合iOS开发的第二门语言是python,python真的是太好用了,而且天然的适合unix系统,语法简单,各种五花八门的库,不夸张地说,应有尽有.学好了python,用处极大.
    1是python与unix系统结合的特别好,你可以用python写很多脚本来提高自己的工作效率.
    2是python入门极快,买一本headfirst的python教程,很快就能学会.
    3是python的就业前景也非常好,就算你以后想转行,python的待遇也不比iOS差多少.
    希望大家在闲暇的时候可以找一门自己感兴趣的语言学习.

    最后在新的一年,祝大家技术每天都有进步,技术和money双丰收.

  • 相关阅读:
    从Android APP里面打开其他应用
    jQuery 中 serialize() 方法会受到asp.net 页面影响
    javascript 对象转换 json 的插件
    MVC 4将jQuery升级到1.9出现各种问题。。。
    用MVC做可拖拽的留言板,利用 Jquery模板 JsRender
    未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”
    处理MVC中默认的Json方法返回时间的问题
    jQuery 中使用$.post 无法获取 json
    MVC中用 BundleCollection 压缩CSS时图片路径问题
    MVC中返回Json的几种声明方式
  • 原文地址:https://www.cnblogs.com/NSNULL/p/4572979.html
Copyright © 2011-2022 走看看