当前位置:C++技术网 > 资讯 > 学习编程的过程中可能会走哪些弯路?

学习编程的过程中可能会走哪些弯路?

更新时间:2015-09-17 07:43:10浏览次数:1+次

回头看一年的学习编程的经历,最大的弯路就是怕走弯路、想不走弯路。

纠结该学什么语言、该研究哪个方向、该做项目还是啃算法,生怕一失足成千古恨,踏上一条不归路。

很久之后才发现,与其纠结选择,不如找个点坚持下去。好比爬山,你在山脚下纠结该从哪条路上去,而实际上,每一条都能通往山顶,每一条都不会是笔直平坦的。你怕错过另一条路的风景踟蹰不前,却不知道只要登上山顶就可以一览众山小。

如果一定要说个经验教诲,那就是尽可能多地写代码、读源码、读文档。

有两个词,一个叫做功不唐捐,一个叫做殊途同归。

学习过程中的弯路是不得不走的,但是学习方法上的弯路还是可以绕的。

得到经验和浪费时间终归是两回事吗。

我是个完完全全自学入门的人,目前还是有点经验可以分享给想自学编程的大家的。

1.大多数人学习编程最早的懊恼就是不明所以的“烫烫烫烫烫烫烫烫”,虽然基本教育的节奏都是从伟大的C语言开始,但是作为一个早早自学编程的人来 看,C语言作为入门语言是很容易打击人的(教材本身的质量也是一个因素),所以如果是自学入门的话,不妨学一学的入门容易规则简单的语言培养语感和基本素 养,例如PHP、VB这样的东西,可以很快做出一个可以看可以用的东西,是很有成就感的,有了自信就自然而然得会想深入的提升自己了。

2.实践是检 验真理的唯一标准。实践对于初学者而言非常重要,但是C语言课本上的实践大多是一些就事论事,针对知识的题目,面对一个控制台程序,其实做完了……过几天 也不会觉得这个有什么意思,所以我认为一定要尽可能的尝试去做一个可以用的东西。学PHP做个登陆页面呀~学VB仿个Win计算器呀~学Java做个扫 雷~总之做出能够对除你之外的人都能有一点点兴趣的东西,对自己是很鼓舞的。在这方面,C语言这种,对于初学者做图形界面比较不友好的语言……主要的问题 就是不会让你产生那种真正解决问题的成就感。

3.最开始的实践是一种拼凑,因为知识的不牢靠,但是需要解决的问题对自己又是如此的庞 杂,所以那个时候的代码都是以能解决问题为主,而不是以好的方法解决问题为主。现在回过头来看当年写过的论坛家族,论坛宠物中心,从外观上讲确实是当时一 流的,但是背后的代码着实惨不忍睹。不过对于初学的人而言,能够利用现有知识达成目标已经是竭尽全力了。那个时候的编程没有精雕细琢,就是为了实现而实 现,也不管有多少if套着if,甚至变量名我都能起成$if。不过我必须承认的是,没有那段经历,我可能不会如此的喜欢编程。当有人使用了你的成果,不管 是对他提出建议还是提出赞美,对于一个尚未破壳的菜鸟而言,都是很棒的感觉。说实话,作为初学者,敢写代码,就是个里程碑了。

4.历史和人的感觉是很像的,当你的代码写得多了的时候,你自然就会觉得写得不好看。照现在的话讲,那些代码一点都不优雅。作为一个逼格满满的人,完成任务已经不再 是一个追求,当Ctrl+C/V成了编程的必备步骤的时候,你自然而然的就会思考了:是不是可以不这样做?这是一个重要的过程,你会想要提升你代码的执行 效率,你会想减少查询数据库的次数,你会想用轻便的代码实现想要的功能……当你步入这个阶段的时候,恭喜,菜鸟终于入门了。

这是三个大坑,算法优化、数据库查询优化、代码复用。

你得心甘情愿跳进去,再慢慢往外爬。

我当时做了很多出格的事情,当 讲课、教科书都在用VC的时候,我执拗的使用VS2013,因为我觉得这个用户体验好,但是就一开始用的那几天我连一个HelloWorld都写不出来。在课设说明书还在按照Turbo C说明图形界面的时候,我却找了个能在VS下使用的仿造的图形库EasyX。其实人都是追求美的,老师也不喜欢你开个DOSBOX滚动翔一样的Turbo C给他演示。擅用和检索现有的工具和资源,是这个时期我最大的收获。

当然,这里也挖了一个大坑,用户体验。

5.在学校的学习过程是这样的:C -> C++ -> Java。

C++和C截然不同,作为一个拥有面向对象特性的语言,它带给我们很多新鲜的概念。尽管初次见面的时候我们彼此都如此羞涩,谁都看不懂谁。在学习C++ 的时候,其实我并没有提起多大的劲头,只是觉得STL很好很方便,在OJ上刷题的时候能比C省事不少。不过之后看到一本国外的关于物理引擎的书,便又是提 起了12分的兴趣看了看。那本书终归我是没有看完,不过只看一部分我便能感受到自己的肤浅——原来类是这么用的啊。

很久之后我才知道这是一个高级坑:设计模式。

6.之后数据结构的课程设计,按照套路是要用Java做UI的,但是Java的IDE在我的电脑上一直表现不佳,加上调试时候的种种不顺畅,使得我我对 Java做窗体程序好感不佳。于是我想起了初中的VB,随后又联想到了它的同门C#(求别问怎么联想的=。=),那种拖拽做界面的爽快感……经过我的推 广,班里最后只有一人用Java做UI,还有另外一个人用的MFC。这个其实是想说,我这个人比较懒,所以喜欢找更好的解决方案,存在就有存在的价值,短 短5天,所有人都可以用C#做出一个好看的界面,而Java搞得很麻烦又不好看。这不是在谈优劣或是投机取巧,而是在谈生产力、效率。我训练的人可以5天 上岗,做得比你训练一个学期的人还要好,那这就是价值。

7.其实一路走来,站的越高,自己就越容易被颠覆。

当PHP写代码觉得原始的时候,框架这样的东西就会跳在你眼前打脸。

当WinForm程序做起来感觉到代码混搭的怪异的时候,就发现其实还有个WPF。

当觉得Java臃肿性能堪忧的时候,高级的Web技术又会颠覆你对Java的偏见。

……

学习编程的人需要这样一个自我认知和自我提高的过程,老实说,我觉得这其实不算弯路,这可都是经验呀。这些所谓的弯路是你只要踏上这条路就必走不可的,就像是宜家的步道设计,人家设计好就是要你走遍全程。因为这是一个过程,学习过程上的弯路是宝贵的。

至于我之前所说的学习方法上的弯路,大多是指教材选择、训练方法上的弯路,这些弯路可以通过前辈的指导来避免,当然选择一个编程网站也可以少走很多弯路,一个编程网站背后有一批工作人员给你的编程之路出谟划策,我觉得这种弯路走上了,就是浪费时间。现在时间这么宝贵,我们都要讲效率的。当大家都说谭老的书不好的时候,就不要选这本书了。当大家都说某些习题没有用的时候,就不要去做了。学会选择,学会甄别,学会找到适合自己的方法,这才是最重要的吗。