根据人类的学习与记忆过程来高效学习训练你的神经网络
获得知识的过程——学习——本质上是个体力活(尽管是有一定方法的体力活),这个体力活大致分为两步:
将外界(书本上的)知识转化为外显记忆。
通过不断练习,将外显记忆转化为内隐记忆。
李敖:换句话说,我这本书看完之后,被我大卸八块,五马分尸。可是被我勾住了,这些资料我不凭记忆来记它,我凭用细部的很耐心的功夫把它勾紧,放在资料夹子里。 我的记忆力只要记这些标题就好了。标题是按照我的习惯来分,基本上都翻译成英文字,用英文字母排出来,偶尔也有些中文的。
计算机鼻祖 Donald Knuth 的传奇 学习计算机不能不知道的一个人 面试常见问题的经典回答 让你面试来得更从容 软件工程师需要了解的10个概念 让你设计出优秀的软件产品 1. 界面(Interfaces) 2. 惯例与模板 (Conventions and Templates) 3. 分层 (Layering) 4. 算法的复杂性 (Algorithmic Complexity) 5. 散列法(Hashing) 6. 缓存(Caching) 7. 并发 (Concurrency) 8. 云计算 (Cloud Computing) 9. 安全 (Security) 10. 关系数据库 (Relational Databases) 根基决定一个程序员会不会被淘汰程序员是一碗青春饭吗?一个人如果根基扎实,他就更容易学习新的事物新的知识,年轻和精力相对于扎实牢靠的根基是微不足道的,对于别人是一座山的障碍,对于他也许就是一张纸的隔 阂,这样的人是不会面临着被超越被淘汰的危机的,青春饭的论调对他完全不适用;而一个人如果根基不牢,只是靠精力和年龄勉强立足,每次新事物新知识出现都 在和年轻人拼体力拼精力,那么他迟早将被淘汰,优胜劣汰的社会就是这样残酷无情,但很公平 。
什么是程序员的根基面向对象的思想。MVC,分层架构,按接口编程,依赖注入,OR Mapping,面向方面,SOA等都是OO的发展,不从根本上领会它,程序员就难以把握程序发展进化的趋势,永远停留在老窠臼中无法自拔,自我提高升华进化当然更是一句空话。
数据结构。程序的核心目的是收集,整理和展示数据,而数据的核心就是数据结构,它的重要性不言而喻。线性表、栈/队列、串、多维数组、广义表、树、图这些数据结构你都需要认真掌握,掌握的程度越深,日后学习的阻力就越小,相对于他人将更有优势。
算法。如果缺乏好的算法,程序架构得再完美数据再贴切都无济于事,犹如一台法拉利却用牛来拉一样。迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法都是你需要掌握的,不要以为这很难,读透一本算法导论就足够了。
基础API。只有思想,数据结构和算法只是一条腿,要健步如飞还得两条腿走路。程序员的另一条腿就是基础API,你需要认真掌握TCP/IP协议详 解,Socket通信,线程,文件读写等每种语言和技术都需要的基础知识,一个新事务即使再绚烂夺目也是利用这些基石搭建而成的,如果你彻底了解了它们将 永处不败的境地,甚至觉得新技术也不过如此。
如何打好根基多学。从项目中学,从书本中学,从别人哪里学,从失败中学习,掌握基础API就是需要多学习,如果有已有的知识总结可以起到事半功倍的效果。
多想。学习OO和算法都需要理解,光是死记硬背毫无用处,子曰“学而不思则罔”,OO和算法的学习都需要一个理解消化的过程,只有彻底理解了,你才真正掌握了它们。
多练。经过代码的历练,程序员才能百炼成钢,成功的项目能告诉你什么是正确的,失败的项目会暗示它为什么会失败,下次你就能更进退有据。更重要的一 点是,不做项目,不做多个项目,不做大项目,程序员对“度”的把握总是缺乏经验,不是过就是不及。真正亲手手写过10-20万行代码的是成为一个成熟程序 员的必要条件(但不是充分条件)。
多见。眼光狭窄,目光短浅,固步自封只能造就一只井底之蛙,你的眼光必须超越自己所在的环境才能取得真正的进步,现在有许多开源社区和软件都是你应该涉足的地方,和什么样的人在一起你自然也会成为什么样的人。“蓬生麻中,不扶而直,白沙在涅,与之俱黑“说的就是这个道理。
程序员的身价是由什么决定的?如果一个程序员有良好的根基,充满智慧的头脑,积极主动的精神和锲而不舍的毅力,他就一定能有丰厚的薪水吗?答案是否定的。原因在于薪水不光取决于自身的水平,还取决于周围的环境。