做上层开发学了这么多所谓的语言,框架,技术,其实现在想想万变不离的却是底层的数据结构,操作系统,网络通讯和一些其他的基础的东西。
自己也算半路出家,以前总是不屑基础的东西,总认为我懂了WPF,能画出很炫的界面什么就很好了。其实却是认识太肤浅,只有掌握了不变的东西才能应付好上层的技术,否则只会被微软牵着鼻子走。
好的架构可以让事情事半功倍,让下面实现具体代码的感觉很轻松。说得过分点,一个好的架构师可以带一群实习生的干活都能出好东西。软件开发越来越不需要我们懂底层的东西,很多现成的轮子可以用,但是要知道怎么搭积木就需要好的架构师了。
所以我觉得平常要多看好的开源架构,多学习框框的东西,当然轮子和积木知道哪里能拿到。怕的是像我一样,只会google找积木搭,这就是所谓的纯码农了:
很多开发的很不屑业务,认为技术才重要。其实很多时候业务才是王道,软件开发在我看来大部分时间都是给业务做服务的,做支持的,公司都是靠业务才能赚钱的。
所以开发人员也要懂业务,特别对那种不是很想一直做开发的来说,懂业务又懂技术也许会给你更多的机会。
个人的看法是码农能爬上去做架构师和经理的其实很少,基本一个萝卜一个坑,我见到开发能一直做到退休的都是老外,人家基本没有title的,这样的我观察无非两种人。一种是对业务很精通,同时对技术系统又很懂的,公司少不了他。一种是对技术很热情很钻研,能力很强,又不想去要什么title的,基本可以挑大梁。
我想国内的情况虽然不太一样,不过基本可以借鉴下老外。当然不做开发还有很多可以做,我想说的是开发是可以做一辈子的,就看个人的想法了。
该项目是我工作以来第一次涉及到调研,对我来说算是一个不小的挑战。在调研过程中,让我学会了如何通过和客户的沟通来了解客户的需求。由于自己的工作经验不足,在调研工作中体现出一些问题。不能很直接的在和客户沟通中非常准确的了解客户的更多需求,有很多需要和客户交流沟通多次才能明白客户的最终需求,也没有把自己作为最终用户并站在用户的角度上来考虑问题,这些都是我在以后的工作中需要提高和改进的地方。在巡检系统的开发工作中,让我进一步巩固和加强了自己的开发能力。
从5月以来我就开始接手公司的主要业务之一,12530电信增值业务。由于前面负责这个项目的同事突然离职,导致这个项目的交接工再做得不够好,对我顺利接手这个项目造成很大的困难。而刚一接手这个项目,马上就需要新上一个投票活动,并要对一些主要代码进行修改,让我倍感压力,几乎都快放弃。最后在金总的指导和鼓励下,顺利的完成这次活动。在完成这次投票活动后,为了避免下一个接手这个项目同事与我遇到同样困难,我将这个项目的相关技术文档补充完全,保证别人能够顺利的进行该项目工作。通过这个项目,让我加强了自己在高强高压下工作的能力,也让我找到更多自信。
在这两个项目中,除了承担开发工作以外,也逐渐涉及到项目管理的职责,让我在个人能力上有所提高。为了这两个项目能够顺利完成,除了完成自己的工作外,还主动关心其他同事的工作完成情况。让我在项目管理和项目进度的把控能力有很大的提高。将襄樊、鄂州家政网络服务中心顺利实施,为我公司拿下湖北省其他市的家政网络服务中心奠定基础。在工作之外,我也注重个人能力的提高。工作之余,主动学习一些新技术,与同事沟通配合,搭建一个ssh的开发框架。也学习springsecurity知识,这些新知识的积累,对我以后的工作有很大帮助。
1、将学习的springsecurity整合到我们自己搭建的ssh框架,进一步完善框架。
4、希望公司能够大量拿下湖北省其他市的家政网络服务中心,继续开发和实施湖北省其他市的.家政网络服务中心。
5、继续学习新技术,努力提高自己的个人能力。为以后能够更好,更顺利的工作奠定基础。
6、希望通过自己的进步和努力,能为公司的发展做出自己的贡献,体现出自己的价值。
软件公司项目管理主要是指为了保证某一项目目标的实现,从而开展的前期项目开展计划、全程的项目管理、项目的绩效考评等。项目管理质量的好坏主要依据项目的整体绩效、项目投入成本、项目完成周期以及项目涉及范围等几方面,在这几个主要评价指标中,能够进行有效管理控制的只有项目成本,通过对软件公司某一项目成本进行核算,可以准确的评估项目的开展状况,并能够进一步确认项目的收益。此外,通过核算项目成本,确保项目进度以及项目范围处于合理的控制范围内,确保项目能够取得应有的收益。因此,强化软件公司项目管理,必须强化针对项目成本的核算,从而提高项目整体管理水平。
现阶段,项目成本核算的内容主要包括直接成本以及间接成本两部分,直接成本主要包括项目开展材料费用、人工费用以及其他各类直接费用,间接成本主要包括参与项目开发的各种管理费用、员工福利支出以及员工保险费用等。对于软件公司的项目开发而言,由于主要是由员工利用计算机进行技术研发,所以成本主要是由人工成本所构成的,人工成本的高低也是决定项目开发经济效益的关键因素。
由于软件公司在项目开发过程中人工成本是最难以准确核算的部分,而且人工成本在总成本中的比重最大部分,项目在开展过程中,迫于时间和质量的要求,必须在项目开展过程中追加人力,这就造成了人力资源的使用超出了原计划的预算,造成项目开发成本的提高以及整体利润的降低。
软件行业作为一种新兴的行业,与其他领域相比较,在成本核算方面理论体系是相当不成熟的。而且现阶段大部分的软件公司成本核算并不是根据单独的项目进行核算,而是结合部门进行统一核算的。由于一个部门可以承担多个项目,因此难以根据某一项目的财务管理数据开展项目核算工作。
现阶段在软件公司项目成本核算过程中,究竟是作为无形资产、在建工程或者是存货,进行核算,缺乏一致的认识,以项目作为核算中心的财务体系不健全,导致项目成本核算存在较多问题。
强化软件开发过程中的项目成本核算管理,已经成为项目开发管理的主要内容,项目成本主要通过以下几方面进行核算管理:
(1)建立健全项目管理相应的数据信息。对于参与项目信息管理收集的单位组成及人员主要包括开发的部门、人员组成、项目编号的设置以及项目的具体开展阶段,进而对项目开展进行全方位的动态监控,同时也可以以此为依据核算出不同时期项目开发所耗费的总工时,将工时与原先预算时候的项目指标进行科学比对,从而明确项目管理的实际状况以及是否发生偏差,可以根据不同的情况对项目开发的步骤或者是预算进行调整管理。
(2)软件公司项目开发工时的统计。工时统计直接关系到软件公司项目开发成本核算的准确程度,这一部分是软件公司项目管理中的核心环节,因此软件公司的各个管理层都应当强化重视工时统计工作,并针对工时统计表、相关负责人审批、主管部门整理汇总以及最后的分析比较等。对于项目开发过程中的工时统计方法主要有以下两方面:通过相应的管理软件,并结合员工的考勤平台填报;手工填报法,并将表中的统计数据准确地录进系统中,再通过统计分析得出相关人员的单位项目耗时。
在这一部分的核算中需要将每个人的人工工时与其相对应的工时工资相乘来获得,也就是把参与某一个项目的人员的总的人工成本进行累计相加,以此获得这个管理开发项目的直接人工成本。
一般情况下,项目开发的间接费用是根据具体的项目管理部门来核算的。 软件公司在进行项目开发过程中的研发部门的职工福利费、社会保险以及内部管理、培训学习所耗人工成本都属于间接人工成本;而房租、水电、固定资产折旧等都是其他间接费用。对于这些间接成本的核算,应当汇总至部门管理费用之中,在项目开发结束时同意分配结转到各合同项目成本中。对于分配方式的选择,可以根据部门所承担的各合同项目人工成本占所承担所有合同项目的人工成本之和的比重来分配。 在软件开发项目结束时,根据间接费用的分配计算结果作分配结转分录,将研发部门的间接费用分配到各个合同项目中。通常情况下采用财务软件核算的公司期末只需算出分配率,再利用软件期末自动结转分配的功能设置结转分录,由系统自动结转间接费用即可。
一般情况下,软件公司开发某个管理项目需要耗费较长的时间,不少的项目成本在进行会计核算时常常会跨域某一个会计期间,在多个会计期间内核算。在这种情况下,就需要新设置一个相应会计科目来整理归集软件公司的项目成本,在会计周期末,软件公司可以根据项目的实际开发进度合理地确定项目的完工比例,并对收入和费用进行科学结转。
首先,在进行软件开发项目的成本核算过程中,应该针对资产类会计科目中增设“项目成本”科目,通过项目成本这一科目来汇总软件公司项目开发过程中所发生的所有的直接成本以及所有的间接成本并且在设置相应科目时应当尽量细化具体,将科目落实明确到具体的部门或者项目,现阶段,较多的采用一些具有辅助核算功能的管理软件来进行项目成本的核算,进而明确项目参与各部门的总的项目成本,以此可以实现科学合理的项目绩效评价。
其次,在软件公司项目核算中还需要遵循成本费用配比原则以及权责发生制原则,在进行相应成本的结转时要确保与相关收入金额匹配,可以依据完工百分比法确认项目收入情况,并依据收入结转比重结转成本,计算利润。
再次,项目开发过程中,公司财务人员还可以以积极参与公司管理,通过向业务考核部门提供相应的项目进展数据以及绩效评价财务信息等,帮助管理层提升管理能力,并以此深化部门项目业绩考核,强化项目监管和控制,提升管理效率和效益。
软件公司作为以科技为核心的技术型企业,主要是针对科技知识以及信息的生产、处理以及应用,作为以知识资源为基础的知识经济的代表,传统的项目管理的理论以及观念已经难以适应。必须对软件公司的项目管理进行深入的研究。因此,软件公司在进行项目管理过程中,必须充分认识到项目成本核算的作用,并分析项目成本核算的主要难点,按部就班的开展项目成本核算,提高项目管理水平,确保软件公司项目开发的顺利进行。
这段时间,在领导和同事们的关怀和指导下,我通过不懈努力,各方面均取得一定的进步,现将我的工作情况做如下汇报:
刚到公司不久,我便开始负责。NET方面的网站开发和广告平台开发和维护,刚开始的时候对我来说确实压力很大,因为各方面都还不熟悉,而且与之前的公司相比,节奏也有点快,不过我慢慢的习惯了环境,和同事相处的比较融洽,领导对我也比较关心,在公司里工作就像是在一个幸福的大家庭里一样,我很快喜欢上了这里。
我到公司不久,第一个项目是x公司网站,做这个项目的时候我遇到了几个问题,我在以前公司做的时候没有在这么短的时候完成一个项目的,在效率上提高了我的能力。做这个项目的时候我也遇到了许多以前没有遇到过的问题,我请教同事和朋友,还有借助网络一一解决了难题。
之后,我将B2B广告招商平台进行了改版,开发了智能建站广告平台以及以后网站的维护工作。
接下来,我又做了一个比较棘手的项目——在线咨询系统。为什么说棘手呢,因为我以前没有做过这方面的项目,而且我问遍了所有认识的朋友,搜遍了网络也没有找到如何解决的方法,之后我翻书籍,接着搜索网络。功夫不负有心人,终于我找到一个聊天室的小例子,但是功能差的太远,于是我把这个示例一点点的研究,从一点也不懂到后来慢慢看懂,从对AJAX技术一无所知到基本熟练运用。接下来我就开始自己开发,到最后终于把它开发了出来,虽然不是很完美,功能不是很强大,但是它是我辛苦的劳动结晶,我相信以后会把它开发的更强大,更完美。
经过工作,虽然完成了一些项目的开发,我的技能也提高了很多,但是感觉我的技术还有待提高,所以我会在以后的工作中更加努力,努力提高自己的技术和各种不足,努力使自己成为一名称职的职员。
1、学无止镜,时代的发展瞬息万变,各种学科知识日新月异。我将坚持不懈地努力学习各种技术知识,并用于指导实践。
2、“业精于勤而荒于嬉”,在以后的工作中不断学习知识,通过多看、多学、多练来不断的提高自己的各项技能。
3、不断锻炼自己的胆识和毅力,提高自己解决实际问题的能力,并在工作过程中慢慢克服急躁情绪,积极、热情、细致地的对待每一项工作。
20xx年就要过去了,在这一年中信息中心实现了跨越式的发展。也就是在这一年,我对自己所负责的工作提出了更高的要求。目前我们网络部负责信息中心《政务网》、《图片库》、《重点项目网》及**部分委办局单位的网站建设维护工作和中心的软件开发工作。
《政务网》的建设与维护是信息化建设前沿阵地;政府上网工作的最根本体现,也是信息中心的核心工作。但是由于信息中心人手少,任务紧担子重,我与同事用将近两个月的时间,对《政务网》进行调整。经过调整后的《政务网》,网站内容更加规范全面,网总体更加美观,各种数据库的应用使网站的更新管理,用户的使用,网站安全性及浏览监控更加方便。受到大家的一致好评,尤其是网站在日常的更新维护中不断扩充,为用户提供了更加祥实的内容,使网站聚集了更多的访问用户,提高了访问量及政务网的知名度。尤其是视频新闻栏目,多次得到领导的肯定,地方的许多网站都与该栏目进行了链接。同时网站大量数据库的应用,为今后政府网络数据中心的建立奠定了坚实的基础。时至今日《政务网》现在已经有相对固定的浏览群体,并且浏览用户正在不断的扩大。
尤其是,今年两节的召开,我们正在为**市政府设计制作精美《中国》画册,面对时间紧任务重,我克服种种困难,组织设计画册所需素材,许多片子都是亲手拍摄。同时为保障重点项目网的正常运行,我加班加点,对目前的项目网数据服务器进行升级改造,尤其是在数据迁移过程中,几十万条数据无一条丢失,确保重点项目网为各级领导的科学决策提供准确详实的数据支持。
在完成日常的工作后,我还制作了多个宣传多媒体影片,同时我也为单位内各科室做好了软件、网络及计算机维护工作;这些工作的顺利完成,使我深深的体会到:没有一个高效团结的战斗群体这是万万做不到的。
总之,在20xx年的工作中,我能够与中心其他员工,协同工作为信息中心的发展出谋划策,认真努力的完成自己的本职工作。但是我仍然要不断的学习不断的提高自己的业务水平,合理有效的安排工作顺序,以使日后的工作更加出色。
对公司的整体状况和运营模式进行了解,重点针对合同管理系统的适用领域、场景以及客户群体、一般性需求进行学习。熟悉公司技术团的工作模式、编码规范和研发管理控制流程。 通过对公司产品关注领域和业务流程的学习以及研发规范的了解,梳理了技术学习主线,制定了具体的学习目标和时间计划为技术研发工作奠定了基础。
参与了平台的部分功能研发,主要参与以下功能模块的代码编制、优化和初步的功能验证测试:系统平台对接浪潮系统、系统对接审批事项清单模块,系统管理模块,筹备成立模块、成立登记模块、分支机构管理、组织管理、注销信息管理、变更信息管理等等。在研发中,按照团队规划完成了个人的任务并按照编码规范进行了源码优化。对于部分编码进行分析和重构,对于部分功能模块进行了效率优化和源码简化,提升代码的可读性、可复用性、可移植性。整个研发过程,积极融入团队,提升技术水平的同时进一步加深了对公司产品业务的理解。
参与产品平台的优化。使用技术方法通过重构改进了产品的运行效率。从构建模式、实现方法、代码风格上进行了多方面的知识整理、分析和优化。并以此为契机,强化了效率优化的意识,学习了效率优化的方法,同时,增强了研发中兼顾效率的意识。
20xx年是我进入公司的第一年,无论是对于生活阅历还是工作经验以及技术知识都取
得了很大的成效与进步。在公司的几个月里我着实成长了许多,尤其是对专业知识技能的提升、此外还增长了一些对行业的认识以及开发流程。
刚进公司的时候我面临很多问题,在工作中遇到非常多棘手的问题,不断请教前辈们.有了他们的帮助和自己坚持努力,我发现我所遇到棘手问题越来越少,就这样我从一个新人慢慢变成一个可以担当一面的团队成员,我再也不怕遇到问题。在未来的一年里我应该多锻炼自己表达能力和加强对普通话的学习,其次,对于技术方面了解不够全面,不够广泛,好多技术都还处于一个熟悉、认知阶段。在未来的日子里我会给自己拟定一些目标和学习、提升路线,让自己技术以及各方面不断的提高。不让自己只局限于技术方面的提升与提高 在工作中我体会到了坚持就是胜利,程序员必须有较强的适应能力和承受能力,需要不断的进行学习补充新的知识,只有不断的扩充、更新自己的知识才能应变技术的更新与发展。
公司领导比较给力、很会照顾下属,同事之间也比较容易相处,团队互助性也比较强。但是我们公司对于技术上是不是应该增加一点技术储备方面东西。我希望公司能够一个强大知识库,比如某一天某个人解决了一个极难解决或者比较罕见的问题。有必要保存到知识库里,以备后续之人有一个学习认知的空间。
按时完成工作任务并适时进行总结和分析,关注功能实现、代码规范、效率优化和用户体验。努力开展对本职工作所需专业技术学习,优化知识结构,并不断深化对合同管理业务的理解。团队建设上,我积极融入团队,努力营造良好的团队氛围,和同事关系融洽。
3. 不断学习新的技术与知识,让自己更能适应新的需求发展变化,给自己制定一个短期目标以计划 。
合理规划自己时间,给自己制定一个工作之余的学习计划,学习目标,在工作不断吸取经验教训加以总结汇总,不断更正自己工作习惯。
在不断巩固自己专业知识前提下,加深对业务的理解能力、分析能力、主导能力、不断充实自己各方面知识技能,强化自己薄弱环节。做一个合格高级软件工程师 。
光阴似箭,岁月如梭,辉煌的20xx已经过去,充满希望的20xx已在不知不觉中走到了6月份,现将20xx年上半年工作总结如下:
主要是围绕信号机开发的各种软件,如信号机底层软件、信号机设置软件、以及为了保障信号安全的防火墙软件等,另外还围绕交通诱导屏这个产品做了相关的工作,如诱导屏设置软件,以及诱导屏测试软件等工作。
从去年的年底已经开始这项工作了,我的工作相对来说比较单一一点,就是信号机设置软件以及底层软件的通讯部分的程序代码,以及其他的部分功能。并且现在这款信号机能够兼容多家协议。
这是独立开发、并最终调试的一个软件,能够严格防止外来非法连接的软件。由于目前还没有我们自己的信号机中心软件,所以目前这个软件现在还没有派上用场,相信随着公司的发展,会逐渐用上这样的软件产品的。
当然这里面的工作就相当砸碎一些,包括设置软件、测试软件以及处理在调试的过程中碰到的一些问题,以及测试一些硬件模块的好坏等。
从上面主要的工作内容来看,不是我一个人所能完成的,正所谓一切事务离不开团队,个人无法称英雄。今年在余sir领导之下,团队建设有了很大的进步,每个项目开始之前,好好的交流、加强了解、对问题的共识、解决问题的方法能很好的统一起来。我个人也很好的溶入这个团队,共同做好一个项目。
在解决问题的过程中,虽然都不时风平浪静,但事后都能够客观地分析,而不参杂个人的感情。
给我的的感触就是一定要好好的去聆听,每个人对待问题的看法,不管他的看法对还是不对,合理与否,或者考虑的角度是否确切,都要好好地聆听,至少要等他说完,如果你主观的色彩,可能你都不愿意或者不屑听完他说的话,但是静下心来你或许也能发现他看问题的某些角度是你没有考虑过的,他想的某些方面也许确实是要注意到的。静心!聆听!把技术与大家共同分享,共同提高。
在新的一年里我希望能够在交通行业里做出更多新的产品,能够更加深入的研究下去,比如:目前我们欠缺的信号机中心软件,交通诱导屏的中心软件,这个两个应该是20xx年的首要任务了,如果还有时间我希望可以做gis地理信息系统方面的内容。
对公司的整体状况和运营模式进行了解,重点针对合同管理系统的适用领域、场景以及客户群体、一般性需求进行学习。熟悉公司技术团的工作模式、编码规范和研发管理控制流程。 通过对公司产品关注领域和业务流程的学习以及研发规范的了解,梳理了技术学习主线,制定了具体的学习目标和时间计划为技术研发工作奠定了基础。
参与了平台的部分功能研发,主要参与以下功能模块的代码编制、优化和初步的功能验证测试:系统平台对接浪潮系统、系统对接审批事项清单模块,系统管理模块,筹备成立模块、成立登记模块、分支机构管理、组织管理、注销信息管理、变更信息管理等等。在研发中,按照团队规划完成了个人的任务并按照编码规范进行了源码优化。对于部分编码进行分析和重构,对于部分功能模块进行了效率优化和源码简化,提升代码的可读性、可复用性、可移植性。整个研发过程,积极融入团队,提升技术水平的`同时进一步加深了对公司产品业务的理解。
参与产品平台的优化。使用技术方法通过重构改进了产品的运行效率。从构建模式、实现方法、代码风格上进行了多方面的知识整理、分析和优化。并以此为契机,强化了效率优化的意识,学习了效率优化的方法,同时,增强了研发中兼顾效率的意识。
20xx年是我进入公司的第一年,无论是对于生活阅历还是工作经验以及技术知识都取得了很大的成效与进步。在公司的几个月里我着实成长了许多,尤其是对专业知识技能的提升、此外还增长了一些对行业的认识以及开发流程。
刚进公司的时候我面临很多问题,在工作中遇到非常多棘手的问题,不断请教前辈们。有了他们的帮助和自己坚持努力,我发现我所遇到棘手问题越来越少,就这样我从一个新人慢慢变成一个可以担当一面的团队成员,我再也不怕遇到问题。在未来的一年里我应该多锻炼自己表达能力和加强对普通话的学习,其次,对于技术方面了解不够全面,不够广泛,好多技术都还处于一个熟悉、认知阶段。在未来的日子里我会给自己拟定一些目标和学习、提升路线,让自己技术以及各方面不断的提高。不让自己只局限于技术方面的提升与提高 在工作中我体会到了坚持就是胜利,程序员必须有较强的适应能力和承受能力,需要不断的进行学习补充新的知识,只有不断的扩充、更新自己的知识才能应变技术的更新与发展。
本年度的工作中,我认真制定工作计划,按时完成工作任务并适时进行总结和分析,关注功能实现、代码规范、效率优化和用户体验。努力开展对本职工作所需专业技术学习,优化知识结构,并不断深化对合同管理业务的理解。团队建设上,我积极融入团队,努力营造良好的团队氛围,和同事关系融洽。
3、不断学习新的技术与知识,让自己更能适应新的需求发展变化,给自己制定一个短期目标以计划 。
合理规划自己时间,给自己制定一个工作之余的学习计划,学习目标,在工作不断吸取经验教训加以总结汇总,不断更正自己工作习惯。
在不断巩固自己专业知识前提下,加深对业务的理解能力、分析能力、主导能力、不断充实自己各方面知识技能,强化自己薄弱环节。做一个合格高级软件工程师 。
本次软件项目设计的题目是场地预约系统,它是基于B/S模式实现的用于体育城场地管理预约的Web应用软件。为用户提供并接受用户提出的需求信息,同时通过数据库管理系统存储数据,给场地的管理带来很大的方便。本项目的实现分为前台与后台。其中前台,用户可以浏览场地所提供的可预订场地的信息,同时可以对需要的场地进行预订;后台主要是针对管理员,管理员可以通过后台对场地的相应信息进行增添修改等操作。
我基本参与了本项目的全部实现过程,涉及项目的需求分析,概要设计,详细设计,代码编写,调试与运行。在需求分析阶段和小组其他成员认真分析讨论了本项目各方面的需求,主要是功能方面的需求,基本确定了本场地预约系统应该具有的基本功能。概要设计阶段通过讨论分析确定了所需表结构。详细设计阶段参与部分代码的编写,其中包括页面与数据库交互的实现,还有相应jsp页面代码的实现几布局的调整,修改。
在数据库设计实现阶段,通过和我们组其他成员的共同讨论,确定了场地信息、用户信息等表结构的详细信息,并实现了其数据库的建立和相应表的具体信息的设计实现。同时针对个别表结构完成了相应代码的编写与实现。
在后台,实现了用户的信息的浏览查看,修改及删除等功能,同时完成了足球场等场地信息的浏览、增添、修改、删除等功能。
前台参与了主界面的设计与实现,通过查询数据库得到主界面显示所需场地的相关信息,通过这样,用户可以很清楚的获知所有可预订场地的信息,其主界面上的所有关于场地的数据都是动态从数据库获取的,这样当场地增添或删除时通过修改数据库可以很方便的实现界面呈现给用户的场地信息,能够很好的使实际情况跟提供给用户的信息保持同布,非常利于场地信息的管理和发布。
时间过得真快,不知不觉中近一个月的课程设计就要结束了。本次课程设计我们组做的题目是场地预约系统,先前选题的时候以为它实现起来应该比较简单,在通过后边的具体分析之后才发现它并不是我所想象的那样简单,其中涉及许多问题我当时并没有想清楚。
经过我们小组的共同努力,最终基本上完成了场地预约系统的实现。虽然做的不是很完美,不是特别有创意,但这是我们共同努力的结果,当我们看着自己亲自完成的项目觉得很欣慰。
我一直在跟进xx银行w-nd1s2.0项目的测试工作,至此为止已近6个月时间,从公司内部系统测试、验收测试,再到uat测试,以及投产前的系统压力测试等等。从开始到项目即将结束,一步步走过来。本次项目中,我作为测试环节的主力人员之一,仅对此项目中测试工作进行总结。
一、项目测试进度控制。项目的测试进度主要是按照项目计划进行的,完全按照项目组计划要求完成测试任务、提交测试类相关文档,包括测试案例的完善、制定测试计划、执行测试、缺陷跟踪以及bug回归测试等。协调项目的内部测试工作,本此项目中测试小组一共组织了四轮次系统全面测试工作,认真配合项目工作,共同保证项目质量。项目测试的问题跟踪及处理采用每日进行修改问题回归测试工作,每日同步更新问题跟踪单的模式,按照规划时间完成系统更新测试。
二、项目组内部成员关系处理。在项目工作的这几个月里大家相处融洽,项目组内部共同探讨解决问题的方法,向各模块负责人学习模块功能处理方式,向业务人员了解系统中涉及的业务知识点,两者结合起来进行模块功能测试。鉴于之前辖内对公交易系统和中行对公项目的经验,也向项目组提出了一些完善性意见。
三、协调用户测试方面。用户验收测试是项目测试工作的重要组成部分之一,是项目验收阶段的最终把关阶段,业务人员结合日常业务处理情况对系统进行的尝试性使用过程。本次项目客户测试方面也是我个人觉得不够安全感一个主要方面,客户测试介入力度太小,尽管我们已经很多次电话催促业务人员测试,每次联系相关业务人员进行测试,他们来到项目组开发现场测试,也仅仅一两个小时时间,简单的进行验证操作即可。xx银行利用两批系统培训的时间安排了两次分行集中测试,也算给项目进行了一次全面的测试,从中也暴露出不少系统存在的问题,目前项目组均已解决。
四、测试成效方面。中信x-funds2.0系统测试中,共记录问题及客户新增需求825个,其中bug数量512个、系统完善类问题225个,新增需求类问题88个。组织了四轮次内部系统全面测试工作,兼顾日常系统更新测试工作,限度的进行了内部质量把关。配合外包公司一同进行系统压力测试及稳定性测试,测试结果符合客户要求。现中信x-funds2.0系统临近投产实施工作,测试组还将继续配合配合项目投产工作及投产后的补丁更新测试工作。
五、个人得失方面。作为此次项目测试的负责人,对于日常的测试流程、测试任务分配、测试执行、缺陷跟踪、协调内部测试及协调客户测试方面能力均得到了进一步提高,理清了项目整个过程中测试小组的工作过程以及后期的项目移交工作。同时也对各子系统相应的业务知识有了更进一步认知。相关业务知识方面还需要进一步加强,测试技能及测试管理方面还需要进一步完善学习。更好的吸收项目经验,做好以后的补丁测试工作及其他项目的测试工作。
xx年已过去,在过去的一年中,我担任公司开发部的一名软件工程师,主要从事着JAVA项目的开发工作,这一年来我低调努力工作着,不求闪亮显眼和光芒四射,只为平静和淡定;这一年中所做的成绩如下:
以上三个子系统上线后,方便了社会各界查验会计人员的真实信息、方便了查询合法的代理记账机构信息,以及方便了各单位对会计人员的报备。
二、餐饮行业项目,在团队开发项目中直接参与了豪享来餐饮有限公司总部的信息综合管理平台项目,主要负责的系统有:
系统应用后,豪享来在管理全国各门店房屋租赁合同上,一定程度上提高了管理效率,并且及时有效提供了相应预警信息;短信收发系统方便了总部及时传递各项信息;会员系统更好的管理全国各门店的会员信息;人事系统在管理中减少工作量等。
三、金融行业项目,我参与了中国银行厦门分行,企业转账管理系统中的部分模块开发。
开一次这样的会不容易,这应该是信息部两年来人员的一次会议。外地的同事很辛苦的千里迢迢赶过来,希望大家珍惜这个机会,好好的沟通和交流,[师哈哈]使以后的工作进行的更顺利!
时间过的很快,很快又到了年底,一年的工作即将成为历史。在这里我将对我XX年的工作进行一个简单的总结及对XX年的工作进行一个简单的规划。
2:根据财务部的需求,在系统中增加各种相应的汇总及明细报表,减少了财务部相关的手工单据,更直接的从系统中取数、打印,更好的提高了财务部的工作效率;
3:从4月到5月中,经过一个半月的努力,最终完成了美容院财务系统的分布式操作,[师哈哈]相比去年的分布系统更加稳定、准确;
4:在系统中增加了客户经理操作美容院财务系统的权限(点菜系统),相应的减轻了一线运营的工作以及让客户经理更好的管理好自己的客户;
5:在系统中增加了护理记录的自动输入功能(即在财务系统中的交款、开卡、消费等操作记录自动录入到美容院业务系统中),从而减轻了一线:在oa系统中嵌入美容院财务系统中各店院业绩汇总报表,以方便相关领导及时的了解到公司的运行状况。
1:在系统中增加客户尺寸测量及相关提醒功能,以更好的了解到顾客护理后相应的效果对比;
2:在系统中增加投诉处理功能,更好的处理了法务部、财务部及一线运营相关部门的投诉处理的协调;
3:业务系统数据库电话号码加密(系统中对电话号码的操作进行加密及对电话号码解密的显示,实施时对电话号码的批处理加密);[师哈哈]
4:修改系统中相关运营的操作(修改客户来源、咨询产品及客户资料的合并,相应的减轻本部门相关人员的工作)。
继续维护及更新美容院财务管理系统、美容院前台业务管理系统,及时更新相关人员对系统提出的需求;财务系统各市场系统的合并操作及显示、财务系统与人事系统的相关对接、财务系统中集团报表的显示、用友系统中凭证与财务系统中数据的对接…与自己工作相关的问题:
忙:20xx年说起来应该算是很忙的一年,系统不停的修改,修改九游娱乐文化 九游app官方入口完一个功能后面还有很多的需求等着自己去做,想找到一点空闲的时间很难。
压力:看看未来的工作规划,有个时候听别人说修改完这个需求后可以减轻别人的工作,总让自己感觉到很大的压力。系统的稳定性、数据的准确性,对于公司两个重要的系统来说表现的尤为重要,虽说这两个系统还算稳定,但是还是避免不了一些问题,总给自己带来一些压力,这也是以后的重点改进,以确保更高的稳定性。
成就:当自己接到系统的一个需求后想到能够给别人的工作带来方便、简化,即使再累也要以自己最快的速度最完善的`完成,当完成后自己感觉很有成就感
关于我们软件组,我们每一位同事都是很优秀的,我们几个人一年内开发那么多的系统。对于网络组的同事,你们有个时候会存在一些抱怨,说软件不稳定、报错,也许是我们的开发时间太短,很多的细节问题没有考虑到!我知道我们的同事也很忙,但请我们的同事不要急躁,详细的记录好错误信息,看清楚错误提示,有时对于一线反馈过来的错误希望大家能够确认好(因为有时一个简单的错误提示会被她们描述成系统使用不了),希望网络组的同事确认是否存在该软件上的错误,以至于我们能够及时的处理好!而我们能做的也就是及时的处理问题,提高系统的稳定性、错误,减少网络组同事不必要的麻烦!对于我们软件组的同事(包括我),要及时的处理好错误,找到错误的原因,希望下次不要再出现同样的错误!站在我们软件开发的立场上,虽说软件的错误是不可避免的,但我们可以把它降低到最小!当我们接到一个软件需求的时候,不要把它想的很简单,我们尽可能的可以把它考虑到很复杂,这样我们就可以考虑到更多的细节,比如限制一些相关错误的输入。有个时候软件是出现的不合理数据,我们不可以认为是是操作员的错误,相反我们要想到是自己的错误,站在软件思想上,是我们做的不够,没注意细节,给网络组人员带来了不必要的麻烦。所以包括我在内软件组人员要提高自身的软件技术,多创新,提高自身系统的稳定性,数据的准确性!
在20xx年前希望上完所有奈瑞儿店院的分布式财务系统,对各店内的所有服务器数据库设置密码,相关的系统中数据连接配置加密,以对XX年的工作划一个圆满的句号。
回想入职初,在XX月份,从开始第一周熟悉工作环境,第二周便参与煤矿安全生产管理系统的相关文档设计工作,期间在项目组各位同事的指导、安排下,进行了系统的软件开发委托合同书及系统功能模块设计说明文档的编写,也借此过程学习煤矿生产业务。
在XX月份,便正式参与了管理软件功能模块的设计工作,在张工的指导、讲解下初次尝试完成了管理软件的维护子系统的功能模块设计;在九月中旬跟随公司施工人员在一号矿进行业务调研,从而在我们自己的管理系统中,取其长、补其短,也借此机会了解实际的煤矿生产情况,加深对煤矿产业业务流程的理解;在九月底便根据张工的指导开始工程技术文档子系统的功能模块设计。
XX月份,在张工张工的指导下,进行了物资管理子系统的功能模块设计,并就设计的正确性、合理性分别同张工张工及何工进行讨论;到十月中旬管理软件的各子系统功能模块基本全部设计完成;十月底,根据各子系统模块设计搜集系统数据,建立初步的数据字典及概念模型,为后期数据库设计做准备。
XX月份的工作以整理系统业务关系与业务流为主,但由于业务关系图的表现形式不够合理,不足以清晰、明了得表现出各层次关系,导致工作多走了几个环节,好在张工张工及时发现问题,并多次向我指导、讲解,最终决定以列表结合流程图形式搜集、汇总系统所有子模块的业务动作、涉及人员及联系模块,为后面工作的展开提供依据。
一是系统业务描述文档的设计编写,因为该文档是日后编程人员了解煤矿生产业务、系统功能及数据库设计的主要依据,张工张工也多次强调,文档的设计务必从读者角度考虑问题,因此最终设计由简单到复杂,由整体到具体,各层次尽量做到衔接紧密,易于理解;
另一项工作是针对已完成的关系列表、系统功能模块设计的业务合理性、正确性和张工张工逐条讨论,并将设计中出现的问题逐条记录在问题跟踪文档中。月底的工作便是根据问题跟踪文档对模块设计进行修改、完善。
在公司领导的带领下,通过项目组所有成员的不懈努力,在XX月份系统所有功能模块设计完成,在XX月份系统所有业务流程整理完成,在XX月份,对各功能模块设计及业务流的初次审查、整改工作已经完成,现在已开始进行项目组内对各功能模块设计及业务流的审查工作。
在入职初期,因为之前很少接触生产类软件,一时不知从何入手,好在项目组成员多次向我讲解,加上自己也通过网络查找相关文档,认真阅读相关材料、思考业务处理过程,最终在一个月内便对煤矿整个生产管理业务有了较为系统的认识。之后在张工张工的指导下,完成了管理软件初始化子系统、工程技术文档管理子系统、物资管理子系统的详细功能模块设计和业务处理设计,以及整个系统的业务整理工作。因为张工张工多次强调前期的业务及功能模块的设计直接关系到整个项目最终的成败,一定要做到设计正确、准确、完整,因此在每个子模块的设计中,先把握总体方向,确保设计正确,再搜集大量业务材料、对比其它类似软件处理方式、结合煤矿实际生产情况、思考业务处理流程确保设计准确,最后再将设计放到整个业务系统中,反复检验、审查,确保设计完整。回顾这一段时间的工作,我基本完成了本职工作,这与领导的支持和各位同事的配合、帮助是分不开的,但同时我也清楚得认识到自己还有很多不足,也从中获得不少经验、教训,总结为以下几点,
这一点在入职第一周业务学习及近期搭建各模块业务关系工作中就体会特别深,正是磨刀不误砍柴工,做好准备、计划对之后的工作能起到事半功倍的效果。
整个软件的设计从最开始的业务调查、模块框架设计、业务流程设计到具体软件开发设计,每个环节都是建立在前一个环节的基础上,每个环节上的失误都会影响到之后所有环节。
这一点在入职初期的业务流程学习中就感受很深,从整体看问题,从主业务流程入手,理解更容易,学习得也更快,在整个工作过程中大的方向也不会错。
之前的软件开发工作主要是编码工作,所考虑的问题也只局限于技术方面,但在系统业务及功能模块设计工作中,一定要考虑到整个煤矿产业的业务流程和客户群的操作习惯。
及时充分的交流能快速解决疑惑、能使整个工作衔接更紧密、能使问题考虑更周全。充分的交流能保证工作的质量,及时的交流能提高工作的效率。
软件良好的客户体验是衡量软件质量的重要标准,因此在软件设计过程中一定要考虑使用软件的客户范围、客户的操作习惯和软件的易操作性。
公司项目部成员对xx1号矿项目的成功实施便证明这一点;另外在集控平台开发过程中,何工也是基于这一点,多次对系统功能设计提出更高要求,以使系统功能更加完善、可操作性更强。
8、要学会思考问题、分析问题、处理问题,学会分解问题,把一个大的问题分解成若干个小问题,再将各小问题放到整体考虑其合理性。
在整理系统业务流程和搭建模块间业务关系工作中,就因为表现形式不够清晰、合理,做了不少重复工作。最终还是在张工的指导下,以“总—分—总”的形式解释业务关系,完成了业务详细说明书。
在系统功能设计及系统业务整理工作中,张工多次强调这一点,因为只有这样,产品质量才能提高、自己的能力也会有较大提升。通过近半年来参与对管理软件的设计工作及与工程施工、项目发展工作的接触,自己成长不少,当然更多的成长集中在技术方面—软件前期的业务设计,总结为以下几点,
在管理方面,接触不多,主要集中在项目组对集控平台开发的监管过程,总结为以下几点,
3、与外包人员要多交流多沟通,包括业务理解和完成情况。最后,通过在公司近半年来的工作生活,提一些个人的想法,
1、公司员工交流不够多,尤其是不同部门间的工作交流,而这种交流能使各部门的工作衔接更紧密,工作效率更高。
2、技术人员接触其他相关技术的机会不多,不过这一点公司正在改善,PLC讲座也即将进行。
3、在准备项目经理考试期间,如果公司能统一每周提供几个小时供大家学习、讨论、交流,效果可能会更好些。
XX年已经过去,崭新的XX年来临了,在新的一年里,工作上,生活上,我们都站在了新的一个工作起点,要开始新的一轮工作,我也在此感谢领导和各位同事的支持和帮助,我将在新的一年里继续努力,不断提高自己的业务及专业水平,虚心向大家学习,为XX公司为长风的发展尽自己的力量。
先自我简介一下,本人从事asp。net开发进一年,09届毕业生,xx年11月开始上班,之前做asp,xx年2月后开始做asp。net,由于公司转型,现在带十几个人在一起搞asp。net开发,主要是关于准金融行业的行业管理软件。年度总结在会议上也写了,但仅限于对于工作总结及xx年工作计划,自我总结较少,因此今天专门做下自我的年度总结,主要从技术、管理、人生上面谈谈这一年的收获,前辈路过欢迎多多指正。
我在学校里学的是电气自动化,程序基础仅限于c基础课程的一些知识,后来由vb、html转向asp,在asp上花费了不少时间,对asp比较熟悉,后来由于公司业务需要,将开发平台转向asp。net,开始对asp。net不是很感冒,以为就是asp的一点扩展(那时还不知道三层架构,数据数据访问全在页面里——!),后来招来几个北大青鸟的过来终于意识到asp。net的强大之处,经过个人的努力已经逐步掌握了asp。net,现在层次上只能讲个人觉得是入门而已,原因是多方面的,待会儿会讲到。
相信从面向过程转向面向对象的同学都有一种感觉:面向对象开始真的有点别扭,涉及到属性,尤其是类之间的各种关系,那时老想用面向过程传递参数多方面啊。于是老在想对象这种东西,从概念中跳中来,以自己的方式去理解才逐渐体会到页面对象的精华来,分层次展现、分级别访问、封装对象之间各种关系逐渐真正理解了,尤其是对象之间的关系,如对象a与对象b两者之间的关系,有些需要完全公开,有些需要隐藏,有些需要通过第三方传递,有些需要给自己的下级可见,有些需要让下级去完成具体操作——这不是现实的实际模型吗?应该这么理解,面向对象来源于现实,它不是一种凭空空想出来的理论,这些对象之间的关系可以将其还原为父子、夫妻、领导下属、同事、朋友之间的关系。相比之下,页面过程往往像是一股脑全部推给用户使用,其中的数据与数据访问方法层次不清晰,在模拟现实上它与面向对象相比更易于入门理解,实质上难于准确直接地表述。
面向对象上另一方面是它的设计模式,在之前的面向过程中对这个设计模式并没有清晰地提出来,面向过程优秀的代码要求高内聚低耦合,从个人的理解上,这仅是对软件开发方法“技”上理论总结;设计模式是达到了“道”的层次,因为它从更大的方向、更抽象的层次来去表述具体的代码模块之间的关系,可以认为设计模式是完全从实际的应用来不断总结得来的经验,之间并没有这种术语,但相信前人肯定也使用到这种思想,它从实际应用于来,当然要应用于实际工作中,认真思考不断总结每个人都会有自己的“设计模式”,可以借鉴前人的思想来去提升自己,不可去为“设计模式”而设计模式。
具体到asp。net的实现模型中,真正理解它的机制与方法也就不难理解,记住b/s中离不开post或get,所有的autopostback、selectedindexchanged……都是去调用form传值,加上runat=server的服务器控件打开它生成的源文件也是普通的html标签,微软的让软件开发更容易的思路是很好的,时代在前进,很多年前你使用c写出mis证明你很牛,很多年之后你不在使用c去写“学生管理系统”、“图书馆管理系统”那只能说明你的脑子少一根筋,开发语言都有长处与不足的地方,因为它们适用的场合不同,类似不能拿匕首去跟炮弹比,也不能拿c与php比,程序员都有一种偏执的心理,但一点要记住,你面对的用户才有最终发言权,程序能不能满足需要,易用性、稳定性、成本才是应当首先放到重要位置来去谈的。
最开始担任管理一职时开发团队加我在内只有四个人,那时只是抱着接受挑战的心理去做管理,加上我本人比较重感情,团队之间关系相处都不错,但严重的问题逐渐显露出来:工作的随意性、团队精神薄弱、工作方式蛮干,印象深刻的是有几个开始承诺项目不能完工,于是最后天天加班,一直做到早上6点,睡一会7点半接着上班,几个同事都是年龄差不多的小伙子,干劲十足。后来随着时间的推进,问题越来越摆在眼前:项目迟迟不能完工,又由于公司待遇方面让新员工感觉不值得,于是形成了老板抱怨员工九游娱乐文化 九游app官方入口也抱怨的状况,我在中间两点都要去“消火”,这期间是我们部门相对最累的时间但也是相对感觉最充实的时候,后来,之前的员工跟我说“再也找不到那种感觉了”,这是我能想像的。这期间主要是老总对我十分信任,工作上主要是管理方法上对我指点了不少。后来我逐步体会到,管理应该是“大家定规则去遵守”,而不应该是“人管人”。
领导去时时刻刻关注每个员工,这样最后往往后造成员工对领导的敷衍了事,管理松了员工会责任下下降,管理紧了造成员工与领导关系紧张,另一方面领导时间精力有限必然耗费大量的精力在日常的监督中而不能投入到全局的管理中。
于是“定制度—定分工—定进度”,明确日常所有的规章制度,这期间除了公司主要的工作规章制度外其他的日常工作纪律、日常管理等规章制度都是我本人制订,然后征求大家意见最后去贯彻执行。中间也遇到了不少问题,比如开始我们内部是允许使用qq的,后来员工用qq闲聊的时间增多,大大影响了工作效率,最后决心禁止,开始阻力较大(貌似程序员都喜欢挂上几个qq去到群里搞个群主,虽然群里大多都是菜鸟),最后多次开会,逐个谈话,阐明道理,形势逐渐好转。
项目分工上针对技术水平明确分工,制订项目开发计划,由于开始技术都不是很成熟,不少时间我这边强势要求,使用野蛮方法,完不成加班——我陪着加班,这段时间能感觉到员工对我稍有怨言但总体还是认可的。
这期间公司新招人员,人员的增多更使我意识到团队管理的重要性,这期间版本控制、编码规范、文档管理、bug管理等诸多问题都得到一一解决,技术水平上主要是我个人利用空余时间学习新知识充电,然后展开各种培训,主要是photoshop、css、js、sql等方面,培训一方面提升了员工的技术水平,一方面我本人在学习培训的过程中得到的最多,因为这个时候个人要求去思考的会,加上我本人对技术兴趣比较深厚,所以后期工作慢慢踏入良性循环。
待遇低、条件艰苦、工作时间长、工作压力大是团队中最大的难题,这方面公司在某些方面决策层有着严重的错误思想,造成技术人员对公司埋怨增多,在这方面我本人只能以劝架婆的身价去安慰身边的兄弟,因为我明白现在公司的问题与当前中国软件行业的通病一样,盲目追求利益最大化,不求质量,但求速度,整个社会风气造成软件行业良莠不齐发展,整个中国三四个人的开发团队组成的公司数不胜数,整个程序员阶层生存状况可想而知,疯狂加班、代码质量低下、维护成本大、稳定性差、用户体验差……。当然我们本身不能去逃避这个现状,对于个人来讲任何假大空的口号都是没有意义的,程序员作为技术人员最重要的是心态,以良好的心态去面对各种问题,发现问题、解决问题,发现问题抱怨是解决不了问题的(“it民工”是我个人认为it人最没有正确的自我定位的一个称谓,试想一个人连自己都看不起自己的职业,他能做好自己的工作吗?),最主要是解决问题。
我在面试员工时反复提到的三点是;工作态度、发展潜力、工作能力,由前向后排序,心态最重要,大公司大家都想削尖脑袋往里挤,但名额有限,所以广大的程序员同志绝大多数都集中在二流三流四流的软件公司,这个时候更应该做好个人职业定位。以我个人的经验,新员工选择一家公司往往最看重工资待遇跟发展潜力,程序员是一种不可以混日子的职业,工作能力很重要,但不是最主要的,工作态度是最重要的,工作态度往往跟个人的思想认识还有职业所在的环境有关,我个人的体会是绝不能太过于情绪化,情绪化无论是对工作还是对个人的发展都是不利的,就是说哪怕是明天你要辞职,你今天都要把今天要做的事情认真用心做好。
对于工作责任心不够的员工是尤其值得关注的,他们往往自我意识过于强烈,追求以自我为中心,很多时候伴随着工作得不到认可、工作感觉不充实不开心,我会主动找他谈话,我认识:你管理的是一个实实在在的人,他不是一台任你摆布的机器,人会有情绪往往是有心结,找到原因,多加开导,用心去关心每个成员。对于实在不适合在本团队发展的员工要做好最坏打算。程序员这个职业与现在的大学生具有一致的特征,一个是从天之骄子沦为多余人,一个是从高智商人士成为今天中国通行的”it民工“。另一方面是程序员往往年龄集中在20—25之间的男性中,情绪化、失落感、心理不成熟等一系列问题都会出现。但这个阶段的人往往也最易沟通,可塑性也较强,适当的引导、合理的方式会比野蛮的管理效果强上百倍。
哲学的特征在于追问本质,不断反思。内容上,哲学的反思对象无所不包;深度上,哲学的反思是无穷无尽的。现实中,我们可以借用哲学的思维方式,但是不能照搬哲学的思维方式。也即是说我们能够直接关注的现实是具体而有限的,思维的不可封闭性使得我们在解决具体问题时不能进行无穷追问。
把哲学低估于现代科学是不负责任的,哲学隐藏在现实生活中的每一部分,它为我们提供了一种生活的方式,如果将哲学简单的与现代科学相提并论,则成为了一种狭隘的唯科学主义。
“又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧。
谨以此文献给那个自己为你奉献3年青春与激情的开发团队。还有团队成员:PPL、YT、YK、TYF、LGL、CHL、CDY、CB、DPD。
1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈!
2、一定要确定自己的发展方向,并为此目的制定可行的计划。不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。
3、软件开发团队中,技术不是万能的,但没有技术是万万不能的!在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在MM比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。
算我孤陋寡闻,我还真没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目,哪怕就一个,也没有看到。倒是曾经看到过一个“高学历的牛人”(非技术型)带一堆人做完过一个项目,项目交付的第二天,项目组成员扔下一句“再也受不了啦!”四分五裂、各奔东西。那个项目的“成功度”大家可想而知了。
4、详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)。请牢记:“如果一个软件开发人员在1、2年内都没有更新过自己的知识,那么,其实他已经不再属于这个行业了。”不要告诉自己没有时间。来自时间管理领域的著名的“三八原则”告诫我们:另外的那8小时如何使用将决定你的人生成败!本人自毕业以来,平均每天实际学习时间超过2小时。
5、书籍是人类进步的阶梯,对软件开发人员尤其如此。书籍是学习知识的最有效途径,不要过多地指望在工作中能遇到“世外高人”,并不厌其烦地教你。对于花钱买书,我个人经验是:千万别买国内那帮人出的书!我买的那些家伙出的书,!00%全部后悔了,无一本例外。更气愤的是,这些书在二手市场的地摊上都很难卖掉。“拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧。”只有将书本变成的自己智慧,才算是线、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。“对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发Windows应用程序,看看Windows程序的设计、加载、执行原理,分析一下PE文件格式,试试用SDK开发从头开发一个Windows应用程序;用VC++、Delphi、Java、发应用程序,花时间去研究一下MFC、VCL、J2EE、.Net它们框架设计或者源码;除了会用J2EE、JBoss、Spring、Hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。试着这样做做,你以后的工作将会少遇到一些让你不明就里、一头雾水的问题,因为,很多东西你“知其然且知其所以然”!
7、在一种语言上编程,但别为其束缚了思想。“代码大全”中说:“深入一门语言编程,不要浮于表面”。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与束缚的例子俯拾皆是。我的经验是:用面对对象工具开发某些关键模块时,为什么不可以借鉴C、C51、汇编的模块化封装方式?
用传统的桌面开发工具(目前主要有VC++、Delphi)进行系统体统结构设计时,为什么不可以参考来自Java社区的IoC、AOP设计思想,甚至借鉴像Spring、Hibernate、JBoss等等优秀的开源框架?在进行类似于实时通信、数据采集等功能的设计、实现时,为什么不可以引用来自实时系统、嵌入式系统的优秀的体系框架与模式?为什么一切都必须以个人、团队在当然开发语言上的传统或者经验来解决问题“他山之石、可以攻玉”。
8、养成总结与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系结构、甚至进化为框架。众所周知,对软件开发人员而言,有、无经验的一个显著区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题(其实这个结论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。但是,最好还是自己实现,这样没有知识产权、版权等问题,关键是自己实现后能真正掌握这个知识点,拥有这个技能。
9、理论与实践并重,内外双修。工程师的内涵是:以工程师的眼光观察、分析事物和世界。一个合格的软件工程师,是真正理解了软件产品的本质及软件产品研发的思想精髓的人(个人观点、欢迎探讨)。掌握软件开发语言、应用语言工具解决工作中的具体问题、完成目标任务是软件工程师的主要工作,但从软件工程师这个角度来看,这只是外在的东西,并非重要的、本质的工作。
学习、掌握软件产品开发理论知识、软件开发方法论,并在实践中理解、应用软件产品的分析、设计、实现思想来解决具体的软件产品研发问题,才是真正的软件工程师的工作。站在成熟理论与可靠方法论的高度思考、分析、解决问题,并在具体实践中验证和修正这些思想与方式,最终形成自己的理论体系和实用方法论。
10、心态有多开放,视野就有多开阔。不要抱着自己的技术和成果,等到它们都已经过时变成垃圾了,才拿出来丢人现眼。请及时发布自己的研究成果:开发的产品、有创意的设计或代码,公布出来让大家交流或者使用,你的成果才有进化和升华的机会。
想想自己20xx年间开发的那些Windows系统工具,5、6年之后的今天,还是那个样子,今天流行的好多Windows系统工具都比自己的晚,但进化得很好,且有那么多用户在使用。并且,不要保守自己的技术和思想,尽可能地与人交流与分享,或者传授给开发团队的成员。“与人交换苹果之后,每个人还是只有一个苹果;但交换思想之后,每个人都拥有两种思想”,道理大家都懂,但有多少人线、尽量参加开源项目的开发、或者与朋友共同研制一些自己的产品,千万不要因为没有钱赚而不做。网络早已不再只是“虚拟世界”,网上有很多的开源项目、合作开发项目、外包项目,这都是涉猎工作以外的知识的绝好机会,并且能够结识更广的人缘。不要因为工作是做ERP,就不去学习和了解嵌入式、实时、通信、网络等方面的技术,反过来也是一样。如果当他别人拿着合同找你合作,你却这也不会,那也不熟时,你将后悔莫及。
12、书到用时方恨少,不要将自己的知识面仅仅局限于技术方面。诺贝尔经济学奖得主西蒙教授的研究结果表明:“对于一个有一定基础的人来说,他只要线个月内就可以掌握任何一门学问。”教育心理学界为感谢西蒙教授的研究成果,故命名为西蒙学习法。可见,掌握一门陌生的学问远远没有想想的那么高难、深奥。多方吸取、广泛涉猎。极力夯实自己的影响圈、尽量扩大自己的关注圈。财务、经济、税务、管理等等知识,有空花时间看看,韬光养晦、未雨绸缪。
A:不要去做技术上的高手,除非你的目标如此。虽然本文是关于提高软件开发知识的建议,做技术的高手是我一向都不赞同的。你可以提高自己的专业知识,但能胜任工作即止。
B:提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面。
C:在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己的综合素质,尤其是那些目标不在技术方面的朋友。
1.1 结构化分析的步骤结构化分析是一种模型的确立活动,就是使用独有的符号,来确立描绘信息(数据和控制)流和内容的模型,划分系统的功能和行为,以及其他为确立模型不可缺少的描述。其基本步骤是:
(1)构造数据流模型:根据用户当前需求,在创建实体—关系图的基础上,依据数据流图构造数据流模型。
(2)构建控制流模型:一些应用系统除了要求用数据流建模外,通过构造控制流图(CFD),构建控制流模型。
(3)生成数据字典:对所有数据元素的输入、输出、存储结构,甚至是中间计算结果进行有组织的列表。目前一般采用CASE的“结构化分析和设计工具”来完成。
(4)生成可选方案,建立需求规约:确定各种方案的成本和风险等级,据此对各种方案进行分析,然后从中选择一种方案,建立完整的需求规约。
结构化设计是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件结构图。其基本步骤如下:
(1)研究、分析和审查数据流图。从软件的需求规格说明中弄清数据流加工的过程。
(2)然后根据数据流图决定问题的类型。数据处理问题有两种典型的类型:变换型和事务型。针对两种不同的类型分别进行分析处理。
(3)由数据流图推导出系统的初始结构图。也就是把数据流图映射到软件模块结构,设计出模块结构的上层。
(4)利用一些试探性原则来改进系统的初始结构图,直到得到符合要求的结构图为止。即在数据流图的基础上逐步分解高层模块,设计中下层模块,并对软件模块结构进行优化,最终得到更为合理的软件结构。
模块化程序设计方法就是把一个待开发的软件系统分解成若干可单独命名和编址的较为简单的部分,这些可单独命名和编址的部分称为模块。每个模块分别独立地开发、测试,最后再组装出整个软件系统。这种方法不仅可以将软件系统开发的复杂性在分解过程中降低,便于修改、维护,而且还容易实现同一个系统不同部分的并行开发,从而提高了软件的生产效率。
一般,将用一个名字就可调用的一段程序称为“模块”。在考虑模块化时,将模块定义为多大较合适,模块设计规则应如何制定成为关键,下面五条标准可供参考:(1)模块可分解性:如果一种设计方法提供了将问题分解成子问题的系统化机制,它就能降低整个系统的复杂性,从而实现一种有效的模块化解决方案。
(2)模块可组装性:如果一种设计方法使现存的设计模块能够被组装成新系统,它就能提供一种不用一切从头开始的模块化解决方案。
(3)模块可理解性:如果一个模块可以作为一个独立的单位被理解,那么它就易于构造和修改。
(4)模块连续性:如果对系统需求的微小修改只导致对单个模块而不是对整个系统的修改,则修改引起的副作用就会被最小化。
一般来说,对模块采用耦合和内聚两个准则进行度量。如模块内部具有高内聚和模块间低耦合,那这样的模块就具有独立性,模块设计得比较好。
面向对象开发方法是以面向对象程序设计语言作为基础的,其核心思想是利用面向对象的概念和方法为软件需求建立模型,进行系统设计,采用面向对象程序设计语言进行系统实现,对建成的系统进行面向对象的测试和维护。
如果一个软件系统是使用这样4个概念设计和实现的,则可以认为这个软件系统是面向对象的。其基本要点可以概括为:(1)数据的抽象,即类与子类的概念及相互关系。任何客观的事物和实体都是对象,复杂对象可以由简单对象组成
(2)数据及对它的操作的一体化,即封装的概念和方法。具有相同数据和操作的对象可归并为一个类,具有封装性,形成一个包装;对象是类的一个实例;一个类可以产生很多对象。
(3)属性与操作由父类向子类传递,即继承的概念与方法。类可以派生出子类,继承能避免共同行为的重复。
哲学就是用简单的说话来体现出隐含深层意义的道理,让人们去思考和体会。哲学本身就是用来完善自己的精神修养和帮助他人完善思想的。
哲学的特征在于追问本质,不断反思。内容上,哲学的反思对象无所不包;深度上,哲学的反思是无穷无尽的。现实中,我们可以借用哲学的思维方式,但是不能照搬哲学的思维方式。也即是说我们能够直接关注的现实是具体而有限的,思维的不可封闭性使得我们在解决具体问题时不能进行无穷追问。
“又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧。
谨以此文献给那个自己为你奉献3年青春与激情的开发团队。还有团队成员:PPL、YT、YK、TYF、LGL、CHL、CDY、CB、DPD。
1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈!
2、一定要确定自己的发展方向,并为此目的制定可行的计划。不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。
3、软件开发团队中,技术不是万能的,但没有技术是万万不能的!在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在MM比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。
算我孤陋寡闻,我还真没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目,哪怕就一个,也没有看到。倒是曾经看到过一个“高学历的牛人”(非技术型)带一堆人做完过一个项目,项目交付的第二天,项目组成员扔下一句“再也受不了啦!”四分五裂、各奔东西。那个项目的“成功度”大家可想而知了。
4、详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)。请牢记:“如果一个软件开发人员在1、2年内都没有更新过自己的知识,那么,其实他已经不再属于这个行业了。”不要告诉自己没有时间。来自时间管理领域的的“三八原则”告诫我们:另外的那8小时如何使用将决定你的人生成败!本人自毕业以来,平均每天实际学习时间超过2小时。
5、书籍是人类进步的阶梯,对软件开发人员尤其如此。书籍是学习知识的最有效途径,不要过多地指望在工作中能遇到“世外高人”,并不厌其烦地教你。对于花钱买书,我个人经验是:千万别买国内那帮人出的书!我买的那些家伙出的书,!00%全部后悔了,无一本例外。更气愤的是,这些书在二手市场的地摊上都很难卖掉。“拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧。”只有将书本变成的自己智慧,才算是线、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。“对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发Windows应用程序,看看Windows程序的设计、加载、执行原理,分析一下PE文件格式,试试用SDK开发从头开发一个Windows应用程序;用VC++、Delphi、Java、.Net开发应用程序,花时间去研究一下MFC、VCL、J2EE、.Net它们框架设计或者源码;除了会用J2EE、JBoss、Spring、Hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。试着这样做做,你以后的工作将会少遇到一些让你不明就里、一头雾水的问题,因为,很多东西你“知其然且知其所以然”!
7、在一种语言上编程,但别为其束缚了思想。“代码大全”中说:“深入一门语言编程,不要浮于表面”。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与束缚的例子俯拾皆是。我的经验是:用面对对象工具开发某些关键模块时,为什么不可以借鉴C、C51、汇编的模块化封装方式?
用传统的桌面开发工具(目前主要有VC++、Delphi)进行系统体统结构设计时,为什么不可以参考来自Java社区的IoC、AOP设计思想,甚至借鉴像Spring、Hibernate、JBoss等等优秀的开源框架?在进行类似于实时通信、数据采集等功能的设计、实现时,为什么不可以引用来自实时系统、嵌入式系统的优秀的体系框架与模式?为什么一切都必须以个人、团队在当然开发语言上的传统或者经验来解决问题“他山之石、可以攻玉”。
8、养成总结与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系结构、甚至进化为框架。众所周知,对软件开发人员而言,有、无经验的一个显著区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题(其实这个结论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。但是,还是自己实现,这样没有知识产权、版权等问题,关键是自己实现后能真正掌握这个知识点,拥有这个技能。
9、理论与实践并重,内外双修。工程师的内涵是:以工程师的眼光观察、分析事物和世界。一个合格的软件工程师,是真正理解了软件产品的本质及软件产品研发的思想精髓的人(个人观点、欢迎探讨)。掌握软件开发语言、应用语言工具解决工作中的具体问题、完成目标任务是软件工程师的主要工作,但从软件工程师这个角度来看,这只是外在的东西,并非重要的、本质的工作。
学习、掌握软件产品开发理论知识、软件开发方法,并在实践中理解、应用软件产品的分析、设计、实现思想来解决具体的软件产品研发问题,才是真正的软件工程师的工作。站在成熟理论与可靠方法高度思考、分析、解决问题,并在具体实践中验证和修正这些思想与方式,最终形成自己的理论体系和实用方法。
10、心态有多开放,视野就有多开阔。不要抱着自己的技术和成果,等到它们都已经过时变成垃圾了,才拿出来丢人现眼。请及时发布自己的研究成果:开发的产品、有创意的设计或代码,公布出来让大家交流或者使用,你的成果才有进化和升华的机会。
想想自己20xx年间开发的那些Windows系统工具,5、6年之后的今天,还是那个样子,今天流行的好多Windows系统工具都比自己的晚,但进化得很好,且有那么多用户在使用。并且,不要保守自己的技术和思想,尽可能地与人交流与分享,或者传授给开发团队的成员。“与人交换苹果之后,每个人还是只有一个苹果;但交换思想之后,每个人都拥有两种思想”,道理大家都懂,但有多少人线、尽量参加开源项目的开发、或者与朋友共同研制一些自己的产品,千万不要因为没有钱赚而不做。网络早已不再只是“虚拟世界”,网上有很多的开源项目、合作开发项目、外包项目,这都是涉猎工作以外的知识的绝好机会,并且能够结识更广的人缘。不要因为工作是做ERP,就不去学习和了解嵌入式、实时、通信、网络等方面的技术,反过来也是一样。如果当他别人拿着合同找你合作,你却这也不会,那也不熟时,你将后悔莫及。
12、书到用时方恨少,不要将自己的知识面仅仅局限于技术方面。诺贝尔经济学奖得主西蒙教授的研究结果表明:“对于一个有一定基础的人来说,他只要线个月内就可以掌握任何一门学问。”教育心理学界为感谢西蒙教授的研究成果,故命名为西蒙学习法。可见,掌握一门陌生的学问远远没有想想的那么高难、深奥。多方吸取、广泛涉猎。极力夯实自己的影响圈、尽量扩大自己的关注圈。财务、经济、税务、管理等等知识,有空花时间看看,韬光养晦、未雨绸缪。
A:不要去做技术上的高手,除非你的目标如此。虽然本文是关于提高软件开发知识的建议,做技术的高手是我一向都不赞同的。你可以提高自己的专业知识,但能胜任工作即止。
B:提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面。
C:在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己的综合素。