在编程的道路上,也已经走过了几年。从一开始的懵懂无知,到后面的死去活来,再到后面的初窥门径,花了太多的时间,耗了无数的精力,掉了数不清的秀发。
由此,也终于是总结 出少许编程经验和思想。在此,将部分编程总结,分享于各位编程同仁,希望大家的编程之路,走得轻松一点,有趣一点。
大部分人,对于编程语言的学习,总是望而却步,甚至是听之却步的。
作为前端工程师,早已被浏览器兼容,屏幕适配,各种框架,打包配置,工程组件绕得七晕八素,哪里还有时间去学习另外的语言。
javascript原型,闭包,作用域,一切皆对象,函数式,框架,前后分离等等这些玩意都还没搞明白,万万不可分心去学习php、java、python、nodejs、golang等等其他语言的。
全栈工程师,何其难也,专精一门javascript足以。
......
以上,荒天下之大谬。
其一,横看成岭侧成峰,远近高低各不同。
只会一门javascript编程语言,犹如坐井观天,管中窥豹,一叶障目之下,两眼抓瞎之中。(注:个人认为,html,css还算不上编程语言)
学习编程最好的方式,应该是跳出语言外,不在细节中。
就像是看一本书,好的方法,不是直接从第一页一股脑往后翻。而是应该先看几遍目录,有个全局观,然后再从各个章节,局部突破。
举个栗子:
javascript有各种内置对象,比如:Date、Math、Array、Object、String、Number等等。这些是组成javascript的,与生俱来的元素,结构。它们的存在,决定了javascript是什么?能做什么?
Data决定了,我们能够操作时间。操作时间能干嘛?网页日历、网页时钟,购票日期选择等等。
Math决定了,我们可以进行加、减、乘、除,乘方,三角函数,对数等等计算。
Array跟前面两个有点不一样,它是“数据结构”,专门用来存储和操作数据的。存储和操作数据能用来干嘛?数字排序、围棋棋盘状态、出栈入栈等等。
其余暂且不表,简而言之,我们学习一门编程语言,就拿javascript来讲,我们应该首先尽量尝试去理解,这个东西,它是什么?它可以做什么?
然后,再去进行深入学习的时候,才会在某个时间点,某个灵光一闪间,幡然醒悟,javascript可以做什么,它原来是这样做的。又或者,我以为javascript只能做什么,原来它还能做这个。
这样,编程处处出惊喜,工作步步不惊心。
其二,不是每个人都是天才。
老师或者其他人都说,先精通一门,比如javascript,然后再去学习其他语言。放屁!
编程语言能这么容易精通?那还要智商干什么。
很多人觉得,编程太难了。
世界上几千种编程语言,我学习其中一种已经付出吃奶的力了,再学其他的,岂不是要让我驾崩?
其实这个从某个时间段来说,确实没错。刚刚进入编程这个行业或者从事没多久编程工作,确实是一心一意铺在这个语言和自己负责的工作任务上是最好的。
不过,到达某个时间点,能够感觉到自己已经熟练工作,在编程上遇到瓶颈,进步缓慢的时候。切换到另外一个语言,学习另外一种思路,是最好的。很多人不愿意切换,十年如一日做着重复性地编程工作。
等到自己想跳槽,或者被跳槽的时候,才发现自己不仅身体老了,心态老了,甚至连技术都老得面试都通不过了。原来自己不过是把一个1年工作经验的程序员就能干的事情,重复地干了十年。
不要太相信自己。
很多刚入行的新人,觉得自己多么多么牛逼,要多少多少薪资。
很多入行一段时间的老人,觉得自己可以不学习其他技术,可以精通目前混饭吃的这门语言,从而混更好吃的饭。
确实,不说完全精通,单说接近精通一门编程语言,几乎每个人都有这个潜力。但是,绝大部分人,都没有这个行动力。
这个世界的诱惑太多了,人是很聪明的高等动物,也是因为如此,能够制约和影响我们的因素,也更多。
古代,信息传播慢,人们的思想也慢,所以注意力能够更加专注,所以能够用一辈子去做出被后人视为瑰宝的思想文化。
天才在左,疯子在右,天才和疯子之间,仅仅一线之隔。其实疯子于此,不是一个贬义词。而是他们更为专注的精神境界和那个当时的人们格格不入。
因为格格不入,所以他们是疯子。
因为精神专注,所以他们是天才。
其三,编程不难啊!
听到无数的人说,编程好难好难啊!
我也这么说过。
现在,我不这么说了。
我现在只会说,编程真的好难好难!
编程难在哪里呢?我觉得,是难在编程的深入。什么叫深入?追根溯源就是深入。
操作系统是怎么实现和运行的?
如何发明一个编程语言?
函数式?丘奇数?lambda演算?图灵完备?可计算性?
如何用逻辑门实现一个cpu?
Linux系统完全掌控?
算法?
AI?
......
这些是真正有趣的东西,但是真的太难太难了。
不过,单纯的学习一门语言,入个门,真的是再简单不过啊!
3天入门N门编程语言
语言是有共性的。
就像汉语,英语,西班牙语等等。都有主语,谓语,宾语,状语啥的吧?
那么,这就是它们的共性。
那么它们的不同点是什么呢?
读音和写法应该是最大的不同点了吧。
你知道了他们的读音和写法,再加上学习这个语言的语法逻辑,那基本算是入门了吧。
编程语言同样如此。
大部分编程语言,也都有共性。
从某个方面来讲,编程语言,由库文件和语法逻辑组成。
举几个例子:
javascript由浏览器的bom,自身的dom以及原生对象和if for 函数定义 变量定义等语法逻辑组成。
php由自身的数据库操作库,文件系统操作库,数学操作库和if for 函数定义 变量定义等语法逻辑组成。
golang由自带的网络操作库,文件操作库,加密库,输入输出库和if for 函数定义 变量定义等语法逻辑组成。
nodejs由网络操作库,文件操作库,加密库和if for 函数定义 变量定义等语法逻辑组成。
c语言由网络操作头文件,输入输出头文件和if for 函数定义 变量定义等语法逻辑组成。
perl、bash、python等等,同上。
几乎所有的编程语言开发,无外乎就是通过语法组织进行函数调用而已。
各语言输出hello world。
javascript:console.log('hello world');
这个console对象和其下的log函数哪来的?不是天上掉下来的,是这个语言自带的。也就是说,你去租房,房东水电冰箱全包。
你搬进去住,要喝冰阔落,你买好阔落('hello world'),把它放到冰箱里(执行console.log函数,'hello world'作为参数传给这个函数),然后,过一段时间,就能够喝到冰阔落了(函数输出结果)。
你不需要关心冰箱是谁制造的,不需要知道它是谁买的、也不需要关心买它花了多少钱。
它摆在哪里,用就行了。
所以,如何使用其他家电呢?
php:echo 'hello world';
洗衣服,丢进去洗就行了嘛。
golang:fmt.Println('hello world')
看电视,打开遥控器就看嘛。
......
每个家电都有使用手册,每个编程语言都有使用文档。
编程语言入门,查找使用手册,然后去使用。
或者看看别人怎么使用,自己也尝试去用就行了。
大的复杂的东西,都是由小的简单的东西组成的。
熟练javascript的Date对象使用,其他的,比如String对象,Math对象,使用起来也差不多。
熟练javascript这个编程语言,其他语言,学起来也差不多。
3天入门N门编程语言,哪里难嘛。
结语
感谢您的观看,如有不足之处,欢迎批评指正。
获取资料????????????
本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:????????????147076513????????????,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。
有疑问加站长微信联系(非本文作者)