##构建自由通行的IOS开发者地图 IOS开发人员知识技能归档固化管理

最近辞职在家,无意之酝酿,多有开发感触,故想做道法术器四文《(道)良性成瘾开发习惯养成策略》《(法)平衡出最优的team生产力组合》《(术)产品、交互设计理念断想》《(器)构建自由通行的IOS开发者地图》,此为其一,器。

作为一只刚出道的程序猿,我常常受阻在新项目启动开发的初期。主要原因在于,不了解需要用到哪种技术解决,如何用其解决。问题的实质原因在于自己对“整体的技术脉络图”认识不清晰、不全面。

如果幸运,是在一个有好心大牛的团队里面,或许这个大牛就会用他大脑中长期潜移默化生成地“开发者技术地图”来点拨你,并且恰到好处的指点对位,这样就给程序猿有胜读十年书的一翻超然感受。

但是多数时候我们并不容易遇到这么好的引路人。既然如此,换一种思路。究其实质,我们既然可以抓住 “开发者地图”这个关键字, 为何不运用程序猿相对强大的自主意识去驱动这张“地图”快速有效地建立起来呢。

一般情况下,进行开发工作个三年五载的这张“地图”是会意想不到地在大脑中扎根存在的,也就是现在企业很看中的硬性技能经验的一种表现。而现在我讨论的就不是一般情况下缓慢的经验积累方式,我讨论的是运用高效学习探索思维,把“传统非量化的经验”转化为“开发者地图”这一实体,然后再拓展巩固这张可以被量化的“开发者地图”。我暂且称这一转化为“隐形经验转化为显性知识组织形式”。

如果有人疑惑,我为何要做这一番功夫。那么估计你还没有下意识到这是一种很高明的提升能力,提升经验的手段,可以告诉你的就是,在实践中可以有意识地通过建立、拓展、巩固、回温地方式运用这张“开发者地图”,它可以非常有效地提升你在同样时间量的经验积累程度。简单比喻,就是可以让你一年的经验值比得过人家三年的经验值。这是很可怕的比喻,但这是毫不夸张的说法。

针对不同的技术方向,“开发者地图”也分种类分层次,但是其“根地图”都必须是一样的,都基于“自然科学,工科科学的根地图”。所以“开发者地图”也可以做一个层次包含关系,由于我在此介绍“IOS开发者地图”,所以我下面绘制出“IOS开发者地图”如何从“根地图”派生出来。 “自然科学,工科科学根地图”==>“软件工程系统地图”==>“IOS开发者地图”

rootMap

下面,进入关键的操作流程,如何进行使用这张“IOS开发者地图”才能够让自己受用。

一言以蔽之,在实践中有规划地以建立、拓展、巩固、回温地方式运用这张“IOS开发者地图”。

首先,针对“建立”。如果现在让你在25分钟内快速建立一张“IOS开发者地图”,你将会采取哪种途径和方法来进行收集、整理、组织、建立?这点你可稍后去进行一个主题思考。在这里我告诉你我的方法:

  1. 10分钟,收集材料==> 最佳途径是询问IOS前辈,考虑出具有高价值含量的提问,如“XX前辈,能不能抽5分钟给我介绍一下IOS开发所需要的一些基础东西?和相关开发资源获取的方法?比如开发环境,开发语言,基础开发书籍,还有有哪些较好的论坛资源等等这些”。如果身边没有这种前辈,那么只有在搜索引擎中发掘出回答你上一个问题所需要的答案。

  2. 10分钟,整理、组织材料==>整理组织材料其实也是一门学问,所以大学才有了图书馆管理员的专业。有兴趣可以去看看最专业的材料整理思路应该是怎么样的。在这里我就用普通的整理方式做为例举,首先将一堆材料进行分类,同时保证每一类中的都有优质材料,否则迅速返回再收集环节。材料种类可分为:

  • 介绍开发工具Xcode的;
  • 介绍Obj-C语言的;
  • 介绍SDK(cocoa)的;
  • 介绍开发常用技巧的;
  • 介绍高级编程开发的(数据库编程,网络编程,多媒体编程);
  1. 5分钟,建立Developer Map==>既然我们称之为“IOS开发者地图”,那么自然这张地图必须是可视的。而采用哪种数据信息可视形式呢?采用哪种可视形式我们必须要考虑到,须方便结构调整,须方便增删。手绘方式不便频繁更新,排除。viso 或者 omnigraffle的结构图形排列方式太过费时,排除。我要推荐的就是”思维导图MindeNode“,最轻松做到”方便结构调整,方便增删节点“。 下图就是粗糙建立好的”IOS开发者地图“;

rawMap

然后,针对”拓展“。拓展应该在什么时候进行的呢。一般情况下,是用你的闲余时间来为你的这张”IOS开发者地图“进行添枝加叶。也有可能是在项目紧张进行过程中迅速的进行更新。为map添枝加叶,具体思路如何因人而异。我比较推荐的做法是,每天抽15分钟时间抓取博客园、CSDN或者cocoachina上关于IOS的技术文章,或者专门抓取某位IOS开发牛人的博客。相信我你只需要坚持十来次,那么你的”IOS开发者地图“肯定达到中等茂盛树的水平。到了这个程度,或许你已经有较强的自我感觉良好了。到了这个时候,你得有个意识你得回头再深究一下,每一个第二层节点结构位置是否得当(根节点”IOS开发者地图“为第一层节点),因为只有充分理清这些开发知识的相互关系和内在联系才能够做到”了然“。 下图是经过我优化结构后的”IOS开发者地图“;

optionMap

再然后,针对”巩固“。巩固应该在什么时候进行呢。通常情况下,你在项目中需要用到什么技术可以到这张”IOS开发者地图“去查询。不过既然我们的目标是要将这张map融入我们的大脑经验细胞中去,以达到经验积累速度优于他人的速度。那么我们就必须进行巩固。至于何时进行巩固,就看个人习惯了。当然我所推崇的方式就需要满足一些客观规律,比如”艾宾浩斯记忆曲线“,”碎片化的记忆纸片“等等。辅助的工具可以用移动app,mindnode或者thinkspace,或者截成图片后存于evernote。 下图是我正在使用的一种良性巩固流程循环,或许大家可以借鉴;

refrenceMap

最后,针对“回温”。其实这个回温也可以称之为进行多次“巩固”达到的状态。但是关键在这里“回温”必须要有一个要素“升华”,巩固的目标是识记,回温的目标是升华理解。对于每一次的回温,应该是在一种哲学自然式思维状态下面。实际的表现做法可以这么做,对于“回温”的每一个技术机制,都能够用抽象的语言来概括出其实质思想。 下图举例出我如何来以抽象的思考来升华对某一技术机制;

demoMap

写到这里,估计不少朋友都有所领会这”IOS开发者地图“的妙处了。这实质是将”隐性的经验知识“转化为”显性的结构知识树“,然后主动地去操作这张结构树,在边把这张developer map变得茂盛的同时,不断地进行反馈到大脑的经验细胞,从而以更强有力的途径提升了存在大脑中不好量化的经验积累。

###相关下载

原版思维导图 http://www.dwz.cn/filemindnode 导出的PDF http://www.dwz.cn/filepdf