这是个去年的老问题,可能题主的疑惑已经解决了,这个答案主要写给有类似疑惑的人看。如果你学编程时感觉要学的东西很多,毫无头绪,可以来看看这个回答。
题主的这种情况,我称之为「深入学习综合征」。
具体症状表现是:想学个什么或是写个什么,于是就开始学习相关资料,发现好多东西要学啊,头大……学着学着发现还得学另外一个领域的知识,我勒个去……
这不是正确的学习方法啊,正确的方法是增量开发,用啥学啥嘛!!
回想高中时学数学的过程,一开始学平面几何的时候,我们也没去学解析几何的方法吧?刚学增函数、减函数的时候,我们也没用导数解决问题吧?学编程也类似,对于任何知识,先只深入到现在够用的程度,把东西码出来再说。
就拿题主写个Blog这个需求来举例,我现在自己模拟一下学习过程:
Python,俺会import,会用dir()查看属性,会用A.a()调用,好,够了。
Django,看起来好麻烦啊,问大牛A,他推荐了Flask,额,怎么还是有点麻烦,又听说有个Bottle,恩,就这个吧。
MySQL,靠,SQL语句怎么这么蛋疼……诶?有个号称NoSQL的数据库叫Mongo,就它了。
决定用这些东西来写,接下来就开始一步步码:
第一步——用Bottle显示一个页面(上网找段代码,依样画葫芦):
from bottle import get, run
@get('/')
def homepage():
return '
Hello World!
'
run(host='', port=25252)
搞定了:
<img src="https://pic3.zhimg.com/f906087277d7e6293ea28634fa4846ae_b.png" data-rawwidth="198" data-rawheight="89" class="content_image" width="198">
第二步——从数据库里拽个东西出来显示:
上网搜「Mongo建立数据库、Mongo插入数据」有真相,先往数据库里插几条数据再说:
db.test.insert({"text":"first"})
db.test.insert({"text":"second"})
然后搜一下「Python Mongo」找到pymongo库,加到代码里用:
from bottle import get, run
import pymongo
db = pymongo.Connection(host = "127.0.0.1", port = 27017).mydb
@get('/')
def homepage():
rst = ""
for i in db.test.find():
rst += "
" + i['text'] + "
"
return rst
run(host='', port=25252)
诶,我们可以发现,现在我用db.test.insert({"text":"third"})这条语句,可以给我的blog插入新文章了(虽然还不是在网页上操作),而我的网页也可以显示我的所有文章,这样一个最简陋的blog不是已经有了么?
我做以上操作只花了5分钟,写了10行Python代码。就算是完完全全的小白,有那么两三天写出这十行不过分吧?
接下来,和上面的操作类似,每次确定一个很小的目标,比如「我现在想把网页上文本框里的内容用提交按钮传到服务器上」,然后百度(连Google都不用搬出来!),在半个小时内解决目标,再继续下一个目标……搞着搞着,就会发现Python好像越来越熟练了,前端也掌握了不少技巧……这不就慢慢学会了么?
基础的、系统性的知识,可以在之后慢慢补充,凭借上述过程,写个最简陋的blog完全不是问题!接下来的事情,只需要锻炼两种能力就行了:
①搜索的能力
百度当然不能解决所有问题,之后还要去Google,还要去StackOverflow,看官方文档……
②发现问题的能力
比如说,上面代码里抄来的 @get('/') 这句,@符号是干什么用的呢?为什么这句话能够让下面那个函数返回网页呢?发现了这些问题,上网搜索,一点点看,就越学越多了。