什么才算是真正的编程能力?
怎么提高系统编程能力呢?土办法:多造轮子。就像学画画要画鸡蛋一样,不是这世界上没有人会画鸡蛋,但画鸡蛋能驯服手指,感受阴影线条和笔触。所以,自己多写点东西吧。写个编译器?渲染器?操作系统?web服务器?web浏览器?部件都一个个换成自己手写的,然后和已有的现成部件比一比,看看谁的性能好,谁的易用性好?好在哪儿?差在哪儿?为什么?
编程能力是一种解决问题的能力。如果问题没能被很好地解决,知道再多也没用。
编程能力是一种运用机器解决问题的能力。首先是要判断问题在什么程度上可被机器解决,比如理论计算机科学会告诉我们什么可做、什么理论上不可做、什么理论上可做实践上不可做。然后是让机器更好地理解问题,比如计算机都是(图灵-冯诺依曼模型)等价,但不同的问题可能会适用不同的编程语言。再后是让机器能更高效率地解决问题,比如同样的问题可能会有效率差别巨大的算法。
而学习力差的程序员呢?为了继续停留在旧技术的舒适区,他们往往会抵制新技术的推广,甚至百般阻挠。因为那会使他们过去的经验统统无效,只能和后来者站在同一起跑线上。抱死一个框架好几年,脱离了框架啥都干不了的程序员实在太多了。事实上,这样的人不能驾驭技术,反而是被技术给奴役了。
对于小白来讲,不要相信那些网上别人说,自学就能学好的话,也别相信别人现身说法告诉你,他或他认识的who who who自己在家看书多多就学会了,IT技术不是你想象的那么难,也不是你想的那么简单,如果你自己很容易看书几个月就学会了并且能找到相关的工作,那你想想,大学里还开什么计算机专业?市面上为什么还有这么多IT职业学校?
每个人都知道,提高编程能力的显著方法是写更多代码。然而,我保证能够提高编程能力的另一种方法却不是写代码。我会尽我所能说明这一点:
如果你想大幅提高自己的编程能力,你需要阅读别人的代码。
不管你以前是不是这样想的,现在你应该接受这个观点。如果你愿意尝试一下,那么你将会收获颇丰。
相信孩子在小学的妈们都知道,班里的牛娃都在玩数独,甚至还有专门的数独培训班。
数独是可以作为一项技能进行训练的,但是如果喜欢电子积木、迷宫、机器人等动手动脑游戏的小朋友们,可能并不喜欢玩儿数字,甚至每次做不了两题就会不耐烦。娃说这些太枯燥了,还是动手的事情好玩儿。
所谓的级别,只是你面对需求时的一种态度:能够完成、能够完美地完成、能够超出预期地完成。以追求完美的态度加以扎实的编程功力,那就是你的编程水平。
切记心浮气燥,级别够了,那级别里的东西自然就懂了。悟了就是悟了,没悟也没关系,静下心来,投入时间而已。
现代心理学上一直试图通过观察一个人能够在这个冰山上打多深的孔来分析一个人能够什么程度的掌握一种技能。 人们把一个人能够到达的能力描述成四个阶段。 这篇文章里,我将试图把这种分类应用的我们每天都会应用的技能上,它就是编程。
对可预测系统的理解:理解越深,预测能力越强,自己的智慧才越好发挥。这就是为什么学习软件编程最快的方式之一是“造轮子” -- 造轮子就是为了深刻理解轮子、预测轮子的行为。
哪些代码令你印象深刻?
第一次看到 280 Slides 的时候,令我印象深刻,随后我就了解到它是一个由开源 Cappuccino 项目框架开发的网站,我将它牢记于心,当我再次遇到一个印象深刻的 app 也使用 Cappuccino 框架时,我知道我可以从这个项目中学到很多。
态度像一扇门,这扇门在你的内心,只能你自己从内打开,今天讲了很多,但现在的你可能依然对练习不以为然,这就是态度,有句话说的好,态度决定一切,当你相信只有不断的练习才能成为大神时,你离大神已经不远!
程序本质是逻辑演绎的形式化表达,记载的是人类对这个世界的数字化理解。不能拆的轮子就像那一篇篇丢了曲谱的宋词一样,能读,却不能唱。
另外还有一点可以通过自身的学习来获取一大进步。
分享给超过5万的程序员朋友下载,这次我把所有资料重新梳理精简,免费分享给大家 。
究竟有哪些干货呢?先给你们一个目录: