编程语言
首页 > 编程语言> > 从大三开始奋发的程序员面临新的困惑……

从大三开始奋发的程序员面临新的困惑……

作者:互联网

 

  文章会比较长,耐心读。

 

 

【来信】——来信者将这封信的内容也发在了论坛上,欢迎高手前去指点,

  我是一名从三流高职毕业的学生,今年6月份算是刚毕业。从1月份开始实习,现在已经跟公司签订了3年的劳动合同。工作这半年,对我的提升很大。项目对时间、代码完成量、最终结果的要求都比较严格。前两天公司业务大变动,分给我一个模块,披星戴月的工作,总算是没辜负领导,更重要的是没辜负自己,也让自己看得起自己。最近刚刚有些闲暇,却忽然对以后的方向有些担忧。
   我说说我的大体情况。高考失利是在2008年,刚好北京奥运,而我对那一年全国的沸腾基本上没有太多的印象和记忆。从小我就不是个好人,也没干过什么惊天地泣鬼神的好事,优点鲜有,鲜为人知,缺点无数,路人皆知。现在想想08年,大概那一年是IT行业发展的顶峰时期,我想08年就业的前辈们现在大都混的风生水起了。顶着高薪、白领、技术男的帽子开始学IT,是在一所培训机构(其实连三流高职都不如)。学.NET。学校自然不会教些旁左的理论基础。学校的学生也是鱼龙混杂,很不幸,我属于鱼那一类,而且还是一条懒鱼。逃课、通宵打游戏、看电影,不学无术,从高中谈的女朋友也散了,整日苦于思考人生,碌碌无为。
  我的印象中,学校也从来没教过HTTP协议、TCP/IP协议之类基础但很必要的东西,一开始就学C#,然后是WinForm,MessageBox.Show后,开始学ADO.NET。然后开始重点学习ASP.NET。这时才接触到CSS、HTML、JavaScript。直到大三了,看着身边的同学一个一个走去实习了,心里开始发毛,也怕给父母再丢人,于是天天挑灯夜战,买书、写代码。今年1月份的寒假的前夕,被同学拖着拽着去听了一次校园招聘的宣讲,那时我也没简历,手头只有一个半项目,来宣讲的公司(就是我现在的公司)自己带这报名表,我填完就交上去了。
   其实当时我没想工作,因为感觉自己能力不够,而且没什么竞争力(除了激情和热血,再加上迟来的努力),打算是按照自己的计划去系统的学习完ASP.NET后再去找工作。没想到公司对我很感兴趣,经理说我的经历跟他很相似(从高中不学无术说起……)。一来二去的笔试和面试,竟然呈现遇佛杀佛状,破天荒的被公司录用并颇受重视,一直工作到现在。
  起初的工作还是比较痛苦的,我想新人经历的那些阶段我都经历了,冷遇、训斥、闯祸、弥补、加班、有时急的都想掉眼泪。我的经理和直接上司都对我很好,不想让他们失望,终于有了些小成果,很心酸。上线的时候很激动也很忐忑,总怕出什么岔子,好在一切正常。当时做的是是一个在线签约的项目,需要用VSTO操作Word文档,但是用户并发问题很严重,服务器的压力很大,总有用户打电话说正在维护,系统繁忙之类的。
   因为签约的时间多集中在一个时间段,所以过了那个高峰期,并发少了,问题也就被隐藏了。从那之后公司又分给我一个让我饱受打击的项目—电商。因为从来没有独立开发大型项目的经验,而且给的时间相当紧张,三个人的队伍(都是跟我一起进来的实习生),不到三周的时间,要求把公司的电商项目完整的做出来并且上线。于是又开始了很疯狂的加班。虽然很遗憾的说,这个项目失败了,但是从这个失败的项目中真的学到了很多东西。宣布这个项目暂时搁浅的时候,每个人心里都很不是滋味。核心的东西做了一半,代码进度也很快,就这么暂时“无限期搁浅”了。从中也吸取了很多教训。我们经理也说,当初是太高估我们了。(我能听得出来,其实是说,太高估我了。项目分模块的时候,把核心的东西都划给了我。从架构到核心的购物都是我来做,银行的接口和数据库设计是我们项目经理和技术经理做的)。
   那之后是假期,应该是清明节还是五一吧,忘了。实习的时候我每个月1500,存了些钱,给爸妈买了两台安卓手机,本来有些小委屈,后来看到他们高兴的样子,不提也就罢了。
   假期回来公司要改制,业务变动很大,从原有的业务平台到ERP的迁移都需要做很大的调整,有些模块基本上就得重新写。这次经理又给了我一个很核心的任务,是开展一切业务往来的源头(公司和分公司的业务往来)。因为牵扯到实习合同即将到期,我想这大概是对我实习期是否合格的考证,一心想把这个模块做好。虽然只是个模块,但是跟业务挂钩,牵涉到代码中的逻辑验证和业务流程都有很严格的要求。要求大概10天做完。比较戏剧性的是,我到第九天傍晚才做完了。因为没有养成一个良好的编程习惯,给了项目直接写,结果很多地方到后来发现不得不重新推到重来。项目交付的最后那三天,基本上就是一天睡两三个小时。经理说做不完就说,大家帮你做,这没关系,你们是新人,但是不能耽误了公司的业务往来。我说没事,放心吧我能干完。累的时候就想想爸妈。基本上是早上7点到晚上10点,睡两个小时,让闹钟闹起来继续写,写到6点,再睡一个小时。(当这个项目上线并使用的时候,我才真正明白需求分析是个多么重要的东西,业务逻辑是个多么重要的东西)。项目交付试运营的时间正好是周六,我心里忐忑,灰溜溜的一大早的就在公司坐着,经理给老总演示的时候,让我去跟着做会议记录,演示过程中除了有个堆栈在客户端溢出的情况,其他一切顺畅的超乎我的想象。那个周末,我睡了整整19个小时!
   做完这个项目之后部门负责人和经理都给了我充分的肯定,虽然比他预期的效果要差(电商项目的原因),但还是不错的。我是同一批人中第一个签约的人。现在是试用期,三个月,月薪2800,过了试用期是3200,明年的一月份后满一年工龄,月薪4300。老爸老妈也很高兴。
   不得不提的是,那个在线签约的服务器压力问题,公司的人都没有解决,让我给解决了,以前是直接后台代码类似宏编程去操作Word文档,当多个用户操作的时候,服务器上Word进程就会很对,对CPU资源的消耗很严重。我记得这个项目上线的第二天经理睡眼惺忪的跟我说,你的项目把咱服务器给整挂了。我上去一看,三十多个WINWORD.EXE进程,CPU一直都是100%。后来接触到OpenXML,但是系统的学习没能来得及,于是拐了个弯,把Word模板后台转换成XML,把协议模板当作XML来处理,性能提升千百倍!
   最近不断的做ASP.NET,不断的写各种后台。现在闲下来,越来越觉得ASP.NET的发展空间其实不大,做来做去就是数据绑定。单个页面来说,就是一个数据各种绑,后台ADO.NET,微软封装一大堆类库给你用,但是永远接触不到很深的东西,顶多有个MVVM。多个页面来说,就考虑架构,因为项目经验比较少,目前只接触到三层架构和工厂模式。而且最近想自学MVC,发现很难理解,大概因为从一开始就接触code-behind,不懂http协议,不懂一个网页数据往来的原理,我想三流高职的弊端在这里就暴漏无遗了吧。速成班的效果。
  因为不敢堕落,也不敢让父母失望,虽然跟公司已经签了三年的合同,还是想问问老师今后的发展方向。因为我觉得ASP.NET一开始是帮助我入门和提升,但是越往下走会越成为我的障碍。我心中有几个想法,请老师给些建议。
   1、  大数据处理。我大学的导师是比较赞同我走这条路的。现在公司也碰到过运算瓶颈、性能瓶颈等问题。但是我对这块不是很了解。我们应该是在大二的时候讲的数据库编程。那时我很忙,要逃课,还要看电影,没时间学。所以对这一块基本上是白痴,但无妨我去学习,即便在以后的编程过程中,总会大量的接触到数据库编程(这次项目其实就是边做边学),而且现在公司的待遇很好,包吃包住,七险一金。不忙的时候是个学习的好时机。我不怕苦,就像我们老师跟我叹息,你现在的加班,就是你上学时候逃课的债。我认。
   2、  专攻前端技术。个人对JavaScript、Html5和CSS3比较感兴趣。我是个比较感性的人,高中的时候学的编导,但是美学美工,所以,虽然很感兴趣,但是我感觉这个需要专业性很强的知识,而且这三个里边,我还是偏好JavaScript,从接触到现在,它总能给我很新奇的感觉。从恶搞同学for输出alert,到接触到强大的jquery、extjs,日本大地震的时候,腾讯网曾经用jquery用很简练的代码做出很直观的震前震后的效果对比图。震撼大地震的同时,也佩服企鹅帝国真的不缺人才。我不是个浮躁的人,前两天看企鹅的社会招聘、百度的社会招聘、阿里的社会招聘,无一例外缺前端工程师,这又恰恰是我的兴趣所在。我想,能进入那样大型公司的人肯定都有很高的水平。虽然我现在不行,但是我还有三年时间。我对这条路权重比较大。
   3、  执着的做ASP.NET。包括WebForm和MVC。很多前辈都跟我说过,技术学的不在多,而在精。我牢记这话,所以如果决定走哪一条路,我会一直走下去,包括上边两条。这条路已经入门了,但是并不是兴趣所在,退一步讲,比较理性的讲,我想大多数人肯定支持我走这条路。但是这样下去,除了微软封装的那一堆强大的类库,我还是什么也不会。离开VS就是个傻瓜。我本身是不太认可这样的“高手”。而且我曾经一度做WP7开发,准备投身Silverlight和WP,微软最近又说WP7不支持升级WP8,虽然技术总不会白学,但是受到的牵制很大。老师也说过,也要看市场的需求嘛。于是就有了第四条路。
   4、  Windoiws 8 &Windows phone 8开发。其实这也是跟着微软赌一把,WIN8+WP8都支持HTML5+JS开发的应用,这就又回到了第二条路。而且这样一定程度上不会太依赖于微软这样“赔得起”的公司(我可赔不起青春)。

 

【我的第一个回复】

  我细读了你的来信,首先的感叹就是人有多厉害,你的经历就是一个很好的励志典型。真是不要提以前自己“不务正业”的事情了,也许你以前“好好学习”,会失去现在的灵性。你用自己后期的努力,也凭借你的聪明,积累了项目经验,而现在的困惑,恰是一种非常幸福的困惑。

  你希望我能给你建议,但我真的要让你失望了。不是谦虚,我真的为你提不出建议。昨天一位网友为我写的C++的文章挑出了不少的问题,都和工程实际相关,我对他有些犀利的批评坦诚地表示了感谢。我在高校待了多年,对市场上的新技术、新需求不敏感,事实上也真跟不上,甚至跟上了也不正常了。我热爱教学,而现在学生的学习动力和学习方法存在很多的问题,我在“帮助菜鸟起飞”上做了不少工作,实际上擅长的也只有这些了。经我点拨的学生,走上了学习的正轨,学IT的学生,经我提醒和帮助开始重视实践,他们就可以凭借自己的力量前行,这是我的价值所在。

  我想你能理解我的托辞了。你在论坛上的发贴应该会有不少人回复,也就不缺我一个“外行”的意见了。我的博客近期点击量还可以,由我发布博文让网友们评评也可以。如果需要这样做,回信告诉我。

  相信你有更加美好的明天,再次对你所付出的努力表示敬意。

 

【我的第二个回复】

  一直想你的事。我发现了一个非常关键的,我忽略了的问题,我给绕到我并不擅长的新技术中去了。

  不管你列出了多少个可能的方向,因为你是已经工作的人,应该看工作需要去选择了。你的经历也却实告诉我们,在工作中学习,其效率有多高!跟公司已经签约三年,而且公司确实也给你机会(或称工作压力),主要精力和学习围绕要做的项目安排为好。如果有闲,首要解决的是你已经意识到的http等,这不是很难的事,并不是有谁给你上几堂才能解决的事。这样,1、2、4条选择,如果真有时间,随便学点,做点小东西玩玩,以备不时之需,也倒可以了。

  字里行间,能够看出你由于意外的进步带来的豪情。这是很宝贵的东西,闲时也可多看看非技术类的书,这对开扩人的视野很重要。将计算机专业的核心课程自学一下也是个选择(这个事不必很急地突击,长期坚持慢慢进展更好),这也“补课”的一个方面,且自学是可行的。

  祝不断进步。

 

【他的回复一】{}中楷体字是我的插话

  这几天睡觉前我都会想这个问题,也咨询了一些朋友。有个比较要好的朋友,他说如果是他,他就走大数据。

  我感觉这个东西跟兴趣、天性都有些关系。我那朋友天生不喜设计,没有美感。但是逻辑思维能力很强,也喜欢跟数据打交道。

  我们对事务的感知不一样,比如,腾讯退出的QQ校友、人人,这些大型项目,腾讯能把数据挖掘、BI做到极致,能悄无声息的把数据整合进去,能算出来哪些人一定跟你有关系,哪些人可能跟你有关系,你的一度人脉、二度人脉,几乎是在一夜间这个项目就成功了。

  我喜欢的东西更直观,比如在信中提到的日本震前震后的对比效果。前两天正好搜出来了那个原始网页,现在才发现那段JS是有毛病的,不兼用IE。老师可以看一下这个效果。http://news.qq.com/photon/tpyk/jqvs.htm   (用FF或者Chrome吧,IE有部分不兼容的脚本。如果让我做对比,顶多把两幅图摆一块,代码虽不复杂,但是手法和心思都很巧妙,估计是编辑也赶稿,代码都没经过优化和压缩(幸好没有,让我们都能看懂。嘿嘿)){结合到你的兴趣,我倒真支持你在进一步稳定现在工作的基础上,在这个方向上做些储备,有机会就发光。没有什么事情能比工作和自己的兴趣相符更让人高愉悦的事了。}

  帖子中有一个人说,如果均衡的话,让我抛硬币。我还真抛了,其实硬币落地的结果不重要,重要的是你把硬币抛出去的一霎那,你希望硬币是哪一面。心中就已经有了答案。

  如果没有外部的思想左右我,我肯定会走第二条路,虽然现在疲于熟悉公司业务,但总会有时间。双休、下班后。每天坚持写一段功能脚本,不管简单还是复杂,我觉得这样很好。不管对语法还是对面向对象,或者是架构的理解。{支持你这样做,实际上这段时间你主动提出问题,主动多方征求意见促使你想清楚了问题。决定了,就不要再有太多的负担,轻松地辛苦地上阵即可。}

  老师有句话说的很到点,工作中学到的真的很多。这是一种经验的积累。做的多了,跟实际的需求接轨了,能发现各种各样诡异的问题。然后你到处问,到处查,不管是通过什么手段解决的问题,总归是自己解决的问题。

  跟老师发这封信之前,我刚刚把信中提到的客户端堆栈溢出的问题解决了。原因是一个有ASP.NET1.1、2.0版本中一个有Bug的属性。写完这封信还得去ERP跟踪数据。您看,我又学到了,不管干什么。就算学不到技术,也能学到态度。{态度端正,没有什么能阻止自己通向心中的彼岸。}

  老师信中提到发到您的博客上,如果条件允许,我还是希望能听听大家的意见。这个真得谢谢老师了!{真诚希望大家给出中肯的意见。}

  而且我还意识到一点,工作中学到的也有他的局限性,比如都是成熟的技术、都是公司用到的技术、都是与眼下项目息息相关的技术。对于新技术接触的会很少。{适当准备一些还是必要的,不排除公司突然有了新业务……}

  而我的优势在于----时间。爸妈身体都好,熬退休的人了。姐姐十一也要结婚了。我还小,结婚言早,真等到了年龄,能用来学习的时间就更少了吧。公司有住的地方,吃饭也不花钱。很幸运有这样的机遇。如果这样的天时地利人和的环境都浪费,那真是太没理由了。

  还有一点,希望老师不要把我的恶劣行迹告诉您的学生们,您知道,现在的学生都……我想他们听了之后,重点肯定是“大学玩就行,以后有机会”,而不是“现在加的班,是以前逃课的债”。更可怕的是,我身边有一些人,还债的机会有没有了。(反正如果是我,如果我没经历这些事情,肯定会觉得,即使大三大四也没关系,此时不玩更待何时,哈哈。是不是性情顽劣?){可能看问题的角度不同,不少大三、大四学生混了两年后想起步却丢失了信心,你的经历从正面充分说明,何时开始奋斗都不算晚。从反面说明千万不要等到去了工作岗位才……,甚至永远没有机会找到这样的岗位。正面、反面都有意义,你这个典型好哈!}

  生活如人饮水,冷暖自知。朋友有羡慕我的环境的,个中心酸自己知道。昨天下班之后跑步,跑了一站路就累得头昏眼花,工资要赚,本钱也该存存了……嘿嘿。{这也是我想提醒你的,现在的受苦不是受罪,非常好,但是本钱还要符合自然规律,你的工作学习负担似乎超出了限度。当方向确定后,尽可能有节奏地开展,不能着急,不需要加班工作,也一定不要自己加班学习。找一个适合自己的体育项目,所需条件越简单越好,不需要场地,不需要搭档,随时能进行。我的工作强度比不上公司的,年纪也不允许了,但比一般同事的工作(包括回信的投入)时间要多,但保持健康就是因为每天坚持的锻炼。坊间夸大的程序员的苦逼有不少成份是不把健康当回事引起的,不少事故完全可以避免。我习练内家拳——梅花桩,根据条件,其他拳种,如太极、形意等可以选择,中国传统功夫,养生的瑰宝。}

  再次感谢老师能在百忙之中抽时间读的信并且给我耐心的回复两次,祝老师身体健康!{给你回信让我也学到了不少。}

 

【他的回复二】

  是的,我现在也是这么想的。一个人的精力有限,总不能一把全抓。现在公司主要用的是数据库编程、ASP.NET WEBFORM&MVC 3.0、WinForm。旁左的还有XML、LINQ这些新东西。

  我具体的想法是这样的,首先必须学好ASP.NET,因为基础不牢固,要首先把本职工作做好,而且要多悟。毕竟后台代码以逻辑见长,前台就松散多了。

  然后是业余时间着重学习JS、HTML5、CSS3。然后,有个小想法,如果项目中允许的地方,哪怕是一些小地方、细微的地方,如果我接触到了,并且有十足的把我,我会争取用上述的手法去试着实现。(昨天经理又提了提电商的项目,这次不能再丢人了)。这样技能让别人看到一个敢于拥抱新技术的上劲的公司,也能提升自己。当然,前提是这个方案会优于原始的方案。

  不过对于HTTP TCP/IP协议之类的东西真的不怎么理解。前天我看了一些HTTP协议的介绍,又衍生出了HTTPS、SSI等概念,感觉很宽泛啊。{坚持看吧,有你现在的学习力支撑,没有问题,不要急就是。}

  现在看来自己还是浮躁了。ASP.NET其实都没学的很精,套接字、网络编程方面的东西还是很有欠缺。只不过工作中用的少,没有突显出来。

  编程之路还很长,真的“仍需努力”啊。

  其实我很喜欢老师这个职业。呵呵,不瞒您说,我曾有三个理想,1、教授。2、导演。3、邮递员。

  但是我这个学历和水平,估计教授和教师都无缘。{等你立足稳了,可以往这方面发展,不一定站讲台的才是老师;再者教育改革中,实践的缺腿一定要补上,这是你的优势;还有,好老师一般都不是从小尖子生过来的,而是成功、失败螺旋上升的人,你的经历能理解学生,这是最大的前提。至于我,老是鸡头到凤尾,好容易到凤头、凤脖子了,上个层次也还仅是鸡头都算不上。这样的人该为人师,我的文集刚出,有时间看看,也还算励志。}

  导演的话,高中的确学过编导,但是因为个人原因放弃了。很悲痛的一段历史。至今想起来还有些后悔。

  邮递员嘛……呵呵,不说了不说了,这个说来话好长。{当年高考上了第一志愿的计算机软件,如果被第二志愿的学校录取,我将在饭店掌勺,我报的是烹饪专业。没有为人民做物质食粮,现在做精神食粮,同行。}

 

 

标签:ASP,项目,老师,程序员,奋发,公司,NET,现在,大三
来源: https://blog.51cto.com/sxhelijian/2950590