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

一个 Python 小白 10 个月的 Python 之旅:还是小白

  •  
  •   Teyying · 2018-07-08 07:47:28 +08:00 via iPhone · 3409 次点击
    这是一个创建于 2113 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了 DrinkMoreWater 的主题感同身受,从没在任何社区发表过主题,突然想坚强的发表一篇自己的 python 学习经历和以及对和我一样的人的一些学习经验。我也是一个没有学历的业余爱好编程的人,到目前编程刚入门,深知没有导师的孩子是痛苦的,先分享一下自己学习历程,最后有经验分享给和我同样没学历,爱好编程,又没朋友做这一行以及老师指导的朋友。学历高的当故事看,或者直接跳过,那些经验应该只适合我们。
    学编程之前一个月对处理图片有点兴趣,就自学了一个月 PS,之后就就想起小时候的编程梦想,就开始搜索到底怎么编程,编程真正是什么东西,后来才知道原来编程还分那么多语言,想到自己学历很浅,就搜了一下有什么对初窥编程的人入门简单一点的,后来看了很多评论,就选了 python。
    初学编程很激动,环境跟着网上学着部属好之后就迫不急待找资料学习,第一本书籍是《与孩子一起学编程》,没跟着学完,后面压根看不懂,就又找书籍,《流畅的 python 》,《 python 简明教程》,《 python 标准库》等,其实都没有看完,后面看不懂,又跟着廖雪峰老师的教程走了一些,很迷茫,看视频教程才知道原来编程世界的范围这么广,自己业余的没方向,知道数据挖掘啥的不适合咱这学历浅的,爬虫呢,想想自己去爬什么东西,干什么呢,自己业余的没啥需求就没学,就定个了目标:web 开发,谁知道还 flask,django,tornado 等框架,得挑一个简单易学的呀,就尝试了 flask,在学的时候又崩溃了,还要学习一下 html,css 和 js,就又看视频教程学了很长时间,这期间又了解了一下什么是数据库,mysql(之前教程里跳过没学)和 git 的使用以及 ubantu 系统是什么。
    之后又反回来学 flask 框架,跟着操作了两遍,感觉要创建一个博客网站练习又要学好多东西,关键是发现自己不太喜欢,顿时又受挫没方向了,后来想到 GUI 编程,挺喜欢的,能直接实现自己的一些小想法,开始学的是 python 自带的库 tkinter,学了一段时间,自己想了一个项目练手,写练手的项目期间需要爬一些东西显示在上面,就又学了最简单的 requests 库,达到自己需求就行,没往深处学,等做完了自己的项目,发现 tkinter 界面太 low 了,自己又挺喜欢做 GUi 编程的,就又挑了 PyQt5 开始学,本来挺兴奋 PyQt 能用设计师拖动设计界面,试了一下发现看不懂代码,干脆就不用设计师,先通过代码练习弄懂了再用,这时已经懂得没有项目练手就没有方向感,自己又没想到别的项目,就又把之前的项目用 PyQt 做了一遍,代码中还可以参着 html 的一些代码,以及类似 css 的 qss 样式设置。我把所有自己学的东西都大量的以自己能看懂的方式在 Jupyter Notebook 上做了笔记以及代码注释,做 GUI 编程庆幸的是自己学了一个月的 PS,这样前端设计才没有难到自己,虽然不怎么好看,目前正用第二个项目练手。
    这期间去找了个培训班了解了一下,学费挺贵,2 万多,自己也没好好打算入这一行,就放弃交学费了。以上就是我 10 个月的学习历程,中间入了无数的坑,有的坑知道很简单,就是搜索不到方法,比如知道 PyQt 某个类中肯定有一个方法可以解决自己的问题,就是找不到方法名是什么。这要是有个人直接给你说一下方法名是什么,不用他教怎么用,就能省下好多时间。
    学习历程略平淡的讲完了,其实各种痛苦相信不用言说,同类型的朋友都懂得。下面分享一下我的经验以及理解:
    1.其实学编程就像是在学汉语拼音,英语,法语什么的一样,它和人的交流语言一样,真的就像是一门语言,都是用字母来写,只是主谓宾顺序,或者形容词的顺序不一样,拼法也不一样。
    2.在学习 python 时,只需要学到类的用法,其它基础像什么操作 excel,操作数据库什么的,可以跳过先不学,等你找到自己的方向时,比如学爬虫时,你想要把数据存储在 excel 中时,再去学操作 excel 方法,再比如你 web 开发时要用到用户登陆以及用户注册时,再学数据库以及操作,这样你在学习时就有目的性,才能感觉到学有所获,学习时相对也快,理解也深一些,不然好多东西你不知道用在哪,即使知道,没有实际目的或者项目去操作时,会不知所措。
    3.下载一个有道词典,把有些经常出现,还不明其意的单词保存一下,学习消化它,这样看英文文档某些地方不适合用网页翻译的地方,也能猜个七七八八,能帮助自己找到方法就行。
    4.代码注释对我们很重要,如果练写代码时有些地方注释来不及写,就全部写完时,再对全部代码稍微有点必要的地方都写上注释,别怕注释写的啰嗦,这是给自己看的,别人才不看呢,写的多了,注释就精简了。当然还有最重要的,写笔记,如果是复制别人的,应该是用到的某一小段,不要全文复制(可以加到网页书签里面以便查看),不然以后你的笔记你都不想看,太繁杂了,因为不是自己写的,找东西都不好找。
    5.不管是什么库,比如 flask,pygame,numpy,PIL 等,他们的在 python 中概念是一样的,就好比你在学某些软件的使用方法一样(比如 word,PS,优酷,AutoCAD),你需要它了就去学,并且只学里面你需要的方法,因为有些方法很复杂,没需求时很难看懂。
    6.加入一些交流群,虽然你的大部分问题没人理你。但是,别人的问题,你懂的要帮助一下,想想自己没人帮助时痛苦的样子。这样也能加深你对代码的理解。
    7.有心情时,很有必要看一些比如操作系统,进程和线程的视频课,手机上备着慕课,腾讯课堂,麦子学院等 APP。
    8.当然刚开始学习 python 时,也可以下载一个手机 python 代码编辑器,不方便在电脑跟前,又想学习时很有用。比如 pythoni 3.3,learn python,刷一些网上的题。
    很诚肯的写了一些学习历经,希望看故事的科班生以及大神们不要笑话,或许我这经历能给像我这样的人一些思路,多一些目的性,也是那位 DrinkMoreWater 题主所期望的,也希望大神们看到我们小白的问题时,在空闲的时候尽量帮助一下,感激不尽。
    觉得本人的贴值得赞一下的话,给一个动力哦!
    也欢迎朋友们讲述一下自己的学习经历,互相读一下对方的故事。
    21 条回复    2018-07-10 20:19:34 +08:00
    jhsunnyshine
        1
    jhsunnyshine  
       2018-07-08 09:27:05 +08:00 via Android   ❤️ 1
    给你点赞,话说就是这样,把基础语法搞明白了就去找个项目练手,没必要死磕一个不清楚的问题,比如面向对象,比如多线程,多写就会熟悉,熟悉后就慢慢理解,我家那位就是,不写代码就看个视频,弄不清楚直接问我,自己不思考我给她讲她也理解不了(当然也可能我讲的不好),反正问我一次骂我一次 QAQ
    ytmsdy
        2
    ytmsdy  
       2018-07-08 11:25:21 +08:00 via iPhone   ❤️ 1
    新手要从头到尾的做一个项目,自学能力如果不够的话,很容易掀桌子。慢慢学吧,it 虽然工资看着光鲜亮丽,但是一步一步的学下来,做下来,你就会发现这钱没那么好赚。
    Teyying
        3
    Teyying  
    OP
       2018-07-08 13:15:18 +08:00 via iPhone
    @jhsunnyshine 感谢点赞!你家那位很好啦!有你可以解决很多小问题的处理时候,以及方向的指导!
    Teyying
        4
    Teyying  
    OP
       2018-07-08 13:16:10 +08:00 via iPhone
    @ytmsdy @ytmsdy 等新手知道用一个项目去学习的时候,要么之前就已经死瞌自己用不到的问题,无数次临近崩溃的边源了,所以尽早知道才可以少走很多弯路,学习信心也会大一些,对吧?
    cosven
        5
    cosven  
       2018-07-08 13:24:01 +08:00
    题主加油 ~

    > 可以下载一个手机 python 代码编辑器
    这个我以前也折腾过,后面发现其实没什么用,手机上写代码几乎不可能

    > 加入一些交流群
    根据过去的经验,*大的* 交流群里面一般都是灌水,不太会有很有意义的资料

    > 也希望大神们看到我们小白的问题时,在空闲的时候尽量帮助一下,感激不尽。
    我觉得肯定有一部分大神是愿意回答你的问题的。但提一个好的问题也有很有难度的:
    1. 将问题描述清楚(将错误日志贴出来,或者截图) 2. 明确自己的问题具体是什么(很多人根本说不清自己的问题到底是什么,我以前就是这样)

    > 项目用 PyQt 做了一遍
    题主如果有兴趣,可以来一起搞 https://github.com/cosven/FeelUOwn 这个项目。

    关于学习编程(写项目):个人感觉最好从兴趣出发、从自己的需求出发,然后慢慢的实现一个东西。
    关于学习方法:学完基本语法就可以写代码或者项目,一定要自己动手写。遇到问题先去 google,一般都能有答案(不要去 Baidu )。项目写一段时间后,可以回头再看看书,复习。
    关于论坛和交流群:个人感觉这两个东西更适合用来获取一些信息,不是很适合初学者学习。

    好奇题主是学生还是已经工作了
    Teyying
        6
    Teyying  
    OP
       2018-07-08 14:10:39 +08:00 via iPhone
    @cosven 非常感谢你建议!是的,手机 python 代码编辑器就在学习基础语法时可以借助随时学习,后面就没用了。本人做小生意的,空闲时间多,就想起小时候对编程的憧憬了,呵呵!如果本人有那么一点用武之地,很愿意参加你 github 上面的项目!
    craiiz
        7
    craiiz  
       2018-07-08 21:57:03 +08:00
    之前学 python 的时候也遇到无数坑,但还是挺过来。入门时把《 LPTHW 》里面的例子一字不差写了一遍。后来又过了一遍廖雪峰的网站。 然后.....然后就没然后了......后来遇到一些需求就自己拆分问题拆到细节,然后找对应的方法解决就行了。毕竟不是专业程序员...能搞定自己的需求就 OK 了..
    qile1
        8
    qile1  
       2018-07-09 02:51:09 +08:00 via Android
    @cosven 那个项目如何参加,另外项目是干啥的?一个播放器?
    建议一个英文 redme,一个中午 redme
    另外描述下项目是做啥的
    Teyying
        9
    Teyying  
    OP
       2018-07-09 09:27:33 +08:00 via iPhone
    @craiiz 嗯,非专业程序员需求要简单一些。
    a7a2
        10
    a7a2  
       2018-07-09 10:00:48 +08:00
    看你终极目的。
    如果是为了写大型后端早点放弃 python,如果是做作小程序,做做数据分析的就适合。。。

    可以考虑 dart、swift 之类的较新的语言才有前途
    chesterzzy
        11
    chesterzzy  
       2018-07-09 10:26:05 +08:00
    反正到最后都会发现,要学的不是语言,而是思想和模式。

    以前看大神们说语言只是工具,我还不信。

    直到自己做项目,要用到 Python 的多进程提高并发,才发现和 c 啊 java 啊 go 啊的一比真是不行。
    fushall
        12
    fushall  
       2018-07-09 11:37:14 +08:00
    哈哈哈,我也是新人哦,正遇到楼主一样的问题,
    我现在对 Python web 方向比较感兴趣,也弄过微信小程序。
    写程序嘛,自己开心就好啦,比如我,只要是用着 Python,
    就很开心啦,
    https:// github. com /fushall 虽然我代码写得很烂,但是很爱折腾呢^^
    cosven
        13
    cosven  
       2018-07-09 13:11:06 +08:00
    @qile1
    > 那个项目如何参加,描述下项目是做啥的
    恩,这个正在计划添加中 =。= 这两天应该会加上
    Windsooon
        14
    Windsooon  
       2018-07-09 13:56:59 +08:00
    首先应该知道自己想要做什么,其实你尝试了那么多不同的领域,应该心里有点想法,自己喜欢哪个方向。

    1. 如果没有编程基础的话,可以先从 HTML 和 CSS 入门。然后再过渡到 web 应用。这时候使用什么语言倒是不重要。2. 如果想用 python 马上做一些东西,例如文本处理,格式转换的话,我推荐这本书[Python 编程快速上手 让繁琐工作自动化]( https://item.jd.com/11943853.html),当然优达学城里面也有不少不错的免费课程,手把手教学或许上手比较快。
    3. 也可以尝试接触下 pygame,这个框架用来写游戏非常容易和有趣。

    算法和数据结构可以之后再接触,至于你说的教程看不下去的情况,我想大家都有遇到,只能仔细慢慢地研读,没有捷径。
    singed
        15
    singed  
       2018-07-09 15:33:23 +08:00
    Teyying
        16
    Teyying  
    OP
       2018-07-10 03:16:41 +08:00 via iPhone
    @fushall 很好哦,什么时候去研究 web 方向了找你指路哦,方便留微信或者 QQ 吗?
    Teyying
        17
    Teyying  
    OP
       2018-07-10 03:17:18 +08:00 via iPhone
    @singed 谢谢朋友
    Teyying
        18
    Teyying  
    OP
       2018-07-10 03:20:58 +08:00 via iPhone
    @a7a2 谢谢提供信息,目前业余,没追求大项目
    Teyying
        19
    Teyying  
    OP
       2018-07-10 03:24:41 +08:00 via iPhone
    @chesterzzy 目前离你说的还远哦!还是在学语言阶段,等什么时候把 python 玩的没啥目标了,一定会再学一门语言,朋友们都加油哦!
    Teyying
        20
    Teyying  
    OP
       2018-07-10 03:25:00 +08:00 via iPhone
    @singed 谢谢!
    chenji123
        21
    chenji123  
       2018-07-10 20:19:34 +08:00
    看看啊,支持,学习啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1252 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:58 · PVG 07:58 · LAX 16:58 · JFK 19:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.