作为一个程序员需要学多少技能

作为一个程序员需要学多少技能,第1张

介绍下我的想法:

大学里学的是计算机专业,所以顺道学了不少计算机系的基础课程,总体来讲学得很不好,直到大四毕业,我才勉强下定决心要以写代码为生(现在想想,可能是当时实在想不出其他出路)。大学4年,很遗憾的事情就是我没有弄清楚该去真正学些什么东西。

毕业后第一份工作,在一家小公司写servlet/jsp,说实话,我写的很烂,当时带我的人对我的工作很不满意,直到有一次,项目经理跟我谈说,你的工作表现你也看到了,差点就被开掉了,不过我觉得还是要在给你机会。。。当时,我真的是自信心崩溃到极致,觉得自己这段时间其实很努力,但为什么还不入门路。。这次经历给了我非常大的影响,之后的不久,我终于明白了怎么去写那些servlet/jsp,于是我努力的写那些代码,不久,我就成了公司新员工里面,做东西最快的人。当时还发了个公司的什么最快进步奖给我。我想第一份工作给我最大的感受是,想要做为一个程序员,你得先明白,程序是个什么东西。

一年多以后,servlet/Jsp实在不想写了,于是换到另外一家公司,做聊天软件的J2ME客户端。其实我当时不懂J2ME,在刚入职的一个月里,啃完CLDC和一些会用到的JSR的英文文档,然后每天去看项目的代码,有任何问题就去问周边的同事。不久,我也慢慢能写一些J2ME的代码了。接着,我加入了新版客户端的项目组,开始做一些UI组建。最开始,我写一个Text组件,就是把文字显示到屏幕上,还要根据屏幕可显示区域的宽度、高度对文字做调整。没几天,我就信心满满的写完了这些代码,原来写客户端代码也不难啊。不过不久,当同事要用我的组件时,问题百出,以至于同事跟经理抱怨说,这么基础的组件应该给有经验的人去写啊。。 这次,虽然我的工作做的很烂,可自信心倒没受多少打击,因为已经工作一年多了嘛,脸皮厚了不少。但是我心里知道,我的工作肯定哪里出了问题,否则我的组件应该能经受住使仔晌饥用者的考验的啊。这份工作中,我学到了不少东西,首先呢,脸皮要厚一点,不会就追着去问,其次,没有想清楚的话,写出来的东西经不住考验的。再次,英文念返资料好像更准确啊。当然还有一些具体的编程技术。

大概又过了一年多,大家都说J2ME快完蛋了,android已经开始大兴其道,公司里面也有人在做android客户端,可我还在写没有前途的J2ME.恰好,qq群里有人发消息说招人,我脑子一热,扔了份简历过去。于是,一个多月后,我就到了新的公司上班,这家公司是一个做手机的厂商,而我也可以参与android的开发。在这个公司的前3个月,基本啥活没干,除了学习android之外,就是各种培训和等待。大概待到5个月的时候,我实在坐不住了,我去跟经理说,有没有活可以给我干。经理说我考虑下,不久便安排给我一个项目,让我去把它维护好了,然后集成到产品里面。可当我拿到代码时,傻眼了,2w多行代码,而且很多地方写的很复杂,看了好几天也没看懂。好吧,不管了,这件事既然是我负责,那怎么都应该挺住。在接下来的快2个月里,我每天都扑在这两万多行代码里,解决里面的bug,理解里面的设计思路、代码风格、编程技巧,使用公司的工具链,从发布、审核到持续集成等等。我了解到了很多我平时不知道的东西,我解决了发现了的所有的bug。可是最终,我并没有把这个项目维护到可以发布的程度,最后一关的AT&T的稳定性测试宣判了我的这个项目的死刑,随后这两万多行代码慢慢的从我的提交列表里面消失掉了。我第一次明白了,竟然还有如此严格的质量测试,也明白了什么叫风险与代价,虽然这些代码,我已经用monkey模拟跑过了5个钟头,但是依然被ATT测试蹂躏2个钟头之后挂掉。我也明白了,要预防风险,你就必须提前考虑到,否则,等到那个不好的事情发生,你已经没有机会了,你的努力会白费。

在这家公司我还做了另外一个项目,做的很辛苦,甚至于项目后期了,我们还加班加点把整个项目的结构重写了一遍。这个项目被人重视,甚至被当作新产品的一个卖点写到宣传海报里面去。可我们真的搞出很多事情,有一次,软件部门的头头报给我们几个软件崩溃的bug,于是这些小头头们着急了,整天拉着我谨和们解决各种各样的问题,整天压着我们要把bug list里面的问题尽快搞定。幸好,我们最终都搞定了。软件成功发布,虽然它不如预期的那么完美,但是至少,在新产品里有它的身影,而我自己每天也在用。。这个项目最大的感受是,决定必须有实践结果的支持,我们刚开始的方案,因为最终不能满足性能要求,不得已,在项目后期加班加点换实现方案。而且,我也第一次感受到一个好上司,真的很重要。因为最后公司部门重组,我们几个给某些领导带来麻烦的人,好像不是很受欢迎啊。我想,如果一个只为自己考虑的管理者,应该是这样的吧。

年初,我觉定去一家小公司发展(也看了一些关于大小公司工作之间的争论文章 http://www.dbanotes.net/jobs/howto_choose_company_style.html 和 http://robbin.iteye.com/blog/730223 等等)。于是通过猎头介绍,到了现在这一家。这几天,我带领的团队终于完成了一个移动互联网的项目,老板拿着最近的版本去给他的朋友看去了,可我自己在想,还不完善啊,我们需要在努力下,好让老板(主抓市场)去卖我们的产品的时候更有面子一点。。这段时间里,我学到最重要的东西是,老板也不容易,有时候得替老板想想;执行力很重要;在小团队里,你自己的技术视野和细节都很重要,因为出了问题,肯能需要你去解决;学会激励别人;除了学会快速学习之外,还要能帮助团队成员快速学习;不要逃避问题,因为你就要是那个问题解决者(任何问题,不管技术和其它)。。等等

昨天跟第一家公司带我的朋友聊起,他说,你现在太拘泥于细节,你现在要从代码的层面出来,站在更全面的角度去把握整个团队的工作,建立框架,建立模式,这样你的团队才能高效执行。。。。 总之,他说的话我也不是太理解,也许需要时间。不过我想,自己一个人走的太累的时候,可以找找周边的朋友帮你分析和指导下,因为可能,在一年多以前,我也在看stackoverflow上那篇,技术人员应该读什么书,是的,那些书我会去读,可我现在更重要的是要解决工作中所碰到的问题。

也许我的废话太多,也没有上面毛小毛贴出来文章那么深刻。而我也只是一个非常普通的程序员,我得先学会蹲马步才能去学铁布衫啊。也许,我想说是,具体要学什么我不知道,没有定论,但是得从环境中分析出,需要学什么,也许刚开始分析的不对,走了错路,分析对了,没执行对,也走了弯路,可那有什么办法呢,成长的代价,不是理所当然的吗。

首先来谈谈为什么要有这篇文章,主要是最近一段时间的亲身经历后的所感。最近我们团队开始在全国范围内开始为很多的企业的项目进行性能调优。接触到了很多不同的人和事情,也看到了很多的现象,趁今天有点空闲时间和大家唠叨一下。 每次去IT社区,都在吐槽:说技术人员是多么的苦逼;每次和一些搞技术的朋友聚会,聊的也是大家的生活是多么的苦逼;每次上网看微博,也是充斥着“技术人员苦逼论”… 今天谈到这个话题,固然会有很多的不同的意见和想法,我这里这是就从我看到的一些现象和自己的一些思考说说技术人员到底为什么“苦逼”。 为什么苦逼? 原因一大堆,对于外部的因数,我们很难控制,例如中国的IT国情和对技术人员的观念。但是,在商业中有这样一句话可以借鉴一下:经济再萧条,也有人在赚钱;形式再好,也有很多人在亏本,很多的公司在倒闭。 很多的时候,我们倒苦水,但是心里要知道:是大的环境让我们苦逼,还是我们本身就得苦逼,换句话说,苦逼是我们自己应得的。这话很多人不爱听,但是很多时候确是事实。 这半年多以来,去了不少大大小小的公司,为他们的项目进行救火,解决他们现有的性能等问题。很多的项目在做的时候,很少考虑什么性能,安全等因素,都是上面的人在不断的催,下面的人在火急火燎的加班加点赶进度—今天完成了什么功能点,明天要完成什么功能点。于是很多的技术人员顾不上什么,一心思的把功能堆了起来。苦逼的第一个原因出来了。 终于,项目搞定了,上线跑了没有多久,问题就出来了:项目功能是齐全,但是就是无法使用,有的功能慢的像拖牛。于是,有人建议开始买好的设备,加大带宽,以为钱砸下去了,情况会好点。但是好景不长,甚至事与愿违。于是一堆人就开始焦虑,束手无策,技术人员又开始加班加点的解决明明知道自己无法解决的问题,于是苦逼的第二个原因出来了。 在无法搞定的情况下,技术人员开始郁闷了,接着疯狂的上网开始收集可能的偏方,然后一股脑的用在项目中,求神拜佛的希望偏方有效果,运气好,暂时搞定了,那就皆大欢喜,搞不定,把之前的步骤再次重复一次吧。基本可以用下面的一个幽默来总结这个过程: 从接触到的一些技术朋友来看,有些朋友的技术能力不错,有的却让我想抽自己,没有听错,是抽我自己。抽我自己为什么要给他们讲这么多的东西,而这些东西他们又不懂,然后又非得把懂这些知识的铺垫知识给他们讲。例如,项目出现了内存泄露的问题,公司的技术人员问题我这么回事,于是我告诉他们是VAS的碎雹带悄片,他们又问我们为什么VAS碎片了,于是我们给他们讲述,但是他们听不懂,于是让我们给他们讲解一些铺垫知识:Window内存机制,.NET内存机制等。本来以为大家都是同行,交流交流,没想到行州,使得我们自己陷入了苦逼: 同时也深深的感受的一点:很多的技术朋友在走出了校门或者培训学校之后,技术能力就没有在进步了,一是处于打混的阶段,有的运气好,很多年之后,混到了不错的职位,但是很多的人却混的非常不幸,于是他们就成为“技术人员苦逼论“的忠实粉丝。其中有一点就是很多的朋友不喜源渣欢自学,总是希望有人手把手的教。我们遇到的一个最搞人的情况就是,我们已经把功能全部调完了,代码完全实现了,服务器也是全部配置好了,就差调试了,很多的人依然不动。 也使得我想起另外一个情况:每次有很多的朋友都说要学习技术内幕,要学深一点,喊着叫着要看深一点的文章,但是写出来之后,没有几个人真正的看完,前几篇简单的介绍看的人很多,稍微深一点,就没有人看了。也有很多的朋友想到处找大牛拜师,都希望沾点牛气,成为牛中的一员。但是技术,能力,这个东西终究靠自己。用心与不用心,差别就是天壤之别。 我常常说这样的话:社会不是初中,高中,没有人会像老师那样手把手的教你,盯着你,一切靠自己。没有谁就非得要叫你,没有人欠你的,如果自己都不上进,想做阿斗,诸葛亮来了也没用办法。物竞天择,适者生存! 我非常敬佩那些出身不好但是一直坚持奋斗的人,也非常敬仰那么环境舒适还依然努力的人。你遇到过很多聪明人,你的大学同学,你的同事,你的朋友,有几个比你傻?很多年以后,你会看到成功的并不是最聪明的人。因为决定成功的更多是非智力因素:明确的目标,积极的心态,努力和坚持,承受挫折和压力的能力,成熟的接人待物等等。有一种人注定没戏:不努力和怨天尤人。 长期 *** 作电脑需要养成的好习惯谈程序员的出路我的25年嵌入式生涯--周立功 (很值得一读)衣最个性:男装之短袖T桖篇男生买衣服为什么就这么难?技术七年之感受程序员每年要做的十件事Java 的工作原理Java语言的辉煌,还能延续多久?

程序员是从事程序开发、程序维护的专业人员。

程序员一般需要会做:确认通过审查方案的目标,输入数据,分析唯携师,监事,和客户的输出要求的项目要求。安排项目要求在编程序列分析要氏山行求准备工作流程图和使用计算机知识的能力,题材,编程语言和逻辑图等。

通常情况下将程序员分为程序设计歼哗人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12383317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存