一、学会对问题描述和定义
程序员碰到问题是如何解决的?
- Google, BAIDU寻找解决方案
如果你有用这种方式解决过问题,会发现搜索到的内容,大都是别人写的文章(博客),是之前其他程序员解决类似问题后,分享出来的经验。这时可能给你一个解决问题的思路。因为问题、开发环境、软件环境都有不同,基本上不可能一搜出来,按图索骥,就能正确地完成,但是思路和方法已经有了。
所以正确的方式是你能快速成长,自然会进到比较牛的圈子,然后接触到更多的资讯和方法,成长和进步都会加速。
- 项目组同事之间讨论解决
- 向你的BOSS寻求帮助解决
他一般会让你用邮件把问题描述清楚。 - 提交到stack overflow这个网站寻求帮助,网址是:http://stackoverflow.com/
Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题。
- 论坛,QQ群,微信群提问讨论
每个人都想进到技术牛人的圈子,遇到问题就能请教,一问问题就有答案。真实的情况,是你能加入的圈子、群,往往就是代表了你目前的水平,你会的大家都会,你不会的大家也不会,不能帮上你。我遇见过一个IT大牛的Oracle群,入群是需要介绍引荐的。 - 把问题先记下来,写成文章发到网上,“存疑”
有时其他人看到,也会提出思路。
学会描述和定义问题,也是学习编程开发中逐渐培养的能力,刚开始学习的同学,往往不能描述问题所在,只会说项目中出现了问题,不知道怎么解决,还往往说是“怪问题”,扔给你一大段代码。这些都是对问题没有理清的表现。
不存在描述不清的问题,不存在奇怪的问题。计算机世界的就是明确问题,不存在“二义性”。只能说明你的归结表达能力需要提升。你看看stackoverflow问程序代码中的问题,也有很多人不会问。
学会描述问题,还需要有把问题抽像出来的能力,从具体业务逻辑里把问题抽出来。一是这样问题会更清楚,二是有些业务还是公司保密的内容。
另外,针对菜鸟在学习编程的问题网上很少,一是这些问题大多不是问题(或不值得问的问题),如拼写的问题,本身编译不通过,这时需要你养成一个良好的编程习惯。
二、花更长的时间去思考
养成记录学习中问题的另一个好处,就是可以花更长时间去思考。
刚开始学习编程的同学,一个典型的特点,就是一遇到问题,就恨不得马上抓到老师来问。这种心情可以理解。
比较好的方式是,慢慢学习调试(Debug),学习把问题先描述清楚。在这个过程中,可能你的问题已经解决或者有解决思路。
Easy come, easy go. 如果你一遇到问题,老师就你一个答案,这样学习,你的能力也不会得到提升,尤其是3~4个月的时间。
山重水复,峰回路转,长时间思考,问题得以解决,这种快感和一问老师就得到答案是不能比拟的。
三、对初学者而言,记录问题,是一个很好的成长记录
如果你把在学习过程中的问题都记录下来,并且记录下来是如何解决的,就像一个升级打怪的过程,回过头来看,也是一份很好的成长记录。
从0到1,从不会到会的过程,你经历了哪些问题,有哪些关键点,这些对所有初学者来说,也是一份宝贵的经验。你搜索一下BAIDU,“自学编程”,“编程自学” 有很多文章都是写自己从0开始学习编程的经验之谈。
知乎上《自学编程的人,都是怎么找到第一份软件开发工作的?》,也有大量的人分享自己的经验。
还有在培训学习的同学在CSDN、简书上记录分享学习的过程。也成为大量想学习、或者想培训的同学最好的借鉴。
对于一个老师,一个机构来说,大量收集整理分析学习中的问题(哪怕是刚开始比较低级问题),数据多了大了,就会形成大数据,人工智能,辅助学习系统。