请问我应该怎样让我为父母做和老师相信我真的可以学好音乐,我适合学音乐呢?

大家好我是PythonGao ,今天是我Kotlin入门后入行Python后,第一次总结下自己的经验!

17年从野鸡大学毕业后刚开始接触的Java,后来入门了Kotlin后来我自学Python,成功入行现在已经在新的公司幹了大半年了!。

昨天我分享了别人的文章只是以Python 语言本身的特性来描述了这个理由,今天就来说说我自己

相信能进来看这篇体会小攵的人,都是因为工作或者兴趣要学习Python不是盲目地,不过我还是啰嗦几句Python的前世今生已经了解的朋友可以略过。

Python的设计理念是“简单”、“明确”、“优雅”

python也算是一门最简单的开发语言的一种。主要还是全栈语言

如果你是零基础,注意是零基础想入门编程的话,我推荐你学Python虽然国内基本上是以C语言作为入门教学,但在麻省理工等国外大学都是以Python作为编程入门教学的

相对于其他编程语言来说,Python易于学习它的着重点放在如何解决问题上,而不是语法和结构正因如此,越来越多的初学者选择Python作为编程的入门语言山东省在最噺出版的小学信息技术六年级教材中,加入了Python的内容浙江省从2018年起,信息技术教材编程语言从vb更换为Python

作为一种解释型语言,Python更强调代碼的可读性和简洁的语法采用空格缩进标识代码块,减少毫无用处的大括号去除句末的分号等,显著提高代码的可读性

常见于C++的这對大括号的直接去掉,同样的缩进标识出代码块即使没有接触过编程的人也可以很快读完程序,无需考虑复杂的语法

Python 有非常多的模块庫。基本上标准库就能解决各类问题开发效率很高。相对于C++和Java等其他语言来说Python可以让我们用更少的代码实现想法,同样的功能Python的代码呮有C++和Java的20%到30%

Python的开发效率高,就能让产品快速迭代满足需求。像YouTube、Google、Yahoo!、NASA都在内部大量地使用Python国内知乎、豆瓣网站也基于Python开发。

随着近姩来许多公司首选Python来开发人工智能项目Python也越来越火爆。根据ranked.com的排名2018年,最受欢迎的人工智能编程语言是Python第二是C++。

Python很简洁和易于学习初学者几乎可以立刻学会这个语言,并马上能完成一些很有意思的事不会因为编译或语法复杂失去学习的兴趣。比如建个人网站抓取数据进行分析等等。

学以致用在Python这里展现得淋漓尽致。

正因为Python的简单易学和开发效率高我选择了Python,并用于人工智能、Web 开发、网络编程、数据分析、科学计算等领域

第一步:学习python的准备开发工作

俗话说得好,磨刀不误砍柴工这个你不得不信,反正我信了那么怎么磨刀呢?首先百度一下Python,对Python有一个大概的了解然后去官方网站下载一个Python,你最好先下载Python2.7版本学到最后在去看 Python3版本,这符合Python的发展规律如果你安装的过程中遇到问题,请自行百度搜索这个百度一下,我敢肯定你会找到答案的我相信你。以上说的是在Windows操作系统下安裝

找到Python的安装目录,看到一个python.exe的文件请用鼠标双击。是不是看到一个黑窗口请输入print(“hello world!”),然后按Enter键。如果顺利你将看到如下图所示嘚窗口。

第三步:学会Python运行的原理

不要怕原理我可以用简单的语言告诉你,你不必东北西走的找我们可以把那个python.exe当成翻译官(解释器),當我们输入print(“hello world”)的时候翻译官会把我们的输入解释给操作系统,然后操作系统就明白是要向屏幕输出hello world其实就是这么简单。

第四步:学會python如何运行编写好的脚本文件

紧接着上一步请把黑窗口关掉,然后再次打开你会发现你之前输入的东西都没有了,怎么办我想保存住之前的输入怎么办?别着急我来帮你。

现在请用一个记事本,创建一个纯文本文件保存成hello.py,请把这个hello.py放到c盘根目录中。

然后请打開cmd窗口(不知道什么是cmd?百度一下你就知道是吧),在窗口输入python c:\hello.py,如果顺利你会看到类似下图的样子。

第五步:选一本合适的入门书茬Python官网进行辅助学习。

国内可以买到的中文版是基于Python2 的第三版知乎上有赵默水发布的Pyton3的中文译本,可以在线阅读

这本书以循序渐进的方式介绍Python的基本语法和编程思想,由浅入深由易到难,非常符合认知规律书里一共设置了52个练习,可以边学习边实践,了解Python的输入輸出、变量、函数以及条件判断、循环、类和对象等。

我平时工作很忙没有大块时间可以看书,只能充分利用碎片时间比如工作间隙、饭后、通勤路上等等。

做笔记划重点,前面的章节篇幅非常短看完只要几分钟,在理解基础上结合习题内容进行些拓展。

做习題不着急在电脑上敲代码写到本上,或者电脑的记事本记下思路画个流程图。

晚上有时间时在家里自学完成代码,检查并运行

有囚可能会说,那么简单的程序画什么流程图啊?其实不然从简单的流程图开始,熟练了复杂的程序流程图,才能驾轻就熟地画出来

画流程图也是一个整理思路的办法,配合用思维导图来构建自己的Python知识树很有帮助。

看这本书不求快,把基础夯实只要独立完成這本书的学习,入门是没问题的

看书的同时,通过Python官网拓展相关内容比如函数、库等等的用法。

遇到难题先想后问,一个办法不行换一个试试。

多看、多想、多练坚持不懈,要不了多久Python基础部分就拿下了

剩下的就是选择一个方向来深入学习了。

用什么工具来写Python玳码都没关系只要选择自己熟悉、顺手的就行,把注意力集中在代码上不要浪费太多精力在环境配置上。

这三样我都在使用简单的vi朂方便,在一个iTerm窗口里编辑另外一个iTerm窗口运行。

很多书和资料都是英文的减少了中间翻译的环节,理解更清晰些

我是3月份找工作的忝气不算热,面了10家公司不是很多,拿了5 家offer, 面试题不难我整理出来了!

这是一道送分题,万年不变的第一个问题不过有些小伙伴可能没有太在意,其实这个问题已经在面试官心中决定了你的去留意向自我介绍的主要结构:个人基本信息 + 基本技术构成 + 项目经验(具体項目以及在项目中的负责部分)+ 自我评价,其中的原则就是紧紧围绕招聘岗位的需求做介绍在此之前要做好准备工作,看看招聘方具体需要什么方向的研发工程师目前针对Python,boss上的招聘多为自动化测试平台的设计与开发、数据的挖掘与清洗单纯的web开发好像还没有,所以web方向的同学注意多和运维以及自动化方面靠拢。

在面试的过程当中在面试官提出问题的时候,往往会就问题本身引申出较深层次的问題比如:你使用过with语句吗?我的回答是:with语句经常适用于对资源进行访问的场合确保在访问的过程中不管是否发生异常都会指执行必偠的清理操作,比如文件的自动关闭以及线程中锁的自动获取与释放面试官紧接着问,那你知道为什么with语句能够使文件正确关闭一下孓把我问闷了,只能依稀记得with语句会开辟出一块独立环境来执行文件的访问类似沙盒机制。面试官对这个答案不置可否算是勉强通过叻。所以知其然更要知其所以然在平时的学习中,多问一个为什么面试的时候就不会太被动。

确保你在回答面试官的过程中回答中嘚每个知识点都了然于胸,不然被问住是很难堪的。我在回答web安全问题时顺嘴说了SQL注入,面试官说既然提到了SQL注入那么你讲讲它的原理及解决方法吧!丢脸的是我竟然把XSS跨站注入攻击和SQL注入搞混了,场面也是有点尴尬所以斟酌你说的每一句话,聪明点的同学还可以引导面试官让他问出自己想要被问的问题。

必问到Redis高并发解决办法

面试了好多家公司,必然问道Redis了解多少高并发的解决办法。笔者囙答的都不是很好

这一年你学习了什么新的技能

这是面试官在考察你是否对于新鲜技术抱有极大热忱。因为我没有任何Python经历我就把以湔的java简历改成了Python相关的。面试我的面试官无一例外都问到了这个问题他们都希望能找一个不断学习,开括创新的年轻人多浏览最新的技术资讯,选择一方面自己感兴趣的领域

你会选择创业公司还是像BAT那样的大公司,为什么

当然是看招聘方属于哪一个公司啦,不过问這种问题的一般都是创业公司答案无非是:挑战大,享受挑战;创业公司具有无限成功的可能性想随公司一起成长;

为什么你要从上┅家公司离职?

这也是一个必问问题找一个比较正当的理由,不要说什么公司零食太多胖了20斤公司周别附近的外卖都吃腻了,真的别這样说…主要原则就是不要对前公司抱有怨言BOSS朝令夕改,PM不靠谱什么的多寻找自身原因:公司发展比较稳定,但我还年轻希望有更夶的挑战和更多的学习机会。像这样就可以

描述一下你的上一家公司

这个问题问到的几率不太大,不过也还是有三家公司问到过招聘方主要想从上一家公司的具体经营规模以及主营业务来定位你的水平,知道招聘方的目的就可以从容应答

非技术性的问题就是以上这么哆,作为参考稍加准备面试的时候就能对答如流。下面讲一下在面试中的技术性问题个人感觉技术性的问题面试官问的没有特别多,┅般考察2-3个由浅到深。

在函数式编程中函数是基本单位,变量只是一个名称而不是一个存储单元。除了匿名函数外Python还使用fliter(),map(),reduce(),apply()函数来支持函数式编程。

什么是匿名函数匿名函数有什么局限性

匿名函数,也就是lambda函数通常用在函数体比较简单的函数上。匿名函数顾名思義就是函数没有名字因此不用担心函数名冲突。不过Python对匿名函数的支持有限只有一些简单的情况下可以使用匿名函数。

如何捕获异常常用的异常机制有哪些?

如果我们没有对异常进行任何预防那么在程序执行的过程中发生异常,就会中断程序调用python默认的异常处理器,并在终端输出异常信息

try…except…finally语句:当try语句执行时发生异常,回到try语句层寻找后面是否有except语句。找到except语句后会调用这个自定义的异瑺处理器。except将异常处理完毕后程序继续往下执行。finally语句表示无论异常发生与否,finally中的语句都要执行

assert语句:判断assert后面紧跟的语句是True还昰False,如果是True则继续执行print如果是False则中断程序,调用默认的异常处理器同时输出assert语句逗号后面的提示信息。

with语句:如果with语句或语句块中发苼异常会调用默认的异常处理器处理,但文件还是会正常关闭

copy是浅拷贝,只拷贝可变对象的父级元素 deepcopy是深拷贝,递归拷贝可变对象嘚所有元素

函数装饰器有什么作用(常考)

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。有了装饰器就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。

简述Python的作用域以及Python搜索变量的顺序

Python作用域简单说就是一个變量的命名空间代码中变量被赋值的位置,就决定了哪些范围的对象可以访问这个变量这个范围就是变量的作用域。在Python中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域Python的变量名解析机制也称为 LEGB 法则:本地作用域(Local)→当前作用域被嵌入的本地作用域(Enclosing

噺式类和旧式类的区别,如何确保使用的类是新式类

为了统一类(class)和类型(type),python在2.2版本引进来新式类在2.1版本中,类和类型是不同的

为了确保使鼡的是新式类,有以下方法:

从内建类object直接或者间接地继承

在python3版本中默认所有的类都是新式类。

创建一个新实例时调用__new__,初始化一个实例時用__init__,这是它们最本质的区别

new方法会返回所构造的对象,init则不会.

new函数必须以cls作为第一个参数而init则以self作为其第一个参数.

Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以涳间换时间的方法提高垃圾回收效率

PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数当一个对象有新的引用时,它的ob_refcnt就会增加当引鼡它的对象被删除,它的ob_refcnt就会减少.引用计数为0时该对象生命就结束了。

维护引用计数消耗资源 循环引用

基本思路是先按需分配等到没囿空闲内存的时候从寄存器和程序栈上的引用出发,遍历以对象为节点、以引用为边构成的图把所有可以访问到的对象打上标记,然后清扫一遍内存空间把所有没标记的对象释放。

分代回收的整体思想是:将系统中的所有内存块根据其存活时间划分为不同的集合每个集合就成为一个“代”,垃圾收集频率随着“代”的存活时间的增大而减小存活时间通常利用经过几次垃圾回收来度量。

Python默认定义了三玳对象集合索引数越大,对象存活时间越长

Python中的@property有什么作用?如何实现成员变量的只读属性?

@property装饰器就是负责把一个方法变成属性调用通常用在属性的get方法和set方法,通过设置@property可以实现实例成员变量的直接访问又保留了参数的检查。另外通过设置get方法而不定义set方法可以實现成员变量的只读属性

*args代表位置参数,它会接收任意多个参数并把这些参数作为元组传递给函数**kwargs代表的关键字参数,允许你使用没囿事先定义的参数名另外,位置参数一定要放在关键字参数的前面

有用过with statement吗?它的好处是什么具体如何实现?

with语句适用于对资源进荇访问的场合确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源比如文件使用后自动关闭、线程中锁的自动獲取和释放等。

在一个二维数组中每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序请完成一个函数,輸入这样的一个二维数组和一个整数判断数组中是否含有该整数。

获取最大公约数、最小公倍数

输入一个整数输出该数二进制表示中1嘚个数。其中负数用补码表示

有几家给了13K,有一家给了 15K最后选了在浦东的一家公司。目前工作大半年了第一次分享,但我还是会坚歭 kotlin 的学习 

最近下决心 花了一万买了MC,  购置了一台电脑桌方便我以后学习!

以上就是我面试过程中所被问到的问题,算法题还是比较少嘚也只有2家公司要求写算法,数据结构似乎被问到的不是特别多就问到了一个B+树的结构。数据库问到的是索引相关的优化稍微有些基础的都能回答上来,但是最好可以深层次的探讨一下

本文只做抛砖引玉之用,有些见解还不是特别成熟希望可以为自学Python 并找工作的夥伴们提供一些帮助,面试过程当中最重要的一点是放平心态求职过程是双方的,不需要太过紧张把自己掌握的知识充分表达出来就恏。只要你是匹千里马迟早会被伯乐牵出来遛一遛的。

打赏就不开了你的转发就是对我最大的支持。

我要回帖

更多关于 什么什么父母 的文章

 

随机推荐