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
lekai63
V2EX  ›  Python

非码农, Python3 及相关工具 学习路径_抛砖引玉

  •  
  •   lekai63 · 2015-03-07 00:13:36 +08:00 via iPhone · 4307 次点击
    这是一个创建于 3554 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景:LZ日常主要是业务数据分析,报送。目前主要是excel VBA操作下(编写点简单的)

    Python学习原因:高一时学过一点C皮毛有点很浅显的算法理解,然后大学学院课程教VB,偶尔晃悠下人大经济论坛看了下比较热火的量化分析方面的东西,结合自身觉得Python更适合些,而且Python结合各种工具包或轮子可以方便实现很多matlab和SAS上的功能(我不是程序员对性能要求没那么高啦)。当然最关键的是Python免费。

    目前进度:初步翻阅了head Python first 大概了解了这门语言也挺有兴趣继续学,想找一本较为系统的教程(类似当年谭浩强么哈哈)

    后期打算:
    Excel 数据处理考虑VBA和Pyxll混编,怎么顺手怎么来。同时学习一些简单的SQL。
    对于Python 可能入门后主要会往Numpy钻研。

    初步考虑:
    在线教程:笨办法+官方文档+code academy
    线下教程:Python核心编程(但貌似中文还依然第二版,Python2版本)
    Python cookbook
    纠结于线下教程,核心编程版本是2,与3有一些差异。cookbook似乎对初学者又偏难。不知道v友能不能推荐较为合适的书籍,不胜感激!
    22 条回复    2015-03-07 21:49:11 +08:00
    SmiteChow
        1
    SmiteChow  
       2015-03-07 00:57:49 +08:00   ❤️ 1
    我学的时候看过一本电子书,貌似叫:Dive Into Python
    之后就靠写项目熟悉过来了,楼主做数值分析,工作pc内存得多大?
    kiritoalex
        2
    kiritoalex  
       2015-03-07 01:07:10 +08:00 via Android
    感谢分享经验,很受用
    momo5269
        3
    momo5269  
       2015-03-07 01:49:17 +08:00   ❤️ 1
    Python基本教程(第二版) 2、3的内容都有。
    20015jjw
        4
    20015jjw  
       2015-03-07 08:05:18 +08:00   ❤️ 1
    Dive Into Python3:
    http://www.diveintopython3.net/
    (I think there's chinese version around somewhere... )

    Structure and Interpretation of Computer Programs of University of California, Berkeley
    Course website: http://cs61a.org/
    Course video: http://webcast.berkeley.edu/playlist#c,d,Computer_Science,-XXv-cvA_iBM29DgZsGaQihJp8lLQn3J
    (The class I took in my college, very informative and useful)
    lekai63
        5
    lekai63  
    OP
       2015-03-07 08:10:45 +08:00 via iPhone
    @SmiteChow 前几天忘记哪里看到个梗,说dive into Python很不好,怎么不好我给忘了 囧 回头去翻一下先。3Q
    lekai63
        6
    lekai63  
    OP
       2015-03-07 08:11:24 +08:00 via iPhone
    @momo5269 谢谢!
    lekai63
        7
    lekai63  
    OP
       2015-03-07 08:12:55 +08:00 via iPhone
    @20015jjw Wonderful!
    crazycookie
        8
    crazycookie  
       2015-03-07 12:27:05 +08:00
    学python2
    3再等一段时间吧
    loading
        9
    loading  
       2015-03-07 12:50:29 +08:00
    个人建议 python 2.7
    等你发现一个急需的包只有2.7 的时候,你发现你的代码不能在 2.7 下跑。。。
    spike774
        10
    spike774  
       2015-03-07 16:05:26 +08:00   ❤️ 1
    关注。同为非相关从业人员,不过是从树莓派开始接触Python,有C, Javascript以及Java的学习经验。

    线上,跟进learn python hard way入门,现在进行到section 44,对class以及继承的理解还不够,还是欠缺实际项目经验与一定的累积编程时间。
    2月底完成了edx的Introduction to Linux.

    感谢4L的资料,日程表上又丰富了些。

    线下,树莓派相关的python入门书籍2本,都比较浅显,更偏向GPIO的应用。Think Python, 1个月前读完了,但是没有脑袋里留下什么深刻印象的感觉。所以感觉入门之后有一些兴趣烧完的盲目感。毕竟不像工作,每天8小时的强制沉浸,绩效动力。不过还是希望自己能坚持下来,有时候也会想如何结合二者提升自己的工作效率。

    近期的打算,先是完成learn python hard way的最后几课。向有相关编程实作经验的同学要到了他用来做生物信息计算的代码,方便请教理解。由于我更倾向于web应用方面,第一个实作项目打算从网络爬虫切入。
    共勉。
    crazyxin1988
        11
    crazyxin1988  
       2015-03-07 16:10:28 +08:00
    python新手 学着2 3就不看了 等以后直接学4
    lingo
        12
    lingo  
       2015-03-07 16:14:23 +08:00   ❤️ 1
    大概学一下。。然后找个想写的小软件,一边写一边继续学。。这样比较有动力。。
    wodemyworld
        13
    wodemyworld  
       2015-03-07 16:22:41 +08:00
    可以先看看《learn python hard way》,然后用web.py和boostrap写个小网站看看,web.py上有现成的教程,跟着一步步做就行了;

    之后可以试着用tornado做个网络爬虫之类的再熟悉下python

    前期编辑器方面可以选择sublime,不建议直接用pycharm之类的(虽然比较好用),用手动设置断点(例如:import pdb;pdb.set_trace())来调试,慢慢熟悉pdb命令;

    对于python版本方面,建议用2.7, 3算不上python2.7的升级版,2和3都是在更新的,直接用3不是不可以,但是会给你带来很多很多麻烦

    后期性能方面可以有 多进程(mutilprocess模块,实际,win下是线程,linux下是fork出进程)、gevent、pypy 之类的推荐

    另:处理excel最好不要用vba这种平台相关的东西,不然在linux服务器上无法运行
    cchange
        14
    cchange  
       2015-03-07 18:36:23 +08:00
    VBA在处理Excel比较好 请问你的Excel中的VBA怎么学习的呢?
    baichi
        15
    baichi  
       2015-03-07 19:34:57 +08:00   ❤️ 1
    野路子编程爱好者,当初对面向对象百思不得解,最后看到一句话点醒了我…分享一下= =||||
    面向对象 狗.吃(屎)
    面向过程 吃(狗,屎)
    lekai63
        16
    lekai63  
    OP
       2015-03-07 21:24:14 +08:00
    @loading 非常感谢你的建议。不过当初我学习之初也是纠结过一阵子。后来还是决定Python3。主要是因为编码的原因。我相信一个个常用的库会慢慢迁移到3.而且我不是程序员,假如真需要用到只有2才有的库,我想我会直接找个程序员做吧 哈哈
    lekai63
        17
    lekai63  
    OP
       2015-03-07 21:26:57 +08:00
    @spike774 你比我厉害的多了呢~ 话说作为一个非相关的从业人员 我真的很难做到跟你一样坚持呢! by the way 生物信息学方面也用Python了?我还以为多数是perl
    除了方便工作以外,我想将Python应用于个人的股票筛选工具,然后再自己做一些基本面分析 hoho~~
    lekai63
        18
    lekai63  
    OP
       2015-03-07 21:30:44 +08:00
    @lingo 恩恩 我也是这么想的呢~
    loading
        19
    loading  
       2015-03-07 21:30:57 +08:00 via Android
    @lekai63 python2.7编码问题现在基本不是问题。
    既然你决定了我也不多说了。

    多写多看。

    祝成功
    lekai63
        20
    lekai63  
    OP
       2015-03-07 21:33:34 +08:00
    @wodemyworld 使用VBA主要是因为在VBA里可以非常方便的调用excel既有的函数比如 sumproduct、and、or、max之类的。既然微软已经造好了一堆函数轮子,我当然不会自己重新再造一遍啦 哈哈
    linux的话倒是不担心,我压根没linux电脑(除了一台搬瓦工翻墙外),公司linux服务器SQL数据库反正也不会给我直连权限,都得通过IT部门要数据或者是BI系统,他们也只会给我Excel版的。
    lekai63
        21
    lekai63  
    OP
       2015-03-07 21:47:54 +08:00
    @cchange VBA开始的时候还是靠google,后来是ExcelHome里稍微看看。。这个阶段一般是想照现成代码。。但毕竟每个人都有个性化需求。后来就下了PDF的一些书。比如我需要多条件统计户数,就用关键词VBA+SQL找书(书名忘记了,在单位电脑呢,VBA可以用SQL语言将既有数据库或Excel自身作为一个数据库处理)。实体书买了《别怕,VBA》(也是ExcelHome出的吧)同时也买了kindle版方便电脑查阅。
    VBA说不上多精通啦。基本语法跟VB类似,又可以调用Excel自身函数,其实编码压力不大。因此主要还是遇到问题、切分问题、逐一解决的方式(应该说解决问题的算法其实心里都是知道的,只是要转换为程序语言而已。分而治之逐一Google,知道用某个函数以后其实很快就能解决的)
    lekai63
        22
    lekai63  
    OP
       2015-03-07 21:49:11 +08:00
    @loading 恩恩 O(∩_∩)O谢谢~~ 可能还有个原因是入门书是head first Python 的缘故吧~ 它就是用的版本3呗~ hoho
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2822 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 15:22 · PVG 23:22 · LAX 07:22 · JFK 10:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.