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

2024-12-18 18:05:24
推荐回答(5个)
回答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上那篇,技术人员应该读什么书,是的,那些书我会去读,可我现在更重要的是要解决工作中所碰到的问题。

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

回答2:

作为一个程序员,需要学习多少技能?下面我们就来一起看看,作为一个程序员,需要的技能!


1、学好"物理"。 基础算法和数据结构。是计算机世界的基本定律,是程序问题的终极答案;

2、学好“化学”。 各类系统和语言的关键性质,提供能写出优秀程序的原料;

3、学好“生物”。 不同的技术构成不同的生态系统,不同的生态系统有不同的规则。程序符合生态系统环境,才能长成参天大树。

4、学好“历史”。 技术从哪里来,要到哪里去;

5、学好“文学”。 写明白文档,表达好逻辑,起得好名字,用得好隐喻;

6、学好“建筑”。 钢铁,水泥,脚手架,防灾,抗压,无单点,架构是系统的核心;

7、学好“艺术”。 写程序对得起自己的眼睛,做产品对得起用户。

8、学好“经济”。 成本、收益和时间帮助你做编程时的主要决策。

有两个基本技能会贯穿你的职业生涯,时刻提醒自己强化这两个能力总会让你的生活更美好。而且是无论任何时候,怎么强调都不为过的,即使是老手也经常在这两件事上犯错误。

1学会使用google当你写了一段代码,编译一个开源代码,或者安装某个软件,遇到意想不到的问题的时候,第一时间把错误信息贴到google上,99%的时候你会发现早已经有人提出过相同的问题,解决方法就在第一条搜索结果。甚至当你犯下rm -rf /这样的错误时,惊慌之前记得先问google,你会发现世界末日比你想像的要远。

2学会使用打印语句打印语句(printf,println等)。你的程序运行结果和自己想的不一样?放弃之前先老老实实在每一步的中间状态,把重要的变量值清清楚楚地打印出来。不要想当然的以为那些值一定计算正确。99%的时候当你第一眼看到那些打印出来的结果时,就会明白问题出在哪了。不是每个语言都有强大的IDE让你可以设断点单步调试,有些时候你甚至得在远程的linux主机上调试程序,但是打印语句永远都可以使用。这是最笨的方法,但却是永远有效的方法,不论你的程序有多么复杂,运行在哪里。

在你的程序员生涯里会不断学习到新的酷炫技能,但是相信我,不会有任何一个能给你带来超过这两个基本技能的收益。尤其是在遇到问题时,问问自己,这两点都做到了吗?

回答3:

作为一个程序员到底要学多少技能呢?我看了好多的资料大概的总结了几点:

  • 1、学好"物理" 基础算法和数据结构。是计算机世界的基本定律,是程序问题的终极答案。

  • 2、学好“化学” 各类系统和语言的关键性质,提供能写出优秀程序的原料。

  • 3、学好“生物” 不同的技术构成不同的生态系统,不同的生态系统有不同的规则。程序符合生态系统环境,才能长成参天大树。

  • 4、学好“历史” 技术从哪里来,要到哪里去。

  • 5、学好“文学” 写明白文档,表达好逻辑,起得好名字,用得好隐喻。

  • 6、学好“建筑” 钢铁,水泥,脚手架,防灾,抗压,无单点,架构是系统的核心。

  • 7、学好“艺术” 写程序对得起自己的眼睛,做产品对得起用户。

  • 8、学好“经济” 成本、收益和时间帮助你做编程时的主要决策。


程序员要做的就是先要“高中”毕业,然后选择一个最擅长的专业继续深造。 有两个基本技能会贯穿你的职业生涯,时刻提醒自己强化这两个能力总会让你的生活更美好。而且是无论任何时候,怎么强调都不为过的,即使是老手也经常在这两件事上犯错误。

编程这个工作是技术活,只有这样才有可能大规模的去进行,才会有软件工程这样的说法。编程必须要具备艺术细胞要有自己的创作的特点,从而我们的生活中才会有如此多的好的软件产品。其实写一个程序是需要付出很多的脑力和体力的,当程序员完成某一个程序之后,在程序员们的眼里,每一个程序就都是一件物价艺术品。

责任就是程序员们的方向,经验就是资深程序员的资本。把及其复杂是的事情简单做,就是专家;把简单的事情重复做,就是行家;把重复的事情用心做,就是赢家。

回答4:

搜索能力分为两块
1,存疑
2,搜索
存疑能力你必须有,你要时刻确定,我这个知识,理解,是不是正确的,这点上恰恰是你outstanding于80%的人的一个重点,只有你存疑了,你才会去搜索,你确定的事情,你是不会去搜索的

回答5:

程序员专精几项就行了,不用样样都会,等到了一定资格就转项目经理