培训首页  >  JAVA新闻  >  提高Java编程能力万无一失的办法

提高Java编程能力万无一失的办法

[2017-08-19 15:21:39] 浏览量:255 来源:

北大青鸟瀚唐校区

  北大青鸟淮安瀚唐校区

  每个人都知道,提高编程能力的显著方法是写更多代码。

  然而,我能够提高编程能力的另一种方法却不是写代码。

  我会尽我所能说明这一点:

  如果你想大幅提高自己的编程能力,你需要阅读别人的代码。

  不管你以前是不是这样想的,现在你应该接受这个观点。

  如果你愿意尝试一下,那么你将会收获颇丰。

  在这篇文章中,我会帮助你选择阅读哪些代码

  并且给出如何阅读代码的实用建议。

  如果你已经是一个代码阅读者,

  你可能已经找到了一些有效的方法,

  否则,我觉得你应该开始阅读代码。

  阅读哪些代码?

  这是一个重大的决定,

  也是一个很难提出建议的决定。

  由于阅读什么代码归根结底与你的工作有关,

  所以我不会简单的指出我认为你应该读的具体代码。

  然而,我将会提供给你一些阅读代码的参考。

  阅读你依赖的代码

  阅读使用的插件或库是一个很好的开始。

  一个你真正喜欢的 WordPress 插件

  一个你发现有用的 Ruby gem

  一个你一直使用的 jQuery 插件

  这些都是很好的选择。

  你已经很熟悉它们的公共 API,

  这样会降低对内部工作机制的理解障碍。

  此外,作为代码的使用者,你有机会添加文档、

  实现新功能或以某种方式为项目贡献代码。

  阅读令你印象深刻的代码

  我记得一次看到 280 Slides 的情景,

  当时我告诉自己“这真的令人印象深刻”。

  我很快了解到它是一个由开源

  Cappuccino 项目框架开发的网站,

  我将它牢记于心,当我再次遇到一个

  令人印象深刻的 app 也使用 Cappuccino 框架时,

  我知道我可以从这个项目中学到很多。

  近令你印象深刻的是什么?它是开源代码吗?

  如果是,那么它将是一个很好的选择,

  因为代码可能会与应用一样令你印象深刻。

  阅读你可以理解的代码

  如果你喜欢冒险,你可能会

  考虑深入理解一个大型项目,

  如 Ruby on Rails、Drupal、或者 jQuery。

  我建议你目前避开这样的项目,

  除非你是一个有经验的代码阅读者。

  大项目包括更多模块,你可能挣扎于纷杂的概念,

  而没有学到有价值的内容。困惑会使人沮丧,

  项目越大,越容易产生困惑,从而影响你的阅读。

  阅读小项目的好处就是,

  你可以很快了解整个程序的逻辑,

  这样你就更容易集中精力发现和学习其中的细节。

  记录你的发现

  阅读代码不应该是个被动行为。我鼓励你添加注释,

  当开始了解程序流程时记录你的假设和结论。

  随着你的深入理解,你可以删除自己的用户评论,

  写出可以反馈给项目的更有意义、更全的评论。

  如何阅读

  现在你已经选择了要读的代码,

  那么阅读代码的方式是什么呢?

  我已经读过很多的代码,我可以给出一些

  大限度提高投资回报率的阅读方法。

  执行 → 改变代码 → 执行

  谁说读代码就不需要动手?

  一旦你打破一切再将它们重新整合在一起,

  你才开始真正明白。还记得你做过的那些测试吗?

  使测试失败,添加一些新功能,

  或者尝试在不破坏的情况下改变执行。

  尝试着添加一些你觉得很酷的小功能,

  或者设置项目范围的日志记录,

  这样可以在代码各个阶段打印输出。

  这还是阅读吗?当然,此时更像是自己在冒险,

  而不是看一本侦探小说。这是一件好事。

  除了阅读之外,编程能力还是由

  这三种能力相辅相成组合而成

  基础知识

  比如算法+数据结构,这个就是要多学深,

  可以深入浅出的学,从大学教材开始看,

  不过没有考试,没有划重点,没有可选章节。

  然后可以看看国外的书,网上搜搜,肯定找得到。

  具体技术

  比如c++, java, 文件系统,网络编程等。

  这个我的感觉是,项目中实践吧。

  任何一个正儿八经的项目,都会涉及很多具体技术,

  你写过code,出过错,调试过,

  google过,基本一个点也就掌握了。

  代码意识

  比如你需要解决一个问题,应该怎么做?

  两条方法,你选了哪个?为什么?

  基本是前边两点+你犯过的错

  +看过的书或文章+你的倾向。

  也不用着急去提升这个,

  平时出什么问题多琢磨琢磨。

  一个东西多想有哪些解决办法。

  可能大家说的参与个开源项目啥的

  能有帮助,不过也不是必需的。

  刚开始别纠结选什么语言,看什么fancy的技术。

  计算机的东西其实都是相同的,做深其实也基本会做广,

  做深之后,你觉得comfortable的时候,再去做广。

  其实编程能力是次要的,

  因为这无非是个熟悉某个规则系统的过程。

  获得解决问题的原理性的智慧才是重要的

  所以不要沉溺于某种实现、工具、编程系统上,要多思考原理

  ·END·

  


文中图片素材来源网络,如有侵权请联系删除
  • Adobe认证
  • Oracle认证
  • 思科认证
  • 微软认证
  • Linux认证
  • 其他
  • 职业技能提升
  • 考证找工作
  • 兴趣爱好
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息

温馨提示