想写这篇文章已经好久了,原本计划在3月份,也就是恰好满3年的时候写的,可是由于各类各样的缘由推到了如今才开始码字。php
三年是一段很长的时间,它足够让你从高中毕业进入大学,也能让你从一个开发新人到一个成熟的开发人员。可是总感受高中三年和开发三年的时间不是等长的,高中三年里时间过得很慢,天天须要学的东西很少,但能在考试中看到本身的成长;开发三年里时间过得很快,天天须要学习的东西很是多,但却很难看到本身的提高和变化。前端
u=2540083568,3013756559&fm=26&gp=0.jpgvue
在本身开发的前两年多都在一个初创公司里,干过android、ios、php、前端,研究过人工智能,甚至作了2个月的产品运营,一个伪全栈工程师就是这么练成了,什么都会一点,可是都不深刻。初创公司基本是没有机会让你去深刻研究某项技术的,须要的是产品快速迭代更新,听到的最多的一个词就是“能用就行,下次在优化”,而后就没有而后了。在这个公司里也有一个你们认为是大牛的同事,android、ios、java、php、python、前端、大数据、人工智能都参与过,也作出了一些成绩,最近他要离职了,我和他聊了聊天,其实他本身是很迷茫接下来要作什么。
创业公司和大公司的选择在知乎上也有不少人在讨论,大部分人的观点是毕业能去大公司就去大公司,大公司能提供完善的制度,有不少优秀的同行在你身边,能给你深刻研究的的机会等等。说的基本没问题,可是目前不少大公司校招的人没有那么多了,经过大公司的面试也没有那么容易,大部分人第一份工做也是初创公司或者创业公司。固然创业公司并非一无可取,虽然技术深度没有大公司的同窗那么深,可是技术广度通常会强一些,这对以后去大公司跨团队沟通和交流仍是有必定帮助的。在创业公司须要有本身对将来的一些想法和规划,也须要在某一个方面有深刻的了解和学习,时刻保持危机感和饥饿感,这样才能有更好的成长。java
最近几个月负责组织开发了一个vue的组件库,参与了vue-srr的同构,也作了一些webpack的优化。vue的组件库其实已经有不少了,不过不是很符合公司自身的业务场景,因此选择本身写一个组件库。这个组件本身参与的组件不是不少,可是由于这个组件库了解到在团队内推动一个项目不是想象中那么容易,特别是一个多人参与的项目,早期虽然你们报名认领了任务,可是由于业务繁忙等等缘由,这个组件库基本没有进展。后面本身开始主动开始推动这个项目,制定开发计划,跟踪各位同窗开发进度,这样才让项目一步步走上正轨,也很感谢各位参与同窗的支持。
vue-ssr同构是团队内部很重要的一个调整,同构有各类各样优点,好比支持seo,首屏速度,开发体验提高等等。也许是由于本身node相关技术积累很少,只参与了一小部分的项目架构,不少服务端相关的架构设计也是另外的同事去完成的,其实本身也有点遗憾没能更多的参与到其中去,最近也计划用官方的demo在本身捣鼓捣鼓,更熟悉其中的一些架构设计。
webpack的优化也是由于作同构项目时遇到了一些问题,好比说用dll提高打包速度,优化热更新速度等等。本身对webpack的了解仍是停留在了使用的阶段,源码和内部机制尚未进行很深刻的学习,这也算是近期的学习计划吧。node
写业务烦吗?
烦,总是进行重复的coding,提高和进步缓慢。
作架构爽吗?
爽,由于能研究一些新的东西,可以提高本身某一方面的技术。python
本身最近也在思考作业务和作架构的问题,作业务的确很容易陷入到一种重复重复再重复的无限循环中,重复的技术栈,重复的业务场景,这些的确阻止了开发者的成长。那业务中要如何成长?我的的想法是多总结和记录开发中遇到的问题,多思考如何可以优化业务代码,如何写出高拓展性的代码,这多是一些成长的点。作架构的确能常常研究一些新的东西,好比参与ssr的同构、动态化方案等等,可是若是只是为了架构而架构,脱离了业务场景,这也是没有价值的。因此就我我的而言,但愿既能参与到部分业务中去,也能参与部分架构的任务,这样可能我的的提高会更大一些。android
最近投了一份简历,面了一次试,但并非同一家公司。以前在一个群里看到了考拉的一个招聘,薪水开的不错,因此打算去试试水,然而竟然连面试的机会都没有获得。面试的那次是钉钉,由于以前投过也面过阿里,因此此次简历又被钉钉捞出来面了一次,面试的感受有点糟糕,一方面是由于没有准备好,另外一方面和他们要招的岗位不是十分符合。其实最近没有离职的打算,面试也是为了看看本身目前到了什么样一个水平,感受陷入了瓶颈期,也是但愿经过面试可以跳出目前有些糟糕的状态。最近一年也面了3次阿里了,效果不是很理想,奇怪的是至今没有得到一次网易的面试机会,不知道是否是由于网易对简历筛选十分严格仍是什么别的缘由。webpack
这句话不是我说的,是一个ios的妹纸说的。最近咱们一块儿参与了一次分享,一位实习生同窗分享她最近一个月的学习状况和成长,会后聊天的时候那位妹纸发来了这一句话。这句话听着像过来人语录,本身也是有一些感慨,想起本身刚开始学习编程的时候,第一次打印出hello_world的时候,第一次开发出一个完整的android页面的时候,第一次解决了技术难题的时候,那种心里的喜悦和成就感是促使我接着往编程走下去的动力,可是慢慢的这种感受愈来愈来少,甚至消失了。固然这是一个正常的过程,本身在不断进步和提高的同时,心里G点的阈值也会不断的提高,这是须要适应的过程。这句话可能反应了一些现状,可是若是学东西只是为了生存的话很难把事情作的很好,因此应该以一个积极的心态来面对。最后套用一句经常使用的话来总结:不忘初心、方得始终。ios
这个多是每一个程序员都或多或少的会遇到一些问题吧,好比长时间面对电脑,颈椎、腰、眼睛、头发等等可能都会有一些问题,也由于加班、熬夜等问题引发一些奇奇怪怪的问题。就本身来讲最近颈椎一直很不舒服,持续的时间也挺长了,同时感受身体状态也不如以前了,才仅仅才工做了三年,身体的状态就大不如初了,这算是一个危险的信号,如何在繁忙的工做中多花时间锻炼是接下来须要解决的问题。程序员
我很喜欢给本身定制一些目标,好比三年要达到怎样的水平,达到目标很开心,没达到目标很失望。就三年这个节点来讲其实并无达到本身的目标,有点小失望吧,可是路仍是须要继续走的,但愿在下一个目标节点可以达成。接下来的三年,我想按照一个阿里朋友总结的“Java架构师技术栈”来系统的提高本身,走优秀的人走过的路,老是没错的!
看到这里还没过瘾,那么就来群里与更多的大佬交流切磋技术,戳这里:我们来一块儿抱团取暖,好吗?最重要的是群内有阿里京东等一线互联网公司有从业经验的资深架构师进行答疑解惑【Java高级互联网架构:964357187】
(1) 要具有扎实的Java基础
这里所谓扎实的Java基础不是咱们一般所理解的Java语法、面向对象的概念,而是能深入理解Java的多线程开发,熟练使用NIO技术优化网络编程,了解JVM的底层机制,具有底层性能调优的能力,这些技能偏偏是Java开发人员每每忽略的基础。
(2) 深刻学习经常使用开源框架
不少小伙伴可能会很困惑,为何BAT的面试官老是喜欢问源码?其实咱们经常使用的Spring、MyBaits这样的框架能够说是JAVA里面最经典的教科书,从中你能学习到不少写代码的经验技巧,而去悟开源框架中蕴含的优雅架构设计之道这才是最重要的。
(3) 高性能分布式系统设计与应用
根据双十一日志统计,前端系统有效请求约60w以上的QPS ,然后端cache的集群峰值近2000w/s、单机也近30w/s,互联网大厂的架构师面对的就是这样的生产环境,因此分布式、缓存、消息这样搭建高性能系统的技术必须掌握。
image
(4) 微服务(分布式服务技术)
微服务架构是一种架构风格,整个应用被划分并设计为以业务域为模型的松散耦合的独立服务,方便横向扩展能力、伸缩性强、便于开发和维护等等这些是微服务与生俱来的优点。
(5) 沟通合做的能力
程序员的战斗,每每不是一我的的战斗,咱们如何在一个平台下高效的去重,进行代码review,对功能进行调整、debug,作到在统一的规划下步步为营,混乱的堆代码的过程当中找到本身的记录。这一切都依赖于有效的工具,Git、Maven和jenkins。
写了这么多,我相信系统的掌握这些技术只需几个月,也但愿沉淀三年后的我更精彩,借用hip-hop圈经常使用的一句话来结尾好了。keep real。
end…
一整套架构学习视频,能够分享给须要的人,进群免费领取!【Java高级互联网架构:964357187】