程序员的3年之痒改变的不止薪水------转载

 写在开始,这里借用特立独行的猫的一句话,你能够原地踏步,但别以为别人都该和你同样。
前端

<ignore_js_op>


       程序员的3年之痒,的确是时候该挠挠本身了。3年的程序员生涯,不长不短,但它的确是一个坎。3年改变了咱们的不只仅是年龄,固然还有薪水。


      工做也有几年了,特别是今年要学的东西愈来愈多,而后感受本身愈来愈无知。有时候恨不能全部的东西都要了解都要懂甚至要精通。但时间毕竟是有限的,何况你还有项目任务在身。固然不少时候也是惰性使然,空闲时间对于技术的关注虽然有,可是不少东西都是理论的东西。


       躺在那里的叫信息(information),只有内化为本身的才是知识(knowledge)。涓涓细流,饮多少全凭心意。做为一名合格的程序员,你不能嘴上说的天花乱坠,实际让你去作的时候你就干瞪眼。从后台到前台,从汇编到java,从大数据到云计算,吾生有崖而知无崖,欣赏,开放,包容,不少地方均可以学习。


       因此不少东西,特别是感兴趣的开源框架,我通常都会作一个demo,理论性深层的东西能够暂且放到一边,固然你要懂得基本的概念,它是个什么东西,用来作什么的。而后慢慢去接触一些框架底层的东西,实现原理和设计模式,固然你若是模仿框架写一个本身的东西,那么恭喜你框架模型已经吃透了。


       记得前一段时间接触阿里巴巴的分布式框架dubbo,网上查询了不少资料,也加了几个群,关注一下架构大牛的心得历程。其中有一个同窗,貌似依照dubbo写了一个属于本身的调度框架,虽然下面有些评论说基本跟dubbo一个架构,但我感受他是吃透了这个框架才能一步步模仿来的,生活中到处不都是学习借鉴嘛。有句老话怎么说来,照着葫芦画瓢,虽然不甚完美,但有些人他连笔都懒得拿。


       提到dubbo我不得不说下敏捷开发,如今不少公司提倡敏捷开发,包括咱们公司,老总会议也是提倡咱们要作敏捷开发。起初我是不大关注这个词语的还特地百度了一下,以下:敏捷开发以用户的需求进化为核心,采用迭代、按部就班的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分红多个子项目,各个子项目的成果都通过测试,具有可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程当中软件一直处于可以使用状态。


       可是就目前来讲,公司的项目不少敏捷性都不够好,的确咱们开发以用户的需求进化为核心,采用迭代、按部就班的方法进行软件开发,但后面的内容咱们执行的很很差,或许咱们缺乏一个好的架构师,也许咱们缺乏一个好的前端设计师,更甚至咱们缺乏一个好的核心程序员。做为一个一线的程序员,你要知道一个功能要改N+1个项目的时候你是奔溃的,当你将要完成这个功能,上面说需求有变更时你是泪奔的,即便你愤怒也仅仅是你本身的事。你永远不知道这样的需求还有多少,而大多数程序员也就是这样过来的。


       出现问题老是要解决问题,提出统一合理的解决方案,若是这件事如今没人作,对于你来讲这未尝不是一次挑战或者是机会。程序员的思惟不只仅是完成本职工做,而应该是勇于突破本身,挑战公司现有平台的缺陷和不合理的地方。程序员的经验不是随着岁月的流逝而累加的,也就是说经验的增加并不与年龄成正比的。不是说你工做3年就必定能成为一个中级或者高级程序员,也不是说你才工做2年就不能够成为一个架构师。仍是那句话,
涓涓细流,饮多少全凭心意。你掌握多少东西在心而不是在年龄。


       安逸的公司环境会是一个不求上进的程序员,变得更加懒惰,我甚至没法想象若是脱离公司去其余项目公司会是怎样一种情景。因此,我时常跟身边的同事说,不要仅仅作好本职工做就ok了。不要空闲的时候无所事事,浏览新闻,逛贴吧,这个年龄段你应该成熟的去面对和规划本身的职业生涯了。不要以为本身多作了就是吃亏,要知道作了就是本身了,年终总结不是写个一二三那么简单。不要庆幸,上级就给我分配了一点任务,又能够无聊发呆看新闻了,却不知,上级可能以为你根本没法承担此任务(这样你还感到庆幸吗)。


       你得尝试着去改变,不能由于公司怎样你就能够这样一直下去。事情老是朝着好的方向去发展的,你要真正把本身当成公司的一员,而不是一个打工的。你要把公司向好的一面去推动,其实很早有就发现公司平台有不少差强人意的地方,只是的确本身水平有限,有改造的想法,可是没有实施的能力。


       你得尝试着去改变,你要把平台复杂的问题简单化,重复的任务统一化。我以为这才是敏捷开发的根本,用最少得时间成本解决相对复杂繁重的问题。最近也在研究一些架构性的我东西,也是得益于李智慧老师的大型网站技术架构,很系统很全面。什么是架构?有人讲, 说架构并非一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟咱们的生活中的晾衣架很像。更抽象一点,说架构其 实 是 对 我 们 重复性业务 的抽象和我 们 将来 业务 拓展的前瞻,强调过去的经验和你对整个行业的预见。java

<ignore_js_op>  


        一个合理的架构设计后期是能够避免不少没必要要的繁重的任务。从你的项目搭建,服务化组件,消息中间件,数据库中间件,配置管理,甚至于项目安全,高可用,扩展性,伸缩性等等都是架构师所考虑的范畴。固然一个合格的架构师关注的是人而不是产品,必定要坚信:一群优秀的人作一件他们热爱的事情,必定能取得成功。无论过程多么曲折,无论外人开来多么难以想象。一个好的产品,驱动应该是人而不该该是其它。一个优秀的架构师,期望优秀的人来帮本身作事,不如作成一件事让本身和参与的人都变得优秀。


        成长是须要过程的,更是须要用心的,因此不要在最好的年华浪费了你最充沛的精力。
       
        前几天一个朋友碰巧问到我并发的问题,其实这方面我也接触的比较少,至少到目前为止公司的项目数据库都没有作主从、读写分离,又何来的高并发让你去实践。但这并不表明有些东西你就不能去接触,将来和机会老是留给时刻有准备的人。高并发其实虚无缥缈东西,不多有网站真的须要这些东西,并且其中不少技术,其实你已经在用了,只有不多的网站真的能达到高并发, 因此不少人没有接触也是常态。

        其实对于这个问题,我是很差意思回答的。虽然系统中也用到了相似的技术,好比页面静态化,本地缓存服务,Nginx反向代理,静态文件压缩以及动静分离。固然还有,消息队列,文件服务器,数据库主和集群,应用负载均衡集群以及分布式服务等等。说到底,解决高并发无非是上面技术的罗列,程序员要作的就是把每一个技术具体实现。 

        对于一些创业型公司来讲,免费的永远是最好的,linux、nginx、tomcat、mysql、java,redis......各类开源免费的工具。在保障可用的状况的,尽可能使公司的利益最大化。

       因此做为一名合格的程序员,你不只仅要会写几行代码,掌握以上开源的工具也很重要的。对于linux的关注,其实也是在去年开始。因为win2003的再也不维护,我狠狠心把服务器系统换成了linux系统。从开始的不习惯到如今的驾轻就熟,说真的,不要畏缩不要不敢去尝试,习惯这东西说白了就是懒惰,明知道有更好的解决方案,更好的结果和将来,你就不去作,除了懒能是什么?

       再长的路一步一步也能走完,再短的路不迈开双脚也没法到达。可能这句话用在这里不是那么恰当,只是让你们明白一点,勇敢的走出一步,兴趣永远是最好的老师,固然一步步收获的喜悦也是你前进的动力。



       说了这么多,有点乱,但都是平时的一些思考。这里引用博客园的一段话:mysql

<ignore_js_op> 


        如何不停的学习和提高,这里以Java语言为例,首先, 必定要 理解 JAVA;第二步,JAVA完了之后,必定要 理 解 JVM;其次,还要 理解 操做系统;再次仍是要了解一下 Design Pattern,这将告诉你怎么把过去的经验抽象沉淀供未来借鉴;还要学习 TCP/IP、 分布式系 统、数据结构和算法。


       最后就是我想说的就是今天我所说的可能一切都是错的!你们经过不停的学习、练习和总结, 造成本身的一认知体系,谢谢你们。linux

相关文章
相关标签/搜索