毕业快两年,码农一枚,算不上一名标准的程序员,因为大多数编程都只会用,不知其为何这样实现,不知其完整架构。
之前一直做AS3,“混”得还行,积累了很多经验,能快速开发上层应用。但深入AVM、Flash Player运行原理,或渲染原理的积累几乎为零。刚转向做手机,cocos2d-x方向。在新手阶段,知道Lua的基本语法、table的特性和组织,cc2d-x基本显示对象原理,当前项目模式下模块编写方法。
已经呆了三周了,很想进入传统模块开发(特别是当大家都很忙,自己却不知道可以做些什么的时候),很着急,但导师刚才的一番话似乎点醒我,但具体怎么做我还是很茫然。
他说:他不希望我只是一个会写模块的程序员,他希望能接触这个领域完整的脉络,打好基础,最后成为能解决该领域内大多数问题(主程级别)的程序员,不要只把写模块作为目标,不要操之过急,要努力想想自己在这个领域究竟想获得什么?如果是他,他说他会花两个月时间什么代码也不写(夸张,一些验证性的demo肯定还是很有必要的),专注看代码,把这个领域有什么,为什么要这么设计等问题全都搞清楚,然后迅速进入开发。在我印象中,作为主程序,他确实是这么实践的,而且切换到新领域开发异常快。甚至举了例子:看了三周了,你了解手机应用程序怎么运行起来的吗?怎么从Java层调到C++层,再从C++调到Lua层的吗?怎么开始连接网络的?这些问题看似基础,但我都答不上来,就是基础问题没搞清楚。他不希望我只关注一两个方面,要多从架构的方面思考其基本原理。最后说了一句:你真的认为勤奋努力能实现一切吗?有没有觉得自己学习方法有问题?
之前一直做AS3,“混”得还行,积累了很多经验,能快速开发上层应用。但深入AVM、Flash Player运行原理,或渲染原理的积累几乎为零。刚转向做手机,cocos2d-x方向。在新手阶段,知道Lua的基本语法、table的特性和组织,cc2d-x基本显示对象原理,当前项目模式下模块编写方法。
已经呆了三周了,很想进入传统模块开发(特别是当大家都很忙,自己却不知道可以做些什么的时候),很着急,但导师刚才的一番话似乎点醒我,但具体怎么做我还是很茫然。
他说:他不希望我只是一个会写模块的程序员,他希望能接触这个领域完整的脉络,打好基础,最后成为能解决该领域内大多数问题(主程级别)的程序员,不要只把写模块作为目标,不要操之过急,要努力想想自己在这个领域究竟想获得什么?如果是他,他说他会花两个月时间什么代码也不写(夸张,一些验证性的demo肯定还是很有必要的),专注看代码,把这个领域有什么,为什么要这么设计等问题全都搞清楚,然后迅速进入开发。在我印象中,作为主程序,他确实是这么实践的,而且切换到新领域开发异常快。甚至举了例子:看了三周了,你了解手机应用程序怎么运行起来的吗?怎么从Java层调到C++层,再从C++调到Lua层的吗?怎么开始连接网络的?这些问题看似基础,但我都答不上来,就是基础问题没搞清楚。他不希望我只关注一两个方面,要多从架构的方面思考其基本原理。最后说了一句:你真的认为勤奋努力能实现一切吗?有没有觉得自己学习方法有问题?
是的,之后我突然产生了“我不会学习”想法。从哪里学习起,该学习哪些内容,我很茫然,但显然现在不该浪费时间,因为我已经浪费了三周了。短期、中期、长期该做什么,怎样制定合理的计划,怎么判断合理性,怎么辨别某个东西确定是我不知道的(而非我不知道我知不知道)等问题都困扰着我。接下来该学什么,显然我不该只是遵从导师的几个问题去探索,我需要从全局意义思考:如何学习一种开发框架。在此,询问知乎里的大神,跪求思路。
转自:http://www.zhihu.com/question/23008892/answer/24724927