对于程序员来说,编程意味着什么?

有时候同学们把程序员看的太神,其实他们并比大家在编程上强出多少。只是他们工作时间长,一部分经验上的差距确实是有的。但要找问题,找错误,他们也只能依靠“调试”来解决,没有其他办法。

如果认真的讲,初级开发者和一个优秀的开发者之间的唯一差距就在于优秀的开发者会利用各种工具分析解决问题,而现在大多数的同学还没有具备这个能力。可。。。这恰恰是编程最重要的能力,对是“最”重要,没有之一。

我记得我在上高中的时候,那时候Web刚刚兴起,QQ空间很流行。如果你想让你的QQ空变的好看,那么在当时有两种选择:

1.购买黄钻使用腾讯的模板。

2.自己去写一些脚本通过QQ空间的模块加载来实现装饰空间。

所以我当时就对HTML和JS特别的有兴趣。可当时网上的资源并不丰富,教程极少,知识非常的分散,更不要说有现在这样成套的付费的教程给你学习。往往要学习一个知识点,你只能在网上去搜集一些零散的资料,再通过自己的思考来学习。这个学习过程,毫无疑问会遇到无数的问题。

但遗憾的是,你没有人求助。我也曾尝试着在CSDN等社区发帖,但说实话这个等待回帖和回帖的质量实在是让你失望透顶。渐渐的,我养成了自己独立思考独立解决问题的习惯,这是一种无奈,但这种习惯所带来的解决问题的能力:真的是,受益终身。

再回顾这几年的编程经历,认真的讲,我没有问过其他人什么问题。有时候不是别人不告诉你,而是我觉得编程者有时候要有一种霸气,你会的,我也能通过自己的研究来学会。这样的习惯一旦养成了,你会发现自己解决问题研究方案的成就感,是别人告诉你所不能比拟的。我追求的就是解决问题后的那种成就感,否则编程有什么乐趣呢?

面向对象重要吗?基础语法重要吗?编程思维重要吗?重要,但远不及培养自己分析和解决问题的能力更加重要。

有些同学说,我不知道怎么培养这种能力。这个能力的培养说难也难,说简单也简单,但无外乎2点:

掌握必要的调试工具

憋着,静下心来。

第一点就不解释了,调试是必须要掌握的。关于第二点,我统计了下,提问区里90%的问题是代码疏忽了,没有按照代码规范里的来写;9%是语法错误;剩下的1%才是真正的问题。

所以,只要你仔细,认真,问题不可能解决不了。写代码的每一步都要非常清晰,我从来不跳代码,每一步的运行结果都会展示出来。即使真的有问题,那也是深层次的BUG,不可能让代码报错或者运行不起来。如果有问题,我会第一时间修正,并通知大家。

但我看到很多问题,我其实挺着急的,着急的不是我无法回答,而是着急很多同学没有找到入门编程的正确路径。我从来不把会某种语言定义成“会编程”,只有你会解决问题,学会分析问题,才算是入门编程。

别人帮你解决的问题,永远没有自己解决带来的收益高。你解决了这个问题,但丢失的却是一次锻炼自己思维能力机会。

学习一门语言是暂时的,学会一项技术也不是永久的,当年dephi的陨落,C#的崛起就是很好的证明(有兴趣的同学可以看一下《Borland传奇》,看看当年Borland是多么牛X的一家公司)。这个时代技术更迭的迅猛,早已是人尽皆知,你永远有学不完的知识。

那么对于编程,什么是永恒?我的答案依然是 解决问题和分析问题的能力。

这种能力甚至可以影响到你对于人生的思考和选择,你说,这个能力重不重要?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,523评论 25 708
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,221评论 6 244
  • 今天不是来撒狗粮,是我的批判大会。 出书训练营说:写作是一种修行,透过不停的写,把自己写明白。 越写越清晰。 是时...
    楚大做自己看未来阅读 533评论 0 1
  • 准备材料: 西红柿两个 鸡蛋两个 面条适量 洋葱半个 苦菊碎等调味料 做法: ☞西红柿切丁,留出一小部分,剩下的料...
    柃柃森阅读 536评论 4 1
  • 明阳与光烈国 明阳是处在中土之东的国度,建立者是烈朝的末代太子莫度,他在流亡到中土之东,习惯上被称为“东国”的土地...
    萧寒浅阅读 308评论 0 3