19年5月更新一下

看到有朋友私信我关于python学习的问题

因为平时不怎么答题,所以看私信并不及时

感兴趣的朋友可以在公众号『黑笑小说家』找到我,不定期会写我的学习心得。当然还有更多其他有趣的东西。

以下是原答案:

————————————————————

近期经历了秋招,从一个天坑专业半自学地转了CS,也拿了几个还算满意的算法方向的offer。回想起用手写的python一次次怼过了面试,不禁也想回答一下这道问题。

先介绍一下背景。我大约从大四开始真正接触计算机科学,并且产生了转行的想法。此前作为材料系划水选手,并无任何计算机基础,修过一门较水的《程序设计基础》也早已忘光。大四时已经获得了本专业的保研资格,因此在选修其他院系的课程时较为随意,基本只要保证不挂科即可。一年内我选修了C++程序设计、数据结构、Java程序设计等三门计算机系课程。在数据结构课堂上,听老师提到了一种语法灵活、书写优雅的脚本类语言。当时的课程中要求使用的语言是C++,对于我这个半吊子而言自然颇有难度。于是我不禁对老师口中的python产生了浓厚的兴趣——以简洁和优雅著称的语言,究竟是怎样一种存在?

真正着手学习python已经是几个月之后的事,大约2016年8月底,忙完了研究生入学的诸多事宜,我下定决心开始学习。

第一份学习资料当然是python的官方入门(Tutorial):

装好python,下了一个pycharm之后,基本对着入门文档里的例子一行行敲代码、运行即可。学习的路程与先前的C++、Java无异,无非是先熟悉基本数据类型,掌握语法(比如特有的缩进),学习各种函数和数据结构。Python给人的第一感觉就是封装极多,基本上你想要用它做的事,都可以找到很多现成或半成的函数,如果更深入去探索,还有各种可以自行安装的包。安装包基本可以无脑pip install;行不通的情况下再考虑在pycharm里装,而且基本上都是缺乏依赖的问题,比如A依赖于B,则需要先安装B,成功后再安装A。如果再行不通,则需要去寻找各个包的安装方法或者官方地址。

语法上的简洁主要得益于动态语言的特性,不需要声明变量,也不需要开内存空间(比如new一个对象?),符号里的大括号和分号也都被省略,一切代码块的分隔都依赖于缩进。再加上各种各样的语法糖,让python代码可以完全按照逻辑流程进行编写,把简洁做到了极致。

得益于开学初期的清闲,我大概花了一星期,用课余的零碎时间撸完了官方入门。这时基本已经对python有了初步的认识。但一方面入门文档是英文的,部分表述可能存在一些理解上的偏差,特别是某些计算机方面的术语;另一方面,仅仅认识语法特性,还不足以真正掌握这门语言。于是这期间我又大致刷了两份教程,做了一些相关的练习。

一个是业内知名的@廖雪峰 老师的教学文档;

一个是挪威老哥写的《python基础教程》:

我们又叫它小黄书,因为封皮有一块黄色。这本书当时我是从图书馆借的,当时似乎只有python2版本。不过2、3大同小异,大可举一反三,无需分得太精细。这本书的好处是有一大波的python小项目,每一个都可以操练实践技能。我大概做了3、4个,感觉效果很不错。

当然了,对于自制力不是特别好、自学能力不是那么强的小伙伴来说,找一个线上的课程进行系统的学习,也是一个很不错的选择。比如你也可以试试下面这个免费课程,不用本地安装Python环境,可以直接在网页上敲代码,还有大牛老师带着入门,能少走很多弯路!

这段时间的学习断断续续,大约用了两周多的时间,可以说基本掌握了python这门语言的基础,也就是完成了入门。恰好,那时我正在辅修一个研究生院的“大数据能力提升”项目,里面的一些作业往往不限定语言。我通常会用自己比较熟悉的C++或JAVA先尝试完成作业,然后自己再用Python实现一遍。这么做的后果就是,我会一遍又一遍地发现,Python写作业比前两种静态语言方便太多太多了……于是后来所有的作业都直接上Python。我变快了,也变强了。

研究生一年级接下来的时间忙着怼材料系的论文,甚至专业课我都基本没去上,大多就是吃老本+考前背教材水过考试。这也大大挤压了编程的时间。期间看到一些教授数据分析的文章,入了本《利用python进行数据分析》:利用Python进行数据分析_百度百科​baike.baidu.com

主讲两个用于科学计算和数据分析的包numpy和pandas,作者似乎就是pandas的爸爸,语言精练而诙谐,内容鞭辟入里,读起来十分舒服。无奈时间实在有限,而且pandas语法繁多,常常会记混。那时一心想搞出一篇SCI达到材料系的毕业要求,只在每天晚上会翻翻这本书,有时忙完本专业的工作已接近10点,往往再敲敲代码就到了11点,11点正是系馆闭馆的时间,合上书便是一阵狂奔,黑暗里只听见脚步声在楼道里回荡。断断续续用了两三个月吃透了这本书。每一次学了后面忘前面,十分滑稽。万幸在下学期时投出了文章,有了更多的时间学习和转行。回想起来,感慨良多。

下学期选了门《机器学习》,选了门《统计学在数据挖掘中的应用》,学得比较吃力。万幸数学底子还算可以,翻了两天的线性代数,又翻了两天的微积分,大概把漏下的基础补上。期间断断续续刷了一下吴恩达的机器学习,一知半解。两门课的全部作业都由python完成,得到了较大的锻炼。

此后的研究生二年级论文中刊,遂开始了实习。工作中代码强度瞬间提升,各种技巧也日渐熟稔。一面工作一面学习,虽然多数时候是搬砖,但还是颇有收获。

期间听闻一同实习的老铁的建议开始做leetcode,起初十分吃力,百思不得其解。尔后逐渐适应,基本能想个思路。C++太久不写已然陌生,于是在解题时往往一遍Java,一遍Python,虐并快乐着。断断续续做了一百多道,临近秋招时做的更频繁。

基本都是简单和中等,困难的实在太困难;在大神面前不值一提,不过作为半桶水能做出这些也还算欣慰。期间通过看leetcode各路大神的题解,对数据结构和算法有了全新的认识……对python的各种奇技淫巧也有了一些新的接触。

比如这位大哥:

擅长用1、2行代码解决各种问题。膜一膜就好。

比如这位老哥:

leetcode周赛万年霸榜,20分钟解四道题司空见惯……而我往往只能做出四道题里的两题或者三题,空看时间耗尽,只能伏地膜……

写到这里似乎已经不单单是在说python了,可能有些偏题。但写代码这件事大抵就是熟能生巧吧。虽然我目前还是个半路出家的弱鸡,但回顾我学习的道路,也算是一步一个脚印。相信以后的路会变得越来越好。也希望转行的同学们不要因一时的困难而气馁,坚持下去即是胜利。说到底,学习一项全新的技能,依靠的无非就是坚定的信心和坚持的勇气。突破自我所面临的最大阻碍,往往来自于自己。

最后!以上是我学习Python 的一些经验和体会,坦白说坚持下来挺难的,希望大家都能坚持学习,实现自己的目标。PS:免费的Python入门课程我就先放这了,有需要的小伙伴自取噢!

一年级学python_你是如何自学 Python 的?相关推荐

  1. 白领学python_大学生应该早早自学Python,Ps,Pr,office三件套,还是等到要用的时候再学?...

    Office三件套还是要学好的,而且越快学越好,主要是马上就用得上. Word排版技能学的不好,不会用模板,写毕业论文的时候都得累死.如果老师要求高,也许课程的小论文都会要求APA format之类的 ...

  2. 学金融会python_大学生金融小白自学Python做量化投资需要注意哪些?

    大学生金融小白自学python做量化投资需要注意些什么?量化金融其实是一个交叉复合学科,需要掌握数学.计算机.金融等方面的知识.显而易见,对于金融学背景的同学来说,就需要另外学习计算机编程的知识,而计 ...

  3. 零编程基础学python-零编程基础怎么自学python?

    找一本浅显易懂,例程比较好的教程,从头到尾看下去.不要看很多本,专注于一本.把里面的例程都手打一遍,搞懂为什么.我当时看的是<简明python教程>,不过这本书不是非常适合零基础初学者. ...

  4. python怎么学最快-怎么快速自学python

    本文跟大家谈谈为什么要学python以及如何学好python. 一.作为初学者,应该如何学python? 很多人对python缩进试的简洁表达不以为然.那些都是已混迹于C和JAVA的老鸟已经习惯了花括 ...

  5. 你可以去学python_你是怎么学好Python的?

    不敢说自己python学得好,只能说稍微会用,比专业用python做开发的大佬们差得远了 总结一下我学python的经验:制定好学习计划,坚持学习下去 找几个口碑好的教程,按需学完 每个知识点必须要反 ...

  6. 为什么要自学python_为什么那么多自学Python的后来都放弃了,总结起来就这些原因...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前信息化产业发展势头很好,互联网就成为了很多普通人想要涉及的行业,因为相比于传统行业,互联网行业涨薪幅度大,机会也多,所以就会大批的人想要转行来学习Py ...

  7. python要学多久可以找到工作-自学Python的高效方法,学Python多久能找到工作?

    原标题:自学Python的高效方法,学Python多久能找到工作? 相信有了解的人都知道,Python目前是首选的AI语言,在数据科学和AI中占据主导地位,而且随着互联网的发展,Python的应用越来 ...

  8. python一般要学几年_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  9. 自学python能学成吗-大家觉得自学python多久能学会?

    作为一名从业多年的IT人,同时也是一名教育工作者,我来回答一下这个问题. 首先,学习Python语言确实并不困难,即使对于没有任何计算机基础的人来说,只要有一个系统的学习过程,大部分人都能够掌握Pyt ...

最新文章

  1. 【题解】 bzoj1260: [CQOI2007]涂色paint (区间dp)
  2. Web离线应用解决方案——ServiceWorker
  3. 找到一本不错的Linux电子书,附《Linux就该这么学》章节目录
  4. ubuntu 12.04 桌面版关闭图形界面
  5. 你知道面试必问的AOP吗(1),2021吊打面试官系列
  6. Activity与Thread之间的通讯(old)
  7. python文件图标变成小电脑_手把手教你给Python程序写图形界面,并且打包成exe文件-exe文件...
  8. 每次登陆都要滑动验证_湖人队冠军成员卡鲁索很吃香:每次谈判都有N支球队点名要他...
  9. 寒假集训日志(二)——最小生成树,拓扑排序,欧拉回路,连通路
  10. tomcat架构分析(容器类)
  11. FLASH与ASP.NET通讯[Flash | CS3 | ActionScript | ASP.NET | FluorineFx ]
  12. Hooks——钩子概览
  13. Arcgis重分类无法赋新值为小数
  14. mysql 批量插入 优化_mysql 批量插入优化之rewriteBatchedStatements
  15. Mysql 根据经纬度计算距离
  16. 【点云数据处理】学习笔记
  17. python读取fits第三方库_如何读取FITS
  18. 删除文件夹提示“您需要权限来执行此操作”如何解决?
  19. JVM——GC算法原理
  20. 揭秘 | 互联网6大主流盈利模式(内附美团外卖、摩拜案例)

热门文章

  1. caffe的调试技巧 和 使用split层
  2. Multiresolution Recurrent Neural Networks: An Application to...
  3. docker安装(一)
  4. java web 之 WebRoot和WebContent目录
  5. nodejs的安装和使用
  6. Resharper进阶一:简要介绍
  7. Windows连接Linux的常用工具
  8. 国外的电子商务开发情况
  9. 测开之路五十:monggodb安装与初步使用
  10. JavaWeb:前端开发基础