下午又修正了下标准答案,请您一定要往下看。
做为一名 在大、中、小微民营企业都待过的 Java 合作开发人员,请容许我聊聊他们在不同子公司的组织工作日常生活和斩获。包括许多个人累积的组织工作提高实战经验,和许多 Java 自学的方法和资源。
先从我的首份 Java 合作开发应聘组织工作讲起吧~
应聘生组织工作日常生活
我是在大三暑假已经开始了我一生的第二次应聘,工作岗位正是 Java 合作开发,还混了个 title 叫 “助理 Java 工程师”!
另一家子公司属于一家中型民营企业,做为首份应聘,我已经很满足了。
刚步入子公司的这天,在辅导老师和网络管理老师的协助下,扎实推进复印机,加装合作开发环境,本以为隔天就能已经开始写标识符。但是足足一周,我都没有写出带队 Java 标识符!而是先花了一周的时间熟识民营企业的销售业务、我要参与的工程项目源代码(Spring 全家人桶 + Dubbo)、和子公司的各种办公设备组件和研制业务流程。这些几乎是每人刚刚步入新子公司的老师都要做的事情。
然后我就已经开始接市场需求了,面对前人留下的 xx 那样的标识符和复杂的销售业务,我根本难上加难。那么这一周我做了些甚么呢?在辅导老师的辅导下,我针对这个市场需求涉及的业务流程画了一个很完备的时序,并且在时序上展开了详尽的标示。画完时序之后,我突然觉得肖梅了许多,接下去就是写伪标识符,终于在一周后,我才正式已经开始写 Java 标识符了。
在此之后,我基本都是跟着Sourceforge写日记单纯的 Demo 流程,或者他们为了自学罢了单纯的小工程项目。唯独没有像这次那样在写标识符前展开如此精心设计的设计,第二次有了他们走出大学校园的觉得,这种新体验和成长是在学校无法感受到的。这也是为甚么我建议计算机系的老师在学了许多合作开发设计后,趁现在去找一份应聘,不用担心他们的实战缺乏经验,通过复试和民营企业组织工作的磨炼才能让你累积更多的实战经验、提高技术,也能协助你明确他们的目标。现在也有许多协助中学生找应聘的平台,像牛叶镇辉、应聘僧都是很不错的。
牛叶镇辉:
应聘僧:
应聘的另一家子公司虽然不大,但是团队的氛围非常好。也正因为子公司不大,和技术主管、CTO 等大佬的交流机会也非常多,我们每天开工前都会开站会(敏捷合作开发 scrum)来讨论组织工作,并且定期地举办技术分享。
整个应聘过程真的非常愉快,学到了许多技术和销售业务知识,也开拓了眼界,明确了我今后的职业发展方向。最爽的事是组织工作不忙的时候也摸鱼儿刷了许多算法,真的非常感谢子公司和这段应聘经历!
然后分享我目前在 腾讯 做 Java 合作开发的日常生活。
鹅厂组织工作日常生活
没错,鹅厂并不是只有 C++ 这一门后端合作开发语言,其实鹅厂的 Java 流程员数量也是许多的!
我从大三暑假已经开始就在腾讯应聘,并通过答辩转正,虽然只毕业半年,但至今累积在鹅厂写 Java 已经一年半多了,那除了偶尔摸鱼外,我平时的组织工作都做些甚么呢?
起初我以为大厂流程员的组织工作日常生活也就是写标识符、造轮子,在大子公司,就得写更多的标识符!
结果在刚入职时,由于实战缺乏经验,再加上年轻气盛,有着莫名的自信。刚拿到市场需求后,我觉得特别单纯,不就是 CRUD(增删改查字段没对齐等等,甚至还出现市场需求理解错误的情况!最后导致的结果就是做了许多无用功,把本来几天就能做完的市场需求一拖再拖,一度以为他们要被劝退了! o(╥﹏╥)o
经历了一次次的翻车后,我已经开始思考他们的问题到底出在哪里,为甚么我总觉得自己甚么都知道、可以写出标识符,但写出的标识符却经常错误连篇呢?
我向辅导老师和其他的同事请教后发现,其实大家更多的时间并不是在写标识符,而是在 开会讨论、核对市场需求、沟通对齐、设计技术方案、测试等。写标识符的时间其实很少很少!
辅导老师对我说:“其实写标识符并不难,关键是要明确为甚么要写标识符、怎么写标识符、写甚么标识符。”
原来,相比写标识符,更重要的是写标识符前的技术方案设计和写标识符后的测试!
技术方案设计
当流程员确认完市场需求后,要先根据市场需求来给出一个清晰明确的技术方案,一方面是证明市场需求的可行性,另一方面是对他们之后的标识符实现有一个大致思路。许多的问题其实是可以在设计阶段去发现和规避的,而不是等你写标识符的时候,才发现之前的设计有问题、甚至是市场需求本身就不合理!到时候耽误了工程项目上线,背锅的就是流程员他们!
之前有朋友问,在大子公司,万一写着写着标识符,没思路了、写不出来了怎么办?这种问题其实就是可以通过前期的技术方案设计来规避的。毕竟老板才不关心你标识符写的怎么样,他只关心你的技术方案,换句话说,是关心你能不能按时完成工程项目!
此前,我即使画了许多时序,目的也仅仅是在于协助他们写标识符。觉得标识符能写出来后,我就不再去考虑方案设计了。
而在意识到技术方案的重要性后,我会在理解市场需求后,先写一份详尽的技术方案,包括市场需求的合理性分析、选用甚么技术来实现指定的功能、怎么设计库表结构、怎么设计类之间的关系(用哪种设计模式)、怎么设计接口、计划工期是多久、有没有甚么风险点等等。
合作开发
设计好方案后,就要投入合作开发。
基本就是先利用许多数据库管理软件或者登陆服务器去配置许多库表,然后选用许多 Java 类库和工具来编写销售业务标识符。说是编写标识符,其实 80% 以上都是复制粘贴!复制别人的,复制他们的,累积的标识符多了之后,简直爽的飞起!不能复制粘贴的,也可以用许多标识符生成工具、甚至是低标识符工具来偷偷懒。谁说 CRUD 工程师就没有技术?哼,咱偷懒也要有水平。
写标识符的过程中,你要遵循一定的规范,不断地将重复的标识符展开抽象、封装和复用,可以利用许多设计模式,并且要多多编写注释,提高标识符的可读性和可维护性。
关于标识符规范,建议参考 Google 开源的 Java 标识符规范:
或者阿里巴巴的 Java 标识符规范,非常专业!
写好标识符后,你要再次检查他们的标识符,可以利用许多标识符格式化和标识符检查工具来提前发现许多规范问题和 bug,还要在本地编写单元测试来最细粒度地保证标识符的可运行性和正确性。
Java 的单元测试类库一般用 JUnit 就行了;本地他们测试请求接口的话可以直接用 IDEA 自带的测试工具,也选用 Swagger 或者 YAPI 等接口管理工具,还使用 Postman 等专业接口测试工具。
测试
在写完标识符之后,要经过非常非常非常充分的测试才能提交标识符!这个阶段也是非常花时间的,需要配合测试老师,提供许多测试的细节和补充说明,并且对测试中发现的问题展开修复。许多流程员应该都有这种感受:写 bug 一分钟,改 bug 一小时!
这些就是我做为一名 Java 流程员的日常生活组织工作,其实在鹅厂和其他子公司不会有很大的区别,无非就是你负责的销售业务量级越大,你在设计、测试等环节上投入的时间和精力就要更多;销售业务团队越大,你在市场需求沟通和合作上也要花更多的时间。这些组织工作看似和写标识符关系不大,但对于流程员的实战经验累积和职业素养、工程能力的提高是至关重要的!
优秀的流程员,不只是有能力写得一手好标识符,更多的是需要具备许多工程师素养,比如:
对技术有独特的兴趣和追求,持续自学有全局观,总能站在一个更高、更全局的视角去考虑问题处理事情小心谨慎,而不是凭直觉和过去的实战经验主观臆断沟通能力强,能够用方便他人理解的方式来描述问题强大的设计架构能力刨根问题,深究问题本质标识符洁癖,精益求精不止技术,还注重销售业务底层逻辑,关心用户执行力强,有责任心懂得利用自动化工具提高效率善用绘图、图表来描述技术架构和问题乐于分享,积极为他人指路在组织工作之余,我也在朝着成为一名优秀工程师的路上而努力。因此,我会利用子公司提供的知识平台、问答平台和技术资源展开自学,并且多和身边的技术大牛们交流。大子公司技术好,大佬多,提供的资源也真的非常多,这是我认为许多老师应该去大厂的一个原因,而身在大厂的老师更应该利用好这些资源。
我还会积极参与许多子公司内外的开源工程项目,和优秀的流程员朋友一起合作,互相自学进步,提高标识符的水平。这里也建议大家多看 GitHub 上的开源工程项目,先在本地运行并熟练使用它,然后尝试分析源代码和贡献标识符。
不会找开源工程项目?我之前分享过一篇文章,能帮到大家:
此外,提高个人影响力也是很重要的,我认识许多 Java 合作开发组织教育工作者都喜欢写技术文章,并且许多朋友开通了他们的自媒体平台来分享文章,甚至有许多大牛靠自媒体收入还实现了财富自由!在写文章的过程中,我进一步锻炼了他们的文笔,向许多朋友学到了知识,也督促我来不断输入知识、提高他们。
以上就是我的 Java 合作开发日常生活。Java 合作开发的组织工作看似平淡,但只要你爱好编程,爱好这个行业,每一天都能过的充实而有意义!
最近,我发现他们许多 Java 知识学的还不够扎实,为他们整理了许多优质的 Java 自学资源,也分享给大家,希望协助到更多老师!
回答不易,跪求一赞!