首页 / 帖子
请教各位关于Drupal整个学习的一个过程?

在学习一样新鲜事物的时候,往往会发现其中好多方面或是分支知识储备不够,然后转去学习别的知识点。比较困惑,就想请教各位关于Drupal是一个怎么样的学习过程?


目标:能够完成普通的企业站和一些简单需求的网站。


15个答案
发布于:2014-03-10 22:24

首先要看你如何定位你的学习目标,比如你的目标是做简单的网站,最好时间就不要花在诸如研究Drupal各个知识点是如何实现上。


你需要学的是:


  1. Drupal的基本术语,比如node, content type, user, user role, permission, taxonomy, cck/field, module, theme, views, template, menu等等,就不一一列举了。 

  2. 然后,你需要学会使用内置模块,通过配置,根据需求,实现网站的基本数据结构,包括几个内容类型来容纳数据,几级菜单来做导航,几个分类和标签来标记内容

  3. 在理解主题机制的基础上,讲各个页面theme成想要的样子

  4. 如果默认的列表满足不了全部需求,你可能需要理解和使用Views模块

  5. 如果还需要一些其他的功能,你需要学会利用Drupal官网的模块库资源,找到自己需要的功能模块。


以上是学习Drupal制作简单网站的一般流程,如果每一个步骤你都能做的很好,你就能学会80%要学的Drupal知识,但花费的时间只占你整个Drupal学习时间的20%。


但如果你想成为一名Drupal高手,你需要花费80%的时间,去把那20%的晦涩难懂的Drupal底层理论,各个重量级模块的扩展,各个模块之间的配合,各种最佳实践融汇贯通。


赵高欣
发布于:2014-03-12 08:55

感觉drupal更新速度很快,我之前接触的是drupal7,但是现在drupal8出来了,很多的都简单话了,我想请问如何在这个不断的更新中,保持学习呢?

AnnyO
发布于:2014-03-12 10:53

Drupal的学习,志成兄总结的比较到位。

就个人体会,任何开发工具和语言的学习都要从实践中提高,理论的学习很简单也比较快。

此外就是从最简单的地方入手,比如drupal,你先要安装一个用用,装几个简单的模块试试,再就是做一个小项目,看如何实现。

比如,刚开始我就用drupal做了一个自己用的简单网站,翻译英文笑话的网站,做得过程虽然有时很多用的都不对,但是做完之后确实大体了解了很多Drupal的核心理念。


因此就是先用,再就是一个一个模块的慢慢来。/**有时一个模块就是一个新的技术领域**/,并不是一个模块的知识面能涵盖的。比如SEO模块,那么你得有seo的知识,并不是模块有多难,而是你没有SEO的知识,还有GoogleAnalytics, 你对GA要有所了解,等等,不一一列举。


最后说一下更新的问题,Drupal我觉得算是更新比较慢的了,大版本更新很慢,小版本基本就可以忽略,因为大多都是bugfix或者小调整,基本不会花费学习成本的。

大多开源软件,更新都是比较慢的,但是更新都是有学习成本的,这个是不可避免的。简单的说,就是活到老学到老吧。^_^


附带一张Drupal学习曲线图。

赵高欣
发布于:2014-03-12 14:24

任务需求推动学习能力。

Amanda Song
发布于:2014-03-12 17:00

谢邀,个人认为根据目标水平不同,可以分为不同阶段:

  1. 简单建站:要达到这个水平并不难,熟悉一些常用模块,能够下载需要的模块或主题并将其安装在目标网站上,熟悉一些drupal的术语,如content type,taxonomy等。

  2. 高级建站:达到这个水平,需要付出一些努力,常用模块基本上要做到随需随用,能够根据需求确定模块的使用,至少能在需要的时候找到解决问题的方法,即使是利用网络资源;能够进行简单的定制,对drupal的实现方式有一定的理解,能依照drupal的标准完成需求。

  3. 简单开发:根据需求定制模块和主题,这需要至少会php、js、html、css,可以不必精通每一种,但至少精通其中以两种,这里分模块开发和主题开发,不同方向需要的技能也各不同,功能开发者需要会php,并且熟悉drupal核心以及常用模块的API,并能熟练应用;主题定制者至少要会html和css,并且熟悉drupal的主题机制,能够对模板进行覆写,并且需要的时候要能在template.php中进行一些定制修改。

  4. 高级开发:要达到这个水平,需要不懈的努力,不管是主题开发还是模块开发,都要求能依据drupal的代码标准,制作出主题或者模块,模块和主题相互之间的交叉地带也都横沟搞定,模块内自带的模板文件和样式表并提供覆写机制,主题内的处理过程等等。

  5. 补充:除此之外,高级点的还会涉及到多人协作开发,这里相关的软件工程知识也成了必须,版本控制等等一系列技能也需要掌握。

//---------------------------------------------

以上愚见,望指正

王斌
发布于:2014-03-13 15:35

很多时候,学习Drupal都是和实际项目联系到一起的,临时抱佛脚,

专门学习Drupal、研究Drupal的少之又少。

没有了实际项目,很多人也就离开Drupal了。

陈蹊
发布于:2014-03-14 13:54

就达成你所提的目标,学drupal theme机制即可。

首先理解一下几点:

  1. Drupal所有输出,要通过theme;

  2. theme根据一个theme的“注册表”,调用相应的输出函数输出;

  3. 这个“注册表”是可以更改的。更改的方法为:定义一个特定命名模式的函数,drupal术语为hook。

以上三点为深入浅出故,从简叙述,但依次大意,再配合详细文档,理解drupal的theme机制不难。

如果想玩drupal玩的好,建议:

  1. 阅读drupal源代码,弄懂一个请求过来,到返回结果(一个页面),drupal经历了哪些步骤,干了哪些事,原理弄懂了自然“变化神通,游戏无碍”;

  2. 理解open source的理念,按open source的理念去参与drupal社区。

陈蹊
发布于:2014-03-16 20:49

就说我自己,刚毕业时就用了drupal,就是从用开始的,一开始是偏向主题前端开发,因为普通站点主要就是用第三方的模块搭功能,主要是主题前端要定制的较多,持续了有半年左右我才开始真正的像模块开发靠拢。架构方面的经验也是通过项目的积累积攒的,所以同意一些朋友所说的,有项目实践才是最重要的,否则你自己学了那么多也不知道到底怎么用。


刚巧我们公司最近有新人加入,以前都没接触过drupal,我去给他们培训。因为我们不是要做项目外包,而是直接维护开发产品。所以主要培训方向是模块开发,不需要去考虑项目需求和架构层面的。

计划是大概1-2周时间讲完下面的培训内容:

  1. 页面内容的组成:页面,区域,区块

  2. 节点,内容类型,字段

  3. 用户,分类,菜单,评论

  4. 钩子,事件,动作,rules

  5. 主题模版系统

  6. views

  7. 常用模块

  8. 系统常用配置

  9. 表单

  10. 常用API

  11. Drupal执行流程


完了就直接上来跟着开发实践。到时候看看效果如何。

大家如果有什么建议也可跟我说说,谢谢。

YOYO
发布于:2014-03-20 10:31

Drupal的学习难度还是比较大的,个人认为drupal应该多用,从实践中学习就比较好。

:P

Amanda Song
发布于:2014-03-20 23:15

每个人的学习方式不同。分享一下我的学习方式。

在决定学Drupal后,当时正好有一个种子展会的网站要做。也不知道哪里来的勇气,直接就用Drupal做了。网站要一个月完成,那个时候我还没接触过Drupal,而且当时的学习氛围不好,问一个问题可能半天没人回答,中文文档资料有价值的也不多,我英语水平也很次,关键的是网站不但使用Drupal,还涉及到flash builder建立的flash 预订展厅功能,flash builder也是一知半解,所以当时做出这个决定,我想我是疯了。

在如此巨大的压力下,也只能硬着头皮去做,打开金山词霸不停翻译,不停搜索,居然给我在一个月内完成了。虽然自我感觉比较粗糙。但客户也收货了。在这个粗糙的案例完成后,Drupal一个月入门了。一个月有了第一个作品。接下来的过程也没那么的痛苦。借着金山词霸看了数本Drupal书籍,在这过程中发现自己英文阅读能力居然提升了不少。哈。。。学会了Drupal、学会了flash builder、加强了英文、还有钱收,一举四得。。

总结了一个快速但高压的学习方式,就是小项目实践中学习。当然,实践过程还是有一些技巧的。下面是我的做法:

1,我是先debug 了一片Drupal。然后看了一片Drupal的数据库结构。对Drupal整个框架有一个比较大体的认识。

2,找一本相对完整的书看完。当时看的是一本英文书,边看边翻译,足足用了3天看完。。可以有视频的话更好。之前也有在空余时间看了一个系列的老视频,但看视频更吃力,因为是英文的视频,也没字幕,无法金山词霸。不过如果有中文视频的,就很不错的资源,可以更通俗易懂,毕竟视频教学比较直接。从这个步骤过程中,可以了解到Drupal的一些基本概念。

3,有上面两步的基础后,大概用4天时间,慢点的一周也可以搞定,接下来别犹豫,马上实践。不用再去常规的学习,没必要。在实践中会让你了解theme,module,hook,views,form,field,rules,events,node,development,API等等各种各样的更深入资料,而且实践中学到的,会更深刻,更容易记住。


Amanda Song
发布于:2014-03-23 09:27

英文好的话看一本叫做《The Definitive Guide to Drupal 7》的书,然后按照自己的构思做一个网站,然后遇到问题再到drupal官网看API,在论坛上发帖求教。

王斌
发布于:2014-04-18 15:29

这个问题相当不错啊!!

YOYO
发布于:2014-06-09 18:23

我也来说说个人建议。

1. 参加社区,比如drupal大学,drupal中国等等,多看帖。
2. 贡献。 比如翻译、写博、线下分享等等,这个对自己的提升非常大。
个人拙见了。

AnnyO
发布于:2015-04-06 10:56

志成兄的回答比较全面和客观,喜欢drupal但我做不了drupal高手,只是利用drupal实现一些功能比较强大的网站罢了

Amanda Song
发布于:2016-01-06 18:19

好好学习,天天向上,在drupal7时想学模块,一直没有前行,现在dp8了,我要学习模块了。symfony先了解了一下。接下来从模块和api入手。至于主题,那是皮毛。dp7的主题开发,可以看我的视频。