文档介绍:什么是程序员的基本功? ( 润佳移动互联网孵化基地) 广义来说就比较多了,抛开数据结构、算法、编程思想、设计模式等不说,丰富的想象力, 缜密的逻辑思维、学习能力、恒心和毅力、沟通能力.... 太多了,这些都算是基本功。所谓基本功,就是说抽空都要练习的。就像一个学武之人一样,每天早上要跑步、扎马步, 也像一个京剧演员样,一大早就要吼几嗓子,我们程序员也得每天练习基本功。广义的基本功涉及到生活的方方面面,时时刻刻都能练习。这里着重强调下狭义的基本功: 数据结构,基本算法、编程思想和设计模式、至少精通一门语言等。程序员都知道程序= 数据结构+ 算法,可见数据结构和算方法对我我们程序员来说是何等重要。编程通俗一点说就是, 想个办法把一堆旧数据按照要求整理整理变成另一堆新数据。首先要想好的就是把旧数据放好, 你可以把计算机的存储设备想象成一个大的盒子。我们要想办法占用尽量小的空间( 少用内存), 把这些旧的数据放好。( 当然还要考虑整理这些数据的方便性,比方说移除掉,或者新增数据等。)放好了旧的数据,现在就要开动大脑,想出个好方法----- 如何操作才能使得整理的时间尽量的短( 少用 CPU )。编程其实就是这个目的, 所以我们程序员常常思考的问题就是这两个了: 1 、如何放置数据 2 、用什么方法处理速度快。一般来说,我们不需要太苛求占用尽量少的内存和 CPU 。毕竟现在的机器性能不是制约我们的主导因素, 现在制约我们的主导因素是,“用尽量少的时间把需求合理的完成”。可以说, 绝大部分企业对程序员的要求并不高,他们仅仅要求你按照需求在规定的时间做出来即可, 并不是非常关心你占用多少计算机资源, 硬盘不够,买, 内存不足,补。但是这个并不意味着我们可以肆无忌惮的滥用计算机资源。举个实际的例子,假如浏览一个网页,本来需要 1 秒的时间能够打开,结果由于程序员的失误或粗心,或者说基本功力不足,使得整个过程变成 2 秒,你可能认为这个无所谓,不就是多了一秒么,应该没什么大不了的。如果你真这么想就大错特错了。就拿个一般的网站举例, 每天 1W PV , 那么浪费的时间就是每天 分钟,1 年就浪费 分钟。约等于 42 个昼夜。你说这 42 个昼夜的时间干什么不好, 非要浪费在计算机上,而且这个对计算机的损耗,以及浪费的电能等都还没有计算。可能有人说, 对于这种普通的站点, 一年 42 个昼夜也算不了什么, 但是请注意我的例子只是说系统的一个地方,假如一个系统有不止一个这样的地方那就更夸张了。对于大型的互联网网站, 这个就更夸张了, 类似百度和 google 这样的企业, 一天都有上亿的 PV 。就按 1 亿计算。大约是 3年2月 天! 对于我们做开源程序的程序员来说,这个尤其值得关注。要知道并不是每个 HDWiki 系统都是可以随意使用计算机资源的。大部分空间对内存和存储空间都有很高的要求, 你必须在一定的范围内实现你的程序。而且一个地方出现疏漏, 影响的是千千万万个网站, 而不是某一个站点。这个就对我们的开源技术人员提出了更高的要求,我们在编写程序的过程中,必须更加严格和认真,我们应该做到的是“用尽量少的时间把需求完美的完成”! 重视解决问题的思路和事物的本质重视思想、重视问题的本质, 不要浮在表面看待问题。例如我面试人的时候常