Go已成为最受欢迎的编程语言

ChaoCai · · 338 次点击 · 开始浏览    置顶
根据 3 月 2 日,Hired 发布的《2019 软件工程师状态》报告中指出,具有 Go 经验的候选人是迄今为止最具吸引力的,平均每位求职者会收到9 份面试邀请。 二、三、四分别是 Scala、Ruby 和 TypeScript。让人费解的是 Java 仅排在第九,平均每位求职者只能收到 6.5 份邀请。C++、C 和 C# 的邀请次数更低,垫底的 R 语言使用者甚至平均只能收 3 份。其实,每门语言都有其优势,但我想跟大家聊聊 Go 语言为何受到如此多的关注。 今年恰逢 Go 语言发布 10 周年,2007 年 3 位 Google 天才程序员想通过开发一种新型的语言,解决 Google 软件开发中面临的问题:多核硬件架构、超大规模分布式计算集群、Web 开发模式导致的前所未有的开发规模和更新速度,于是 Go 语言诞生了。 这些也是互联网公司面临的普遍问题。也因此,阿里、腾讯、百度、滴滴等一线公司,几乎都在自身业务中用到了 Go 语言。对应地,招聘市场对 Go 语言工程师的需求,不论是数量还是薪资,都在与日俱增。 在去年的 QCon 北京全球软件开发大会上,我做了题为《讲给 Java / C++ 开发者的 Go 高效编程》的主题演讲,会后跟大家交流,发现许多人对 Go 语言的学习有需求和热情。而我身边有不少工程师,都开始学习和使用 Go 语言。 最早接触到 Go,是我在亚马逊(中国)担任首席架构师时。偶然的机会,我发现亚马逊的一个主流服务框架对 Go 语言提供了支持,并且列举了 Go 语言特性和由此带来服务开发的优点。那以后,我开始学习并尝试使用 Go 语言来编写服务。 我从小学四年级开始学习编程,学习和使用过很多不同的 编程语言,对于语言学习的体会就是,学习一种新的语言最重要的是了解他的特点(如:内存管理和并发)及特有的编程模型(如:函数式编程,面向对象编程等)。学会使用新语言来思考,而不要总是套用以前的习惯编程模式,表面上是使用新语言开发,实则把一种语言翻译成另一种语言来表示。 正如 C 语言程序员学习 C++ 一样,由于原有习惯思维模式的影响,很多工程师在使用 Go 语言时也会常常会陷入一些误区,会用 C 或 Java 语言的方式进行 Go 语言编程。 比如下面的这段代码,在 C / C++ 程序员的眼里是不是觉得存在严重 Bug ?可是他在 Go 程序里是完全正确的: func foo() *int{      var i int      i=10     return &i } 在实际的开发工作中,我发现有编程基础的工程师们,在学习 Go 语言时,往往会陷入下面的误区: 大量使用共享内存的方式进行并发控制,而忽略了 Go 内置的 CSP 并发机制; 常在方法调用间直接传递数组,导致大量内存复制。而 Go 的数组参数是通过值复制来传递的。 总喜欢创建一个只包含接口定义的包,以处理依赖关系。而 Go 中接口的实现对接口定义是没有依赖的。 正是这些误区,导致了大家在学习和使用 Go 语言过程中的低效和不准确,而这些又很难在技术社区或书中找到答案的。为了让大家更高效掌握 Go,我在极客时间推出了《 Go 语言从入门到实战》视频课程。 课程会通过大量代码实例讲解 Go 语言的特性,并将 Go 与其他语言的不同点进行比较,指出它们在编程和应用上的差异,帮你少走弯路。 我是谁? 我是蔡超,目前在 Mobvista 担任技术副总裁兼首席架构师,之前的 9 年,我曾在亚马逊(中国)、惠普等世界级 IT 公司担任过首席软件架构师。 我拥有 15 年的软件开发经验,学习和使用过很多的编程语言,如:BASIC,PASIC,Perl,Python,C/C++,Java,Lisp,Haskel l 等,当然,也包括 Go 语言。 在这些语言里,Go 简单,高效及高生产力的特性,非常适合于大规模互联网服务的开发,现在我在 Mobvista 带领团队,使用 Go 语言构建了国内最大同时也是全球排名前十的移动广告平台,这个平台每天处理着来自世界各地的超过 500 亿次请求。 我能帮你做什么? 如果你有一门或多门编程语言的使用经验,希望快速掌握 Go 语言,并有效利用其特性来进行实际项目的开发,那么这门课程非常适合你。 课程分为基础篇与进阶篇两个部分: 基础篇,我会对比 Go 语言的基础语法和其他其他编程语言的不同,帮你高效率的入门 Go 语言的开发。 进阶篇,我会帮你分析 Go 语言在开发中的常见问题,比如并发编程模式,常见并发任务,高可用性服务设计,性能调优等等难题,帮你从入门走向实战。 ![1438140842.jpg](https://static.studygolang.com/190309/72d9625d7772a6ee5fafca444cfe4ba6.jpg)

入群交流(该群和以上内容无关):Go中文网 QQ交流群:731990104 或 加微信入微信群:274768166 备注:入群; 公众号:Go语言中文网

338 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传