程序员的3年之痒改变的不止薪水(一)

                              写在开始,这里借用特立独行的猫的一句话,你可以原地踏步,但别觉得别人都该和你一样。

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

      工作也有几年了,特别是今年要学的东西越来越多,然后感觉自己越来越无知。有时候恨不能所有的东西都要了解都要懂甚至要精通。但时间毕竟是有限的,况且你还有项目任务在身。当然很多时候也是惰性使然,空闲时间对于技术的关注虽然有,但是很多东西都是理论的东西。

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

       所以很多东西,特别是感兴趣的开源框架,我一般都会做一个demo,理论性深层的东西可以暂且放到一边,当然你要懂得基本的概念,它是个什么东西,用来做什么的。然后慢慢去接触一些框架底层的东西,实现原理和设计模式,当然你如果模仿框架写一个自己的东西,那么恭喜你框架模型已经吃透了。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

       最后就是我想说的就是今天我所说的可能一切都是错的!大家通过不停的学习、练习和总结, 形成自己的一认知体系,谢谢大家。

欢迎关注:科帮网

时间: 2024-09-27 05:43:21

程序员的3年之痒改变的不止薪水(一)的相关文章

成为专业程序员的6个技巧

1.在你责怪别人之前,先检查自己的代码 先想一想自己的假设和其他人的假设.来自不同供应商的工具可能内置不同的假设,即便是相同的供应商对于不同的工具,其假设也可能不同. 当其他人正在报告一个你不能重复的问题的时候,去看看他们在做什么.他们可能会做一些你从来没有想到过的事情,或者他们的做事顺序与你的截然不同. 我个人的原则是,如果我有一个不能确定的错误,那么我会先考虑是不是编译器的问题,然后再去检查堆栈是否损坏.特别是当添加跟踪代码会使得问题移动的话就更要这么做了.多线程问题是bug的另一个来源,有

成为专业程序员的 6 个技巧

1.在你责怪别人之前,先检查自己的代码 先想一想自己的假设和其他人的假设.来自不同供应商的工具可能内置不同的假设,即便是相同的供应商对于不同的工具,其假设也可能不同. 当其他人正在报告一个你不能重复的问题的时候,去看看他们在做什么.他们可能会做一些你从来没有想到过的事情,或者他们的做事顺序与你的截然不同. 我个人的原则是,如果我有一个不能确定的错误,那么我会先考虑是不是编译器的问题,然后再去检查堆栈是否损坏.特别是当添加跟踪代码会使得问题移动 的话就更要这么做了.多线程问题是bug的另一个来源,

程序员你真的只是程序员吗?

进来了吧~你是不是感觉标题有点矛盾啊,是啊,程序员当然就只是程序员而已嘛,还会有其他什么吗? No,No,No,如果你以前是如此认为的,那看完这篇文章后,请从此打消这个念头,因为你要改变成一个不一样的程序员(怎么还是程序员?) 虽然我工作经验也就6年左右,但经历了很多,也自己创业过,也是从一个初级程序员走起,因为看的比较多了,某些东西也普遍存在着很多程序员身上,希望自己的经验能帮助你们. 当刚踏入程序员这条路的时候,有幸为一家公司开发一个大型的电子商务网站,因为这篇领域当时还算刚刚起步,自己的编

月薪3万的程序员都避开了哪些坑?

程序员薪水有高有低,有的人一个月可能拿30K.50K,有的人可能只有2K.3K.同样有五年工作经验的程序员,可能一个人每月拿20K,一个拿5K.是什么因素导致了这种差异?我特意总结了容易导致薪水低的九大行为表现,避开这些大坑,你就离高薪不远了.   习惯即刻回报 他不懂得只有春天播种,秋天才会有收获.刚刚付出一点点,甚至还没有付出,就想要得到回报.技术刚刚掌握,能一边百度一边干活了就觉得该拿到多少多少钱了.找工作先想着多少多少钱,入职了没干几个月就想着要加多少多少钱,干了没几个月,薪水要是没涨,

c语言-编译器是否可以改变程序员的编程逻辑或意图

问题描述 编译器是否可以改变程序员的编程逻辑或意图 举例:用c语言,有一个整型变量a,在代码中明确表示a不会加一或减一,但是在调试时a却违背了程序员的意图出现了加一或减一的情况. 解决方案 不会,但如果是希望单步调试来跟踪变量的变化,最好将代码编译的优化选项关闭掉,否则优化后的代码与C的变量是不能一一对应起来的. 解决方案二: 编译器是程序,是程序就可以做任何事情.就在最近,就有人通过修改xcode附带的oc编译器,把恶意代码附加到使用这个编译器的所有程序上. 相关报道:http://digi.

程序员健康指南---做出改变

1.做出改变      最近在学习技术的同时也在关注一本书<<程序员健康指南>>,我就把我的读书心得分享一下吧.      身体健康问题对于IT工作者来说应当非常重视,人们常说,久坐必会生病,其实这是正常的,我非常相信,因为我就是久坐从而长了小肚腩,为了保持健康,我也在不断的做出努力.早上喝淡盐水,中午莲子心茶,晚上睡眠敷胎菊花泡开的面膜,不定时进行锻炼.可能有人会这么说,大男人,没必要搞得跟个女孩一样的.我觉得现在这些健康问题都要去注意,不是男不男女不女的问题,男女都一样,都要保

云智慧创始人殷晋:程序员改变世界

本文讲的是 :  云智慧创始人殷晋:程序员改变世界  , [IT168信息化]一个有趣的说法:世界上有两种人最懒--一种是哲学家,另一种是程序员.也许前者是真懒,但程序员的"懒"其实是体现在对代码的极力简化,多敲一行都不行.相反,程序员不仅不懒,实际上还很有情怀.云智慧的创始人殷晋笑谈道:"我也曾是一名程序员,我就是想要通过coding(编程)改变世界." 创业是因为程序员的情怀 殷晋在2010年创立了云智慧,为企业提供基于云计算的APM(应用性能管理系统).当时,

PHP程序员笔试与面试题分享

普通PHP程序员笔试题 标签:  程序员  PHP  面试  2009-02-06 15:19 1. 用PHP打印出前一天的时间,打印格式是2007年5月10日 22:21:21 2. PHP代码如下: $a="hello"; $b=&$a; unset($b); $b="world"; echo $a; 其结果是? 3. PHP代码如下: $str="cd";   $$str="landog";  $$str.=&q

很认真的聊一聊程序员的自我修养

今天谈一谈,程序员提高自我修养是为了什么?     程序写的好有人崇拜,有妹子喜欢?还是到博客.论坛.社区发表文章进行分享获得成就?我想这是少数人的追求,也是更高的追求,在这之前 我认为,在中国,程序员提高自我修养的目的,是为了 1.更好的融入工作,减少困难,增加成就 2.稳步的提升能力,提高收入,达成财务自由 2.站在更高的层面看待自己的学习和工作,树立更加适合的人生观价值观,家庭幸福,生活愉快 说的更通俗一点,就是用更加合理的方式和方法,赚取到更多的收入   说了这么多废话,进入正题 何为程