到底该学习什么编程语言
我到底该学习什么编程语言?
相信几乎所有的开发人员,都会有这样的感慨,我到底应该学习哪一门编程语言,我应该选择什么样的技术,这很正常,包括我自己,经常会出这样的疑问,那么作为一个过来人,我来谈谈我的看法
个人经历
我从大一开始接触编程,到现在为止已经很多年了,学习过的编程语言或者技术包括
- C语言
- C++
- JAVA
- C#
- 汇编
- GO
- PHP
- Android
- React
- Vue
- Angularjs
- Python
- Laravel
- ThinkPHP
- ZendFramework
- linux程序设计
- 网络编程
- 3d游戏引擎
- Javascript
- HTML
- Spring
- 还有其它的,想不起来了。。。。。
总的来说,学的东西,还是蛮多的,绝大部分的技术,我都深入钻研过,也花费了不少的时间,但是现在仔细想来,有的真的不值得,幸亏后来浪子回头。
早期学习
早期学习编程的时候,我和大家的感觉都是一样的,看到什么新鲜的东西,都想插一脚,当时也是这么做的,然后这个学一下那个学一下,但是学到最后,感觉还是很空虚,还是没学到啥,很多东西还是不懂,因为你停留在了语言的层面,而没有深入到某一个语言或者是工具的本质,你的计算机基础知识还不够,你缺乏基本功,所以很难看透问题的本质。
提升编程素养
今年前段时间,我去面试其他人,大部分时间我都不问招聘岗位的问题,我会问一些基础的编程问题,比如:你可以写出一个链表吗?假如说这个都不会,那就没有问下去的必要了。如果他回答了这些基本的问题,我会问他,看过一些书籍么?看过哪些书籍,从他看的书籍,我就可以看出来,面试人的基本现状。我不要求你需要会岗位的某些技能,但是你的编程素养告诉我,你是不是具备快速学习的能力。优秀的开发人员,可以在短时间(一周或者几天)上手一门编程,或者是掌握某个东西的精髓,这不是在开玩笑。
不管你学习哪一门编程,你的眼光应该不限于当前领域,比如说,我和我同事聊天的时候,我说每一个编程人员,都应该学习数据结构,基本的算法知识,今年面试前端的时候,我基本都会提到一个基本的问题,怎么来遍历页面上的dom,很可惜,没一个人能给我答案。
当看到别人简历上面出现React的时候,我会提出一个问题,React的setState方法为什么不会立即起作用,你别说,很神奇,面试的人答案只有一个:性能优化,不知道是哪个讲师告诉你的,真的是误人子弟。算法不是那么高深的问题,它应该渗透到我们写的每一个程序中,它不是某个具体的东西,而是一种抽象思维(在这之前,你首先需要学习具体的基本数据结构,列表,栈,二叉树等等)。
我总是推荐别人学习C语言,有人可能会说,我又用不到,学它干啥。这句话没错,你确实没用到,但是你知道嘛?你用的软件,包括但不限于Linux,Redis,Nginx等等都使用C写的,为什么要用它呢,因为它的效率,你可以完全掌控你的程序,超乎你想象,你有完全的内存控制权,你自己负责垃圾回收,总之你自己就是程序的上帝,但是这也赋予了你更多的责任,你有义务了解更多的编程知识,计算机知识,这样你的程序才能更好的运行,最重要的是它会培养你一种程序思维,学会站在计算机的角度思考问题,举个例子:
为什么JAVA的String 初始化了之后,不能变的更长,如果你学习了C语言,你可以很轻松的回答这个问题,这是内存分配的问题,真正的程序员,不是你可以做什么,而是,也许我可以搞个东西,比这个更好
上班很累,但是要狠
不管你是刚出校门,还是毕业多年的老油条,上班没有不累的,大家都很累,自己没有时间学习。对于这个问题,我只能说,你真的是因为忙没时间?你每天抽不出1个小时看看书?你每天耍手机的时间加在一起,你想过有多少时间?中午休息的时候,也可以看哈文档,博文啥的,看看别人的经验分享,都可以,真正技术好的,不是因为他真的很聪明,你看他12点之后还在干嘛?多年前,我学习Android的时候,有个Android大神,叫做罗升阳,他写了很多高质量的博客,此人是晚上熬出来的啊(这哥们儿,写了一本Android的书,很可惜,销量很差,最后这哥们儿把博客给停更了,再也不写博客了,因为太痛心了,熬夜给大家写博客,却没有换来丁点儿的回报,因为别人都不买他的书,看他的博客去了(白嫖),这件事给我影响深刻,然后我又去淘宝京东上面搜索了其它的一些关于android的书籍,销量贼高,但是我看了一下目录,质量啊,真的真的令人苦笑不已)
当初我学习linux编程的时候,也是每次都搞到凌晨,那么厚的书,想想都觉得可怕,你不对自己狠点儿,又想学到东西,怎么可能啊。
多实践
实践才是检验真理的唯一标准啊,光看或者是听,起不到多大的作用的,不要总把手插在裤兜儿里面(装酷的时候,我支持),在写这一篇博客之前,我也写了几篇博客,每一篇我都写了例子,但是又有多少,看一遍就算了,多少人下载下来亲自运行下,就不得而知了,这不是一种学习的态度,勤加练习才是王道,你觉得你是天才吗?天才也不是这么玩的啊。
如何学习一门编程语言
编程语言种类繁多,你不需要学习那么多,但是你一定要知道如何学习一门编程语言,要有一定的学习目标,下面举个例子:
- 如何定义变量
- 如何定义函数
- 如何定义类
- 如何实现继承
- 如何实现多态
- 如何定义和操作字符串
- 是否支持闭包
- 如何调用父类的函数
- 是否支持默认参数
- 参数的引用,值传递
- 如何实现代码模块化
- 如何导入第三方代码
- 三元表达式
- 当前语言提供了哪些功能
- 当前语言有些流行框架和工具
- 变量的作用域,是否支持全局变量
上面只是给大家举个例子,学一门编程语言的时候,一定要有目标,不能到处撞,开始学习一门语言的时候,你不需要学习比较高级的语言特性,因为暂时你还用不到,这些东西只会给你增加烦恼,在学习完这些基本的语言知识外,你可以写一些代码了,做做项目。
如果你是一个编程老手,这面的这个过程,它一天的时间就搞定了,这一点都不夸张,当初为了学习Unity3d(后来没学了),我学习C#的时候,我真的觉得基本的知识,就只需要一天,没有必要浪费那么多时间,项目搞起来。
回归正途
上面罗里吧嗦了一大推,我到底该学习什么编程语言?如果你认认真真的看了我上面说的,我想问你一个问题,你是否真的学好了自己领域的东西,如果你真的学好了,那么你也不需要考虑这个问题,因为,只要你想,你认认真真的学习一个月,可以抵得上一般的人几年的工作经验,你可能觉得很夸张,但是不然,你的基础在那里,上面都是我的真心话,每个人都有自己的选择,希望你能够有所收获,祝您周末愉快。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: