欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

作为一名WEB工程师从长远的角度来讲 哪几种语言 更值得深入学习?

程序员文章站 2023-12-24 09:21:39
...
我想建立自己的技术栈 目前考虑的语言有 PHP javascript python c++ ruby go
有不错的推荐也请说明,谢谢。
请从长远的角度进行分析 并说明原因,感激不尽!

回复内容:

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简单即是美 学习无止境!多门技术多条路!

上一篇:

下一篇: