大家好,我是苍何呀。
在网上刷到一条比较逆天的言论,说“计算机是天坑,特别是 Java,学历差真别学了,学历好其他专业也是一样赚钱”。由于我自己学历就很一般,按照现在的说法是叫双非吧。但我现在混的自认为不比我的那些 985 的高中同学混的差多少,转行,进大厂,做管理,干开源是我这些年来的转变和成长。
其实,这位同学的抱怨,我是能深刻理解到的,学历在很多时候是真的硬伤,张雪峰老师曾经就在一档节目中公然发表言论,直击现实。
你去齐齐哈尔大学看看,来招聘的都是些什么企业,你再去清华北大看看,来招聘的基本都是世界 500 强。
学历是企业招聘的一个重要筛选条件,但我觉得真正重要的是个人的实际能力与经验积累,而且学历差别学计算机了,那能学什么更好呢?学金融?还是去学土木呢?那学历差还到底要不要找工作了?
反倒是计算机编程能让我们比其他专业倒腾更多的事情,比如有人业余帮人接外包写网站,做 APP,有人帮人接毕设项目,有人倒腾开源技术为社区做贡献,有人自己开发小而美的产品,赚点小钱。这些你放在其他行业,会比较难有这么多的变现途径。
况且编程我认为应该是重要的思想,是将我们现实世界抽象化的表达,甚至在欧美国家,编程是从小学开始就必须掌握的必修课。我相信,随着 AI 的加速,中国的教育也一定会把计算机编程作为必修课。
借此分享自己最近面对高学历高中同学拷打后的一些感悟吧:
本来死寂沉沉的高中班级群,突然收到一份来自母校的调查问卷,主要是填写毕业生就业情况。看了一眼同学的经历,被按在地上摩擦了 N 遍,一个四十多人的班级,十几个博士,十几个硕士,仿佛我一个小本科,在学历上被无情碾压。我知道我们班很多人,一直在学术的道路上越走越远,好到有同学进了中科院,有人在物理界取得了不错的造诣收到了国家级表彰,而反观自己,还在社会中摸爬滚打,和学术派形成了鲜明的对比。
先介绍下背景吧,我们高中属于重点高中中的尖子班,而我恰恰是以最后一名进去的,里面真是学霸特别多,倒一的感觉很不好受,整个三年现在看来是完成了从倒一到中位数的进步。
但是命运喜欢弄人,偏偏报了个当年热门的土木专业,一毕业就要遭受来自工地的拷打和活在无止境的自责中。
后面咬牙转了计算机,在中小公司都有待过,后面运气好,有幸去了科大讯飞和蚂蚁金服这些所谓的大厂,回忆这一路的艰辛,发现太他妈难了。那些我以为的曾经高考超越的同学,现在从各个维度感觉给了我很大的碾压。
但后来一想,人生就像是马拉松,不到终点,都没有所谓的输赢,而人生的意义,或许并不在于世俗的输赢,而在于沿途的风景和过程。
当你感觉到幸福、快乐、满足,其实你的人生就过出了自己的意义。跨度的攀比没有意义。而我,此时此刻,并不觉得比那些高学历的大神们混的差,因为我找到了自己一生的热爱,我热爱编程,我喜欢写作,我爱好分享,我能感到满足和幸福,这是我当下的感受。
以及,我觉得我能在自媒体和开源平台,帮助到一些在职业道路上遇到问题的同学,哪怕是提出自己的一点点建议,只要能多少有些帮助,我就有成就感。以及我正在做的开源项目的初衷也是为了借助实战项目帮助更多的同学拿到更好的 offer。 特别是当有人给我反馈说通过我的建议拿到了 offer,摆脱了什么坑,学到了什么知识,那就是我最大的欣喜,我感到很自豪,觉得我的人生特别有意义。
如果此时此刻,你正在攀比中焦虑着,为什么别的同学拿到实习,找到工作, 而自己再努力却还是杳无音讯,仿佛自己就是最差劲的那个,请不要灰心,我希望自己的经历能多少给你些慰藉,我们都不差,只是差那个最适合的机会在等待着我们而已,只管努力,一切都不会白费的。
我的故事分享完啦,下面继续分享开源实战项目知识,开卷!!
Git 提交规范
无论是做开源协作,还是公司项目中的协同开发,约定大于配置大于编码永远是最重要的,Git 提交规范对于维护项目的质量和效率有着重要的作用。
下面分享下我们约定的提交规范,也请参与到我们项目中的小伙伴按照规范要求提交 PR 哦,否则大概率通过不了。
功能 | commit规范 | 示例 | 描述 |
---|---|---|---|
新功能 | feat/module_name | feat/multi_merchant | 开发一个新功能 |
bug修复 | bugfix/fix_name | bugfix/user | 修复某个功能模块的bug |
紧急修复 | hotfix/fix_name | hotfix/create_order | 紧急修复某个严重bug |
性能优化 | perf/name | pref/user_login | 优化某个功能的性能 |
格式调整 | style/name | style/log_print | 做一下不影响任何业务的优化,比如删掉不使用了的注释之类 |
重构 | refactor/name | refactor/user | 重构某个功能模块 |
测试 | test/name | test/user | 测试相关, 不涉及业务代码的更改 |
文档和注释 | docs/name | docs/user | 文档和注释相关 |
更新依赖等 | chore/name | chore/user | 更新依赖/修改脚手架配置等琐事 |
后端返回格式定义
实战项目中进行了统一的数据返回格式定义,无论是前后端联调还是 feign 接口调用,接口约定大于编码,所以前期项目这些东西必须先确定下来,否则等后面每个人开发的返回格式不统一,那可真的是头大。
{ "code": 200, "msg": "success", "data": null } # 返回page格式 { "code": 200, "msg": "success", "data": { "list": [], "total": 0, "size": 1, "current": 10, "searchCount": true, "pages": 0 } }
命名规范
遵守阿里《Java 开发手册》编码规范,在 idea 安装插件。 返回字段,请求地址统一采用驼峰。工具类以 Utils 结尾,例如 JWTUtils,枚举统一采用 Enum 结尾,例如 ResultEnum 。列出规范中要求的几个关键项,具体细则结合着手册以及插件辅助:
- 项目名全部小写
- 包名全部小写
- 类名首字母大写,一般都是使用驼峰式命名
- 变量名、方法名首字母小写,如果名称由多个单词组成,后面的每个单词的首字母都要大写。
插件安装如下:
setting->选择Plugins->在搜索框输入:Alibaba Java Coding Guidelines->Installed
数据库设计规约
1、 数据库使用 utf8mb4 字符集、存储引擎必须使用 InnoDB. 数据库名、表名、字段名统一使用小写字母或数字,切记不可以数字开始,库名跟项目名保持一致,表名如:b_业 务名称_表的作用表名不使用复数名词(反对orders)
2、 表名避免过程用简写或者缩写,长度不超过 32 个字符 表、字段 必须加注释
3、 唯一索引名为 uk_字段名;普通索引名则为idx_字段名;表中索引数量不要超过6个 . 建立索引在选择性高的字段上,不要在sex、status上建
表中必须指定主键,且只有一个,主键的命名统一为: id
4、 所有字段尽量根据业务设置合理的缺省值(默认为:0),尽量避免表中出现 NULL值 . 小数类型为decimal,禁止使用float和double
因为篇幅有限,我把后端开发手册整理好了,可以查看后端开发手册规约
在项目中进行规范约定可以显著提高团队协作效率,减少错误,提高代码质量,并且使项目更易于维护和扩展。特别是对于开源项目,远程协作的前提下,必须约定好规范,况且遵循规范,对我们自身的提升也是非常大的。
今天的分享就到这啦,感谢您的阅读!
还没有评论,来说两句吧...