一定要观看到的末尾,结尾有惊喜
不是数学,更不是那些“你方唱罢我登场”的各种编程语言!
编程的本质是对线下建模。
OA是对企业建模。
电子网络商务是对交易建模。
AI是对人脑建模。
…
因此,对一个专业的程序员来说,面对一个详细的要求,首先要思考的不是架构,不是编码,而是要思考,怎么样用抽象的电脑语言建立一个抽象模型,从而表示详细的人间线下。
之后,你再来思考,程序员怎么要喋喋不休的,不知不疲倦地争论哪门电脑语言更好呢?
抛却商业的喧嚣,不一样编程语言的本质差别是什么?
C和C++的差别在哪里?
脚本语言(例如js)的使命是什么?
Matlab为何而生?
穿过语法看本质,不一样语言之间的本质 差异 是对线下的描述方法,也只是 建模的方法。
C是一门面向过程的语言,它认为世界是由无数的过程构成的,资料的本质是存储,是过程的结果。
但在C++中,万物皆对象,资料和函数依赖于对象而存在。
选择C语言,只是选择用过程来对线下建模,选择C++只是选择用对象对线下建模。
而脚本语言,顾名思义,只是在详细平台上操作特殊的元素,使它们“动”起来。例如,js的初心只是在浏览器中操作详细的dom元素,从而使他它们“动”起来。
实际上,在web的初期,js用得最多只是在页面中实现各种“特效”,包括浮动广告,滚动字幕等。
因此应该说,js今天在前端研究中的地位,完整是无心插柳的结果,是对当初的初心的 “背叛”。
而Matlab之所以受到算法科学家的青睐,一个不可或缺的因素是Matlab的编程范式特别适合对数学问题进行建模。
我们之所以绕了一大圈来谈详细语言,只是想要印证,一门电脑语言的开始目的只是用抽象的方法来描述详细的世界,也只是建模。这和写作是一样的。
从某种意义上说,专业的程序员和专业作家是一类人,一个用大自然语言创作,一个用电脑语言。
对作家来说,写作的灵魂不是遣词造句,而是语句之后表示的思想。
因此,那些报考作文班的幼儿,并不比看漫画的幼儿更有可能变成专业作家。对专业程序员来说,编程的灵魂也不是代码和语法,而是它要构建的模型。
因此,在变成专业程序员的路上,那些较早接触编程语言的幼儿,并不比很多的幼儿有本质的优势。
编程的学习是无止境的,干到老学到老,消息技术的变革超级的快,层出不穷的新技术需要你去了解,所以第一重要的是坚持一颗爱学习的心,关注你的领域的进步变化。
第一阶段:踏踏实实学好基础,不要想有捷径。
第二阶段:急速提高在学会基础编程知识之后,要超级多的地做健身,这种健身不见得要做书本中的,应该把你生活中接触的问题,都想到一个办法用写几行代码来解决。
生活中有太多太多的重复劳动应该用消息化的手法去解决,暂时不会不要怕,用你钟头候吃奶的劲头去找些问题的解决问题方案,一大半时候我们是找不到恰巧符合你要求的完美方案,但我们通过零散技术的整合,最终都应该完成。
通过这样的过程,会极大地健身你要求调研、要求分析、业务设计、逻辑思维、技术攻关、代码编写、测试调优、服务器部署的全流程技能,你学会了这些,事件中的CRUD还是事儿吗?谁都会说你一句,某某某什么都会。
第三阶段:向下扎根有了第二阶段的广度,如果你还继续做技术,那么就需要有一定的深度了。曾经再多的是应用,用别人的果实去解决你接触的问题,你并没有真正的生产内容。
这也是我一直认为的,怎么程序员被称为码农的原因。
你的研究过程其实只是一个装配过程,把别人写好的模块根据业务要求配合在了一起。
向下扎根,需要你懂得再多原理性的知识,如果认为理论上有欠缺,别怕花钱,去报个班,这是对你自己的投资,或者考个研都应该。
有了扎实的理论功底,你会发现曾经一些问题,貌似有了新的了解,你可能会认为某个曾经用的sdk或者jar包,会导致一些莫名其妙的故障,现在立马明白怎么了。
在这基础上,你会创造一些东西,改进一些东西,形成你自己的体系。
体系只要形成,那可就不是往往一般的程序员咯。
在结尾处给各位共享一下怎么样提高自己的Android成长路线图
一些时候Github会出现无法进入的状态,在这里我也给各位共享我经营多年的 Android技术交流里面都是我这几年来聚集的一帮Android研究程序员,欢迎各位加入,同一时间相对应的资料也应该找群主领取的。