php转go的一些学习历程

php

  1. 初次接触编程是2016年,那时出于个人爱好以及为了补贴点生活用度学习了php,负责学校大大小小的网站建设与维护,在此期间基本都是在imooc上面学习的,用了半年的时间刷了5000+经验

  2. 到了2017年下半年基本能自己负责些带有功能性的网站的开发了,和师兄他们一起做了某大学的迎新系统,以及某培训机构的教务系统

  3. 2018年毕业后去到一家做政府相关业务的公司,一个人从0开始做项目,包括需求调研、架构、代码、培训、售后,2020年初重构项目时小组里面有了4个人稍微轻松点了,花了半年的时间基本重构完成了

  4. 但是这两年除了基础的crud基本没有学到更多的东西,其实毕业后去的第一家公司并不能算真正意义上的互联网公司,所以在9月打算辞去这份工作,给自己一个成长的机会

go

  1. 初次接触go是18年末,当时听说go的学习难度基本与php持平,但性能却可以赶超java,于是就去看了下go的基础

  2. go我是自上而下学习的,在了解了go的基础语法后,在网上查找了下go相关的web框架,经过最终抉择,打算先学beego框架,具体的使用一开始,也是在imooc上面学习的
    课程看完后在有其他语言开发经验的基础上写一个小博客基本就没有问题了(对于新知识,看视频学习的话有些东西好理解很多,但是到最后一定都要学会直接看文档)
    为什么我要自上而下的学习,而不是先看底层的基础?我个人觉得先做出东西,再做好东西更容易坚持下来,当你发现你能用它做出功能后更容易保持自己继续学下去的动力一些,一开始就想着去看底层的实现逻辑,可能学到一半就没那么有兴趣了

  3. 会使用框架后,自己练(jie)习(wai)着(shui)写了个聊天室的项目,以及一些实用小工具源码地址

  4. 当使用框架基本没问题后,就开始想着深入了解框架底层的实现逻辑,比如框架是怎么调起web服务的、orm是怎么实现的 … … 等等
    在之后,由于使用上遇到了些问题,加入了相关的技术群,因为平时比较活跃,目前负责项目维护的同学联系到我,让我帮忙写了一些小功能,业余时间就参与到了相关功能的开发中去了,成功提交了一些pr后也方便后续找工作

  5. 框架的使用没问题了就该去学习下官方常用的一些包的使用及实现逻辑了,这里是我学习时记录的部分代码

  6. 常用包学习的差不多了,就应该更深一步的去了解go本身的一些实现,比如map的底层逻辑defer的底层逻辑goroutine调度(GMP)相关逻辑,在此,强烈建议阅读draven的Go语言设计与实现系列文章

  7. 其实在第一步和第二步中间熟悉go语法的时候直接去leetcode刷题也是一个不错的方法,不过出于熟悉语法的目的,建议前期就刷刷简单难度的题就ok了

  8. 学习至此,go语言相关的问题基本就解决了,剩下的就是语言之外的学习了,比如上一点里面提到的算法相关的内容,比如集群相关内容,这里的内容也是我相对薄弱的地方

祝愿

下个月开始,自己就是自由人了,希望能早点成为真正的gopher

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 3年前 自动加精
讨论数量: 14
Dennis_Ritchie

看下go的标准库吧,既然学过beego,可以看下他是如何实现的

3年前 评论
Iwanna (楼主) 3年前

如果想转Go可以把简历发我邮箱:kevinyan815@gmail.com,坐标北京,学历要求统招本科。 公司是互联网健康医疗方向,研发团队目前大概300人。

3年前 评论
PHPer技术栈 2年前

@KevinYan
已发邮件,github上也有简历,期待回复

3年前 评论

draveness 大佬真是让人敬佩。这么牛的人还能持续性的输出blog

3年前 评论
Iwanna (楼主) 3年前

还有些代码风格可以再规范点,看看go的倡导的代码风格,比如注释的格式.社区里好像看到过这种文档. 这里也可以看 github.com/bahlo/go-styleguide

3年前 评论

新手想加入GO群 :smiley:

3年前 评论
Iwanna (楼主) 3年前
kevwan

go-zero群非常活跃,有需要可以加入 从 github.com/tal-tech/go-zero 扫码加入

3年前 评论

也准备转go了,学习路线不错,mark一下

3年前 评论

学下下,感谢

2年前 评论

是不是少了一个这样的文件???
file

file

2年前 评论

@jxdr 添加如下配置到对应目录即可

# 系统配置
appname = im
httpport = 8081
runmode = dev
copyrequestbody = true

RoomCount = 4

[database]
db_host = localhost
db_port = 3306
db_user = root
db_passwd =
db_name = im
db_charset = utf8mb4
db_prefix = im_

[jwt]
token = "welcome to iwangle.me"
2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!