Let's Go
相关链接 #
资料合集 Golang
资料合集 JAVA
资料合集 Kubernetes
资料合集 其他
评价 #
对比 JS #
go 开发 web 其实效率很低,现在基本没有哪个框架够得上及格线。
莫慌,golang 也卷 而且目前看 golang 很有可能走 node 的老路
所谓中间件是个纯工程化的东西,不建议理论基础都还没打好又没有实际经验的时候深入。 遇到问就说大概看过原理,其他不知道就行。花式问应届生中间件的公司 /项目组大多也不靠谱。
竞品 Node.JS 凉凉 https://www.v2ex.com/t/630587
同意楼上观点,node 目前国内场景还是 node 微服务,写中台这些,纯 node 后台确实没有搞头 XD
想当然了吧,python 的确半死不活,但是绝对比 nodejs 好多了。
node.js 最火是七八年前, 现在也是前浪了, 就不要互相伤害了
https://www.v2ex.com/t/790207 https://www.v2ex.com/t/763188
py 和 js 的开发者从来就不是高重合的群体,都是各写各的,各用各的;
web 现在是红海,发展比较平稳,各语言份额很稳固;
nodejs 远远没有前几年预测的那么火,为了性能和时髦转 go 的更多;
新的后端项目不是 go 比较多么,国内很多公司都是 python 转 go 吧,没见过多少转 nodejs 的
前端也会有比较烦的,我举点例子:
- react Filber 流程,scheduer 调度过程,diff 现在问的不多的样子了,区分一下 concurrent 和 legacy 模式
- react 系列的 redux, mobx 等原理,hooks hoc render-props 之类的对比一下
- webpack 内部执行流程,要写个插件怎么写,babel 原理,ast 树操作,写个插件
- js 手写系列: Promise 一定需要完整的背下来不然问题会很多,dubounce, curry,compose 等一些小方法,比较老的是 new 啊,继承方面之类的实现
- 算法方面 简单加中等题就好了,我面了几家让我写了好几次的反转链表啥的了
- 协议方面,http https http2 系列加缓存配置这个需要背的烂熟, 对应的 nginx 相对应的配置啥的也要玩一下, 相应的浏览器加载网页的流程也要记的熟
语言占比 #
注意:go的模块直接发布在Github上,因此可能导致占比偏高
Language | Percentage (YoY Change) | |
---|---|---|
1 | Python | 17.926% (+1.438%) |
2 | JavaScript | 14.058% (-4.714%) |
3 | Java | 12.208% (+0.662%) |
4 | TypeScript | 8.472% (+1.818%) |
5 | Go | 8.161% (+0.027%) |
6 | C++ | 6.670% (-0.331%) |
7 | Ruby | 6.165% (-0.783%) |
8 | PHP | 5.252% (-0.322%) |
9 | C# | 3.372% (-0.301%) |
10 | C | 3.150% (+0.023%) |
Tiobe https://www.tiobe.com/tiobe-index/
2022 | 2021 | Language | Ratings | Change |
---|---|---|---|---|
1 ↑ | 3 | Python | 15.33% | +4.47% |
2 ↓ | 1 | C | 14.08% | -2.26% |
3 ↓ | 2 | Java | 12.13% | +0.84% |
4 | 4 | C++ | 8.01% | +1.13% |
5 | 5 | C# | 5.37% | +0.93% |
6 | 6 | Visual Basic | 5.23% | +0.90% |
7 | 7 | JavaScript | 1.83% | -0.45% |
8 | 8 | PHP | 1.79% | +0.04% |
9 ↑ | 10 | Assembly language | 1.60% | -0.06% |
10 ↓ | 9 | SQL | 1.55% | -0.18% |
11 ↑ | 13 | Go | 1.23% | -0.05% |
12 ↑ | 15 | Swift | 1.18% | +0.04% |
13 ↓ | 11 | R | 1.11% | -0.45% |
14 ↑ | 16 | MATLAB | 1.03% | -0.03% |
就业 #
不管自学还是培训,完事后赶紧找个带互联网性质的公司(忽略公司大小,先入职),待段时间你就知道了这个行业大家都在用什么,应该学什么,然后重新梳理你需要学习的技能树,然后找资料自学,过程中准备提升学历,最后看情况,要不要跳到适合的好点的正儿八经的互联网公司。
BTW ,认真考虑下是否需要选 Java ,真的太卷了,举个例子,一两年甚至校招,Redis 、MySQL 、消息队列八股文必须熟才有资格往下继续面,用不用得上不重要,你得知道……可以考虑下往 GO 方向卷
Go 和 Java 都写过,我入行不久,但是也面试过别人了
从业务开发程序员角度说下几点希望有帮助:
1.面试:
Java 无疑比 Go 卷多了,Go 的岗位虽然不及 Java ,但是大公司的 Go 岗位并不少;
2.编程:
Go 写起来语法上比 Java 舒服,如果你写过应该会有一样的体会吧;
我写 c#的转 golang 用了一周,虽然写起来没那么舒服,但是挣钱还是没问题吧
7 个小时足够熟练 Golang 了
参考基准为 https://github.com/no1xsyzy/project-v2c/tree/master/v2c-go-gin
基本涵盖了除了数据库交互外的 80% 情景,但拍脑袋写出来的复用性不高。
按照我转语言的经验,找个公司也转的,或者背点语言相关八股文,比如你学的 go 的 GMP 调度模型,垃圾回收机制,锁,sync 包的一些东西,context 包,channel 的一些东西,原子操作的一些东西,语言就过关了
先保证 C 不太差,再学 JAVA,再学 python,最后 golang
C 语言是你理解数据结构和算法的最佳语言(用 C 理解数组扩容、树的遍历是最直接、印象最深的)
JAVA 是在成渝地区应届生就业的最佳选择(用 C++的腾讯系除外,当然成都腾讯也不一样)
python 作为动态语言(也被部分观念传统的人称为脚本语言)的代表之一,是需要非核心系统(当然也有用 python 做核心系统的国际大厂)不错的选择
golang 因为 goroutine 和 io 特性独树一帜,目前势头非常猛,岗位也在快速变多,不少公司规模上来之后选择用 golang 重构(如 B 站),最大的问题是作为应届生基本找不到 golang 的工作。
简单来说,C 语言是你打牢计算机知识体系最好的锤子,JAVA 是你毕业就业的最佳选择(而且本身 JAVA 从语言设计到实践都能带给你非常全面的软件工程领域的知识)
python 和 golang 可以在你觉得枯燥的时候用来找找乐子,两者分别是新兴动态、静态语言的杰出代表(虽然新兴的时代不同),对这两个语言的学习过程更像是“看看这个世界上的牛人们都搞出了什么科幻的东西”。
学习曲线上来讲 C-JAVA & Golang 是比较平滑的,甚至我个人觉得 Golang 像是 C 的扩扩扩扩展包 python 如果放在他们之后学,会不停地让你觉得“这 tm 也可以?”,但是当你要写个小东西,或者要很快的实现一个新产品的时候你会想到它的
之前主要写 java 。也是找了份 go 的工作(找之前不知道是写 go ),然后边工作边学习,大概2 周出活。感觉如果真的要花点儿时间学的话大概两方面,一是 go routine,sync 和 channel ;二是 go module 。
Boss 直聘 #
https://www.zhipin.com/c101210100/?query=golang&ka=sel-city-101210100
https://v2ex.com/t/837108
大部分是外包,BOSS 上找工作之前先把公司类型为”计算机软件“ 的公司都屏蔽了
年 | 公司 | 类型 | 规模 | 薪 | 要求 |
---|---|---|---|---|---|
1 | 滴滴 | - | 1000 | 20k | 常用数据结构和算法 常用存储、缓存、消息队列等基础中间件产品 有良好的业务架构和技术架构能力,大型复杂分布式系统架构设计和调优 |
1 | 天玑 | 数据 | 500 | 8k | 有kubernetes实际使用经验 kubernetes相关原理 |
1 | 长亭 | 安全 | 500 | 20k | 对容器技术,K8S有一定了解 一种常见的后端编程语言 了解掌握常用的数据库,缓存数据库,消息队列,对象存储服务等中间件 对 Go Web 方向有强烈兴趣 |
3 | 不鸣 | 游戏 | 100 | 15k | 游戏开发经验,网络编程,对TCP/IP,UDP等协议有深刻理解 游戏服务器常用的网络同步技术 |
2 | 万朋 | - | 500 | 21k | mysql、redis,etcd等数据库的使用 高性能网络服务设计和开发,HTTP、TCP/IP网络协议 |
- | 佰钧成 | - | 1000 | 16k | K8S,有K8S二次开发经验者,或者对K8S调度原理有深入了解 主流开源框架,比如:gin、viper、beego、gorm、seaweedfs等 使用经历(如:etcd、dubbo、grpc、redis、kafka |
1 | 谐云 | 软件 | 100 | 3k | 计算机/软件/通信相关专业,基础扎实,参加过ACM等编程比赛的优先 了解Docker、Kubernetes 等容器技术优先 |
1 | 门链 | - | 100 | 12k | Linux 操作系统,常见命令行工具 对 Nginx、OpenResty 等有一定了解和使用经验 了解容器相关知识,对 Docker, Kubernetes 等有实际操作使用经验 |
1 | 巴比特 | - | 100 | 12k | 分布式系统,了解微服务框架,运维开发,监控预警系统,硬件虚拟化等其中一种技术 |
1 | 老酒 | 商务 | 20 | 8k | 了解golang语言,MVC框架和ORM框架 Git 有前端经验、小程序、Uniapp经验优先 |
1 | 云际物联 | 硬件 | 20 | 10k | 至少掌握Go/Java/C/C++语言之一,Linux开发环境 |
1 | 华为 | 软件 | - | 15k | kubernetes,istio, docker,Openstack,大数据,AI等云计算相关技术优先 有redis/kafka/zookeeper/etcd等中间件开发和维护经验者 |
1 | 默安 | 安全 | 500 | 18k | Golang进行Web,微服务应用开发 mongodb、redis、elasticsearch的应用 掌握 beego、gin、iris框架的优先 |
1 | 同花顺 | - | 1000 | 16k | 有主流框架的项目经验 常见设计模式、常见数据结构算法、MySQL等关系型数据库、缓存技术、HTTP协议 |
- | 网易 | - | - | 15k | 对操作系统、网络等底层基础知识有深入的理解 Kubernetes、Docker 原理及应用 Hadoop 生态,有分布式系统开发经验者优先 |
3 | 江小白 | 其他 | 1000 | 15k | MySQL或者PostgreSql,redis/MemCache的应用开发、设计原理和性能优化 |
2 | 万佳安 | - | 500 | 12k | 至少一个golang web开发框架(gin,beego) web后台技术,包括http、tcp/ip及MQTT协议,mysql数据库,redis及rabbitmq/kafka消息中间件,ElasticSearch搜索引擎 使用git并有协同开发经验 protocolbuffer,grpc,有微服务,docker,k8s开发经验经验者优先考虑 |
2 | 纵横 | - | 1000 | 15k | 掌握socket、HTTP、web等相关技术 具有高负载、高并发开发设计经验 MySql、Redis等数据库编程 |
- | 鸿衿 | 服装 | 1000 | 8k | 数据库(mysql, sqlserver中任意一种), 缓存(redis)的编程应用 了解Docker;git |
1 | 创达 | 软件 | 1000 | 20k | 业务Docker容器化和kubernetes集群运维管理 |
1 | 乐港 | 音乐 | 500 | 12k | MySQL,能够编写符合优化级别的SQL语句,Redis和Kafka使用 Etcd、Nats、ElasticSearch、Prometheus |
place | hold | ||||
1 | 澜盾 | 教育 | 100 | 5k | 了解或者熟悉 Java/C++/Go中任一语言,具有较强的逻辑思维 |
需求 #
职友集 #
找到 728 条结果, 来自 8 家招聘网站
https://www.jobui.com/jobs?jobKw=golang&cityKw=%E6%9D%AD%E5%B7%9E&experienceType=1-3%E5%B9%B4
参考上一节招聘
# | 数量 |
---|---|
kubernetes/k8s | 12 |
redis | 9 |
数据库 mysql | 7 |
docker | 7 |
缓存 中间件 | 4 |
容器 | 4 |
etcd http kafka | 4 |
gin beego git elasticsearch | 3 |
grpc | 2 |
viper gorm nginx | 1 |
[上海闵行] 游戏服务器开发(Go 优先)-初创公司-上海语昼科技https://www.v2ex.com/t/800585
- 使用 golang 语言开发游戏服务器功能
- 根据策划需求,完成功能模块的设计,编码和测试工作 任职要求
- 计算机相关专业,熟悉 linux 开发环境
- 熟悉 golang 编程语言(C 语系均可),熟悉一门脚本语言更佳
- 熟悉 redis 、mysql 数据库者优先
- 熟悉网络编程、并发编程
- 了解游戏上线前后的相关流程 加分项
- 熟悉 k8s 等相关技术优先
|
|
资料 #
路线: https://roadmap.sh/golang
博客:Go 语言设计与实现,为什么这么设计:关于计算机领域中程序设计决策
多少分钟学会:其中 X=Go
大合集:Github:最全空降Golang资料补给包(满血战斗)
在线操作:go 指南
Spring #
附录 #
|
|
时空乱流记录