WindowsPhone7线下沙龙北京站(第三场)
引子
本次春Phone计划沙龙在全国范围多个城市内共计8场开发者线下聚会,时间是前天与昨天(4月14日-4月15日)在中国多个城市内同时进行,WindowsPhone7开发瞬间以野火燎原之势走进了开发者的视线当中。有幸的是我 @雨松MOMO 担任北京站(第三场)的组织者与演讲嘉宾,虽然现在WindowsPhone开发者线下沙龙已经圆满结束,但是我的心还在热血沸腾当中,似乎我还在这场沙龙中振振有词的讲述着移动开发。本次沙龙是微软与51CTO组织的线下开发者聚会,在全国范围内寻找了很多移动开发精英,召集志同道合的移动开发者,大家齐聚一堂分享了自身多年的开发经验,以及未来又可能会引领世界的WindowsPhone开发。
这是MOMO这么多年以来第一次线下沙龙,生怕办不好所以我尤其的上心,本次沙龙举办之前我做了很多准备工作。51CTO告诉我本场沙龙预计是20参加,让我找一个差不多的场地就行。因为我一直都在鸟巢旁边住着,这里环境不错有水有树木的的,所以我决定就在鸟巢旁边来找本次沙龙的场地,很快我就将场地找到,是一家茶馆。茶馆比较清静,我选择了茶馆中最大的一个包厢,大概30至40平米左右,我心想20人参加应该绰绰有余了吧。可是我万万没有想到的是开沙龙的当天现场竟来了将近40人,茶馆的所有椅子都用上了可是还是不够,最后辛苦了几个兄弟和我一直站着,一直到沙龙结束。突如其来的场面让我非常的紧张,开始说话都有些吞吞吐吐的,可是每说一句话我心里都默默的得告诉自己我必须得好好说,大家能来参加这次沙龙是我最大的荣幸,我不能让大家失望。久而久之我越说越顺溜,慢慢的也不紧张了和大家也聊开了。时间真的是一把杀猪刀,整整3个小时一转眼就过去了,眼看就是沙龙结束的时候了。可是我想说的远远不是3个小时能说完的,感觉很多东西都没能分享给大家。
感谢当天到场的每一位朋友,感谢大家能坐在下面听我说了3个小时。我愿意接收任何批评或表扬的声音,希望我们可以成为好朋友,未来愿我们一起走在移动开发的路上。 今天这篇博文我是续沙龙结束后对本次沙龙做一个总结,当天由于场面比较混乱加上我心里有点紧张所以很多东西我没能分享出来,然后是对自己这5年移动开发做一个小结,最后是有很多外地的朋友都想来参加我的这次沙龙,但是因为距离比较远只能放弃了,所以写这篇博文我愿将我的所有开发经验分享给关注我的每一位开发者。本次沙龙连续3个小时我一直再说,一直在说,并且一口水都没喝过,回到家中一口气喝了四大杯水,事后想想自己都佩服自己 呵呵。今天上午51CTO的产品经理告诉我北京第三站的沙龙举办的非常成功,各项数据都很好,我的心里很欣慰。
退学的迷途少年
看到这个标题,我相信大家应该能大概明白这是什么意思。是的!!我没有毕业,我现在没有毕业,未来我也不会毕业,我永远不会毕业的。遥想当年蝉联正正3个学期班里倒数第一,门门功课不及格。学校的压力,老师的压力,家人的压力,我不知道为什么那时候就是那么的不听话,那么的讨厌老师,那么的不爱学习。当时我沉迷打游戏,竞技类游戏,我不仅在学校中打的最好,而且参加相关的比赛也获得过奖项,我很高兴,我真的很高兴。可是我喜欢的生活却被 家人 学校 老师 认为是“玩物丧志”,凭什么说我玩物丧志?最后也不知道我哪来的勇气我毅然选择退学,在我的记忆里当时我的母亲哭得很伤心,哭了两三天吧,她说”你就真的不愿意在学校把毕业证混出来吗”。不知道那时候我为什么那么铁石心肠,当时是年龄的问题,我好不理解母亲的想法,如果可以的话我愿在这里对她说句“对不起,妈妈”! 但是对于这件事,我永远只能说四个字“人各有志”!
初识程序
以前我的专业和程序没有任何关系,对于我初学程序的过程我希望将它保密,大家也不要乱猜 谢谢。只能说的是大概学了3个月,1个月C 、一个月C++ 、 1个月Java,仿照我以前最爱玩的游戏,使用Win32将它模拟的实现了,这就是我的作品,我很高兴!!
北漂一族
我是土生土长陕西西安人,钟楼,鼓楼,兵马俑,是我们陕西人的骄傲。我背上行囊离开了家乡来到了我梦寐以求发展的城市-北京,开始自己的北漂之旅。因为我的C、C++学的比较好,出于对游戏开发的热情,本身我想找一家网游公司,但是我带着自己做的作品去面试,可是被他们拒之门外,理由是“经验不足”。 刚刚毕业的学生一般都是无头的苍蝇胡乱发简历,我也是其中的一只苍蝇。误打误撞我进入了一家手机游戏公司,我对手机游戏简直就是一窍不通,当时手机游戏都是选择使用J2ME进行开发,可是Java我只是略懂皮毛,Windows编程才是我的强项。受到金融危机的影响,加上我还是只无头的苍蝇,心里想的就是赶快找到工作先有了工作经验再说。于是乎我进入这家拥有200人的游戏公司,开始了自己的程序员的生涯。
百人以上的公司,在游戏行业已经算是比较大的公司了,就连知名游戏引擎Unity3D,它们公司目前也不过200来人。大公司都存在一个问题,就是公司等级制度非常鲜明,每人只需干好自己的分内工作就好,意思就是你只需要做安排给你的工作,没有给你安排的工作你不要做。加上大公司的代码管理以及游戏引擎都很完善,开发工具都是现成的,直接哪来用就可以无须在手动重写。有时候根本就不理解原有程序的含义,所以对于我这个新程序的成长很是不利。同事与同事之间感觉也非常不和谐,当时我年龄比较小也就20出头,然而我们部门除我以外最小的同事都比我大7岁,我总觉得大家不爱和我说话,我也就不太和大家说话,总感觉自己和大家有代沟。可能是因为和同事沟通的比较少的原因吧,程序主管慢慢的有点开始带头排挤我,甚至让我觉得有点在刁难我一样。这事情让我感觉自己真的尝尽了人生百态,想死的心都有了。现在在此回想到当初的这段工作历史,我觉得错的人完全是我,而和我以前的同事没有任何关系。工作是人和人在打交道,法律还不外乎人情呢?所以说什么东西都不是一成不变的,作为一个职场新手一定要主动和自己的师父关系搞好,这样师父才愿意把自己的本事都传授给你。将心比心,你都不愿意主动和师父沟通那么师父怎么可能会对你好呢? 然而当时的我完全不懂这个,我只觉得好好工作什么都会有的。在公司一连干了好几个月一直在做打杂的工作,给同事打下手。对对坐标啊,换换图片啊这种很没意思的工作。当时心里想的最多的就是
“老大凭什么不让我亲自开发项目,总是让我改别人的东西!”
“带着这股冲劲,你不让我写项目我就要写一个给你看看!”
仿照这我们公司的一个成型的项目,我自己在互联网中寻找图片相关的资源,我自己设计的产品,自己学习使用PS自己改图,一切的一切都是我自己完成的。最后我将我做的产品放在老大面前,我还记得当时他先是震惊了一下,很不可思议,觉得我也能做出这样的东西。辗转反侧,我实在不知道为什么最后他还是没有用我的东西,没有让我亲自开发项目,我依然在给别人打下手~沮丧的我感觉自己仿佛又回到了毕业彷徨的时刻。
机会总是会给有准备的人,虽然我没能得到老大的欣赏,没能把重担交给我,但是我的这股拼劲儿却被我另外的一个同事看在眼里,她叫王璐。我一直管她叫璐姐姐,她告诉我:“小宣,你着么年轻,又这么有拼劲,这么有理想,为什么不考虑考虑外面的世界”。最后因为她我继续带着不服输的拼劲来到了另外一家游戏公司,这次 “跳巢” 是我人生中非常重要的转折,虽然这家公司就几个人组成的小团队,办公室变小了很多,薪水也没有涨,连三险一金都没有了。我看中的是这家公司的技术总监给我说的一句话:“只要你有拼劲儿,我会带着你一切写RPG游戏引擎”。我什么都不为就冲着这个机会,这个理想我就来到这新的公司。这位技术牛人他就是王嘉鑫,也是我的师父,直到现在我们还在一起工作。
在新的公司中,我总结了之前公司自己的所有缺点,主动和同事交流,注重团队协作精神,在各种通宵加班中我得到了充分的锻炼,自己进步的也非常快。我的师父也很相信我,什么样的工作都交给我让我去做,做的多了自然我的技术也提高的快。通过了1年高强度的开发工作,这款游戏引擎基本已经成型,最后依靠它,公司开发了很多RPG游戏。在到后来我的师父已经让我带领公司团队开发游戏,招聘新程序,我都有参与。我的能力也得到了公司所有人的肯定,我心里也非常高兴,非常高兴。希望我和他还有身边的所有兄弟可以一直在一起一直都在移动互联网的道路上。
写博客
说道写博客,告诉大家一个秘密,写博客其实也是我师父叫我写的。当时他说让我们师兄弟几个包括他一起来写博客。但是所有人中就我坚持的写下来了,呵呵。 在这里我要继续强调一点,我不是技术达人,也不是所谓的牛人,更没有长出牛的犄角。我就是一枚普普通通的程序员,一枚有理想的程序员。读过我博客的朋友应该都知道,在文章的最后我都会写到 “希望大家可以互相学习,互相进步” 我的每一篇博客都是出于学习的精神而完成的。我周围也认识很多大牛型程序员,它们的技术非常强悍,但是他们不会写博客,并不是他们写不了,而是他们不知道怎么写。我觉得写博客就好比写日记一样,区别是public 或者 private ,而我亦然选择了public,哇咔咔~我的博客永远虚心接收广大开发者各种批评与表扬的声音,希望大家多多提建议。
学习的捷径-加班
学习的捷径就是三句话:第一句,“加班!”,第二句,“还是加班!!”,第三句,“还是他妈的加班!!!”。 首先我从事了5年的移动开发,我并没有拿到1分钱的加班费,说道加班费我们谈谈为什么我们这行大多数公司都没有加班费。在规定的时间没能完成项目,导致公司受到损失,换位思考一下如果你是老板你会给员工加班费吗?想想当年我加班最长的一次好像是一两个礼拜没有回去,现在想想那时候都寒心,觉得就是自己活该,一切的一切都是自己造成的,呵呵。
为什么说学习的捷径是加班?因为加班能让你有更大的工作压力,有压力才会有动力嘛。加班不是公司的目的,经常加班会让你明白一个道理,就是怎么样我才不用去加班?我们分析一下当时我入行时为什么连续加班两个礼拜没有回去。首先我没有在公司规定的时间完成项目的开发,为了赶工期所以我就得去加这个班,然而当时我个人的能力又是非常有限的,所以我就得连续加班连续加班,结果就两个礼拜没有回家。通过这次高强度的加班项目终于提交了,我的技术在加班中得到了大幅度的提高,并且我明白了一个重要的道理,“我要想办法让我以后不加班”。就是因为有了这次“加班”的经验,5年过去了我都没有在连续加班两个礼拜。
移动开发
个人觉得移动开发的未来会非常好,因为现在的移动开发就像上世纪末PC开发,互联网中涌现出了很多英雄人物,马化腾,李彦宏,马云等。而现在的移动开发就像当时一样。就看谁能把握住机会和这些英雄人物一样。目前移动平台主要是IOS、Android、WindowPhone,现在已经成呈现三足鼎立之势。Android、WindowsPhone更容易上手一些,IOS略微难一些,不过其它平台开发经验的朋友学起来应该不会很吃力,程序都差不多,换汤不换药。我接触过J2ME,IOS,Android,WindowsPhone,Unity3D,Cocos2D等等一些开发平台与游戏引擎,游戏开发与软件开发都做过。到现在为止让我觉得最经典的还是J2ME,最大手机内存就4M (N73 百宝箱 腾讯评审等主版本 ),最小手机内存大概300K,好像还有更小的,时间太久了我有点淡忘了。开发时在代码中使用标签的形式来区分不同版本与机型,用批处理来编写打包工具,使用约翰卡玛特地图缓冲算法与切图算法,内存还是吃力,J2ME对程序员就是艰巨的考验。现在IOS Android WindowsPhone平台,因为手机硬件得到了提升,大家便开始浪费内存资源了,我解开过几个知名游戏的安装包,发现里面的资源凌乱不堪,仔细整理整理的话至少能再减少一半大小。
软件与游戏开发
总体来说软件开发略微简单与游戏开发,通常软件开发需要处理大量的数据,而游戏开发需要处理大量的逻辑。无经验的程序员相对游戏开发更容易上手于软件开发,软件开发也存在一个弊端,就是需要学习大量的系统API,各平台的系统API是完全不相同的,绘制与逻辑事件的方式也大不相同。所以说即使你已经是有经验的软件开发或游戏开发程序员你依然要去花时间学习这样的API。在说说游戏开发,游戏开发的原理真的非常非常简单,但是要想做好却没有那么容易。游戏开发仅仅只是三步:一、加载资源与位图,二、渲染资源或位图,三,计算逻辑与刷新屏幕,所以说无论是任何平台游戏开发的原理都是完全一样的,所以有经验的游戏开发程序员上手游戏远远要高与软件开发程序员。软件开发需大量的使用系统API,有时候开发者甚至都不知道为什么要这么用,但是游戏开发全部都需要自定义视图,屏幕中的一切都需要自己手动渲染,这么来说游戏程序员对自身能力的要求也会高与软件程序员。我建议初学者都去找一家较小的游戏公司开始磨练自己,因为游戏开发更锻炼程序员。
最后我在总结一下游戏开发与软件开发对开发者今后职业的影响。游戏公司永远赚的都是辛苦钱,为什么这么所呢?因为你公司有可能出了一款成功的游戏后就无法继续推出更好的游戏而超过它,所以说游戏公司一般很难做大,ZA、暴雪、GLU,GameLoft、这样耳熟能详的大公司全世界能有几个?游戏与软件不一样,暴雪做出了“魔兽世界”这样精品的网络游戏,我相信其它公司也能做出来,并且他可以宣称我能做的比暴雪还牛,一切的一切,只是时间与金钱问题。如果有一天这款游戏做出来了,我相信肯定会有大量的玩家选择它,从而放弃“魔兽世界”。但是软件就不一样的,腾讯QQ大家都应该知道吧,我相信腾讯QQ的客户端与服务端,新浪,网易等等国内知名互联网公司都能很快的做出来,并且我依然相信它们可以比腾讯QQ更加绚丽,更加好看。可是这样做有什么意义呢?用户会因为它放弃QQ吗?这就是软件的魅力。个人认为QQ永远不会被同类产品而打败,如果有一天它倒下,只可能是被不同类产品而取代。这就好比为什么现在人都选择手机而放弃家里的座机电话一样,并不是座机电话没有用,而是因为手机已经普及,人们已经不需要座机电话了。
程序与策划的冲突
首先游戏公司的策划就和软件公司的产品人员的工作性质一样,我也不知道为什么要区分开。刚刚入行的程序员多少都会与策划人员有一些冲突,原因是策划人员总会天马行空的想一些程序需求给程序员寻找“新麻烦”,甚至最后有可能会发生口角。我现在想说的是不要埋怨策划人员给你寻找的“新麻烦”,这些“新麻烦”你如果实现了,对你的能力也是一个新的挑战。游戏或软件开发只要平台硬件条件允许,程序是无所不能的。策划人员也是为了公司项目着想,为了这款游戏可以吸引更多的玩家,为公司带来更多的效益。公司的效益得到了提高,自身的待遇各方面也会得到提高,这样何乐而不为呢? 但是如果策划人员如果在不了解平台特性时就凭自己的空想胡乱策划,这时候程序就需要站出来维权,举个例子,如果他的需求是“我要你把魔兽世界百分百移植到手机上”,TMD这不是搞笑呢么? 呵呵。游戏公司中策划的种类也比较繁多,比如:文案策划,数值策划,脚本策划等等,它们各司其职。我觉得程序与策划的关系应该是这样的,就好比盖房子一样程序提供砖头、水泥、颜料。策划人员拿到这些现成的资源,根据自己的想象去描绘出他要的游戏世界。
关于代码
很经典的一句话,保持你的代码简捷,保持你的代码愚蠢。代码不止是写给自己看的,漂亮的代码是让别人能看懂。程序中不要直接出现数字与字符串直接赋值,把它们写在配置文件或一个特殊的地方,标记上名称,在程序中调用对应的引用即可。进门要开门,出门要锁门,一定要学会严格控制内存,防止内存泄漏保证当前内存中一定是你需要的,否则一定要释放。养成良好的习惯。逻辑判断要严谨,写每一行代码多问自己一句为什么?如果别人看到我这行代码会怎么想?避免数组越界,空指针这种低级错误,往往出现这样的错误的几率越低越证明自己的能力有所提高,我现在已经基本看不到这个错误了,呵呵。 多和前辈级的程序员聊天,多看前辈写的代码,想一想他为什么要这么写?团队协作开发中最重要的就是互相帮助,不要轻易删掉同事写的代码,如果代码真的写的有问题最好和他说明一下,这是对人最基本的尊重。
关于薪水与生活
遥想当年我刚刚入行的时候在北京月收入紧紧500元,我清楚的记得当时的房租都是550块钱,在地下室中。还得问家人要钱才能生活,为了问家里人更少的要钱,我每天只吃一顿饭,我觉得在北京肯定有和我经历差不多的哥们。吃得苦中苦方为人上人,渐渐的通过我的努力我的薪水也得到的改善。吃水不忘挖井人,时至今日我每月都会给家里寄钱,我已经是成年人了,家人把我养大我永远都会赡养他们,还有我身边的师兄弟们,愿我们的友谊可以一直走下去。
这里我想说的是:
1.刚刚毕业的学生不要去抱怨生活,生活对于每个人都是公平的,每位成功人士的背后都有自己心酸的一面。
2.不要和同学或者同事比薪水,多多想想自己的理想,想想自己的职业发展路线。想办法提升自己的价值,而不是价格。和同学或同事之间比的应该是,我要比你的程序写得好,复用性强,最重要的是我要干你干不了的事。
3.不要仇富,因为富贵任何时候都是靠自己努力的换来的。如果是富二代或官二代,你应该去向他、她的父亲或母亲学习,因为那时候它们也是白手起家。
4.不要有虚荣心,任何时候都要低调,保持对学习的求知欲。世界非常大,牛人太多了,如果你觉得自己很牛,我相信肯帝还有比你更牛的人。
最后我希望全世界的程序员都能用心来照顾自己的身体,因为我们面对的职业比较特殊,每天几乎都要一直坐着10几个小时。身体是革命的本钱,我相信大家都知道这个道理,但是又有多少程序员在用心照顾自己的身体呢?MOMO已经下定决定,如果以后每天10点以前能回到家中,我就绕着鸟巢跑两圈出出汗,锻炼自己的身体。如果有愿意组队和我跑步的程序员欢迎加入。
- 本文固定链接: https://www.xuanyusong.com/archives/657
- 转载请注明: 雨松MOMO于 雨松MOMO程序研究院 发表


读了这篇文章,感触颇深,收获颇丰,永远支持大神
晚上跑步对身体不好
四个字,受益良多。
说实在的 我曾经想放弃程序员 做策划了 但是看了 雨松的微博又重新燃起了斗志
人生就要这样,有挫折有失败,有迷惘!不经历风雨,怎么见彩虹!博主积极乐观的心态,值得学习,问好博主!
有梦想的好青年,向你学习
打拼、打拼啊。。。。入行两个月了,如果明天不是世界末日,希望再过几年 我也能做到这些。。。
加油 蛤蛤。。
哥们很佩服啊!向你学习。。。
互相学习 呵呵
momo,我可以拜你为师吗?
蛤蛤 只要肯学习 大家都是一起的, 不在乎什么是师父
感动ing。
每个人的背后都有自己的故事 起点是如何我们不必在意,在意的是结局 英雄不问出身。。。加油
好小子 ,小马来支持了,很精彩的经历!!!向你学习…O_O
感动。向MOMO学习
嗯嗯,加油我们一起学习哈。
支持momo~~~~~~~~~~~~~~~~
加油加油~~~~~~~