如何提高编程知识,以及如何测试它的当前状态?

时间:2010-06-11 16:33:36

标签: programming-languages

嘿伙计们,我对我在编程方面经验丰富感到非常兴奋。 我写的第一个工作程序是2004年的C.我已经尝试了很多编程语言,现在陷入了php。目前我是一名网络开发人员,每个人都对我的工作很满意。除了我:)这就是为什么我想知道,我的经验和知识有多高。

你能告诉我一些提示,技巧,测试或其他什么,我可以看到我需要学习和练习多少才能在编程中获得策划者? (在PHP的第一个地方)

2 个答案:

答案 0 :(得分:14)

我也是一个不喜欢停滞的程序员,所以也许我可以提供一些提示:

1)你最薄弱的地方是什么?联网?图形?正则表达式?如果有人问你“我需要一个可以做X的程序”并且X吓到你的是什么,那么这个区域是什么?现在尽可能多地研究这个问题。破解一些原型并制作它以便您更好地理解它。我曾经讨厌Regex命令,现在我随时都可以使用它们。

2)研究“不同”的语言。我建议学习一种“功能”语言,如Erlang,Lisp,或者Python的某些方面。获取一本关于“函数式编程”的书并阅读它,然后思考如何将这些概念应用到当前的工作中。开始在python中使用map()和filter()而不是for循环等。

3)如果您正在进行Web编程,请为自己获取大量数据并开始进行一些数字运算。前段时间我正在玩EVE Online,所以我启动了SQL Server Express,并在其中破解了一些市场分析程序。服务器通过了大约4 GB的数据,但我同时学习了有关SQL Server的数据。

我最近正在观看关于Lisp的讲座,教授说:“计算机科学不是关于计算机而是关于科学。它是关于知识,以及如何操纵知识以获得更多知识”所以,所以更多的工具你有操纵和获取知识,你将成为更优秀的程序员。

答案 1 :(得分:3)

开始一个新的编程项目,并花时间尽可能地使它的每一个方面。

  • 使用git或Mercurial进行源代码管理。使用子模块(或Mercurial等价物)来管理外部框架。设置提交后挂钩以运行单元测试并压缩可执行文件。为所有事物使用新的分支,并进行章鱼合并,将它们全部重新组合成一个分支。
  • 编写您所做的一切。部署新版本的应用程序(包括网站更新!)应该像运行单个脚本一样简单。
  • 让您的应用100%本地化。使用新语言进行部署应该像向志愿者发送字符串文件以进行翻译一样简单,然后将翻译后的文件弹出到源代码中,无需额外的工作。
  • 优化,优化和优化。花费额外的一周使您的应用加载速度提高100毫秒。
  • 重构,重构,重构。不要只是寻求正交和抽象,以纯粹的代码美为目标。使用你的类应该像使用Duplo块一样,它们只是快速到位而不会出现错误。
  • 单元测试一切。 100%的覆盖率。不要让一个回归未经宣布。自动化整个测试套件,以便在没有通过所有测试的情况下无法推广您的代码。
  • 将您的应用置于云端。如果您正在为桌面或移动设备编写内容,请为用户提供将数据同步到网站的方法。写那个网站。如果您的项目是基于网络的,请为您的用户提供移动或桌面前端以访问其帐户。
  • 辅助功能。残疾用户应该对您在设计应用程序时的谨慎感到兴奋。

请记住,如果您执行我在此处列出的所有内容,您永远不会发货,但您将成为一名全面的开发人员,对大多数团队来说都是资产。