我拥有计算机科学学士学位,因此有开发在命令行或基本GUI上运行的软件的经验。但是,我没有制作真实,实用的网站的经验。对我来说很明显,我需要扩展我的技能以包含Web开发。我一直在使用Ruby来开发应用程序,但我知道它在Web开发中非常流行。我想利用我作为程序员的技能帮助我为一个乐队开发一个个人网站。
我有使用HTML的经验,但很少使用CSS。我希望利用我的编程语言技能来创建一个包含图片,音频剪辑,动态日历,日程安排请求工具以及乐队网站常用的其他功能的网站。
有哪些资源可供合格的桌面程序员学习开发网站的整个过程?是否最好使用免费的CSS模板和WordPress作为我的网站的基础或从头开始制作?我应该使用GUI工具还是在Vim / Emacs中全部编写? Ruby on Rails是否足以支持我的个人网站,还是应该考虑更成熟的开发平台?
我这个项目的主要目标是加快当前的网页设计技术,并真正了解建立网站的整个过程。
答案 0 :(得分:20)
我认为在Web开发中要理解的一件非常重要的事情是HTTP。 HTML和CSS很重要,但我认为理解Web的无状态特性以及每个HTTP动词如何工作以及它们能做什么/不能做什么更为重要。
http://www.freeprogrammingresources.com/http.html
查看HTTP工作原理的一个好工具是Fiddler。
答案 1 :(得分:12)
如果它与任何事情一样多的学习练习,那么采取迭代的方法。建立修改。建立修改。我的(非常)粗略的指导方针如下:
客户
服务器强>
<强>资源强>
显然,网络很好。对于客户端的东西,去制作第三方Web控件的公司的网站可能非常有趣。问他们到底是怎么回事? Viewsource是你的朋友。看看他们如何构建和构建他们的页面。选择一些优秀的网页设计师网站,你会发现大量关于浏览器大战的咆哮等等,这些都会给你带来好的(引擎盖下)信息。一旦你到达服务器端,我就会从你选择的供应商那里学习白皮书类型的技术。 Web服务器/框架/等。再次找到第三方howto / evangelist网站(我过去常常使用很多来自Rolla的4个人)来演示如何做各种事情。语言学习正在进行中。基本上只做最好的事情,直到找到更好的方式......并始终注意寻找更好的方法。
答案 2 :(得分:8)
你真的需要了解html,form和css来获取任何地方。我说形式,因为这将给你理解web dev的无状态性质所需的往返。
为了进一步说明这一点,我采访了很多人,他们认为你只能在一个页面上有一个表单,每个表单只能有一个提交按钮。这完全取决于缺乏基础知识。
因此,我建议从htmldog.com开始。
之后,很多Web开发都是使用框架完成的。你自己做的日子已经一去不复返了(大多数情况下),但我的上述观点仍然存在。你需要能够有信心地在引擎盖下窥视。
我已经进行了12年的Web开发,并在Solaris和Linux上开始使用Perl。从那时起,我也完成了Java和最近的ASP.NET。但是,在我的私人项目中,我正在为Django慢慢堕落。
我多年来发现的是,固有的问题 - cookies,javascript,演示,状态,身份验证都是一样的,但处理方式不同。所以最终归结于你和你的语言偏好。在潜在就业方面,还有一些开明的自我利益。
除了编程之外,你还应该熟悉Web服务器(我想到的是Apache和IIS),Http代码和头文件,Mime类型以及编码和FTP。以及Javascript(已经提到),插件,浏览器平台和良好的开发实践,如使用Firebug,Fiddler等。了解可用的图像格式,图像优化,CSS精灵,内容压缩,缓存等也不会有什么坏处。一切都取决于你想要开始的地方!
对于新手,我会选择Django和(显然)Python。良好,干净的语言与廉价的启动选项,低成本的IDE(即免费)和托管您的网站是非常实惠的。
但这只是一种主观意见。
答案 3 :(得分:3)
如果你的目标是
我这个项目的主要目标是 加快当前的网页设计速度 技术,实际上了解 整个建设过程 网站。
然后从头开始在Ruby,PHP,Java,ASP.NET等中......
当您遇到设计问题或只是想知道其他人如何处理某些问题时,请查看框架。
一旦你的速度加快,你的网站开始增长,然后逐步进入一个框架,以加快框架的速度。
答案 4 :(得分:2)
如果按照John MacIntyre's suggestion从头开始,您可能会倾向于PHP。对于它的所有shortcomings,它确实有一个really good user manual。它也很容易上手,并且几乎安装在每台主机上,并与Apache配合使用。
另外,w3 schools很适合开始学习CSS和XHTML,但不要忘记查看W3C的规范。
答案 5 :(得分:2)
我同意John的观点。
根据您自己在攻读理学士学位方面的经验,了解任何语言的基础知识,使您更有能力扩展知识或专业。
考虑到这一点,最好理解HTML和CSS的基础知识。
当您想要使用Django和Rails等框架进行大型项目时,了解语法和整体语言将会有所帮助。基础知识还特别有助于调整CMS,如Wordpress,以便更加可根据您的需求进行定制。
我要特别提到的一点是,网络编程与许多其他形式的编程一样,都有自己独特的结构和“正确”的处理方式。http://www.w3.org是一种很好的方法来确保你的工作正在通过一般的网页设计标准,大多数网站都没有遵循这一点,因为它很乏味,但从学习的角度来看,它确保你有一个很好的坚实基础。
www.w3schools.com也是提供网络编程详细帮助的绝佳资源。最后,我喜欢丰富多彩的代码,所以我喜欢使用基本的文本编辑器,如notepad ++或notepad2或gedit来进行网络编码。像Dreamweaver这样的GUI可能会用额外的垃圾和空格填充你的代码,所以我不推荐它们,但它们仍然是很好的工具。
答案 6 :(得分:2)
还不打扰Rails - 在Ruby中编写CGI脚本。它与你在课堂上所做的非常相似。
在你掌握了大约30个之后,你就会知道你想要一个网络框架。
答案 7 :(得分:2)
我是计算机科学家和网络程序员,我建议你学习HTTP和CGI:
正如上面教程的标题所说,他们让这些概念“非常容易”。
一旦你获得了CGI和HTTP,我建议你查看以下网站,这些网站提供了大量关于网络编程的文章和参考资料:
假设您想专注于编写Web应用程序,那么Perl,PHP,Python和Ruby都是很好的选择(我自己主要使用Perl),我建议对每种语言可用的流行Web框架进行一些研究。
最重要的是,选择一些简单的东西作为您的第一个网络应用,例如表单和页面,显示提交该表单的结果。一些很好的例子(使用Perl的CGI模块)可以在这里找到:
如果您想开始编写使用数据库的Web应用程序,请阅读所选语言的SQL和常用库/模块以进行数据库操作,尤其是ORM(对象关系映射)接口,它们允许您处理记录以面向对象的方式。
祝你好运!作为一名网络程序员很有趣,因为你的观众是intarwebz! :)答案 8 :(得分:1)
对于你所描述的内容,Rails或Django可能会有点矫枉过正,但学习它们并没有什么坏处。特别是Django可能很好,因为包含多个应用程序(例如日历)的项目的概念。
无论您是使用框架还是自己编写所有内容,您都需要了解HTML和CSS。如果您拥有CS中的BS,CSS非常简单......您可以在五分钟内阅读教程并了解它。