Golang (Go语言)是一门什么样的语言?为什么说每个程序员都应该学点Go?

作者: 土妹土妹分类: 职业职场 发布时间: 2020-05-24 08:25:26 浏览:82153 次

Golang (Go语言)是一门什么样的语言?为什么说每个程序员都应该学点Go?

emmagency:
还是想提醒一下大家,go对比java,唯一的优势就是协程高并发,要求都是千万,亿级别,这个级别的开发会默认你java基本是准架构师水平,源码理解几乎深入汇编水平,而你到了这个水平在学go就是几天的事,只学go是找不到工作的,想发展更好还是推荐从java入手理解整体架构设计

【回复】不要听他胡扯,golang不要学太多java的东西,否则你会觉得golang太不灵活,啥啥都不行,逼死强迫症,但是你啥都不懂,就没啥纠结了,这么用
【回复】回复 @emmagency :go还真不是编译成jvm字节码....go直接编译成真机的二进制文件,不是运行在jvm上的
【回复】上面一堆不懂的人在瞎说[吐]
账号已注销:
话说这么客观的视频里还能看见无脑骂java,搞搞鄙视链的hanhan弹幕我也是服了。。。能不能多学点技术少打点嘴炮?再说你骂的再厉害你也改变不了你的收入和水平呀。。。

【回复】Java有点厚重,历史包袱太多了,当时学完python,再也回不去了。后来发现,Java务实的设计,接口,范型,引用,垃圾回收,还能函数编程,很难找到比这更合适工程的语言。既然都在android上能搞运行时,感觉未来可期。go里面我最喜欢的设计就是interface,同时面向对象和oc有点像,但语法比oc更舒服,简直是c程序员的春天。我是学完go才知道java是多么优秀,当然go也很好,等以后支持范型就更好了。
【回复】真有技术早就敲代码去了,哪有时间当键盘侠啊。
【回复】不谈应用场景,单纯说那个语言好都是耍流氓
一路-繁华的夏:
up能不能讲一下协程啊,顺便能讲一下线程和进程就更好了,大一非科班刚入门想多了解一下这些知识

【回复】转专业吧,学了操作系统就好了
看呀张同学:
up主你的发际线体现不出你的技术(狗头)

稀疏矩阵:
大二本科生。。。不想和前辈内卷争Java和Python了,自学go语言和rust中[呲牙][呲牙][呲牙]

【回复】回复 @玄弦乐幽 :为什么不反着想 那么多人为什么要学JAVA? 还不是因为好找工作。 这就好比大家都努力考大学 ,你说大学生不值钱了 然后辍学去打工,一个道理
【回复】老老实实学Java,你会找到一个好的工作
【回复】放弃java学go?醉了(›´ω`‹ )祝你能找到工作吧
高冷男神吴先森:
这会别直接入坑了,目前对go能力要求超高的,已经在上海被面试官毒打过,可以当第二种语言来储备,至于用来干活,还是再等35年对ho要求低了再来吧

【回复】回复 @SolitudePig :需要也要分程度呀,比如python和php做网站,对基础知识要求不那么严重,了解更多的是数据库,搜索引擎的使用,高阶一点就是了解http和web安全,如跨站,sql注入等,硬件知识和编译原理不知道也能干活。实际上编译原理不是每个专业都要学,汇编语言,甚至只有少数同学掌握,很多同学C++都做了几个项目了,都没有研究过实现多态和继承的原理。同样是了解协议,有的了解是直接拿来用就好了,有的了解是需要自己去实现,了解ASN.1各种编码。服务器同理,有的人写完代码跑在webserver上,有的人要在嵌入式上实现cgi,知识的广度和深度还是不一样的。各种框架和工具都是和行业/项目相关,没有可比性,完全是看项目需求和自学能力。我想表达的是,招聘go程序的公司,应该是处理大量的基础数据,光是选择一门高效的语言已经还不够,还需要掌握其它优化技能,所以对算法和基础原理要求比较高。
【回复】回复 @高冷男神吴先森 :我大概明白了,主要都是服务相关的,大部分是写基础设施的代码,比如filebeat处理日志,k8s里转发网络流量。如果这样的话,招一个go程序员不仅得会语言,还要非常熟悉数据结构和算法,因为需要优化的点太多了,比如当时filebeat官方代码使用固定的缓冲区的channel,我同事改成环形队列,解决了一堆bug。k8s相关的二次开发的话,那要求也不少,比如熟悉计算机网络,要求了解各种协议,很多东西,小厂程序员根本就没机会实战。
【回复】回复 @SolitudePig :确实是这个道理!go之所以火,主要是因为google,当初为了解决大型C++工程编译时长问题,以及内存泄漏,性能指标监控之类的。替代c++的服务器编程语言,其中最重要的一个里程碑就是docker这个产品的出现,后来又推出了k8s,都是用go实现,再后来在k8s上的大部分服务,基本都用go重写了,比如用于服务发现的dns。大型公司/机构都会自建云平台,因为它内网有一堆服务要标准化、重复利用,不管是pass还是sass平台,离不开这样的一个生态!
biubiu不二呆:
[吃瓜]go的最大优势是协程,缺点是过于简单与固执,go没包管理新版本确实有但并不好用,没有泛型,异常判断也是比较麻烦,虽然go的异常机制我认为比Java优秀,但并不是那么好用,数据结构的缺失这点你们没法反驳吧,比较恶心的是切片比较常用也比较难用稍不注意写的一段删除切片元素的代码过两天来看,你还以为是添加操作,go相比较Java而言确实容易上手编译速度也是非常快的,但是容易上手也是有代价的,go说到底只能替代Java web部分,毕竟对于实时性系统就不是go的领域了,所以选择go你是在期待有更好的Java吗!

【回复】这个我不同意,数据结构可以自己实现的好呗,还有go最大优势更本就不是web开发,现实中很少做web开发的,大多数是在海量数据处理和虚拟化方面以及微服务api接口开发,go的协程比java的多线程简单多了去,谷歌开发的初衷就是从性能和代码复杂性出发的,go web框架github上很多,但你看看招聘软件上的招聘信息,要求你掌握这些了吗?如果要做web的话大多数公司都是自己封装的http,从官方的http封装也简单
【回复】回复 @HruHruHru :是的,你看那些吹go的实际项目也用的少估计也就写了几个demo,国内目前使用go的还是一小部分人,你可以去QQ群看看,就算你真正工作了也比较难转到go上毕竟对公司来说有风险,小公司到时无所谓的。
【回复】我只想说go的优势不在web开发,别被java带跑了
居家技术男:
如何在程序员堆里引战?你只需要喊一句,,PHP是世界上最好的计算机语言!

【回复】摸摸头,你说的都对[妙啊]
因泰勒静:
想听关于协程 不同语言实现的协程有什么区别

【回复】goroutine准确的说不是协程,和协程底层实现完全不同,golang语言作者Rob Pike也说,“Goroutine是一个与其他goroutines 并发运行在同一地址空间的Go函数或方法。一个运行的程序由一个或更多个goroutine组成。它与线程、协程、进程等不同。它是一个goroutine“
【回复】回复 @蛤秋 :java已经有了[吃瓜]阿里爸爸搞了一波
【回复】不是所有语言都有协程[吃瓜]
闲云野鹤TT:
go写一些小工具还是很好用,开发快,执行快,并发猛。 现在会go的还不够多,能用好的更少。目前字节全用go做后端开发。 总的来说Java还是互联网从业大头。 大部分语言都在工作中用过,目前项目需要又去写C++[doge]

青鱼与雪:
又出新语言了,不想学了[无语],每次出个新语言都要学。

【回复】回复 @大血圣级程序员 :就是为了吃饭啊,我们算法主要框架是C++跟python。但是google毕竟算法大佬,如果google用go配置新AI框架,火起来了,该用还是得用。自己运行还好,要是出去跟人家交流,人家用go,我们不会,就尴尬了
【回复】回复 @大血圣级程序员 :我不是大佬[热词系列_知识增加]。b站课还挺多的,搜索小白板,cs229。我一般看coursera,那个可以白嫖。或者google PRML,deeplearning,两本圣经,龙龙老师的tf深度学习也不错。
【回复】回复 @青鱼与雪 :大佬[点赞][点赞] 大佬干人工智能的吗? 我学的是JAVAweb方向,高级点的都不怎么会 话说,大佬有没有好点的算法网课啊,我数学垃圾算法基础,想充实[笑哭][笑哭][笑哭]
赤名莉香-哼:
学不同语言对常用开发语言非常有好处[呲牙]

账号已注销:
我学过的所有语言都具备3个相同特征,官方都说:开发效率高、性能强悍、易于学习,不信你去看看···Python 都厚脸皮宣布自己有这些特点 O(∩_∩)O

文宇日常:
做了go开发一年多了,正如up主所说go语言是集执行效率和开发效率一身的语言,但是go的岗位是比较少的(入行选golang需谨慎),除非是在北上广深

计算机 程序员 学习 GO 编程 刷题 GOLANG GO语言 LEETCODE bilibili新星计划

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!