作为一名WEB工程师从长远的角度来讲 哪几种语言 更值得深入学习?
程序员文章站
2022-05-15 13:55:32
...
我想建立自己的技术栈 目前考虑的语言有 PHP javascript python c++ ruby go
有不错的推荐也请说明,谢谢。
请从长远的角度进行分析 并说明原因,感激不尽!
2、web开发,javascript 必须会的,前提是1中的任意一种精通了,javascript 不是事儿,很快就可以拿下。
3、web开发,有走前端和后端路线。除非你想当全栈工程师。
4、重点来了,如果走后端,不是纯编程语言的事,你要研究的多了,分布式,高并发,数据库主从,读写分离。Nosql,缓存、API开发,全文检索、运维等等。
先选择一门编程语言精通了,Go 可以关注,目前选择Python 深入学习是比较好的选择之一。 不要陷入语言之争!
每当有人问我学哪门语言的时候,我都是这样回答的:
你身边有会 JAVA 的,你就去学 JAVA,
你身边有会 PHP 的,你就去学 PHP,
你身边的人会什么,你就学什么,不会就问他。
他不理你?
请他吃饭呀!
他还会告诉你你接下来应该学什么。
跟人,而不是跟技术。
你说身边一个会编程的都没有要怎么办?
你不是遇见我了吗?
关注我,学前端! 对于找学习,做项目,找工作,推荐Java!用了一年的Python,除了熟悉调用各种方法,库,框架,感觉没啥进步。果断转Java。
Python内存是怎么回收的?
引用计数。
然后呢?
不知道了…
Python形参传递是值传递还是引用传递?
啥?
能谈一谈Python的并发嘛?
不能,我只知道有GIL,其它并不知道…
Java是咋内存回收的?
首先 Java将内存分为堆区,虚拟机栈区…
使用可达性分析… 安全点… serial,parNew,parallel scavenge CMS… 内存担保吧啦吧啦…
我们聊聊并发吧
嗯,偏置锁,轻量级锁,重量级锁… volatile关键字的语意…
能聊聊Java的重载和重写吗?
重载底层使用静态多分派,根据方法静态参数类型在编译期就决定好了使用哪个版本的方法,重写使用的是动态但单分配,根据接受者的类型选择相关方法…
不是要喷学Python 不好,因为语言没有好坏,只有合适和更合适。而是觉得应该要有一门比较过硬的静态类型语言如c/c++,java,c#等基础,再来用Python等脚本语言才能事半功倍。初学就学脚本语言,感觉很虚。
因为是要做Web,所以推荐Java。学Java好处就是:很多公司用,而且如果你想,能够学到更多所以然。而脚本语言,不是*大神,只能调调API。对于底层的机制,很少有相关的资料供你一步一步学习。不要跟我说直接看源码,我们都是普通人。不是大神。
以上就是个人愚见。 英语。 Web 开发,是一件非常庞杂又繁重的工作,而且大多数情况下都是在和各种规则打交道,像什么 HTTP 协议,数据库的链接字符串,CSS,HTML,JavaScript的语法,开发工作流辅助工具的配置,什么 angular ,jQuery框架……
根本学不完,学了也是过两年又有什么把原来的挤掉了,像es6挤掉了jQuery,像typescript挤掉了coffeescript,像nodeJS ,PHP,elixir,f#,Ruby ,julia,Python之间在相同领域的厮杀和混战。
作为一个有点经历的人,想给的建议是:
把电脑换成 Linux 系统,用 c 语言实现一个静态文件服务器,然后用JavaScript在尽量不引用第三方库的情况下,做一个可以登录评论动态更新的小网站,然后买个云服务器,实实在在的部署一次。
尽量用最原始的办法,尽量不要用什么框架,当这个过程完成以后,至少会有一个骨架,有了骨架就可以让它丰满。
为什么是 Linux 系统,它更直白的告诉你,操作系统到底是怎么工作的。
为什么是 c 语言,它更直白的告诉你,事情是怎么完成的。
为什么是JavaScript,它浩如烟海的开源代码和nodeJS 简单的哲学,更真实的向你展现,那些规则和如何玩那些游戏。 (首先说一下,请注意大小写,关爱强迫症患者...)
就以你考虑的这几门语言开始说吧:
PHP:后端路线选修,小型的互联网公司适用,学习门槛低,适合快速开发,但是性能比较平庸(PHP7有显著改善),作为专为Web而生的语言,近几年没啥太大动静,不如JS和Python发展活跃,好在市场占有率高,需求量比较大,但是同样由于门槛低,学的人越来越多,竞争也逐渐加大。(在回答问题之时,我不推荐深入学习PHP)
JavaScript:前后端路线必修,这个目前潜力巨大,热度很高,如果是搞前端,怎么深入都不过分,能把JavaScript学好是可以让你实现财务*的...但是缺点是知识体系越来越庞大,分支较多,框架更是数不胜数,想学好几乎没个头。后端的话JS也是要掌握的,不然在JS大行其道的今天,你一个后端不懂JS,与前端交流很困难。JS从一门单纯的网页脚本语言已经蜕变成一门Web全栈开发语言,如今JS能做的东西实在太多了,JS社区甚至像Facebook这种硅谷公司都热衷于努力为JS做开源贡献!而且诸如为异步而生的Node.js,甚至跨入Native App开发领域的React,每开源一项技术都会是一种Web黑科技,敢问哪种语言能做到?(推荐最有学习精神的开发者深入学习)
Python:后端及运维选修,说是选修,其实基本上不修不行了,如今的创业公司更倾向于Python,从某一方面讲他与PHP是极其相似的,但是Python能做的事太多了,我最喜欢把Python比作一把瑞士军刀!PHP远远做不到。效率上要从两方面讲,性能上,语言本身性能一般,但是作为胶水语言,你懂得;开发上,效率高,这也是受追捧的重要原因。WEB的话还有运维方向,Python对他们来说就显得尤其重要了...当然你应该不想去做运维。深入学习Python,会让你变得更加Geek,会让你的工作更加Automatic,优秀的Python岗还会付给你大把的薪水(同样推荐每位工程师深入学习,但是不一定只专注这一项)(2016.11.15 增:Python一种优秀的性能解决方案是PyPy实现,尽管需要和官方磨合,但是对Python及其性能感兴趣,有意了解其底层实现的话好好研究下PyPy)
C++:底层工程师必修,如果一个Web工程师想深入研究C++,我不排除他有自虐倾向。我本科EE搞硬件的,C++是给我们用的,你对底层开发有追求的话,比如Web Server,你可以深入研究C++,还有C++搞Server也基本是游戏领域...而且C++难啊,你就是深入研究几年也够呛研究出什么道道来,你搞广义上的Web开发的话,有这份心还是好好研究其他的吧。(不推荐)
Ruby:个人开发者选修,听说过Eagles乐队的《Hotel California》吗?这首歌太出名了,以至于Eagles的其他优秀歌曲失去了光泽。提到Ruby,肯定就是RoR框架了,RoR太出名了,以至于人们很难对Ruby有其他的期望,但是除了RoR,Ruby还有什么?是的,还有那红宝石般优美的语法。写Ruby是挺享受的,随心所欲,但是抱歉,有时候太*了却并不是团队开发所需要的。学Ruby,可以,我将其定义为个人开发者选修课,或许这门语言更适合创业...当然,你会说Ruby在硅谷很受欢迎,But,这里是CHINA,you know。还有一点,Ruby毕竟出生在岛国,你要是日语上没两把斧子,还想融入他们社区?(不推荐)
Golang:底层工程师选修,这还是一门搞Web底层的语言,他的正确归类和C/C++一样,叫做“系统编程语言”,明白了吗?毕竟是出生在新时代,天生自带优秀并行编程能力,2016年10月TIOBE排行上,Go表现出了强劲的势头,而且学Go的人普遍有点想抱Google的大腿的意思嘛...Go和同样势头很猛的Swift一样,需要观望,先不要着急。(不做引导)(2016.11.15 增:目前Go方面成熟的Web框架有gorilla以及国内的beego,可以自行搜索了解。)
丫的,找了一遍竟然没提我大Java,网络编程第一语言,这可是走向人生巅峰的重要途径之一啊,你这是战略性忽视了吗? 不要去学语言。
去学框架,学工具,最重要的是学原理。 这东西,口味问题而已。
js Python ruby go地位会上升,php会下降,java不变。
学啥都行。 JS简单即是美 学习无止境!多门技术多条路!
有不错的推荐也请说明,谢谢。
请从长远的角度进行分析 并说明原因,感激不尽!
回复内容:
1、编程语言只是工具,先选一种精通了(Python、php、Java等)。2、web开发,javascript 必须会的,前提是1中的任意一种精通了,javascript 不是事儿,很快就可以拿下。
3、web开发,有走前端和后端路线。除非你想当全栈工程师。
4、重点来了,如果走后端,不是纯编程语言的事,你要研究的多了,分布式,高并发,数据库主从,读写分离。Nosql,缓存、API开发,全文检索、运维等等。
先选择一门编程语言精通了,Go 可以关注,目前选择Python 深入学习是比较好的选择之一。 不要陷入语言之争!
每当有人问我学哪门语言的时候,我都是这样回答的:
你身边有会 JAVA 的,你就去学 JAVA,
你身边有会 PHP 的,你就去学 PHP,
你身边的人会什么,你就学什么,不会就问他。
他不理你?
请他吃饭呀!
他还会告诉你你接下来应该学什么。
跟人,而不是跟技术。
你说身边一个会编程的都没有要怎么办?
你不是遇见我了吗?
关注我,学前端! 对于找学习,做项目,找工作,推荐Java!用了一年的Python,除了熟悉调用各种方法,库,框架,感觉没啥进步。果断转Java。
Python内存是怎么回收的?
引用计数。
然后呢?
不知道了…
Python形参传递是值传递还是引用传递?
啥?
能谈一谈Python的并发嘛?
不能,我只知道有GIL,其它并不知道…
Java是咋内存回收的?
首先 Java将内存分为堆区,虚拟机栈区…
使用可达性分析… 安全点… serial,parNew,parallel scavenge CMS… 内存担保吧啦吧啦…
我们聊聊并发吧
嗯,偏置锁,轻量级锁,重量级锁… volatile关键字的语意…
能聊聊Java的重载和重写吗?
重载底层使用静态多分派,根据方法静态参数类型在编译期就决定好了使用哪个版本的方法,重写使用的是动态但单分配,根据接受者的类型选择相关方法…
不是要喷学Python 不好,因为语言没有好坏,只有合适和更合适。而是觉得应该要有一门比较过硬的静态类型语言如c/c++,java,c#等基础,再来用Python等脚本语言才能事半功倍。初学就学脚本语言,感觉很虚。
因为是要做Web,所以推荐Java。学Java好处就是:很多公司用,而且如果你想,能够学到更多所以然。而脚本语言,不是*大神,只能调调API。对于底层的机制,很少有相关的资料供你一步一步学习。不要跟我说直接看源码,我们都是普通人。不是大神。
以上就是个人愚见。 英语。 Web 开发,是一件非常庞杂又繁重的工作,而且大多数情况下都是在和各种规则打交道,像什么 HTTP 协议,数据库的链接字符串,CSS,HTML,JavaScript的语法,开发工作流辅助工具的配置,什么 angular ,jQuery框架……
根本学不完,学了也是过两年又有什么把原来的挤掉了,像es6挤掉了jQuery,像typescript挤掉了coffeescript,像nodeJS ,PHP,elixir,f#,Ruby ,julia,Python之间在相同领域的厮杀和混战。
作为一个有点经历的人,想给的建议是:
把电脑换成 Linux 系统,用 c 语言实现一个静态文件服务器,然后用JavaScript在尽量不引用第三方库的情况下,做一个可以登录评论动态更新的小网站,然后买个云服务器,实实在在的部署一次。
尽量用最原始的办法,尽量不要用什么框架,当这个过程完成以后,至少会有一个骨架,有了骨架就可以让它丰满。
为什么是 Linux 系统,它更直白的告诉你,操作系统到底是怎么工作的。
为什么是 c 语言,它更直白的告诉你,事情是怎么完成的。
为什么是JavaScript,它浩如烟海的开源代码和nodeJS 简单的哲学,更真实的向你展现,那些规则和如何玩那些游戏。 (首先说一下,请注意大小写,关爱强迫症患者...)
就以你考虑的这几门语言开始说吧:
PHP:后端路线选修,小型的互联网公司适用,学习门槛低,适合快速开发,但是性能比较平庸(PHP7有显著改善),作为专为Web而生的语言,近几年没啥太大动静,不如JS和Python发展活跃,好在市场占有率高,需求量比较大,但是同样由于门槛低,学的人越来越多,竞争也逐渐加大。(在回答问题之时,我不推荐深入学习PHP)
JavaScript:前后端路线必修,这个目前潜力巨大,热度很高,如果是搞前端,怎么深入都不过分,能把JavaScript学好是可以让你实现财务*的...但是缺点是知识体系越来越庞大,分支较多,框架更是数不胜数,想学好几乎没个头。后端的话JS也是要掌握的,不然在JS大行其道的今天,你一个后端不懂JS,与前端交流很困难。JS从一门单纯的网页脚本语言已经蜕变成一门Web全栈开发语言,如今JS能做的东西实在太多了,JS社区甚至像Facebook这种硅谷公司都热衷于努力为JS做开源贡献!而且诸如为异步而生的Node.js,甚至跨入Native App开发领域的React,每开源一项技术都会是一种Web黑科技,敢问哪种语言能做到?(推荐最有学习精神的开发者深入学习)
Python:后端及运维选修,说是选修,其实基本上不修不行了,如今的创业公司更倾向于Python,从某一方面讲他与PHP是极其相似的,但是Python能做的事太多了,我最喜欢把Python比作一把瑞士军刀!PHP远远做不到。效率上要从两方面讲,性能上,语言本身性能一般,但是作为胶水语言,你懂得;开发上,效率高,这也是受追捧的重要原因。WEB的话还有运维方向,Python对他们来说就显得尤其重要了...当然你应该不想去做运维。深入学习Python,会让你变得更加Geek,会让你的工作更加Automatic,优秀的Python岗还会付给你大把的薪水(同样推荐每位工程师深入学习,但是不一定只专注这一项)(2016.11.15 增:Python一种优秀的性能解决方案是PyPy实现,尽管需要和官方磨合,但是对Python及其性能感兴趣,有意了解其底层实现的话好好研究下PyPy)
C++:底层工程师必修,如果一个Web工程师想深入研究C++,我不排除他有自虐倾向。我本科EE搞硬件的,C++是给我们用的,你对底层开发有追求的话,比如Web Server,你可以深入研究C++,还有C++搞Server也基本是游戏领域...而且C++难啊,你就是深入研究几年也够呛研究出什么道道来,你搞广义上的Web开发的话,有这份心还是好好研究其他的吧。(不推荐)
Ruby:个人开发者选修,听说过Eagles乐队的《Hotel California》吗?这首歌太出名了,以至于Eagles的其他优秀歌曲失去了光泽。提到Ruby,肯定就是RoR框架了,RoR太出名了,以至于人们很难对Ruby有其他的期望,但是除了RoR,Ruby还有什么?是的,还有那红宝石般优美的语法。写Ruby是挺享受的,随心所欲,但是抱歉,有时候太*了却并不是团队开发所需要的。学Ruby,可以,我将其定义为个人开发者选修课,或许这门语言更适合创业...当然,你会说Ruby在硅谷很受欢迎,But,这里是CHINA,you know。还有一点,Ruby毕竟出生在岛国,你要是日语上没两把斧子,还想融入他们社区?(不推荐)
Golang:底层工程师选修,这还是一门搞Web底层的语言,他的正确归类和C/C++一样,叫做“系统编程语言”,明白了吗?毕竟是出生在新时代,天生自带优秀并行编程能力,2016年10月TIOBE排行上,Go表现出了强劲的势头,而且学Go的人普遍有点想抱Google的大腿的意思嘛...Go和同样势头很猛的Swift一样,需要观望,先不要着急。(不做引导)(2016.11.15 增:目前Go方面成熟的Web框架有gorilla以及国内的beego,可以自行搜索了解。)
丫的,找了一遍竟然没提我大Java,网络编程第一语言,这可是走向人生巅峰的重要途径之一啊,你这是战略性忽视了吗? 不要去学语言。
去学框架,学工具,最重要的是学原理。 这东西,口味问题而已。
js Python ruby go地位会上升,php会下降,java不变。
学啥都行。 JS简单即是美 学习无止境!多门技术多条路!