查看原文
其他

Go语言学习&求职路径(附Go语言书单)

👆点击“博文视点Broadview”,获取更多书讯


曾看到一篇文章说“2022全球开发者薪资PK:中国排在第19名,使用Go语言最赚钱”,这篇文章是根据技术人才智能招聘平台CodeSubmit发布的一份软件工程行业的薪资报告得出的结果。

原来使用Go语言最赚钱,想必大家看到这个结果也非常想要进一步了解一下这门语言!

为此,博文视点“解惑杂优铺”栏目邀请到《Go语言从入门到项目实战(视频版)》作者萧文翰老师和董树南老师做客直播间,带来了一场“Go语言学习&求职路径”的主题直播访谈。

萧文翰老师,拥有9年的实战开发经验,也是CSDN博客专家,腾讯课堂认证讲师。深深地感觉到 Go 语言的便利、高并发等优势,坚信它会带来一场“革命”。

董树南老师,从事软件开发工作7年,是西安近代化学研究所副研究员,项目开发经验非常丰富。从2019年开始尝使用Go语言,配合开源的Web前端框架如Vue.js和Three.js,开发与研究所业务相关的数据分析和数据可视化工作,服务于科研和试验任务。

以下为简单整理的访谈文字稿,欢迎关注“博文视点Broadview”视频号观看完整直播视频!



Q:两位老师都是在有编程经验的情况下转而学习Go语言,那初学者能否直接将 Go 作为入门语言?因为一般学编程语言都是从C/C++开始学起,如果直接学Go的话这样会有什么优势劣势?

萧:我记得古典老师(就是写《拆掉思维里的墙》的作者)曾经说过打造Pi字型人才,而不是T字形人才。简单地说就是在一个领域有深度,且有一定的广度的同时,再发展出第二深度领域。当第一深度领域不利于求职或者日后没什么发展前景时,可以迅速切换到第二深度领域。如此便能增强个人的职场竞争力,有助于求职。

我觉得在选择学习编程时候,也可以参考Pi型发展。具体来说,就是先学精一门语言,然后再掌握另一种语言。特别是工作时间久了就会有体会,如果一门语言掌握得比较好,学习另一门语言是特别快的。所以我个人觉得保守起见,Go 语言可以作为第二语言来掌握,大学时候既然先接触的 C/C++或是 Java,那就先把它们学好。

董:孙子兵法云“兵无常势,水无常形”。从哪一门编程语言学起,并将编程开发作为自己的工作技能,其实并没有必然一定的规则。个人觉得第一门编程语言不应该太难,这样学习曲线就不会非常陡峭,容易在学习和实践过程得到“正反馈”。

个人认为Go语言就是降低了很大学习门槛的C语言,从个人学习经历而言,在学习Go语言后,不再像当初学习Python之后,痴迷于各类强大的第三方库,而是很多时候习惯于自己去开发一些偏底层的东西,而不是简单地调用第三方库的API。

《Go语言从入门到项目实战(视频版)》一书中的实战案例,也采用基于Go语言原生http库来实现一个Web Server程序,因此我们不但能够了解构建Web Server程序的流程和原理,本质上也就是接收用户请求并返回预期的请求响应,还能够在代码量较少的情况下,亲自实践一个小的练手项目,获得相应的“成就感”,也就是我们学习编程时最好的正反馈。

而且,我发现,在学习和熟悉Go语言之后,再回过头来学习C/C++语言时,你会觉得也没有初次接触时那么难。


Q:Go语言目前在哪些方面有应用?用 Go 语言能做什么实用/有意思的东西?

萧:因为我是做客户端产品出身,所以能想到的东西基本上都和客户端产品有关,不得不说,有了Go语言之后,一些实用工具类的软件我几乎没再找过现成的。

我自己用Go语言实现了把读书笔记批量同步到Flomo的命令行程序,还有文件夹同步、大量文件按规则重命名之类的。

最主要的体会就是用Go语言实现这些小工具非常快,这种完全“定制化”的软件提供的功能上的自由度是任何成熟软件都无法比拟的。我有差不多10年的编程经验,Go 语言是第一个能让我有这种想法的编程语言。除此之外,一些复杂的大型商业软件,比如Docker、K8s等都是基于 Go 语言构建的,所以如果想用 Go 来开发大型软件也是没问题的。

董:Linux系统之父也就是Linus,写过一本自传《只是为了好玩》。我们在学习和工作中,也应保持一份对世界和技术的好奇心,这里我举两个例子。

我们在业余生活中玩一些3D游戏,或许听说过游戏里的3D模型都是由三角面构成,我们可以通过查询比如以二进制方式编码的STL格式的三维模型文件格式定义,通过编程的方式将其中的数据信息提取出来,利用其数据做一些更有意思的事情。再比如,二战期间破译德军Enigma密码的数学家图灵,为盟军的反法西斯战争胜利贡献了巨大的技术力量。那么我们在了解计算机系统中文件的基本存储原理后,能不能自己开发一个简单的文件加密/解密软件呢?上面两个例子,我利用Go语言编写了两个实战案例写在了书中。


Q:听老师们分享,感觉Go语言很有意思,不过根据最新的编程语言排名榜单看,Go语言排在第14位,和Python、Java、C/C++这种用得比较广泛的语言相比,可能目前看上去依然比较小众,老师们怎么看Go的使用情况,及日后的发展前景,学它有前途吗?

董:以国内的情况来说,Go语言在近年来新生的互联网公司中,相对于老牌互联网公司来说,往往占有更高的技术比重,如国内的字节跳动和我们日常看视频的B站,Go语言占的比重非常之高,我们去招聘网站上看到这两家公司招聘的Go开发技术岗位较多,薪资也较为丰厚。

老牌的互联网公司历史包袱比较重,比如腾讯的历史项目基于C++开发的多一些,阿里巴巴基于Java的多一些,但近年来阿里巴巴也在尝试一些重要的项目使用Go来重构,比如Dubbo。据我一位阿里的朋友介绍说,一个很重要的原因就是Go语言优异的性能和执行效率受到开发人员的青睐。

这里再介绍一家国内全面使用Go语言开发的知名公司:七牛云,他们不仅基于Go语言开发了大量的产品,如视频直播和云存储相关的产品,还基于Go语言开发了一款语法非常像Python的语言Go+,公司的CEO许式伟也是国内Go语言开发领域教父级的存在,感兴趣的朋友可以更深入的了解一下。


Q:我有了解到Go语言发布之后,很多公司特别是云计算公司开始用Go重构他们的基础架构,很多都是直接采用Go进行了开发。这几年火到爆的Docker、Kubernetes就是采用Go开发的,为什么它们都选择 Go?

董:个人认为原因有以下几个:

1)Go语言开发的可执行程序直接就是一个二进制文件,在服务器使用的Linux系统下,仅仅需要glibc这个Linux系统本身就具备的运行环境即可运行,安装部署非常方便。

2)Go语言开发效率高,具有垃圾回收gc,大幅减小了开发人员的心智负担。

3)得益于Go语言简洁的语法,没有其他编程语言中各种繁杂的语法糖,通俗点说也就是其他很多编程语言实现一个简单功能具有多种语法各异的写法,进而导致了多种编程风格。但Go语言不一样,在具有一定开发经验之后,你会发现一个团队中大家写出来的代码差不多都是以一个风格,这也是Go语言的设计哲学之一:有一个最恰当的解决问题的方式就好。精力多花在如何解决问题本身,而不是学习孔乙己,要学会茴香豆的“茴”字的6种写法。这在大型复杂软件项目中,对于团队协作是至关重要的,互相阅读源代码的时候,更方便让大家相互理解。


Q:我们刚刚说到的一些云产品都会采用Go,提起Go语言,可能大家都会觉得Go适合做后端,如果想用Go做前端产品的话可行吗?是否有哪些不合适的地方?有没有做前端的优势?

萧:据我所知,Go是可以做全栈开发的,也就是前后端都能搞定,而且本身又跨平台,所以客户端也没什么问题。

Go其实是挺适合做Web开发的,做WebAssembly比较有优势,甚至还能做Android客户端开发。但毕竟 Go 语言的优势主要体现在服务端,所以前端相对来说发展速度比较慢,而且各种JS框架成熟度都很高。

所以,总体来说Go可以做全栈,对于前端而言,现在这个时间点上看不是最优选择。

董:2020年W3C组织正式将WebAssembly作为继HTML,CSS,JavaScript后的第四个Web前端开发语言。

什么是WebAssembly?简单说,它就是将其他语言比如C++、Rust、Go等编程语言,编译为浏览器可运行的字节码,相比Javascript开发的交互逻辑,可显著提升运行效率。

这里举一个例子,B站的网页端,就是用了WebAssembly技术来进行视频解码。

Go语言标准库内置了WebAssembly开发包,提供了调用Javascript对象和DOM对象的API,也就是说Go语言可以通过将代码编译为WebAssembly的方式来运行在浏览器当中,也就是说Go语言也可以像Javascript一样开发Web前端的交互逻辑,简单的应用场景可以是进行大量的计算或者多线程,支持以goroutine的方式来实现并发处理,感兴趣的朋友可以了解和实践一下。


Q:我们刚也聊到求职就业方面Go的需求,根据目前大厂职位JD,老师觉得招聘时更重视应聘者哪方面的能力?如何进行针对性学习?

董:个人经验而言,大厂更注重应聘者算法和计算机基础知识的掌握程度,编程语言更多的是承载软件技术的载体。

个人觉得,应该学习编程语言的同时,也要多学习和更好的掌握一些基础知识,比如说起来有些老生常谈的算法和数据结构,举个例子,近年来区块链技术大火,各类机构发行了NFT的形式数字收藏品,比如陕西博物馆,感兴趣的朋友可以网上搜索一下。在区块链技术中,其实你从算法和数据结构的角度来看,很多底层的东西或许名字你很陌生,比如默克尔树,Chord环,但是你翻阅相关的技术文档或者书籍,还是算法和数据结构的东西,结合具体的工程技术实践进行了包装和升华。

再就是其他的基础知识,比如网络通讯协议(比如TCP的三次握手)、操作系统(比如什么是死锁?),这些其实都是面试时候比较爱问的基础知识,相当于做软件开发的内功。编程语言一定程度上,可以说是武功招式,最终还是要靠内功才能更好的发挥招式本身的威力。


Q:老师再给我们分享一些学习的小技巧吧,有很多同学对下面的问题可能也会有些疑问,老师可以帮忙解惑一下:

(1)学完基础学什么,有什么好的框架可以提高编程效率?

董:个人建议多做一些实践项目,结合实践项目更好的锤炼自身的技术。框架方面,Go语言比较受欢迎的点就是其拥有高性能的http库,个人建议先试着用原生的http库来写一个Web Server,在熟悉和理解了Web Server的运行机制后,可以考虑使用第三方框架,比如我在项目中使用Gin框架来简化开发过程。其实,在用好的第三方框架的时候,我们也不妨时不时地在IDE中点击其API跳到第三方框架的源码,比如故障恢复,用原生http库的时候,我们需要自己去写recover函数,而在Gin框架中,recover函数被封装成了中间件的形式,默认情况下即可加载。

(2)有什么比较好的日常学习方法?

萧:我这里提供两种学习方式,看个人的情况选择。

一是传统的“啃书”式,也就是从基础开始跟着书或者官方文档一点点学习,每天都练习。这种方式比较适合时间比较充沛,想把基础学的比较牢的同学。弊端就是比较耗时,而且会受记忆遗忘曲线的影响。

另一种是用问题驱动学习的方式,也就是遇到一个实际问题,然后查书或者文档,最后解决问题。这种方式比较适合时间紧、任务重的情况,或者就是有编程基础,想快速上手Go语言的同学,但是这种方式也有弊端,就是基础部分可能不如前面一种方法那么牢固。

我其实更推荐第二种方式,把编程语言工具化。毕竟现在要学习某项技能和在学校里学习是不一样的,学校里学习往往是为了应试,其次才是为了解决实际问题。在工作中学习大多数都是为了解决实际问题,而且往往还不是用单一技能就能搞定的,还要去适当点亮其它技能树。所以一些伴随学生思维而来的惯性习惯就需要适当调整。

在实际工作当中通常是“结果导向”,所以我在进行新技术学习的时候不会太抠细节,除非是特别需要或者特别想要研究语法。因此只要能解决问题,无论采用什么方法完成都能算“好”方法。

有时我也会在网上找现成的代码,然后直接测试,没问题再去看具体实现。而不是一上来就自己想具体方法。至于代码是否足够简洁优雅,那也不是初学者一上来就能做到的,当然公司也不会让初学者做到这一点,所以也不用太花时间。

(3)如何面对大量的包,太多方法记不住怎么办?

萧:在实际工作当中,尽早把“背”忘掉。常用的东西会自动记住,根本不用花精力记忆;不常用的东西随时查,也费不了多少时间。反倒是“背”,占用了大脑,永远要记住:我们的大脑是思考问题的,不是记东西的。现在的生活,每天的信息量巨大,“背”绝不是一个好对策。

(4)面对一个复杂的需求,没法下手怎么办?

董:在工程实践中,再复杂的事物,我们也会利用逐步分析和拆解的方式来研究问题的解决方案,如同一架飞机很复杂,可能拥有几十上百万的零部件,但是对其拆解后,我们会看到它由机身、发动机、控制系统等等组成,每个部分又可以逐步拆解。

同样地,我们应对复杂需求进行拆解,划分需求的不同组成部分,比如开发一个数据可视化大屏展示系统,首先肯定会将程序划分为服务器和客户端两部分,然后服务器需要考虑需要展示和传输的数据有哪些?是否有实时性需求?如果是实时性需求,是否考虑采用WebSocket或者RTMP协议向客户端推送数据。如果采用WebSocket的方式,那么我们要考虑如何使一个常规的无连续性的HTTP连接升级为保持连续性数据传输的Socket连接?当然,可以自己去实现,也可以借助第三发框架如gorilla/websocket第三方库。

(5)如何应对技术的快速更迭?

萧:不用太过担心,技术更迭看似很快,实际却很慢。

说它快,正如我们看到的,编程语言的SDK更新速度快、新编程语言的诞生层出不穷,框架也层出不穷。说它慢,是因为本质其实没怎么改变。

举个特别容易懂的例子,如何声明一个整数?用int。C语言历史很久了吧?它也用int。还有面向对象的理念、算法、数据结构、设计模式……为什么有一系列“编程经典”著作,就是因为它们和具体的编程语言关系不大,和编程“思维”关系很大,只要拿捏住“核心”,新技术无非是看看说明书就能使用的工具。拿这些“核心”思维去套,写出的代码就不会太烂。

(6)《Go语言从入门到项目实战(视频版)》一书怎么搭配配套视频学习比较好?如何使用老师的这本书更有效地学习?

萧:个人建议用书来做具体细致的学习,利用碎片时间看视频。我们确实是这么设计的,每段视频都很短。书里面的练习题我们也会给出参考答案,供大家使用。所以每章节最后的练习也是要做的。编程语言,光学不用,约等于没学。练习的过程就是加深理解和记忆的过程。


Q:最后,老师有什么想对初学者的忠告?

萧:踏实,有定力。别人在玩游戏,那是他们的选择,你有你的选择。你选择A,就意味着放弃了B。人的精力总是有限的,“想要得到”非常容易,“决定失去”却非常难。想要什么都得到,那只能说是贪婪。所以明确了自己的选择,那就一心朝着目标前进。

投资自己。特别是年轻人,要舍得在自己身上花钱,当然是值得“花”的方面。比如学习、比如买电脑。

正确认识努力。尽快摆脱学生思维,努力不一定就有回报,要学会接受结果。所以努力也并不意味着不吃不喝不睡觉,该吃吃该喝喝,该玩就去玩。正所谓尽人事听天命,做事时候投入做,做漂亮了就痛快玩。成功很大一部分在机遇和运气。

打好基础。基础好的人和基础差的人在实际工作上有时会有很大的差异,千万不要这山望着那山高,基础没学好就学上层知识,到最后就学的云里雾里的,二把刀。请大家相信“老天都爱笨小孩”,最快的方法也许看上去很慢。而且一些不太有技术积淀的公司,由于对技术本身理解不深,面试官的思想也许还停留在比较基础的层面,所以面试的时候问的大多也是基础问题。尽管你实战项目再多,基础不牢一样挂掉。

编程能力的培养。编程能力是解决问题的能力,不仅在工作当中用得上,在生活中也或多或少有用。它严谨,有层次结构,还需要信息组织能力、多维度视角等等。这些东西都是通用技能。

当然这些所谓忠告大家不要当作教条去遵守,适合自己的才是最重要的。我们在选择一条职业道路之后,走得越远越会发现,一方面我们在用各种“技能”解决实际问题;另一方面,这些“技能”也在反过来塑造我们自身。我特别喜欢得到系老师“和菜头”的一句话:“请你相信我所说的每一句话都是错的。如果你理性分析这句话,你会发现这句话其实是一个很有意思的悖论,用来证明无论正反、相信或者不相信,他永远都是对的。”所以没有什么绝对的正确,尽管看上去编程语言是严谨的,精准的,但用的多了就会发现,它的写法同时也是自由的,灵活的,多变的。有可能之前版本不允许的语法,新版本就可能支持了。

最后祝大家都能在软件开发的道路上发展顺利。

董:我以前学习Python的时候,有一个把Python的设计哲学总结成23句话的Python之禅,同样,Go语言也有设计哲学,只不过没有被总结或者像Python那样输入import this就能打印出来。

Go语言的设计哲学:1)把简单的事情变复杂不难,把复杂的事情变简单很难,因此Go语言具有非常简洁的语法。2)“鸭子类型”的思想,依靠接口interface+结构体struct+方法method就可以实现面向对象编程。3)不应该基于共享内存来通讯,应该基于通讯来共享内存,因此设计了这个数据类型通道chan。4)原生支持高并发,函数前仅仅加一个关键字go,就可以实现函数的并发运行。

搞懂设计哲学,把复杂的事变简单,事半功倍!

想要全面细致地了解Go语言?欢迎阅读老师们的新书《Go语言从入门到项目实战(视频版)》!

Go语言从入门到项目实战(视频版)》

刘瑜 萧文翰 董树南 著

  • 全面细致介绍Go语言的语法及具体示例,搭配3个完整实战项目、131个源码示例、配套短视频及PPT!

  • 更有练习与实验手册、QQ群&微信公众号在线服务!


Go语言是近几年广受关注的一门新兴编程语言,在设计之初就致力于解决C语言的低效问题,以及C++语言的晦涩、难用等缺陷。Go语言吸收了C、C++强大的开发功能优势,继承了C、C++的编程风格,被广泛应用于构建数字基础设施类软件,以及图形/图像处理、移动应用、人工智能、机器学习等领域,广受国内外大型IT公司的推崇和关注。 

本书除了讲解Go语言的基本开发知识,还提供了3个完整的实战项目及131个源码示例。另外,本书提供对应的练习与实验,方便读者对所学知识进行巩固和检验。本书适合高等院校学生阅读,适合程序员自学,也适合培训机构使用。

(关注限时优惠福利,扫码抢购!)


更多相关图书
Go语言底层原理剖析》

郑建勋 著


  • 知识解构、底层探秘、技术重组、全局视野,带你实现Go语言的能力跨越


本书使用浅显易懂的语言与大量图片深入介绍了Go语言编译时、类型系统、语法特性、函数调用规范、并发编程、内存管理与垃圾回收、运行状态监控等模块的使用方法和底层原理,并举例说明了构建大型软件工程需要遵循的设计规则,让作者系统并完整掌握Go语言隐藏在使用方法背后的底层细节。

本书适合有一定工作经验的开发工程师进一步提升自己,以便更好地开发软件、系统架构,并进行工作面试。也可以作为高等院校计算机专业师生学习编程语言设计原理的参考教材。

(关注限时优惠福利,扫码抢购!)

Go Web编程实战派——从入门到精通》

廖显东 著


本书涵盖从Go语言入门到Go Web开发高手所需的核心知识、方法和技巧,共分4篇。

第1篇“Go语言入门”,介绍Go语言的基础语法,既使没有Go语言基础的读者也可以学习本书。

第2篇“Go Web基础入门”,包括3章:Go Web开发基础、接收和处理Go Web请求、用Go访问数据库。本篇能使读者快速掌握用Go语言进行Web开发的基础知识。

第3篇“Go Web高级应用”,包括4章:Go高级网络编程、Go文件处理、Go并发编程、Go RESTful API接口开发。本篇能使读者用Go语言快速开发各种Web应用。

第4篇“Go Web项目实战”,包括2章:【实战】开发一个B2C电子商务系统、【实战】用Docker部署Go Web应用。

本书可作为Go语言初学者、Web开发工程师的自学用书,也可作为培训机构和相关院校的教材。


(关注限时优惠福利,扫码抢购!)

Go语言学习笔记》

雨痕 著


  • 一如既往的低调,也一如既往的务实

  • 本书文风极简,干净利落

本书经四年多逐步完善,内容覆盖了语言、运行时、性能优化、工具链等各层面知识。且内容经大量读者反馈和校对,没有明显的缺陷和错误。上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。下卷则对运行时源码做出深度剖析,引导读者透彻了解语言功能背后的支持环境和运行体系,诸如内存分配、垃圾回收和并发调度等。《Go语言学习笔记》不适合编程初学入门,可供有实际编程经验或正在使用Go 工作的人群参考。

(关注限时优惠福利,扫码抢购!)

Go语言极简一本通:零基础入门到项目实战》

欢喜 著


  • 一本就通,一学就会

本书是一本Go语言入门书,全书共分为三部分。第一部分讲解Go语言基础知识,包括变量与简单类型、数组、切片、流程控制、字典、函数、结构体与方法、接口等,可以帮助读者快速掌握Go语言的基本程序结构。第二部分讲解Go语言高效并发相关知识,包括协程与通道、并发资源、包管理和测试等,让读者对Go语言层面的并发支持有更深入的理解。第三部分讲解Go语言项目实战,包括Gin框架、生活点评项目实战、账户管理系统实战,以及OAuth 2.0的授权协议等。通过实战,把前面讲解的知识点运用起来,帮助读者快速上手,积累项目经验。

(关注限时优惠福利,扫码抢购!)

Go语言编程之旅:一起用Go做项目》

陈剑煜 徐新华 著


  • 包含5个大的Go项目实践及重点源码分析

  • 针对Go语言的分析工具及常见问题进行了全面讲解

全书共分为6章,分别是命令行应用、HTTP应用、RPC应用、WebSocket 应用、进程内缓存和 Go语言中的大杀器,其中前5章是Go语言开发中最常见的项目类型。本书对项目开发、细节分析、运行时分析等核心内容进行了较为深入的剖析,提供了相对完整的项目实践经验。在项目迭代过程中,难免会遇到问题,因此本书针对Go语言的大杀器(分析工具)及常见问题进行了全面讲解,帮助读者对各类问题进行排查。本书适合有一定Go语言基础的读者以及相关开发人员阅读。

(关注限时优惠福利,扫码抢购!)

Go专家编程》

任洪彩 著


  • 华为资深工程师力作

  • 精选实战题目+答案解析助力面试通关

本书深入地讲解了Go语言常见特性的内部机制和实现方式,大部分内容源自对Go语言源码的分析,并从中提炼出实现原理。通过阅读本书,读者可以快速、轻松地了解Go语言的内部运作机制。

本书首先介绍Go语言常见的数据结构及控制结构的实现原理,包括管道、切片、Hash表、select和for-range等,这部分内容大都以几个精心准备的测验题目开头,每个测验题目均对应一个知识点,读者可以借此测验自身对该知识点的掌握程度。接着介绍了Go语言最基础的概念,包括协程的概念、协程调度模型、协程调度策略,以及内存分配和垃圾回收相关的内容。本书还介绍了一些标准库、异常处理和依赖管理等非语法相关但非常重要的内容。最后结合作者的见闻,整理了一些发生在真实项目中的编程陷阱。

(关注限时优惠福利,扫码抢购!)

Go语言核心编程》

李文塔 著


  • Go语言精华部分 ——并发和小而美的类型系统

  • Go陷阱——主要论述使用Go过程中大家很困惑或容易出错的地方

  • Go语言的哲学——总结Go的设计哲学,懂得Go作者的设计意图,才能更好地使用该语言

Go语言的核心语言特性包括:类型系统、接口、并发。这三部分是Go语言精华、优美、也是重要的特征,本书紧密围绕这三个主题展开。以“类型系统”为例,Go语言中的类型有:简单类型、复合类型、命名类型、未命名类型、静态类型、动态类型、底层类型、接口类型、具体类型以及类型字面量等诸多概念,这些概念在其他Go类图书里面鲜有介绍,本书试图帮助读者梳理清楚这些类型的含义,建立概念,认清类型本质并学会正确使用;在接口章节,不单介绍了接口概念和用法,还深入分析了接口的机制,使读者对Go语言非侵入式的接口有更深入的理解;在并发编程章节,书中给出了5个并发编程范式,并用图描述并发程序的模型,通俗易懂,这也是本书读特点。

此外本书还拿出一整章内容介绍Go语言编程过程中可能遇到的陷阱,不仅告诉读者陷阱是什么,正确使用方式是什么,同时也给出出现这种问题的根本原因,使读者后续能够避免犯同样的错误。

本书最后从哲学角度论述下Go语言的编程思想,相信Go语言爱好者一定可以从书中找到自己感兴趣内容。

(关注限时优惠福利,扫码抢购!)


书单好书任你选

按以下方式与博文菌互动,即有机会获赠以上任意一本图书

活动方式:关注下方“博文视点Broadview”公众号,在后台回复“书单抽奖”参与活动,届时会在参与的小伙伴中抽取3名幸运鹅!

活动时间:截至12月12日开奖。

快快拉上你的小伙伴参与进来吧~~

发布:刘恩惠

审核:陈歆懿

 如果喜欢本文欢迎 在看留言分享至朋友圈 三连

 热文推荐  





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存