独家秘方学技术

来源:互联网 发布:转录组数据分析流程 编辑:程序博客网 时间:2024/04/27 21:38

一个秘方是“写博客”,注意这里不是“看博客”,也不是“转载博客”而是“亲自写博客”。哪样东西你觉得你比较懂了,那么你就写成博客。当你真正去写的时候,你会发现,其实还有很多不懂或者不清楚的地方,这样就会促使你又去学习研究;当你的博客发表后,其他人除了能够从你的博客中学到东西外,也能够帮你发现一些问题或者错误,这样你就更进一步的掌握了;

另外一个秘方就是“链式学习”。形象点说,就是你抓住了一个链条的一个链,然后慢慢慢慢把所有的链都拉出来。举一个很简单的例子:socket sever编程。很多人在编程的时候,都是去搜索引擎搜索一下“socket server样例”,然后对照样例很快就写完功能了。然后呢。。。。。。很多人没有然后了,完成任务就不管了。其实这样做就错过了一次提升自己的好机会。

“链式学习”则不一样,它是这样做的:我通过搜索引擎搜索到样例完成工作后,我会问自己很多问题:样例中的api每个参数都是什么含义,有哪些注意事项,还有其它API么?为了解决这些问题,我就可能去找本书看,某个编程语言的socket编程;看完以后我知道socket编程的全貌和一些注意事项,而这些是通过搜索引擎搜索的样例中没有的;知道socket编程的全貌后,我又会问自己:操作系统是怎么做的呢? 那我又会去看《UNIX网络编程》,看完后我就对操作系统层面的又掌握更多了;看完《UNIX网络编程》后,我又知道socket是和tcp/ip相关的,那我又会去看《TCP/IP协议详解》。。。。。。

这样去做就是一条学习链: socket server编程 -> socket 编程 -> UNIX网络编程 -> TCP/IP协议,后面还可以继续不断拓展下去。如此不断的拓展和深入,一个很小的契机就能初始你学到很多东西,而这些东西在以后的工作中某些时刻就派上用场了。

我之前在华为是在Windosw平台上用MFC开发,后来到了UC转为Linux平台开发,用这种方法,大约用了2年就熟练掌握了Linux平台相关的开发技术,包括Linux、MySQL、C++、Java、PHP等

第三个秘方就是“闭环学习”。“链式学习”适合于一组相关联的知识或者技能的学习,而“闭环学习”更适合业务、相互配合的知识和技能的学习。由于软件开发是需要多个团队分工合作的,所以绝大部分人都只负责整个系统或者全流程中的一环,这样导致很多人以为只需要将自己负责部分精通就可以了。其实这样不利于个人的发展,一个原因是自己负责的一般都比较窄,可学习和提升的空间可能不多,另外一个原因是很难设计整体上优秀的方案。

而“闭环学习”则不一样,它是这样做的:了解整个功能或者业务的全流程实现,涉及了哪些模块和系统,每个模块和系统主要负责什么功能,涉及到什么技术,性能怎样,有什么注意点。举一个我做个的HTTP的业务样例:从用户点击一个url开始,经过了 浏览器 -> 网络 -> CDN -> Nginx -> PHP -> MySQL -> PHP -> Nginx -> 网络 -> 浏览器,最后呈现在用户面前。我开发的时候只是用PHP开发,但并不只局限于PHP本身,闭环学习就要求全流程中的每个环节都要去了解和熟悉,这样你就可以学到了“浏览器、Nginx、CDN、MySQL”等很多知识。

有的朋友可能会问:这样做有什么用呢?其实用处非常大,一个是当出现问题的时候,有了闭环学习掌握的知识和技能,你就知道哪些地方可能有问题,应该如何处理;另外一个用处是,当你考虑设计方案的时候,就不局限于PHP本身了,也许某个功能Nginx或者CDN或者前端能做的更好,用PHP实现反而很蹩脚。

0 0