对于编程学习,什么才是最重要的?值得深思~(转)

最近看了一篇文章,深深触动了我,所以转载过来进行保存。

对于编程来说什么最重要,每个人答案也许都不同,这个答案也不可能是唯一的。但我想,既然是“最”重要,那必然要排个先后或者主次。

我经常看到一些文章,在谈论一个问题时会给出一大堆解决方案。每一个解决方案或者是模糊不清楚的,或者是让人不知道从何入手的。给出太多无法具体操作的、看似正确却无法实施的方案这无异于流氓。

我看过一篇文章谈如何学习编程,文章给出的答案是:

▶重视基础

▶注意细节

▶培养编程兴趣

▶多写代码

这建议其实像是在跟你指路,但是不告诉你怎么走一样。就如同你问人家如何能够画好画,答曰:多练。太让人痒了,虽说的确实没错。

▓这些年我喝过各种编程鸡汤,但其中唯有一剂甚是美味,屡试不爽,坚持服用有奇效。

我10年前大学毕业。毕业后在一家不大不小的软件公司里某了一份编程的工作。刚上班那会儿,每当遇到技术的问题,我很自然的会去求助公司里的老员工,指望别人快速告诉我答案。

有些同事挺好的,你问他问题,他会拿着代码给你调试;有些同事很不耐烦,告诉你一个大致的思路,就不再理你了。随后我逐渐发现,别人能帮你解决的,我自己都可以通过调试来解决;大方向不清楚可以用搜索引擎,逐步排查信息。难题肯定是有的,但是求助于人并不是一个好的习惯。

坚持自己debug代码,搜索资料、分析资料才是初学者最应该养成和坚持的习惯

▓对于开发者来说,通过调试和分析培养自己解决问题的能力,是最为重要的事情,没有之一。

一个程序员能坚持不求人,自己解决问题,能做到这一点,他的未来不会太差。

当我们的代码报错时,我们急于求人,是一个非常不好的习惯。如果是方向或者方案性的问题,他人还有可能给我们指出一条明路,但对于代码的报错,很多时候,你们眼中的高手也是无能为力的。因为即使再牛x的人,很多错误他也只能调试,既然他都要调试才能解决,为什么你自己不能调试呢?

很多时候,我们自认为自己是初学者,所以潜意识里认为求助他人是应该的。其实这是借口,或者说你潜意识里不够勇敢,不够自信,不相信自己能解决问题。但你殊不知道,你每求助一次他人,你自己就浪费了一次学习和深入学习知识的机会;也浪费了一次培养自己编程思维的机会。

每个人都是从初学者开始的,我们编程不是造火箭大炮,编程也不是什么高科技,你没有理由因为是初学者就不去自我解决问题,何况我已经告诉你了方法:调试,断点调试,你的代码出了错误,那就一定是你的代码写错了。

我最近统计了下提问区的问题,“undefined、canot import xxx module、None”等关键字在问题中出现的频率极其之高。而这些关键字的出现说明这个问题本身就是代码写错了,调试就能解决。提出这样的问题,无异于是说,我不想调试,老师你帮我调试吧。

我没有你的代码,我真的调试不了。每次我看到 贴出来的大段代码,眼睛都看疼了,找到的错误99%~都是单词拼写错误、少了括号、多了逗号。

我做了4门课,回答了5000多个问题,里面真正有价值的问题,我实话实说,不到1%。这个比例是何其的可怕。

我觉得做课程,其实是在做服务,所以只要你提出来了,合不合适方不方便我都会花几分钟时间帮你看看。但我要说的是,如果你抱有我遇到了问题,老师就有义务帮我解决,这话我不想辩论,但这种思维是真的害了你。

你的编程之路还很长,以后你还会遇到很多问题,不是每个问题都有人帮你解决。你也不要认为,我现在是初学者,基础很弱所以求助他人是可以的;等我基础好了我就能自己解决了。

编程在不同的阶段会有不同的问题,而这些问题和你是不是初学者、是否基础弱都没有关系。你今天遇到的问题,等你成为大神后依然会遇到各种各样的问题(当然,如果你现在不养成自我解决问题的能力,我认为你成为大神的可能性可能和人类发现外星人一样低)。每个开发者在学习一个新的领域的时候,他都是“初学者”。所以这种“初学者”的特权是不存在的。

▓自己调试代码还对我们培养编程思维有很大的好处。

很多知识只看书或者看视频是没有太大效果的,编程本身就是一个在 发现错误—调试错误—解决错误—获取经验 这样一个永无止境的循环中螺旋上升的能力。一个人编程十年遇到的bug何止千万,正是在解决这些异常纷繁错误的过程中,我们的编程能力和思维逻辑才能得到提高。

万事都是说起来容易做起来难,也许你看完这篇文章后也会尝试自己去调试解决问题,但很可能解决不了。怎么办?没有办法,解决不了也要自己调试解决。

请把自己想象成鲁滨逊,你在一个无人的荒岛上,没有人求助,没有人帮你,一切只能靠你自己。鲁滨逊在岛上种植大麦和稻子,自制木臼、木杵、筛子,加工面粉,烘出了粗糙的面包。他捕捉并驯养野山羊,让其繁殖。他还在荒岛的另一端建了一个“乡间别墅”和一个养殖场。这简直是世外桃源。

▓如果你也想拥有一个世外桃源,拥有自己独立的精神世界,那么请从“调试"做起。

你可能感兴趣的:(对于编程学习,什么才是最重要的?值得深思~(转))