Reload Original PagePrint PageEmail Page

半路出家的Coder - OurCoders (我们程序员)

清理移动硬盘,发现了09年在国外初学iOS开发时写的小游戏,顿时感慨良多,睡不着。
写下一些回忆+想法给大家看看:(欢迎拍砖)

那一年发生的事情:

出国前在国内学的是微波天线的,后来08年在法国学的信息系统(Information System),开始用J2EE,后来实习转变到J2ME,再后来iPhone 3G火了,要把项目从J2ME转到Objective-C.就这样,我一个半路出家的Coder在一年里从J2EE转到了J2ME又转到了OC,而且写的是游戏还没人教,这其中的艰苦,估计没多少人有感受.

地狱模式开局

国外实习算很多学分,实习对外国人来说很不好找(因为是用法语),当时好不容易找到了一个实习,不可能因为不会就不干.(毕业多年后,据说同一届的还有人没找到实习-_-!)

接受新手任务吗?(Y/N) Y

当时做的第一个项目就是[一个人][手机]上开发一款使用[GPS]当做操作模式,以[多种网络实景地图]做为游戏地图的[多人][在线Pac-Man游戏].
当时对编程没什么直觉,后来列了一下学习清单:

  • 手机开发,要学习J2ME
  • 要学游戏开发

  • GPS开发

    • 记得是要学习JSR179好像
    • GPS信号弱时,要估算最新位置
  • 地图
    • 实景,要研究各种图上服务提供的静态地图API.(Google Map,Yahoo Map,Open Street)
    • 根据国家不同,要选用不同服务啊有木有!(中国无Google...)
    • 吃豆人啊,豆子不能跑江河湖海里去吧,要识别地图上的路径啊有木有.[图像分析]要学吧.
    • 吃豆子可是还有怪物的存在啊,怪物也要沿着路追你啊!
    • 让人想吐的手机屏幕适配啊!诺基亚,摩托罗拉,三星.从诺基亚的5800大分辨率到Moto的超小分辨率,不只是适配的问题,地图的缩放级别都要跟着变啊.
      [iPhone出4寸的时候,我那个哭啊,骂啊!!!]
  • 服务器
    • 多人在线,要写服务器啊,同一张图要看到附近玩家.
    • 多人之间还有交互啊,你吃了的豆子,我就吃不到了.
  • 美术要自己兼着.我啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
  • 不许组队!

貌似想的起来的就这些.

怀念当初的测试,一个人背着电脑,拿着手机,开着GPS在卢森堡公园里像疯子一样跑.

这才是新手任务(一)啊有木有!

新手任务(二) 移植iPhone

相对J2ME的成熟发展,Objective-C简直就像是婴儿一样.
刚开始的时候,还没听说过有游戏引擎这种东西(RPG Maker不算,大学的时候买过正版的,没怎么玩).自己在国外的网站上搜索怎么在iPhone上开发游戏,英语水平顿时提高了一大截.后来很幸运找到了正在 71squared.com上连载的iOS游戏引擎开发.一步一步的学过来.终于完成了游戏的移植.
过程就先略过,只是一句话:"Java转OC非常非常简单".

How to play!

自学,自学.修行靠个人啊!

  1. 技能熟练度
    • 多动手:
      J2ME因为是主体部分,一定要把重要的部分全部学完.我记得J2ME找的是国内网上的某老师的视频教程.一定要边看边敲!!!看百遍不如敲一遍.就算是最基础的示例代码也要敲好几遍.
    • 带着问题去学习,以解决实际问题为首要目标:
      php我记得是国内的一个网站,好像叫[php100.com].也是视频教程.当时觉得重点不在服务端,就花了一个晚上的时间,看完了数据库操作部分的视频,照着例子代码的增删改查写了一个php的文件.没有考虑到效率,就是[基本的][笨拙的][毫无技巧]的增删改查.从凌晨12点到中午12点.从0开始学习到服务器正常响应工作.
    • Google是个好东西,就我而言,就算是要找stackoverflow上的问题,也是从Google链接过去的.想解决的问题都能找到答案,完全不给提问的机会啊.所以到现在还没有stackoverflow的账号.
  2. 学习的心态
    • 相信大部分Coder学习起来的时候都是废寝忘食,好像有强迫症一样,没搞懂的地方一定要问清楚,心里不能留问题,这是严重影响身体健康的事情.
      比如最近看了看AVOS Cloud,虽然没使用它,但是看到SDK里的接口,产生了一些疑问,还是跑到官方问答论坛里提了好多问题.
    • 对于新技术.
      能用到的就学,但是如果用不到的话,就只适当的了解一下就好了.比如@tinyfool 一直鼓吹的ARC,对我来说,cocos2d-iPhone不支持,我就只要知道以后怎么转化就好了,现在不需要精通或者熟练.
      有些通用基础技能,能学的还是在平时多注意使用,比如现在我正在[第一次使用Mou,第一次写Markdown]如果排版有问题,请见谅.
    • 对于新服务.
      先别看别人是怎么用的,先自己想想能怎么用再说.
      当初从@tinyfool 那里看到了七牛云存储,当时的第一反应就是:可以把我的iOS单机游戏的数值文件放这里,免得每次改数值要提交审核提交审核.虽然现在还没实行,但是可行性极高.对不会写高级服务器的我来说,也可以作为更新在线参数的简单服务器了.
      有空写个小项目试试自己的想法,看一下可行性.也算是做技术储备了.

获得成就

杂七杂八的写了以上这些,好像内容都乱掉了.最后说一下新手任务的奖励.

  • 就学习而言,我再也不怕任何挑战了.
  • 第一次写的GPS游戏在我实习结束后,在2010年诺基亚举办的NAVTEQ LBS全球挑战赛上获奖.
  • 靠着较早接触iOS的机会,找到了工资尚可的工作.(话说10年起价都是8k+).
  • 接上一条,赶上了iOS在国内火的那几年,跳槽到了一个有资格帮忙办理北京户口的,想进入这个行业的公司.

现在的迷茫

  • 现在我只能自称初级程序员,半路出家导致基础异常薄弱.前些天才随着@池建强 的《MacTalk·人生元编程》买了一本《算法导论》,要恶补.不要中断治疗(学习).
  • 为了北京户口放弃了其他的工作机会是否值得?好像工资这几年都没变过.虽然都是后话了,有得有失,但是也会时不时想起这个问题.
  • 公司本是传统IT企业,很难转到移动互联网(而且还是游戏这片红海)这方面来.观念是个问题.
  • 这些天感觉到公司准备裁掉这个部门.在想以后是给别人打工呢,还是给自己打工呢?
  • 靠着自己做主做的几个单机游戏,基本能维持部门的开支,如果是自己创业的话,温饱应该是没问题.但是发展呢?iOS总不能啃一辈子.不知道自己的学习能力及意愿能不能赶上被淘汰的速度.