[写给学编程的新手]
本文为作者原创,转载请注明出处:http://www.jianshu.com/p/a6fd58a9fb4b
今天公司开公开交流会,本人被邀请做下对开发工作的能力提升方法分享,本着开放分享见解,纯粹是交流思想的目的,还请有异见的朋友指正.
做技术开发是为提供更好的产品服务的,技术都不能脱离产品场景而存在.只要你保持改进,你就能在日常的点点滴滴获得提升,一段时间后,你自己都感觉原来你已经走了这么远.分享交谈可以组织自己的思维和语言,让参与者可以跟你探讨问题的解决,也是别人了解你的方式,何乐而不为.如何去提问,这在网络上是有一篇经典的论文来指导软件开发者应该怎么提出问题,具体可以搜索.方法都是自己去找或者通过交流或者平时的心得来获取的,别人告诉你并不等于你就懂了.好高骛远或不劳而获的心态更是不适合做技术开发,知识就是靠积累.
下面举出对于开发人员能力提升的几个因素:(下面的各个专题在知乎网上都能找到答案,可以取有共鸣的答案作为自己学习的目标就行)
[学习方法]
关注点:资源,专注,独立思考,与人交谈,勤于总结,注重基础.资源有:
1.书籍,是完整知识图谱的体现,任何学习方式都没有书籍完整和直接,不屑于下载电子书,我不会看.书籍要看经典,书籍要分等级,自己是初级看初级入门书,高级看高级提升书.
2.网站论坛,是答疑的好地方,CSDN是全国的开发者支持的论坛,你提问提得好,自然有人答,新手在新手区提问,提问前看有没有类似的问题答案.
3.博客,关注较少的博客,查看并学习他所有的文章,这是专题学习的最佳实践.<自己去论坛找>
4.代码,你懂的再多,缺少代码量,一切都是徒劳,一切也只是个印象.github是个全世界共享的代码库,你可以fork开源项目到自己本地练习开发.
5.一些比较经典网站:
知乎[知识问答类网站]
CSDN[技术博客和技术论坛类综合网站]
ibm developer[技术专题论文类网站]
你所关注的技术的官网[精准的工具查询类网站]
同类型的网站只需要关注一个就行,别关注太多,精力有限,互联网少即是多.
6.专注:
如果你很菜,请下班后,除去睡觉,业余时间用来专注你当前的问题,并总结成博客输出.
7.独立思考:
做任何事情首先都需要独立思考,自己先debug一遍,再查官方文档,再google,最后再问同事.
8.与人交谈:
当你不知道或者纠结于二选一的时候,把你的疑虑说出来,这里请注意,别人没有回答你问题的义务和责任,别人可以选择不回答你很low的问题,回答了你记得说感谢.
[解决问题的方法]
1.解决之前,先得有思路,没思路也就是没解决办法.这里我说下编程活动其实就是一个Question and Answer的活动,平时要积累正确的知识,包括不限于:
2.各个知识点的定义学习
3.专业经典程序设计书籍
4.多看,多编写,多模仿.
5.先整体结构搞清楚,流程弄清楚,再局部细节.
[热爱技术,热爱产品,主动是钥匙]
1.你不爱技术,不乐意做产品,不喜欢挑战,就不适合做技术.主动是钥匙,敢于承担任务,做项目,越紧急的项目,你越是注意力高度集中,你的收获也会越大,项目之后做个总结归纳,可以起到事半功倍的效果,做开发也会越来越轻松,技术也会越来越得心应手,工作也就不止于当前的开发任务,越来越关注于更高级的设计工作.
[做技术开发常见的思维活动是什么?]
1.问问题,有一篇经典文章告诉你怎么提问,提问的智慧.
2.画图,流程图,原型图,类图,思维导图等更直观的思维体现
[如何去学习技术知识?最快的提升方式?]
第一步,先积累正确而完整的知识结构体系,书籍是最有效的方式
第二步,写博客,把自己的笔记在网络上发布,注意,一定是经过思考的高质量(至少检查2遍)博客文章.
第三步,做项目,不管是公司项目还是业余项目,只要有项目做.不要轻易拒绝帮助别人.
第四步,选择目标,确定范围,前端开发需要精通html/css/javascript,后端开发需要精通javaee/oracle.移动端android开发需要掌握java/android.当然,你如果想全栈开发,那是需要相当大的勇气的,工具不在多.
推荐书籍:
<程序员修炼之道 从小工到专家>
<第一行代码-android入门>
<android编程权威指南-android提升>
<android开发精要-android提升>
<effective Java-Java提升>
<core Java -Java基础>