一般编程知识?

时间:2008-10-18 03:44:32

标签: php

我对编程完全陌生 - 我的兴趣在于PHP&用于为军乐队管理目的构建动态Web应用程序的MySql。即成员的一般信息和社交网络+管理团队有效沟通的附加功能。

好的问题 - 随着我对PHP的了解越来越多,我使用的术语我不明白必须来自所有语言之间熟悉的共同基础,即“堆栈溢出”似乎是一个明显的 - “也使用许多递归函数可能会粉碎堆栈“是另一个。

那么是否有一本关于编程的书(也许是一本入门书),它允许像我这样的人更好地理解这一切意味着什么呢?

请记住,我今年57岁(年轻),我真的刚刚开始。

史蒂夫

9 个答案:

答案 0 :(得分:9)

Wikipedia可能是您获取有关编程术语的一般信息的最佳资源。他们社区的很大一部分与编程社区重叠,因此与技术相关的页面通常非常准确,具有教育意义并且是最新的。请参阅stack overflowsrecursion上的网页作为示例。

此外,PHP.net是了解PHP的最佳位置,但如果您刚刚开始,请跳过主页和go straight to the tutorial

最后,我强烈推荐使用本书Head First SQL来了解数据库。本书中的所有示例都使用MySQL。整个Head First系列很棒。我听说他们也有一本PHP书,但我还没读过那本书。

更新:Head First PHP & MySQL现已推出。

答案 1 :(得分:5)

听起来你错过了计算机科学课程中涉及的一些基础知识。不用担心,信息随时可用。你不必付钱给某人教它(虽然它有时很好)。维基百科的computer science条目对于突出显示您可能遇到的主要字段并不算太糟糕。需要了解的主题:

  • 离散数学(有助于理解形式逻辑,算法复杂性,概率)
  • 编程基础知识(听起来你可能有一个良好的开端)
  • 数据结构(以适当的方式为任务存储和操作数据。例如,为什么使用哈希表而不是数组而不是链表?从列表中,stackoverflow中的堆栈是数据结构。)< / LI>
  • 算法(以最有效的方式操纵您的数据结构或至少知道成本。从您的列表中,使用过多的递归函数来“粉碎堆栈”是一种算法选择。)
  • 计算机体系结构(了解编译或解释后代码中发生的事情。)
  • 网络(了解协议,当您的软件想要与未运行的计算机通信时会发生什么情况)
  • 比较编程语言(PHP只是让一只猫染上眼睛的一种方法。了解为什么它的设计师做出了他们做出的决定并接触了替代品。)
  • 操作系统(了解硬件如何与您的软件交互是好的,但了解它如何与其操作系统交互可能更为重要。文件系统,流程管理,内存管理,安全性)
  • 形式语言/计算理论(计算模型,语法[用于验证和解释代码],计算限制。通常不作为软件工程师日常使用。然后,正则表达式在此课程后终于有意义了。)
  • 软件设计和生命周期方法(考虑设计,编码,测试,发布和维护软件。)

就书籍而言,我首先要查看一所值得信赖的学校的计算机科学课程阅读。

斯坦福大学免费在线提供一组课程:http://see.stanford.edu/see/courses.aspx

麻省理工学院允许您免费下载课程资料:http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/

检查youtube是否有与计算机科学相关的讲座。

如果你想要一些不那么注重学校的东西,在亚马逊上快速搜索上述任何一个主题都会给你带来用户评价的结果。

显然,综合起来,这个清单并不是真正的介绍。我会从一个听起来很有趣的主题入手。

答案 2 :(得分:2)

好吧,这不是关于PHP的书,但我认为来自"Learn to program"Pragmatic Bookshelf这样的书 可能对你处境中的某个人有用。

答案 3 :(得分:1)

为了以一种非常易读(非技术性)的方式很好地理解计算机硬件和软件的内部工作原理,我可以推荐Charles Petzold的Code,The Hidden Language of Computer Hardware and Software

后面的章节特别讨论了大多数编程语言中存在的一些更通用的编程概念。前面的章节更多地关注计算机和软件的历史,因此与您的问题无关。

然而,这不是一本大书,所以无论如何阅读它都应该是有趣/有用的。

如果您正在寻找专门针对PHP / MySQL编程的介绍,那么有更好的书籍,但是如果您想要了解有关软件和硬件如何工作的更多常识,那么代码就很棒。

答案 4 :(得分:0)

我不确定是否有一本书会教你“编程基础”。我知道学习所有这些事情的唯一方法就是练习。获取PHP教程并开始构建。始终保持开放的态度,学习新事物。当你找到一种更好的方法去做一些事情,而不是一个非常低效的黑客,你从不完整的知识中组合起来,然后使用它并学习它并将它整合到你的知识中......经过几年的努力,你将成为黄金。 / p>

答案 5 :(得分:0)

我阅读它已经过了几年,但Programming PHP在介绍基本编程概念方面做得很好。它对帮助理解更高级的概念没有太大作用,比如MVC(在PHP世界中很少见),像arraysfunctionscallbacks,{{3}这样的东西等等,涵盖范围。

答案 6 :(得分:0)

我喜欢Corbin的评论,但我会采取相反的方法。

基本上,对于今天的系统,您实际上并不需要了解系统的所有低级细节。真的,你没有。

如果您觉得这些东西很有趣,整个互联网都可供您使用 - 只需让您内心的缪斯引导您完成必要或简单的好奇心。你可以根据自己的喜好深入或高涨。

事实是,今天的计算简直太棒了,你想要开展的项目只是一个了解更多关于神秘计算世界的绝佳机会。人们可以“无需线索”尽可能地获得这一事实证明了该领域已经取得了多大进展。这是件好事。

了解坚果过程汤是一件好事吗?当然。您是否真的需要这种理解才能提高工作效率并从您的时间投资中获得有用的结果?不,你没有。

而且,随着你的进步,如果你真的喜欢这项工作(你可能不会这样做),那么这个领域会随你所想的那样广泛。

今天的计算就像“Home Depot”。你可以做到,我们可以提供帮助。大多数论坛都有数百个论坛和数千页文档,书籍,博客和讨论。

关注的关键是简单地完成任务。不要担心完美,不要担心“以正确的方式做”,不要“设计”它。只需将它们拼凑在一起,直到你得到的东西接近于你想要用你发现的任何东西或自己想要完成的东西。因为这是查找您不知道的内容的最简单方法,以及如何在您的应用程序中不做任何事情。试试吧,看看。

你会被选项,技术,模式,框架等所蒙蔽。不仅有“不止一种方法”,还有很多方法可以“做到”。忽略数百,并专注于“做它”,但对你来说似乎很自然。

不要让雅虎在他们的象牙塔里偷你的问题,或者撕碎你的设计。除非他们的名字是“巴贝奇”或他们在第二次世界大战中为炮兵计算机切割齿轮,我们都站在巨人的肩膀上,我们都开始在某个地方。诚实的批评应该始终受到欢迎,但有些人似乎无法提供这种批评,而是诉诸于贬低。

我惊叹于我见过的“黑客入侵”,“屠杀”和“OMG'd”的应用程序,人们可以从中获得真实的,实用的 - 这就是游戏的真实名称。

祝你旅途愉快。在所有努力中取得成功。

答案 7 :(得分:0)

学习是个人的,所以你的里程可能会有所不同,但我发现在公共论坛上提问是非常有帮助的。如果你不了解很多话题,那么很容易提出错误的问题,或者以某种方式关注错误的事情。从更有经验的人那里获得直接反馈通常会有所帮助。 PHP很幸运,因为它拥有一个非常庞大而友好的社区。此外,它的许多用户是业余爱好者或没有经验的程序员,这意味着存在询问关于术语等的基本问题的文化。我建议你利用这个来源。

一个地方可以在sitepoint,但还有其他地方

答案 8 :(得分:0)

如果您更像是一名视觉学习者,我会查看一些视频教程。从基本编程概念开始,然后升级到像PHP和高级PHP和MySQL的Up和Running这样的标题。然后我建议像codeigniter这样的MVC框架。

您可以在Lynda.com或Pluralsight.com以及其他几个地方找到精彩的视频教程。