`
sbpya
  • 浏览: 615592 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

谈谈这些年做开发的一些感触

阅读更多

       那一年高考,大家都为自己选择什么专业有点犯愁,我也不例外,面对形形色色的专业,自己也不知道自己今后适合做什么,喜欢做什么,好多都是由父母来决定,对于我们这个80年代初的人来说,起码在当时,有很多是这样的,父母也总是左打听,右打听的,生怕自己的子女选错行,古语云,男怕选错行,女怕嫁错郎,这在有着5000年传统文明的中国来说,在选行的关键时候,确实是个让人左右为难的事.我嘛,小时候喜欢打电子游戏,感觉这东西很神乎,想着这些都是电脑程序所做,很想自己以后也能作出自己的程序,于是,不顾父母的推荐,(父亲是教师,他想让我考师范,继承他被美誉为人类灵魂工程师的职业),在自己的坚持下,选择了计算机科学这个专业.

    四年的大学生活,跟平常读书一样,认为只要学好了书本中的内容,在考试中名次排在前十就可以了(我们那个年代的家长,很看重考试名次的,班级名次,年级同专业名次),很少参加实践,就这样,在一直争名次的学习氛围下,度过了大学生活,开始面临严峻的就业形式.

    毕业后,一直待在省份城市,希望找到一份自己渴望的,实现当年选专业时的理想的开发工作,看到只要带有计算机或是软件或是科技等关键字眼的公司,就去投简历,但现实总是那么的无奈,面试的公司对于我们这种应届毕业生,总是不太感冒,同时,自己也感觉在面试时,问到的很多在实际工作中要用到的实用技术点,似乎在大学四年里,根本就没有接触过,也慢慢知道,想要马上找到一份软件开发的工作的成功率太小了.在面试的公司,有不少公司同意招我进去,但不是做开发,而是做软件业务工作,并提出如果以后在工作中能自学加强自己的开发技能,是可以提供机会转到开发技术部门,我想,这样也好,先熟悉下这个行业的特点,在工作之余来向公司的技术人员加强学习实用技术,如果有机会,再转到自己曾经向往的开发.

    就这样,我一边做着软件业务员的工作,一边自学VB(当时的公司就是用VB语言进行开发的),终于,在一年之后,我通过了技术部门的考试,被调到了技术部门,跟那些前辈一起,整天坐在电脑边上,敲着abcd.

    转到开发的前期,很少会考虑代码的优化,都是一股脑写下去,功能虽然说是实现了,但是性能等什么的一概未管.这也让我吃了不少苦头,一旦有需求变更,改起来很麻烦.(大家不要笑我,真的是这样的)

   总是在这种苦头下,真是很折磨,于是,我便找了个机会,打电话叫技术经理出来吃夜宵,并向他请教怎么样摆脱这种现态,他告诉了我,程序入门是容易的事,但真正要做到熟练的驾驭它,以最好的方式来组织代码,这个还需要很多的功底,不是仅仅知道语言的语法就可以的,更多的要去关心语言的实现机制,运行原理,加载顺序,并活用语言的特性,让代码最大化复用,在写代码的时候,要多去考虑某个功能今后可能需要扩展的功能,不能只是考虑现有功能的实现.

    那次请教之后,我开始学会去看那些出问题较少的老前辈写的代码,试图了解他们是否有什么秘密武器,慢慢的知道了什么是设计模式,什么叫重构,什么叫颗粒度等等这些以前一无所知的"秘密武器".

    就这样,几年后,随着java语言在网络应用开发的表现出来的优越性,以及它跨平台的支持,很快席卷了大江南北,我也开始关注并自学起java来了.

    java的入门跟VB一样简单,看看语法,学会如何搭建环境,你就可以写出"hello word"了,但你千万不要认为java就这么点东西,不值得深入研究,学会了ssh框架的使用,知道如何写配置文件就掌握了java,这其实才算是真正的入门.

   为什么这么说,java是开源的,基于java的框架技术层出不穷,不论这些框架有多么优秀,但有一条共性,这些都是活用java编程思想,巧妙运用设计模式的结晶,万变不离其宗,最核心的技术还是它的思想,以及在实际业务中的活学活用.

   如何做到活学活用呢,这就要求我们在学习技术点时,一定要明白这个技术的运行机制,思想原理,并根据实际情况来具体分析,例如,设计模式一书说到单例模式,常用于对一些config对象使用,那么你要明白为什么常用于config对象,这是因为这些配置信息一般都是全局共享的,在运行过程中不经常发生属性变化,为了保证各处的调用都是同一个对象,但是,如果这个config对象对于不同的情况有不同的配置,情况有成千上万中,但每次可能使用到的只可能是其中的某一种或几种,这个时候,我觉得,如果,把所有config对象都做成单例模式就不是那么合适了,我们知道,单例的对象是static的(当然,登记式单例除外),static对象的生命周期是跟main thread一起的,如果每次应用中,只可能用到这其中的几种,我们就没有必要把这成千上万的配置都做成单例,做成第一次使用到时,再加载是不是会更好呢?根据具体使用到几种来实例化这几种.这只是举个例子,在这里并不是跟大家讨论单例模式,只是说明,每一项技术都有它常规的适应场景,在不同的场景中,我们就要了解这个技术点的原理,以及内存分配情况,生命周期,作用域等等基础的原理,来活用每一项技术.

   有几次,去几家公司面试,面对那种喜欢问jdk原理,java编程思想,以及各种应用场景的面试官,总是喜欢跟他们一起探讨下,从中学到更多的不同的理解.作为我自己,当我面试前来应聘者的话,我也更希望他能更多的了解这些基础的知识,而不是简单的说知道ssh怎么用,怎么配置,而说不出其实现机制,当在实际应用中,如果,你了解一项技术的思想和原理的话,你对它的驾驭能力就上了一个档次,当出现特别需求要求对这些技术根据业务所需进行改造时,你就会轻车熟路了.

 

  另外,走上开发这条道这些年,我也越来越感觉到了,作技术的人,表达和理解能力是相当的重要,如果你知道一项技术怎么运用,但是如果你不能用通俗易懂的语言把你理解的思想表达出来,可能会误导你的同事,造成不必要的成本升高.当然,反之,作为一个接受思想传递的开发人员,不能很快理解对方所要表达的真实意思,也是不好的,在团队合作中,要善于发现自己的同伴喜欢用何种表达方式,如何正确理解对方的意思.(这里,大家可能会觉得我说的这正反两方面是矛盾的,其实,谁真正作到了正确的表达,谁作到了正确理解,项目团队的其他同事会给你答案的).

   有些开发人员喜欢用专业术语,PO,VO,POJO等等层出不穷,沟通起来就满嘴的专业术语,当然,这并不是说不好,我觉得也应该看场合,如果跟你沟通的同事也是一个专业术语领悟能力很强的人,用术语表达,也未必不可,简单明了,如果,对方是一个喜欢通俗表达方式的,我们就应该尽力找到一个最能比达你的意思的朴实的小例子来进行说明,这样,这样,可能会更快的让对方明白你的所思,所思.

 

   说了这么多,有点凌乱,最后,谈谈自己的迷茫,都是快奔三的人了,有朋友劝说我尽快挑选一个其他行当,不要再在开发的道路上走下去了,他说,在中国,软件开发是一个青春饭的职业,奔过三之后,就基本上在这条道上会走不下去的,有时,看看全国各地的各大公司的招聘以及职员介绍,确实也感觉,只有青春才能扛住这个行业的艰辛......真的有点迷茫了....

    唉,不说了,唱着这首"我拿青春赌明天.......",收拾电脑包,回家吃饭先.

分享到:
评论
5 楼 home309 2010-08-05  
第一步,反复看java编程思想和设计模式,体会其中的精髓.

第二步,根据第一步所体会到的自己的感受,去看一些优秀框架的源码,并分析这样做有什么好处,有什么弊端,如果是你做,你会怎么做

第三步,能将自己的体会活用各种场合.
sbpya 写道
home309 写道
还有个问题,我现在还处于菜鸟阶段,写代码也是没有优化可言的,看高手写代码的方式就不一样,自己也想提升,有没有门道建议一下?


第一步,反复看java编程思想和设计模式,体会其中的精髓.

第二步,根据第一步所体会到的自己的感受,去看一些优秀框架的源码,并分析这样做有什么好处,有什么弊端,如果是你做,你会怎么做

第三步,能将自己的体会活用各种场合.

收下了,谢谢
4 楼 sbpya 2010-08-05  
home309 写道
还有个问题,我现在还处于菜鸟阶段,写代码也是没有优化可言的,看高手写代码的方式就不一样,自己也想提升,有没有门道建议一下?


第一步,反复看java编程思想和设计模式,体会其中的精髓.

第二步,根据第一步所体会到的自己的感受,去看一些优秀框架的源码,并分析这样做有什么好处,有什么弊端,如果是你做,你会怎么做

第三步,能将自己的体会活用各种场合.
3 楼 home309 2010-08-04  
还有个问题,我现在还处于菜鸟阶段,写代码也是没有优化可言的,看高手写代码的方式就不一样,自己也想提升,有没有门道建议一下?
2 楼 home309 2010-08-04  
哎,青春饭,都知道是青春饭了,为什么我们还要走着条道,为什么不直接找个一辈子的事业做...大哥,我也走上这条道了,说实话,不是很喜欢..生活很黑白的感觉..就天天面对着电脑...人生不应该是这样的不是吗?
1 楼 spp_1987 2010-08-03  
楼主大哥, 很厉害。 有的意味,有的酸辛。   

看着这些的内容,以后我也会触摸到,当然会触摸到自己的轨迹出来

   走过,回想,吸取经验,收拾东西 接着走。

相关推荐

    软件工程学习心得体会

    这些理论和模型的一个核心目标是解决软件开发周期的问题——如何合理地组织和控制软件开发过程中的各个步骤。 在学习软件工程的过程中,我特别重视对各种开发模型的理解和应用。通过学习,我了解到不同的软件开发...

    作为程序员的基本素质

    同时,上进的态度还包括积极面对变化,愿意接受新的工作方式和方法论,如敏捷开发、持续集成等,这些都是提高工作效率的有效手段。 #### 表达沟通 在团队合作中,良好的表达沟通能力至关重要。无论是内部的协作...

    2021年3月公司员工个人述职报告范文.docx

    在我的日常工作中,无论是开发代码、撰写文档还是客户服务,我都努力从细节做起,愿意从小事做起。面对用户,我明白良好的服务意识、专业知识和人际沟通能力的重要性。在处理用户问题时,我学会了通过集体讨论和解决...

    20xx年上半年述职报告范文怎么写.docx

    - 总结全文,可以谈谈个人感悟或对未来工作的展望。 - 签署姓名和日期,表明报告的完成时间。 7. **注意事项**: - **实事求是**:准确反映工作情况,避免夸大或掩饰。 - **突出个性**:展示自己在IT领域的独特...

    一个测试员对测试的理解

    测试是软件开发过程中的关键环节,它确保产品的质量和满足用户需求。本文档通过测试员王宁宁的视角,深入探讨了测试工作的各个方面,旨在提升测试效率和问题解决能力。 首先,对需求的理解是测试的基础。测试员需要...

    写给刘翔哥哥的一封信作文.doc

    在此,我想借这封信,分享一些我的想法与感悟,并谈谈您对我的影响。 首先,我想到的是体育精神。在您职业生涯中,面对的挑战与困难,您从未放弃,以自己的汗水和努力,书写了属于中国田径的传奇。在IT行业中,我们...

    《Linux系统管理技术》期末考核题目.docx

    学生需要结合所学的《Linux系统管理技术》课程的相关知识和软件工程的专业特性,谈谈自己对Linux下的软件开发的认识、体会。 例如,学生可以撰写一篇小论文,总结自己对Linux下的软件开发的认识、体会,例如: ...

    在总举办外来工职业素养培训启动仪式上的发言.doc

    我深感荣幸,能在这里与大家分享我对外来工职业素养培训重要性的认识,以及我个人职业生涯的一些感悟。 首先,我想强调职业素养培训的重要性。在当前经济社会发展的大背景下,外来工是我们城市发展中不可或缺的力量...

    16个java经典面试问题回答思路

    - **职业规划**:简单谈谈对未来职业发展的规划和目标。 #### 4. 业务理解 - **定义**:解释所从事的业务领域是什么。 - **价值**:说明该业务的价值所在,以及它对公司的重要性。 - **个人见解**:分享自己对业务...

    经典哲学文章精选.doc

    艺术家的创作灵感往往来源于对现实生活的感悟和理解,只有这样,艺术表现才会有血有肉,生动且真实。而我们在生活中也需要具备这样的创新能力,不断从周围环境中寻找灵感,这样才能让我们的生活更加多彩。 热力学与...

    计算机毕业设计文档包括开题报告和实习报告

    5. **实习感悟与收获**:分享实习经验,谈谈你对专业理解的深化和对未来职业规划的思考。 6. **自我评估与改进方向**:对自身在实习期间的表现进行客观评价,提出需要改进的地方和未来的发展方向。 通过撰写高质量...

    毕业实习日记

    - **个人感悟**:结合实习经历,谈谈对未来职业发展的思考。 - **建议与展望**:基于自己的实习体验,提出对学校教学或企业实习制度的改进建议。 综上所述,通过淮海工学院的这份毕业实习日记模板,我们可以看出...

    单片机和嵌入式的概念理解与区分

    单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。首先明确概念,什么是单片机,单片机是一种集成...

    汇编课程设计报告

    这一部分主要是学生个人通过此次课程设计获得的经验和感悟,可以从以下几方面展开: 1. **学习心得**:分享在学习过程中遇到的困难、解决问题的方法以及从中获得的成长。 2. **技术应用**:探讨汇编语言在实际...

    联想暑期实习总结

    首先,报告应包含对实习期间所参与项目的概述,这些项目可能涉及产品开发、市场研究、客户服务或者技术支持等。对于每个项目,都需要详细描述你在其中的角色,你所学到的技术和业务知识,以及你如何将理论知识应用于...

    改变课堂教学模式,落实新课标理念

    新的《课程标准》在教学建议中明确指出:“在教学中,要面向丰富多彩的社会生活,开发和利用学生已有的生活经验,选取学生关注的话题,围绕学生在生活实际中存在的问题,帮助学生理解和掌握社会生活的要求和规范,...

Global site tag (gtag.js) - Google Analytics