在独立研究一门新技术的时候的特点

这篇博文专门写给我自己的,记录我在独自研究Django过程中发现自己在学习新技术方面的缺点,以便寻找好的纠正的方法。正所谓磨刀不误砍柴工

开始篇
刚开始想到学Django的时候,我就想:找什么相关的学习材料呢,后来上搜索了一下看看有没有什么推荐书籍,没什么发现,国内关于Django的书似乎比较少,那我就去官网,查看官方的文档了。出人意料,官方文档极其的丰富。其中包括了提供给新手的一个123456的手把手教程。然后又分别介绍了他的model,view,template,form等等,但是这个过程中我发现他的文档的布局不是紧耦合的。有很多的文档是松散的放着,如果不仔细阅读里面的文档的话会很难发现。这样就导致我在学的过程中有一个不爽的地方。我在看一篇文档的时候需要点其中的链接转到其他地方去,因为很多概念在Django documention的首页是没有索引的。这种逐渐深入的方法让人不太爽。

动手篇
按照他的First step中的123456做下来,初次感觉就是用这玩意儿开发个东西太容易了,尤其是看到Django的那个admin页面,原来几乎不做任何事情就可以有一个后台管理程序了。但是那玩意儿太难看了,于是我就犯贱了想把它定制一下,于是在css知识和html知识比较匮乏的情况下可以说是举步维艰。在这里浪费了很多时间。而且我在看完了First steps之后就立马有一股自己也做一个网站的冲动,但是发现按照他那个来太容易了,但是自己重头设计的时候问题很多很多,比如说:写一个函数不知道导什么模块,然后还得翻文档,什么函数名忘了,函数的参数忘了。 还有做出来的东西太难看。

细看文档篇
在发现上面做东西的很多困难之后,我自己也反思了一下,但是上面那个已经浪费了将近一两天的时间了。时间是很宝贵的!!!!!当时我就觉得很多的Django的工作机理还不懂,也不知道为什么要那么写,在写一个模板的时候很费劲,模板里的很多概念也不知道,比如说filter这个简单的东西,模板继承这个东西。于是乎我就将文档下面各种分文档都看了一下,现在各种概念也都有点清晰了,对Django的工作机理也有点明白了。但是只是有点明白了。根本无法熟练运用的!然后我试着再去写Django程序,发现在选择上面有些强迫症,实现同样的功能不知道到底选用哪个函数比较好。这太痛苦了。具体的我在下一节再说

再动手篇
这个时候有一定的基础了,但是我付出了昂贵的代价,看上面那些东西似乎花的时间太多了。而且很多概念在脑子中非常的模糊。这个时候我自己的感觉就是写,写,写。然后我就死脑经的再重新写一个项目。我当时就在想了写什么呢?什么可以写呢?什么可以使我对Django了解的更深呢?还有一个严重的问题,我想的东西用Django能实现么?适合用Django去实现么?想的太多了,我又开始苦恼了,蛋疼。最后我觉得,很多动态的网站都需要一个登陆模块嘛,那我用Django去实现一个登陆模块呗。好,用Django去实现登录模块。然后我自己去写model,自己去写view,自己去写template,这其中还有一些插曲。为了实现我通常印象中的那种登陆界面,我就死活要变成那个样子,我发现这样实在是太痛苦了。为了将整个页面置中,我又转去研究css,最后css也没弄出个什么明堂,就把别人写过的一个css代码拿过来用了,拿来主义。然后我发现实现一个登陆界面也不是那么简单的。实现完一个登陆界面你应该返回到什么地方去?返回的页面应该是什么样子的,如何验证用户的输入,如何筛掉不合适的字符。用户信息是怎么存取的,安不安全?然后我又想到了,与服务器交互很显然是要用到http协议的啊,于是我又去看了http协议。这些弯路走的……完了我又发现需要看cookie啊session什么,这个时候我也意识自己重心偏移了,果断浅尝辄止,撤。最后我不得不宣布这一次尝试又失败了!!!

看源码篇
走了这些个弯路,我发现我完全还没有掌控大局的能力。但是,处于这个阶段的我需要这种能力么?需要么?不需要么?需要么?我现在来想的话其实是不需要的!!!!原因很简单,还没学会走路呢就想着去奥运会了?我觉得现在的我缺乏的是一种具体的写代码的能力。所有的概念在脑海中都是泛泛的,不知道Django的什么能用,什么不能用。什么适合用,什么不适合用。我觉得处于这个阶段的我应该是去找源码了。后来找来找去还真找到了一个源码叫lfs,这个购物网站,但是发现这个有点小复杂,但是有了前面的Django运行机制在胸,还是能理清里面的模块,和模块之间的联系。然后我就找到了登陆模块,但是我发现啊,跟我想象中的登陆模块略有差别啊。人家是直接用了系统的admin模块中的authenticate函数以及AuthenticationForm这个Form。瞬间让我大跌眼镜。哎,我这是何苦呢?应该怎么样才能避免犯这种错误呢?????

边模仿边做,效率极其低下,很容易在一个地方卡很久很久,为了解决一个小问题花费了大量的时间,我决定看一个开源项目的源码,因为那个购物网站的源码略复杂,现在决定看一个不是特别复杂的blog源码,从documentation作为切入点。一定需要看源码,因为你可以找到一些惯常的写法,不用什么都从头开始琢磨

原文地址:https://www.cnblogs.com/HeDaoYiWenZi/p/3099854.html