`
kong_desheng
  • 浏览: 22610 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

程序员的学习之路

阅读更多


一个程序员,一旦进入了一家软件企业,就会被安排到项目组中,进入项目的紧张开发过程。没日没夜的加班,写代码、调程序、改代码,披星戴月,累个半死。往往一个项目还没干完,第二个项目就来了,有的程序员甚至同时在4、5个项目中,整天忙得不可开交。

然而,高质量的软件,需要用高水准的技术来构建。软件开发,是个智力劳动,而非体力劳动。在项目进度很紧时,程序员会倾向用自己已经掌握的技术来解决问题,尽管他也知道这不是解决问题的最有效方法,但迫于时间压力,他愿意用陈旧的技术和大量的体力劳动来赢得时间。然而,项目的需求在不断变化,需求变化导致的最直接结果,就是大量的代码要被修改。以前大量复制粘贴的代码,都要被一一找出来,一个个仔细修改。进度被进一步延缓,体力劳动进一步加大。因此,当项目结束时,这样的程序员技能没有任何提升,只是付出了大量的体力而已。如果问他:你愿意学习你的技术吗?他会回答:我愿意,但项目太紧,我没时间学习。

以上,就是中国程序员的普遍生存状况。

我把上面的两句话再重复一下,加深大家的印象:
1. 高质量的软件,需要用高水准的技术来构建。
使用更先进、更强大的技术,会显著改善程序的结构,优化代码实现过程,导致代码数量更少,重用度提高,并提供更加强大的功能特性。当需求变化时,只需做少许改动,就能快速满足新需求。从而使项目进度加快,质量提高。
2. 软件开发,是个智力劳动,而非体力劳动。
构建软件是个智力密集型生产过程,而非体力劳动。所谓体力劳动,是指机械式的重复一些完全相同或大部分相同的工作。体力劳动工作量=∑重复代码数X重复次数。在这个公式中,需引起注意是重复次数。往往在项目开发中,我们第一次进行复制粘贴代码时,认为只此一次,但后续需求变化、结构调整、类的数量增多,重复次数的增长是惊人的。比如Web开发是,如果每个页面都复制粘贴同一段代码,那么整个项目可能会有成百上千个页面,这种重复劳动带来的体力工作量是巨大的。

因此,唯有使用更优化的软件架构、更好的程序结构、更优的算法、更优的实现逻辑,才有可能从忙碌疲惫的体力劳动中解脱出来,才有可能加快项目进度,提高软件质量。

而学习、掌握新的更为先进、更为强大的技术,是在项目中有效应用的前提。

那么,就如本文一开篇描述的那样,项目如此紧张,根本没时间学习啊?

答案:在项目中学习。
今天的项目是如此紧张,下一个项目也是如此。永远也不会出现这种情况:一个项目结束后,项目成员都放一周假,用于给大家学习。那是不可能发生的事情!即使出现短暂的假期,那么在假期里,没有任何压力,你就容易失去目标,你学什么呢?又怎么知道你理解的是否正确呢?这些知识应该用在什么地方呢?

因此,只能在项目中学习,在紧张的项目中进行深入学习,提升技能。

如何能做到?

在每一天的编程中,面对问题时,要求自己必须用最优的算法、最简单的结构、最简洁的逻辑过程、最大程度的重用来实现代码。遇到任何一个问题,都不放过,通过翻书、互联网搜索、与团队讨论、请教上级等各种方式对其进行探索,让自己彻底搞清楚,找到解决问题的最佳方法。与此问题相关的技术点,都一并进行学习,力求透彻理解。这样一个项目下来,此项目中遇到的各种问题,你都可以彻底解决,与这些问题相关的各种技术点,都被你全部掌握。这样,你的技能就会大大提升。

这种学习方法,会不会导致我的任务无法按时完成?刚开始的时候,会出现这样的情况。是因为你的基础太差,遇到的问题太多,并且还没有掌握分析问题、解决问题的正确方法,因此进度会比较慢。但很快你就会通过这一时期,基本概念变得清楚,分析问题也有了思路,解决问题的速度会大大加快。最终,你的进度和代码质量,一定会让你的项目经理满意的。

并非打开书本,一页页研读才叫学习。软件研发是一门实践的学科,在项目实践中学习,理论应用于实践,在实践中探索和思考,这样才能快速成长!


34
2
分享到:
评论
15 楼 lyqidao 2010-03-23  
  通过不断的学习 不断充实自己 积累经验 学会”偷懒“
14 楼 anysky131 2010-03-22  
呵呵,最近也有些体会,但其实真正想要做好,也没有那么简单。
而且技术人员也都是从砌砖头开始的,砌多了也就明白了,也就能驾驭一些项目了,也就开始思考了,也就开始要求提升,也就提升了,也就越走越远,越做越深,越做越广了。
我觉得这是一个顺应事态发展的规律。
然后在规律中,我们可以通过自己多一点的努力,让自己能够把规律的时间缩短一些。
13 楼 guji528 2010-03-22  
总结很详细,在项目中学到的东西才最深刻。
12 楼 lyqidao 2010-03-21  
代码改吧改吧 不是罪 要不然也会失去这最后的机会 ;代码改吧改吧 不是罪 要不然也会失去这最后的机会
11 楼 shermenn 2010-03-20  
 
10 楼 haoshuo 2010-03-20  
我觉得在做项目的时候就是学习最快的时候。闲暇时看书学习,和在项目中为了解决问题而查资料,两种学习的效率根本不可同日而语。
9 楼 shunai 2010-03-20  
也有点感触
8 楼 pignut_wang 2010-03-20  
非常好的总结,可惜楼主不再深圳,真想好好聊聊
7 楼 kuchaguangjie 2010-03-19  
很好的经验,非常有道理,
不仅仅是写程序,我们生活中的每时每刻 都有类似的道理!!!
6 楼 海阔天空love 2010-03-19  
精辟。。转载了。。lz没意见吧。。有意见也暂时保留吧。。哈哈。。。
5 楼 C.T 2010-03-19  
也是,总不能天天说忙,就放弃学习。
4 楼 conqweal 2010-03-19  
尽读书不如无书。。。。。
实践会给人更完整的认识。。。。。。。。
3 楼 renwolang521 2010-03-19  
我们总是在赶,狂赶,有时候甚至盲目,很少停下来想一想。
2 楼 lwp2000 2010-03-19  
楼主说的很真实,很贴切。中国的程序员大多就是这样的,不能适应快节奏的可发。这已经说明了一个问题:我们没有把工作当做学习,而是急于完成任务并不断的粘贴复制。这样的模式很值的我们去深思呀!
1 楼 young_suse 2010-03-18  
说的太对了,很多时候,为了赶时间完成任务,我都是只图功能的完成,没怎么去考虑代码的质量。本想先把功能完成了,有时间再重构一下代码,事实上,过后根本就没有去做重构的工作。因此,一个项目,两个项目下来,代码水瓶还是上不去。以后一定要改啊,哪怕让自己加班也行。

相关推荐

    程序员学习之路

    《程序员学习之路》这篇文章,正是为那些希望通过编程在职场上找到自己位置的初学者所准备的。它不仅详细介绍了程序员这一职业的定义和特点,而且深入剖析了成为合格程序员所需的技能和知识,以及学习编程的最佳方法...

    程序员晋级之路

    在《程序员晋级之路》这篇文章中,陈皓及其合作伙伴Mailper通过分享个人的学习经验和心得,为希望提升自身技术水平的程序员提供了宝贵的建议。文章强调了基础的重要性,并指出盲目追逐新技术可能带来的弊端。 #### ...

    程序员成长之路(很受用)

    "程序员成长之路" 程序员成长之路是一个老程序员对刚上大学的学弟学妹的忠告。文章提出了几个误区,提醒初学者不要追赶时髦技术,而应该花时间学习基础性的东西。 第一个误区是认为计算机技术等于编程技术。很多人...

    程序员之路探究

    程序员的职业生涯探究中提到的几个重要知识点可以分为以下几个方面:程序员的职业发展、学习与实践、技术深度与广度、个人品牌与市场价值。 首先,程序员的职业发展方面。在文档中提出程序员的生涯是否是一碗青春饭...

    游戏程序员的学习之路

    0. 编程学前班 1. 计算机科学 2. 编程语⾔言 ...4. 游戏程序员的数学课 5. 游戏编程 6. 游戏引擎开发 7. 计算机图形学(CG) 8. 游戏⾳音效 9. 游戏物理理和动画 10. 游戏⼈人⼯工智能(AI) 11. 多⼈人游戏编程

    程序员学习资料综合

    【标题】:“程序员学习资料综合”这一资源集合涵盖了IT编程领域的广泛学习材料,旨在为程序员提供全面的学习资源,包括但不限于Java、Python、大数据以及数据库等多个关键领域的知识。 【描述】:这个压缩包文档是...

    php100-100PHP程序员的学习之路和未来职业规划.rar

    【标题】"php100-100PHP程序员的学习之路和未来职业规划.rar" 提供了一个关于PHP程序员学习和职业发展的主题。这个压缩包很可能包含一系列资源,旨在帮助初学者或有经验的PHP开发者更好地规划他们的学习路径,并对...

    JAVA程序员之路-----看专业程序员的成长之路

    ### JAVA程序员之路——专业程序员的成长历程 在IT领域中,JAVA作为一门强大的编程语言,不仅在企业级应用开发中占据重要地位,而且在全球范围内拥有庞大的开发者群体。对于想要成为JAVA程序员的朋友来说,了解JAVA...

    2024 程序员学习路线规划及课程体系介绍.docx

    2024 程序员学习路线规划及课程体系介绍.docx 2024 程序员学习路线规划及课程体系介绍.docx 2024 程序员学习路线规划及课程体系介绍.docx 2024 程序员学习路线规划及课程体系介绍.docx 2024 程序员学习路线规划及...

    程序员修炼之路 从小工到专家

    “修炼之路”则隐喻了程序员成长并非一蹴而就,而是需要持续学习、实践和自我提升的过程。“从小工到专家”则明显指出了程序员职业发展的一个理想路径,即从最初级的编码执行者到掌握深厚技术与业务理解的高级专家。...

    C++黑马程序员学习资料

    C++黑马程序员学习资料,附赠《InterviewGuide第四版By阿秀》、《LeetCode刷题手册》、《背包问题九讲》、《算法图解》pdf版本,三个基础课程文档手册及三个实验项目,由简到繁分别为《通讯录管理系统》、《职工管理...

    程序员的学习方法

    有很多的JAVA程序员,在初期学习时,通常会对如何学习而感到迷茫。下面笔者就将转发一篇一位网友的精品帖,这位作者对于JAVA程序的学习分析的很到位,相信能帮助那些正在处于迷茫状态的初学者...

    一个谷歌程序员的算法学习之路

    一个谷歌程序员的算法学习自述 -- 在算法的路上披荆斩棘,一路有你。

    程序员成功之路

    总的来说,程序员的成功之路并不是一条短暂的职业道路,而是一个持续学习、不断挑战自我的过程。编程不仅是技术的运用,更是创造力和思维的体现。热爱、积累和坚持是程序员实现职业成功的关键,而将人生视为程序设计...

    程序员书籍 学习资料

    程序员书籍 学习资料搜集 包括基础 中级 技巧方面的书籍

    程序员学习英语

    ### 知识点一:程序员为何需要学习英语 在当今全球化的信息技术环境中,英语作为国际通用语言,在IT行业中扮演着至关重要的角色。对于程序员来说,掌握一定的英语水平不仅能够提高工作效率,还能拓宽职业发展的道路...

    程序员的10层楼--程序员的学习之路

    本文介绍了程序员的技能训练过程,详细完整的为向从事计算机科学及计算机工程工作的本专业和非专业人士指出了一条学习之路。并在后半部分将学术上升到了科学和哲学的高度。是篇难得的好文章。

    C++程序员进阶书籍3本

    作为一位C++程序员,不断学习和提升自己的技能是至关重要的。以下将根据给定的书籍标题和描述,详细介绍这三本书籍可能涵盖的知识点,以及它们对于C++程序员进阶的重要性。 1. **《优秀程序员的编程习惯》** 这本书...

Global site tag (gtag.js) - Google Analytics