如何成为高级程序员

1. 编程语言能力

    不用多说,作为合格的计算机程序员,精通一门语言是必须的。这种精通,不是说看了一本编程宝典,抄了几个程序就能说精通的,要靠长时间的积累。

    2.编码能力

    我曾经看很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性。另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。

    3.面向对象思维能力

    如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。我面试过很多程序员,没有一个能说得上几句的。

    4.利用工具能力

    工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。

    5. 英语能力

    新的技术资料都是英文的,英语国家的IT技术走在我们前面至少10年(这是我自己估计的数字,可能正在缩小)。就连印度,一个连基础设施建设都不太完善的国家,因为其英语基础较好,其在软件外包领域的发展也非常迅猛,远远超过了我们。学英语,首先是有信心,其次就是花时间。多阅读英文资料,贵在坚持。

    6.学习能力

    在IT业混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。当然,不能只学习技术,要经常练习自己的软技能,比如沟通能力,表达能力。

    7.创造能力

    普遍认为,东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,“这个只能这么解决了,我想不出有什么别的方法。”可能他根本都没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决办法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。

    8.文档能力

    也许有人会质疑,程序员跟写文档有什么关系。大家开源软件也用过不少,看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他么的tutorial,他们的getstarted,他们的reference文档写的多么的易懂。其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的“程序”谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。

    9.抽象能力

    抽象能力是认识事物从现象到本质的能力。如果你只是停留在“见山是山,见水是水”的层次,客户说什么,你就做什么,设计怎么做,你就怎么实现,从来不过问为什么,也不去想他是满足了用户哪些方面的需求呢。这样可能只解决了表面的问题,可能会引起返工。认识到本质,才能让你的程序具备更大的灵活性和可扩展性。在做企业应用软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。

    10.代码评审能力

    代码评审和单元测试是保证代码质量的两种常用手段之一。代码评审能力,说明了你的审美标准,知道什么是好的,什么是不好的,什么是优雅的代码,什么是糟糕的代码,你才能让自己做的更好。

    11.单元测试能力

    没有单元测试的代码,只能说是半成品。因为没有什么能证明你的代码是可以运行的。测试驱动开发是一个非常好的敏捷过程的最佳实践。单元测试还可以作为回归测试,在修改代码时,起到警戒线标志的作用。是否具有单元测试的意识是区分程序员是否合格的重要标准。写不写单元测试是区分平庸程序员和优秀程序员的重要标杆。

    12.DRY

    DRY是一种原则,就是Don”t Repeat Yourself.这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要成为一名高级程序员,您需要具备基本的计算机知识,例如编程语言,数据库,网络等,您还需要学习高级的编程技巧,例如架构,面向对象编程,算法和数据结构,并需要深入了解主流的技术,例如Web开发,移动开发,大数据,云计算等。此外,您也需要学习业务软件开发,并建立良好的学习习惯,以便及时学习新技术,保持技术水平的更新。 ### 回答2: 为了成为一名高级程序员,我制定了以下详细的计划书: 1. 学习和提升编程技能: - 深入学习并精通一种主流编程语言,如Java或Python,包括语法、数据结构和算法。 - 学习并应用面向对象编程(OOP)的原则,熟练掌握设计模式和软件工程的最佳实践。 - 深入了解数据库技术,包括SQL语言以及关系数据库和非关系数据库的设计和管理。 - 学习并应用前端开发技术,如HTML、CSS和JavaScript,熟悉常见的前端框架如React或Angular。 - 掌握系统设计和架构模式,包括分布式系统和微服务架构。 2. 参与开源项目和个人项目: - 参与开源项目,积累开发经验和展示自己的能力。可以参与一些知名开源项目的贡献,或者创建自己的个人项目。 - 学习并实践代码审查(code review)和团队协作的技巧,培养良好的编码习惯和合作能力。 - 不断改进自己的项目管理和版本控制的技能,如Git和GitHub。 3. 深入了解相关技术领域: - 关注行业动态和最新技术趋势,例如人工智能、大数据、云计算等,学习并应用相关技术。 - 学习并掌握一些热门的开发框架和工具,如Spring和Django等,以及相关的测试和部署工具。 - 不断拓展自己的知识面,包括安全性、性能优化和可扩展性等方面的知识。 4. 持续学习和自我提升: - 参加技术培训和研讨会,学习行业知名人士的经验和见解。 - 阅读相关的技术书籍、博客和论文,保持对新知识的敏感度和渴望。 - 积极参与在线技术社区和论坛,与其他开发者交流和分享经验。 5. 实践和项目经验: - 参与真实项目的开发和实施,通过实践不断提高自己的技术能力和解决问题的能力。 - 寻找机会参加一些技术挑战和比赛,锻炼自己的编码和解决问题的能力。 通过以上计划,我相信可以不断提高自己的技术水平和成为一名优秀的高级程序员。但更重要的是,我会保持对学习和创新的持续热情,不断追求技术的进步和提升。 ### 回答3: 作为一个想要成为高级程序员的人,我制定了以下详细计划书: 1. 学习计划:制定一个系统的学习计划是成为高级程序员的关键。我计划深入学习计算机科学的基础知识,包括数据结构、算法和计算机网络等。此外,我也打算学习一门或多门编程语言,并掌握它们的高级特性和应用。我会利用自学和参加培训课程相结合的方式,确保学习进度和质量。 2. 实践项目:理论学习仅仅是成为高级程序员的第一步。我计划积极参与实践项目,以提高自己的实际编码能力。我会参与开源项目,与其他开发者合作,学习使用版本控制系统和团队协作工具。此外,我也会自己实践一些小型项目,以提高自己的解决问题和代码组织能力。 3. 持续学习:成为高级程序员需要保持持续学习的状态。我计划每天都花一定时间阅读技术文档、技术论坛和博客,以及参加相关的网络课程和研讨会。我还计划参与行业相关的会议和讨论小组,与其他高级程序员交流经验和最佳实践。 4. 寻找导师:导师在成为高级程序员的道路上起着重要的指导作用。我计划寻找一位有经验的高级程序员作为我的导师,从他们那里学习他们的经验、技巧和见解。这样的导师可以帮助我在学习过程中解决问题、提供反馈和推荐书籍和资源。 5. 建立技术博客:我计划建立一个个人技术博客,记录自己的学习和经验,并与其他开发者分享。通过写作,我能够更深入地理解我所学的知识,并通过与读者的互动来改善自己的表达和沟通能力。 总之,我的计划是通过系统学习、实践项目、持续学习、寻找导师和建立技术博客来成为高级程序员。我相信通过坚持不懈地追求这些目标,我能够取得成功,并为自己的技术职业发展铺平道路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值