如何提高编程知识,如何测试目前的状态?

发布于 2024-09-05 06:45:43 字数 212 浏览 1 评论 0原文

嘿伙计们,我对自己在编程方面的经验感到非常兴奋。 我编写的第一个可用程序是在 2004 年用 C 编写的。从那时起我尝试了很多编程语言,现在却被 php 困住了。目前我是一名网络开发人员,每个人都对我所做的工作感到满意。除了我:)这就是我想知道我的经验和知识有多高的原因。

您能否告诉我一些提示、技巧、测试或其他任何信息,让我知道我需要学习和练习多少才能成为编程大师? (在php中排名第一)

Hey guys, I'm very excited about how experienced I am in programming.
The first, working program that I have written, was in 2004 with C. Since this I have tried many programming languages, now got stuck with php. Currently I'm working as a web-developer, and everyones pleased with the work I do. Except me :) Thats the reason why i want to know, how high my experience and my knowledge is.

Could you tell me, some tips, tricks, test, or anything, on what I can see how much I need to learn and practice to get a mastermind in programming? (at first place in php)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吝吻 2024-09-12 06:45:43

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

1)你最薄弱的领域是什么?联网?图形?正则表达式?如果有人问你“我需要一个可以做 X 的程序”,而 X 让你感到害怕,那么这个领域是什么?现在尽可能多地学习这个主题。制作一些原型并制作它,以便您更好地理解它的分配。我曾经讨厌 Regex 命令,现在我只要有可能就使用它们。

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

3) 如果您正在进行 Web 编程,请为自己获取大量数据并开始进行一些数字运算。不久前,我在玩《EVE Online》,因此我启动了 SQL Server Express,并在其中编写了一些市场分析例程。服务器处理的数据量约为 4 GB,但同时我也了解了有关 SQL Server 的知识。

我最近正在观看一个关于 Lisp 的讲座,教授说:“计算机科学不是关于计算机,也不是关于科学。它是关于知识,以及如何操纵这些知识以获得更多知识。”确实如此,所以你拥有的工具越多操纵和获取知识,你就会成为更好的程序员。

I'm also a programmer who doesn't like to stagnate, so perhaps I can offer a few tips:

1) What's your weakest area? Networking? Graphics? Regex? What is the one area that if someone asked you "I need a program that can do X" and that X scares you what is it. Now study as much as you can on that subject. Hack out a few prototypes and make it so that you understand it allot better. I used to hate Regex commands, now I use them whenever I can.

2) Study "different" languages. I'd recommend learning a "functional" language such as Erlang, Lisp, or perhaps certain aspects of Python. Get a book on "functional programming" and read it through, and then think how you can apply these concepts to your current work. Start using map() and filter() in python instead of for loops, etc.

3) If you're doing web programming, get yourself a massive set of data and start doing some number crunching. A while back I was playing EVE Online, so I fired up SQL Server Express and hacked out some market analysis routines in it. It was around 4 GB of data the server crunched through, but I learned allot about SQL Server in the mean time.

I recently was watching a lecture on Lisp and the Professor said: "Computer Science is not about computers and not about science. It's about knowledge, and how to manipulate that knowledge to obtain more knowledge" So true, so the more tools you have for manipulating and gaining knowledge, the better programmer you'll be.

千纸鹤 2024-09-12 06:45:43

开始一个新的编程项目,花时间让它的每个方面都尽可能好。

  • 使用 git 或 Mercurial 进行源代码控制。使用子模块(或任何 Mercurial 的等效项)来管理外部框架。设置提交后挂钩来运行单元测试并压缩可执行文件。对所有内容都使用新分支,并进行章鱼合并,将它们全部放回到单个分支中。
  • 编写你所做的一切脚本。部署应用程序的新版本(包括网站更新!)应该像运行单个脚本一样简单。
  • 使您的应用程序 100% 本地化。使用新语言进行部署应该像将字符串文件发送给志愿者进行翻译一样简单,然后将翻译后的文件弹出到源代码中,无需额外的工作。
  • 优化,优化,优化。多花一周时间让您的应用加载速度加快 100 毫秒。
  • 重构,重构,重构。不要只追求正交性和抽象性,要追求纯粹的代码美。使用您的类应该像使用 Duplo 块一样,它们只是卡入到位,看不到错误。
  • 单元测试一切。 100% 覆盖率。不要让任何一次回归都未事先通知。自动化整个测试套件,这样您就无法在所有测试都通过的情况下升级您的代码。
  • 将您的应用程序放在云端。如果您正在为桌面或移动设备编写内容,请为您的用户提供一种将其数据同步到网站的方法。写那个网站。如果您的项目是基于网络的,请为您的用户提供移动或桌面前端来访问他们的帐户。
  • 可访问性。残障用户应该会对您在设计应用程序时所投入的精力感到兴奋。

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

Start a new programming project and take your time to make every single aspect of it as good as possible.

  • Use git or Mercurial for source control. Use submodules (or whatever the Mercurial equivalent is) to manage external frameworks. Set up post-commit hooks to run your unit tests and zip up your executable. Use new branches for everything and do octopus-merges to get them all back into a single branch.
  • Script everything you do. Deploying a new version of your app (including website updates!) should be as simple as running a single script.
  • Make your app 100% localized. Deploying in a new language should be as easy as sending a strings file out to a volunteer to get translated, then popping that translated file into your source code, no additional work needed.
  • Optimize, optimize, optimize. Spend the extra week to make your app load 100ms faster.
  • Refactor, refactor, refactor. Don't just go for orthogonality and abstraction, aim for pure code beauty. Using your classes should be like using Duplo blocks, they just snap into place with not an error in sight.
  • Unit test everything. 100% coverage. Don't let a single regression go unannounced. Automate the entire test suite so that you can't promote your code without all the tests passing.
  • Put your app in the cloud. If you're writing something for the desktop or a mobile device, give your users a way to sync their data to a website. Write that website. If your project is web-based, give your users a mobile or desktop front-end to access their accounts.
  • Accessibility. Handicapped users should be thrilled with the care you put into designing your app.

Keep in mind that if you do everything I listed here, you'll never ship, but you'll be a well-rounded a developer, an asset to most any team.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文