V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
pinkman
V2EX  ›  Python

想请教下各位我这种情况应当如何去提高自己的python编程水平

  •  
  •   pinkman · 2012-09-08 22:54:18 +08:00 · 5166 次点击
    这是一个创建于 4248 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的情况是非计算机专业出身,文科背景,数学啥的很杯具,但平日里喜欢琢磨解决工作中那些可以用到编程实现自动化减少重复劳动的问题,而python则是我最常使用的工具(视问题而定,有时也会用到ruby,autoit,autohotkey等脚本语言/工具),因为它太好用了,好用到我基本不用去深入学习它就加以使用(一般我会google搜索需要解决的问题,加上python作为关键字多半都有前人的方法可以借用,譬如上周我就搜索并实现了个python向活动窗口发送快捷键的脚本,用于自动发送outlook邮件,搜到现成的脚本后两改三改就能够为己所用,但大多都是过程性的脚本,没有涉及到面向对象)

    现在我也面临了个瓶颈,虽说多动手写代码是最好的升级办法,我也正是这样做的,但感觉老是在原地踏步,每次搜到解决办法,用了,过段时间又忘了(因为毕竟不是程序员,并非每天每刻都在写代码),就像是python读写文件的实现,自己写过两次,但现在要我凭空写,我还是无法很轻易的写出来,只有翻manual,搜现成的脚本...

    想请教下大家针对我这种情况该如何提高呢? 从c语言,数据结果基础来过走传统科班路线? 学习数学,算法? 自己没了头绪,还望高人指点。
    33 条回复    1970-01-01 08:00:00 +08:00
    sutar
        1
    sutar  
       2012-09-08 23:08:43 +08:00
    "python读写文件的实现" 这个是

    fp = open('test.txt', 'w')
    fp.write('test')
    fp.close()

    这样么?还是更复杂的?
    zxy
        2
    zxy  
       2012-09-08 23:10:08 +08:00
    读书、找‘老师’、看视频、开源项目→造轮子↑增加熟练度
    pinkman
        3
    pinkman  
    OP
       2012-09-08 23:10:15 +08:00
    @sutar 是,但我就是记不住,还是得参照资料才写的出来
    pinkman
        4
    pinkman  
    OP
       2012-09-08 23:12:03 +08:00
    @pinkman 谢谢,我现在正在看才出的一本书think python,该书的前身好像是how to think like computer scientice
    thinkinnight
        5
    thinkinnight  
       2012-09-08 23:15:06 +08:00
    首先,肯定手头要备上一本基本的语法书,将这本书看懂,遇到问题先在这上面找解决的方法,而不是先去上网进行搜索。
    其次,如果使用到库,熟悉该库。
    其余就没有什么了,多用就行,能解决问题就是好同志~
    dreampuf
        6
    dreampuf  
       2012-09-08 23:17:55 +08:00
    @pinkman 一楼写的在我看来,有一些问题需要注意。
    IO问题,权限问题,读写格式,文件描述符是怎么进行管理,关闭会做什么动作。。。。
    我觉得不要仅仅停留于API调用上,深入进去,了解机理。还是有太多工作需要做。
    pinkman
        7
    pinkman  
    OP
       2012-09-08 23:19:30 +08:00
    @thinkinnight 请问基本语法书您推荐哪本呢? 官方manual?
    tioover
        8
    tioover  
       2012-09-08 23:27:44 +08:00
    如果连 #1 的都必须要查的话 那我觉得不是训练啊什么的,纯粹是你对找东西有了依赖

    或许可以试试再做一些东西,可以搜索,但只能搜最基本的语句和库的使用,但别去看别人的实现。

    另外将程序放到Github上对提高也很有帮助,交流也方便

    @dreampuf 那应该去学C吧
    dreampuf
        9
    dreampuf  
       2012-09-09 01:29:41 +08:00
    @tioover 和语言无关,我的意思是,在一个平台上,如果想要做的够好,了解平台本身就是一个任重道远的事。
    Weakdancer
        10
    Weakdancer  
       2012-09-09 01:53:34 +08:00
    @pinkman python 自带的 documentation 啊,只要能写出了就算,知道在哪里查文档也算会啊,为什么非要“默写”,查的次数多了,自然就记住了。

    另外 用 ipython 多使用 help ? dir 等等 ,慢慢的就熟悉了。
    Weakdancer
        11
    Weakdancer  
       2012-09-09 01:56:20 +08:00
    @pinkman 我觉得你的想法没有问题,不会就查文档,在文档里搜索得到的结果都有例子,从简单到复杂都有。
    zenomac
        12
    zenomac  
       2012-09-09 02:07:22 +08:00   ❤️ 1
    连经常写代码都做不到,怎么进步啊?

    lz说走科班路线, 学算法? 学操作系统? 学编译? 相信我吧 这是南辕北辙 并且基础数学都悲剧的人一味的学这些就是自寻死路,毫无结果+自残.

    我比较好奇你就是学脚本解决一些机械操作,为何要追求python的卓越?
    喜欢也分程度.
    想走好编程这条路, 那就扔掉占据你现在大部分时间的工作,做你喜欢的事.不停的练习 摸索,就上道了.

    不然, 别犯傻. 为了解决工作中的计算机使用的一些小困难,从算法学起.不恰当的比喻一下 相当于为了强身健体 练太极玩玩就行了.别学葵花宝典
    pinkman
        13
    pinkman  
    OP
       2012-09-09 08:25:30 +08:00
    @zenomac 谢谢你的当头喝棒,这正是我需要的,非常感谢,其实我最近的想法是说既然我在写这些脚本的时候能够那么的专注(这是做其他事从未有过的),证明自己喜欢,那要不更上一层努力下看能否找个工作专职干这个?每天干自己喜欢做的事应该会很开心吧,所以才有了这个问题。您认为这有可能吗?光凭借学好python的话
    julian
        14
    julian  
       2012-09-09 10:07:28 +08:00
    我现在处于的状态更差,我是学了LPTHW和A byte of python之后 迷茫中,不知道方向
    qmake
        15
    qmake  
       2012-09-09 10:58:06 +08:00
    @zenomac 好恰当的比喻
    fire9
        16
    fire9  
       2012-09-09 11:19:54 +08:00
    无它法,唯有手熟尔。
    0bit
        17
    0bit  
       2012-09-09 13:28:42 +08:00
    @pinkman 一般的工作,就算是以Python为主的,也不是只用Python就可以的,如果是后端开发,可能涉及到数据库和C或者C++什么的,如果是运维,还要会Linux,如果是网站开发,还要涉及到前端的语言。所以,如果想当Python程序员,还是建议找好方向,其他的也要涉猎一些。
    Jelly
        18
    Jelly  
       2012-09-09 13:31:28 +08:00
    @pinkman多练习
    twor2
        19
    twor2  
       2012-09-09 13:46:12 +08:00
    @pinkman 找到自己的兴趣自然是最好,但也不排除有这样一种情况,仅仅是一种可能性很小的猜猜:你没有深入现在本职的工作,只是将一时对python的好奇过分的夸大,刚开始学编程语言的时候,能实现一些简单的功能,的确好玩,但若作为你将来的主业,不免艰辛和枯燥,你准备好了吗?有的时候找到新方向,追随自己的心愿是一种勇气,但懂得放弃,做生活的减法,也是一种勇气。
    reorx
        20
    reorx  
       2012-09-09 15:22:08 +08:00
    对 Python 进行系统性的学习,以 Python 所要求和推荐的规范方式完整地实现一个项目。真正的认识它,了解它,你才会有所论断。
    Jelly
        21
    Jelly  
       2012-09-09 15:35:26 +08:00
    @pinkman最好找个项目做做……
    Jelly
        22
    Jelly  
       2012-09-09 15:37:56 +08:00
    @twor2Python到底强大在哪里啊?
    Jelly
        23
    Jelly  
       2012-09-09 15:38:18 +08:00
    @twor2Python到底强大在哪里啊?
    pinkman
        24
    pinkman  
    OP
       2012-09-09 15:56:15 +08:00
    @twor2 感谢你!'有的时候找到新方向,追随自己的心愿是一种勇气,但懂得放弃,做生活的减法,也是一种勇气。'这句说的太好了!
    pinkman
        25
    pinkman  
    OP
       2012-09-09 15:57:13 +08:00
    @0bit 感谢你!不是干这行的,就是缺少这些行内的知识,你这样一说我心里有数多了,感谢!
    zenomac
        26
    zenomac  
       2012-09-09 17:05:09 +08:00
    @pinkman python基础教程 或者 head first python 挑一本看着. 看完了并且看懂了并且仍然很热血,那么你就会有方向了 到时候考虑是否全身心投入.
    myrual
        27
    myrual  
       2012-09-09 20:28:23 +08:00
    @Jelly
    1. 语法简单容易学。
    2. 大量的库可用。
    3. 文档,文章一大把。

    但是这都不是说明python是一门强大的语言的理由。
    强大的是使用者,而不是编程语言。
    shiweifu
        28
    shiweifu  
       2012-09-09 20:40:08 +08:00
    只有最强玩家,没有最强英雄
    MASAILA
        29
    MASAILA  
       2012-09-09 20:40:31 +08:00
    我觉得数学是虚的,除非你要搞算法,游戏什么的
    westoy
        30
    westoy  
       2012-09-09 22:08:25 +08:00
    cooking is better than coding, isn't it?
    Stockard
        31
    Stockard  
       2012-09-09 22:45:15 +08:00
    我非常理解楼主.
    python 作为TOOLS很好用,不过对于不是每天维护一个特定项目的人来说,有很多库的特性真的很容易忘。
    如果想记牢一点,可能得交叉起来学,就好比你要学urllib,先得学HTTP协议。
    pinkman
        32
    pinkman  
    OP
       2012-09-10 07:17:52 +08:00
    @westoy 想从事正当行业了啊
    chaoswong189
        33
    chaoswong189  
       2012-09-10 09:24:39 +08:00
    老实说,不知道为啥要记牢,用的时候查一下算是很正常吧……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2830 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:22 · PVG 15:22 · LAX 00:22 · JFK 03:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.