hello,大家好。今天要来跟大家分享一下年要学什么样的编程语言。今年最适合学的编程语言,虽然今年已经快过去了,但是如果是以同一个角度去看,最多人用最容易上手,最好学的其实没什么变化,还是一样,就是pythonjava跟javascript,如果你不信的话,可以去看一下。
stackoverflowdevelopersurvey
年,stackoverflowdevelopersurvey最热门的语言。
javascript还是一样排名第一。然后紧接着就是HTMLCSS这两个不算是编程语言,所以可以直接跳过,再就是Python。然后SQL,SQL其实也不算是一个编程语言,它就是一个跟数据库沟通的一个语法。如果你会写程序的话,很快就可以学会了。然后就是java,你如果再往下看,是Node.js跟TypeScript,这两个其实都是javascriptNode.js就是把传统的javascript从浏览器上面的client端放到service上面跑,语法也基本上是一样的。
那TypeScript基本上就是现在写javascript的*金标准。区别就是以前javascript是没有type的一个variable变体,可以是string或者是number,随便你怎么写。那TypeScript呢?就是把javascript加上type的功能。所以在做开发的时候,就可以避免很多开发者会犯的错误。
如果你在你现在的公司写东西还是用VanillaJavascript,就是纯javascript不是TypeScript的话,除非你在maintain很老的代码,要不然我建议你如果想要提升自己的能力的话,可以去考虑学一下TypeScript要怎么写。现在不管你是做前端的react或者后端Node.js,业界的标准都是用TypeScript来开发。而且很多大公司像是google,他们其实内部都慢慢的把重心转移到TypeScript上面,这是之前就有打听过的。
我觉得整个javascript的生态在未来十年应该都会是最受欢迎的语言之一。现在不管你是做browserserver还是手机的app,你只要会javascriptTypeScript,基本上就可以做所有的东西。所以假如你有兴趣的话,我觉得可以考虑学一下。那Python的话我个人觉得,假如你对前端的东西没有什么多大兴趣的话,你觉得你的重心会放在后端,或者你对machinelearningAI有兴趣的话,我觉得你可以把python当成你第一个编程语言去学。
至于java,这个就看你自己的个人兴趣了。我会建议说你去看一下java的语法,因为其实java写起来速度都会慢,javascriptpython大概一倍。因为它的语法本身比较冗长,但是你会学到比较多正规写程序的语法。比如说你在写一个新的array的时候,java会需要指定array大小。
python跟javascript都是dynamicarray,就是其实它就是一个list。
语法跟java比起来简单很多。所以就看你自己个人的兴趣,大部分的公司都会接受你面试用这三种语言。我从来没有用过公司说你只能用哪一种语言来面试。
另外一个我觉得蛮有趣的。在stackworkflowdevelopersurvery上面看到,就是最高薪水的语言都是一些什么Clojure,fsharp,ElixirErlang这些我都没有用过。
我只知道Clojure好像是最常用来做datamining或者是用来做一些大数据的。我觉得为什么这些语言的薪资位数比较高呢?应该是因为他们的用户相对比较小众,所以真的懂的人也比较少。人才的话相对也会比较少,当然薪水就比较高,但是相对市场比较小的话。找工作跳槽就比较没有那么容易,像是javascript、python,这些就是比较热门的语言。全世界学的人太多了,所以薪水中位数可能会因为这个受到影响。
前面我提到最热门的程序员是javascript,python跟java。最适合学的第一个程序语言。我个人认为并不一定是最热门的程序语言,为什么这样讲呢?首先出发点就是错的,你不应该把学一个编程语言当成是最重要的事情,而你应该去想,你今天学程序语言是为了什么?
假如你对写web浏览器有兴趣的话,可能你可以选择javascript和typescript。如果你对写手机app感兴趣的话,你可能可以考虑从swift或者java开始,甚至现在比较流行的flutter用的语言dart。如果你对我们的新模拟AI或者是data感兴趣的话,可能排行更适合你,或是你对crypto加密货币有兴趣的话,你可以考虑或者cplusplus。我相信大部分人问这个问题背后的原因,都是因为他怕花很多时间学的第一个程序语言。然后这个语言没法让你在职场上面很容易找到理想的一个工作。
但是我觉得这是一个比较错误的观念。因为语言仅仅只是一个工具,它的用途就是帮助你解决问题。你应该专注在的地方是你想要解决什么样的问题。然后从那个问题上面去找到你需要靠哪些工具来解决这个问题。工具的话,程序员只是其中一个。举个例子,就像你不会专门去学怎么样用螺丝起子,怎么样用电钻。而你今天是需要把这个柜子给装好,那在装柜子的过程中,你去学到用电钻可以解决这个问题。用螺丝起子可以让你更有效率。而当你熟悉这些工具之后,自然要去使用你的全新没有用过的工具就会比较容易上手。
一个工程师真正的价值不是他会多少语言,而是给他一个问题,他能不能够解决这个问题。而语言只是解决问题的一个方法之一而已。举个例子,今天公司丢给你一个问题,他们需要一个方法来储存客户的咨询。要用什么技术储存存在数据库,还是存在档案系统,存在云端,还是存在本地界面,是要做一个web,还是用手机端的,这些都是工程师需要能够回答的问题,也是体现工程师真正的价值所在的地方。
像我上一家公司,后端全部都是golang去写的那我进去之前,根本就没有看过golang的语法,面试前也没有特别去准备。但是我最后还是拿到offer了,因为我在面试的过程中证明了,我可以在很短的时间内去上手一个新的语言。在每次跳槽的时候,我也不会说为了去面某一家公司而准备哪一种语言。语言只是一个你随时需要,都可以透过google或是stackover上面找到的工具而已。
所以假如你不知道怎么开始的话,我的建议是,首先你可以想一下什么样的问题能让你感兴趣。为了解决这个问题,你需要学什么样的技术?这个时候你就可以搜寻一下这个技术目前最多使用的语言跟框架使用。如果越多人使用的话,代表网络上越多资源,你可以自己去摸索,那你就可以从这个语言或是框架开始下手。等你对这个语言比较熟悉之后,你就可以开始慢慢去做自己想要做的project来练习。做这些project的好处,除了练习之外,你之后也可以把它放在你的履历上面,这是一个很好呈现你经验的一个机会。
假如你没有任何工作经验的话。假如今天你是完全零基础的话,我会建议说你去上个培训机构,或者是在网上找一些教学的课程。这些都可以给你一个比较好的起始点,至少你不会完全没有任何头绪。要怎么开始。因为我自己也是类似这样从零基础走过来的,所以我考虑过要出一个类似这样的课程去帮助大家。尤其是假如你没有任何写程序的基础,可以透过一个我自己认为比较有系统的方式去学习电脑科学或者是编程。
欢迎大家在底下留言告诉我,你觉得这样的课程会不会对你感兴趣,或是你有没有什么你比较想要学的东西都可以在下面告诉我。我们来总结一下这一篇内容语言,它只是一个工具,一个软件工程师需要其中的基本能力,就是能够快速的了解一个自己没看过的语言。想要到达这样的话,没有什么其他方法,就只能多练习。因为程序语言背后的原理都差不多,很多语言其实基本上都很像,就是语法稍微有点不同。所以我认为其实你只要专注熟悉一个或者两个语言,就能让你在之后的职业生涯里面做的很好,也没有必要去逼自己一定要学最热门的编程语言。
我觉得自己的兴趣更重要。而且如果你学一个新的东西,不是因为兴趣去驱使你,那我就会非常的痛苦,而且也很难学好。所以我的建议是先把这篇文章点个赞,然后