个人背景:非科班,大学基本在玩,毕业时只会一点java语法和sql语句,毕业后在传统IT行业工作了两年,基本上写了两年业务代码。
由于事多钱少加上自身观念与公司文化不符,今年年初的时候萌发了跳槽的想法,但是一直没有提离职。主要原因有:1、公司把我当成重点培养对象,在年初的时候让我和另外一位核心骨干开发一个大数据的项目,我想再多攒点经验,等到做完这个项目再提。2、我没有明确的职业规划,担心跳槽后进的是差不多的公司,不知道自己真正想要的是什么。
近期我提了离职,不打算马上找工作,计划学习几个月。因为我觉得我想要的并且适合我的是专注于代码的技术路线,基本放弃转管理方向的想法。以前有人和我说很多问题都不是技术问题,很多技术问题也可以用非技术问题去解决。这种话很对,但重点是,卧槽,很多技术问题依然摆在那。需求不明不白,开发效率低下,测试完全靠手工成本高而且没有保障,由于开发流程不规范、文档不全、代码质量低导致花费大量时间维护系统,系统出现性能问题无法找到原因。
学习期间要看的书主要参考知乎上的编程入门指南,目的是补充一些计算机基础知识,提高计算机方面的素养。
以下我说明一些详细原因:
1、不知道有更高效的处理方式。公司曾有一个涉及页面上表格计算的项目,当时开发该项目的同事处理计算问题都是采用js的onchange方法,具体计算的规则写在onchange方法内,效率非常低而且代码很丑,但是没有人觉得这么做有什么不妥。这些同事为了赶这个项目上线连续加班了两个多月,加班强度比996还要高。
以下我简要说明一下当时处理表格计算的问题
比如有以下表格
A1 |A2 |A3
A1和A2为必填项,A3不可编辑,A3的值根据A1和A2自动计算出来,要求A3=A1+A2
当时代码实现A3=A1+A2的方式为:
A1的onchange方法为A1_onchange()
A2的onchange方法为A2_onchange()
函数具体方法:
function A1_onchange(){
A3.value = A1.value + A2.value;
}
function A2_onchange(){
A3.value = A1.value + A2.value;
}
我在该项目上线三个月后偶然间发现了excel中对表格计算的处理方式
A1 |A2 |A3=A1+A2
一种是纯面向过程编程,一种是声明式编程,开发效率差距不止一点。
2、工具落后。公司制作版本还在用ant,并且需要手动从svn抽取代码,我帮做版本的妹子写了一套脚本包括自动从svn抽取代码,自动打包,发布版本到服务器上。之前妹子每天要用2小时发版本,现在只要点点鼠标就行了。后来我看了关于maven的书,感觉我写的那套脚本也是垃圾。
3、自身意识差。我以前没意识到自己代码写的有多烂,因为两年了基本没有认真的进行过代码走查,也没人说过我。直到最近,一起做项目的同事一看到我的烂代码就一副难受的样子,我看了点关于如何组织代码的书,我自己看着那代码也挺难受的。
4、没有自动化测试。测试完全靠人工测试,不能对修改的程序的正确性提供有效的保障,我有几次修改bug导致其他bug产生的经历。
5、代码难维护。我负责4个重要系统的代码维护,其中有一个已经运行7年左右了,经常出问题而且只能人工介入处理。虽然代码维护的经历对我debug能力提升很大,但有时候想想自己大量的时间被这些系统bug所吞噬也是一件心寒的事情。
6、边干边学对我而言不太适合,每天都有很多事要处理,不加班就不错了。加上注意力不集中、精力有限这些问题,我现在每周总的学习时间很难超过20小时。边干边学的意义只有那份稳定的工资而已。
7、很多IT公司都很水,好的公司我现在没有底气能面试通过。
8、项目经验也大多是扯淡的事,做1个只要增删改查的项目和做10个只要增删改查的项目对人的提升差别不大。
9、我还有个小算盘是想借此次离职的机会转为自由职业者或者加入远程团队,这样能更自由地安排时间。
感谢阅读,欢迎吐槽^ ^。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.