在公司做的项目和在学校/网上视频自学/培训做的有什么区别?
作为一个工作六七年的IT“老人”来说,大约从2015年左右,社会职场掀起了一股“行行转IT”的潮流,而且培训机构更是见风使舵、推波助澜,在线上的软文和宣传,线下的广告标语------“培训六个月,月入几十K,闯入BTA”的响亮口号。
这个社会现象的潮流也不是没有道理的,当时实体经济疲软受到虚拟经济的冲击,尤其是电商冲击实体店……店铺关门,工厂倒闭。各方面传统行业体力劳动者的薪资远远不如IT脑力劳动者,从事实体传统行业的劳动者看着实体企业裁员、降薪……人心惶惶,心里一横索性听信了培训机构的“鸡汤”,非计算机专业的毕业生放弃四年的本科或者三年的专科学历专业转头IT行业培训,一些刚毕业的非计算机应届生不惜贷款万元以上培训(985毕业生李文星仅是一个几十万的学生的缩影),刚开始确实有一批及早上岸的培训学院确实“改变”了人生。
可惜好景不长,过了大约一年多(2016年以后),IT市场需求随着初学者的越来越多,也趋于饱和状态,人才需求门槛也自然而然供过于求提高了。但培训机构进来的小白,短短六个月也就是学了个皮毛基础,为了尽快改变人生,漫天要价。这也使得好多用人单位对于“培训出来的,转行过来的”逐渐产生了嫌弃的心理,培训机构出来的人员又开始包装简历来糊弄用人单位……绝大多数又干回了传统老本行,没办法要还培训机构的贷款。
所以对一些非计算机相关专业的传统转行者/培训者说一句:不要轻易听信培训机构的鸡汤文,不爱好开发偏偏要跟着“钱”勉强进来IT行业的也走不远,走一条适合自己的道路才是最重要的。
在这里想跟大家分享一些练手的项目和公司的项目到底有些什么不同呢?便于大家从公司新人做起的一些参考(仁者见仁,智者见智),仅供参考。
培训机构或者视频里的项目大多是讲师在本地编码讲解一个项目的开发过程,而去公司那就把项目clone(checkout)到本地来看。
- 一般新人进公司往往接手的不是从零开发的一个项目,项目的说明、架构、框架技术代码已经确认了,写好了的。新人要做的是迭代(修复)这个项目的bug
- 公司的一个项目往往有几个组,好几个人进行开发,这就用到了版本管理工具(SVN/Git)所以掌握这些工具是有必要的。
- 项目分了几个环境:线上环境是给用户用的;测试环境是用来测试项目功能,没有问题才发布到线上环境。
- 本地写好的代码push到测试环境,本地远程连接测试环境进行调试。开发工具Run/Debug Configuration中配置。
- 练手项目中的try...catch中习惯的e.printStackTrace()这种代码无法打印含有日期的异常等级提示,一般用日志log来替代 log.error("...",e);
- 因此出现了问题,先登录机器查看日志信息,而登上线上的机器不是直连的,先经过堡垒机(监控责任人)
- 查看日志要学一些LINUX常用的命令(这里就不多言了,自己找相关资料)
- 公司开发申请权限才能对数据库/机器/各种资源进行操作,区别于练手项目中的root权限随便各种增删改查。