GeekBrains的Python系主任的完整访谈-初学者如何以及为何学习语言

图片

昨天,我们发布了“由谁从事IT工作”系列的第一期 。 对于他,我与两名以前的学生以及GeekBrains的Python系主任进行了交谈 。 当我将这些故事“装入”一个故事时,可惜的是草稿中还剩下很多东西。

因此,今天,我发布了GeekBrains院长Alexei Petrenko的采访全文,几乎没有进行编辑或将其移出上下文。 也许它将比主要问题更加实用,有用和集中。

例如,这就是幕后故事:Python为什么不比其他语言差? 除Django外,我还应注意哪些框架? 在现代IDE或笔记本电脑中,哪里学习书写更好? 哪些站点和书籍值得您自己学习以及更多。

-Python开发人员现在在做什么?

-Python开发人员可以做很多事情-从简单的脚本到数据分析和构建神经网络。

说到开发,这是Web服务器的后端。 Internet的隐藏部分,普通用户看不到的部分。 服务器,其逻辑,与数据库的交互。

-Python在服务器开发方面不比其他语言差吗?

-其实不,更糟。 例如,在C语言中,开发人员花费大量时间编写代码。 这是祖父的语言。 用C#编写更容易,更快-但这是Microsoft的创意-他们为Windows系统推广了该语言。 但是Java是通用的。实际上,您可以争论哪种语言更好。

Python的入门门槛很低,很容易学习它的编程基础。 Python是一种解释型语言。 因此,如果用Python和C编写了两个相同的程序,那么在Python上,该程序将运行得更慢。 它拥有大量的读者,庞大的库以及世界各地开发人员制作的许多外部库。 因此,它成为一种适合所有事物的语言。

-难道知道Python更容易涉足诸如AI和分析之类的特定行业,而使用Java的人更有可能接受常规的后端服务?

-如果我们看一下几年前的统计数据,则PHP语言占据了所有服务器后端的80%。 但是PHP开始失去地位。 Python在此浪潮中发布了各种Web开发框架,其中最受欢迎的是Django。 它越来越受欢迎,许多雇主正在寻找知道此特定框架的开发人员。

总是有竞争。 但是,新手应该理解,无论他完全致力于Python还是Java,无论如何他都会找到工作。

-将Python作为第一语言学习是一个好的解决方案?

“我认为很好。” 20年前,我的第一门语言是基本语言。 然后在我看来,对其进行编程非常有趣且容易。 当我第一次看到Python语法时,我首先想到的是:“它与BASIC相同,只是更酷。” 它具有相同的感觉-简单,有趣,一切都立即清晰可见。 也就是说,Python是最适合的语言。

“正是因为简单?”

-是的,因为语法简单。 与编译语言不同,它可以容忍开发人员的小错误,在这种情况下,如果将其密封,程序将不再编译。
尽管我希望开发人员不希望解释器纠正所有错误。

最重要的是,开发人员了解,经过简单的学习后,他将不得不努力掌握更严重的方面。 使Python成为更酷,更高级的语言的库和框架。

-语法有多复杂和庞大?

-在Python的基本配置中,大约有70个函数(但即使是很酷的程序员也不一定会全部使用它们)和几十个保留字。 也就是说,要学习一百个单词并理解它们在做什么,您可以花一到三个星期,如果愿意并努力工作的话。



-动态打字不是减号吗?

-动态打字有一些对手,他们最初是在大学时教过的,后来开车进入了C语言,这是所有语言的基础,每个人都应该等同于它。 因此,他们对动态类型极为不利。 实际上,动态类型多于负。 它加快了发展。

但是,如果您习惯于静态类型化,那么该语言就可以规定您使用的变量类型。 键入将保持动态,但是您可以意识到自己的习惯。

-但是由于严格的输入,现在Go和TypeScript越来越流行。

-是的 但是语言总是来来往往,Python已经存在了30年,并且仍在继续普及。 Go语言既年轻又好。 也许他会成长,或者也许几年后我们会忘记他。

如果我们将编程语言与储层进行比较,则例如,C语言就是海洋。 您从悬崖上跳了很深,然后游泳或溺水。 Python语言是一片干净的沙滩,您可以走很远,从容地游泳,如果您知道自己要继续前进,那么在美丽的沙滩后面就会有巨大的凹陷,可与C和Java媲美。

“了解Python,很难在专业之间切换,它在哪里使用?”

Python具有广泛的库。 如果您突然意识到不想与站点和后端打交道,而是想转向人工智能,那么在了解基础知识的同时,您需要花费数月的时间来加紧数学并学习其他一些框架。

大数据的情况与此类似-您需要回顾统计,分析的过程,并查看两个或三个新库。 也就是说,如果您已经知道该语言,便可以大大降低人工成本。

-更困难的是什么?

分析和大数据是编程加数学。 如果有这种倾向,那么为什么不处理神经网络,识别系统呢? 如果您只是想编程而不是高级,那么最好去写服务器。 他们也需要数学,但至少不需要更高。 没有积分和阶乘。 基本加法和减法。



-上课程之前您需要了解什么?

-最好事先知道您是否喜欢编程。 我建议您尝试编写一些程序,尝试免费课程。 最好已经了解什么是变量,以及如何添加两个变量。

-如果一个人还没有开始,他在哪里和如何理解?

-我们免费提供编程和变量基础知识。 在那里您需要用Javascript编写,因为在任何现代浏览器中都有解释器,您无需安装任何程序。

使用Python,Java和其他语言,会更加复杂-您需要安装开发环境。 但是,如果您知道自己喜欢它,那为什么不呢。 您可以花十分钟时间慢慢成为一名程序员。

-如何学习以确保课程不会成为毫无用处的外壳?

-一个字就是练习。 如果您只是看和听,将什么也没有。 对于新手来说,甚至可以重写老师在屏幕上显示的代码。 重写并考虑其工作方式。 作为课程的一部分,有必要执行实际任务,以便在Internet上进行搜索。 如果培训是为了就业,那么就更需要实践。 很难学习,容易战斗。

最低要求是每周四个小时。 在两个小时的练习下两天。 但是我建议每天花一个小时编写自己的代码。

-什么是更好的学习-基本知识或流行和应用?

-初学者最好了解语法。 而且,对于一个星期后的人,一个月后的人来说,一个人会说“我知道语法,可以写基本的结构和算法”,那么,那么值得考虑的地方是值得的。 您学习的越多,您就越会从语法转移到单个库,设计模式和单个模板。

最主要的是不要全神贯注地进行编程,以免发生魔术骚动。 当您学习了三天的所有内容后,便会喝到稀饭。

-您需要知道什么微妙之处才能不立即走错路?

-有这样一个标准的Pep8-这是使用Python编写的程序员的协议。 它指示如何正确编写以及如何编写错误:如果要编写带有条件的构造,请以类似的方式编写。 例如,如果要创建一个函数,则以这种样式调用它。

如果您想在团队中工作并将代码展示给其他人,如果将来需要对代码的支持,那么您必须了解公认的标准。 对于初学者来说,将其与语法研究一起阅读将是一件好事。

不懂Pep8的新手程序员编写的程序也可以使用。 但是当另一个人试图阅读它时,就会出现困难。 他们只写一次代码-他们读了十遍。

-还有吗? 例如版本?

-几年前,Python发生了分裂。 有Python 2.7,然后发布了版本3,第二个版本仍在使用,但仅在较旧的公司中用于维护遗留代码。 如果您在这样的公司工作,那么您将必须学习Python 2,但我建议您学习第三个版本。 所有现代项目和第三方库均在其下编写。

我将举一个基本的例子。 第三个版本的Payton,一个在屏幕上显示消息的命令:我们编写print,打开括号,然后在括号内传递文本和变量。

在第二个版本中,我们编写了print,没有括号,然后是空格和变量。 也就是说,在一种情况下,其他花括号中有一个空格。 一个人理解这一点并不重要,但是口译员很重要-空格或方括号



-您会说出最好的自我教育方式吗?

-在培训的同时,您可以尝试实施自己的想法和项目。 在学习基础知识的同时,您可以解决难题并编写简单的程序。 例如,我研究了循环,为什么不编写显示乘法表的程序。

接下来,您将学习Django框架,该框架允许您创建站点。 为什么不立即尝试编写自己的站点,这正是我长期以来想要的。

仍然有这样一个站点-Euler项目。 有一组构建程序的任务。
知道如何编程的人可以实现任务,但是如果他编写低质量的代码,即使是现代计算机也可以在几分钟,几小时甚至几天内解决它。 也就是说,该项目使您考虑优化。 因为正确的代码可以在几秒钟内解决Euler项目中的问题。

摘自Mark Lutz的“ Learning Python”和“ Pure Python”一书。 丹·巴德(Dan Bader)。

-我应该从什么工具和框架开始?

新手程序员可以举Flask为例。 它很简单,不携带不必要的信息,很容易学习。 实际上,这是一个小盒子,里面没有多余的东西。 她将撰写最简单的网站。

如果您考虑未来-那么框架中的怪物就是Django。 这不再是一个小盒子,而是一个拥有很多东西的巨大盒子。 逐渐了解其所有功能之后,您就可以编写出色的可扩展站点,每分钟可以为数千名用户提供服务。

-包,库?

-对于初学者,我建议您熟悉标准的Python库。 这些是与解释器一起安装在计算机上的模块。 实际上,标准库是如此之大。 甚至其研究也将花费一个多星期。

标准库的某些模块将不再需要,但有必要对此有所了解,以免有一天您不必重新发明轮子。 所有的自行车都在那里组装。

在编程中,经常使用诸如“队列”之类的数据结构。 而且,如果一个人刚刚学会了语法,他就会知道Python中没有队列。 尽管使用其他语言,但是队列被积极使用,并允许解决大量任务。

但是值得深入研究标准库,我们在那里找到了collections模块。 在该模块内部是“队列”数据结构,事实证明它已经实现了很长时间,只是隐藏了一点。 它经过了最大程度的优化,无论如何都会比您自己编写的要好。

-基本的东西? 采取什么IDE?

-在这种情况下,意见不一。 有人认为,新手程序员应该用记事本编写(不是在标准课程中,而是至少在记事本++中)。

这个想法是,当您开始编程时,必须手动编写所有代码。 这将使您记住结构,基本功能的描述。 但是问题在于笔记本电脑不会告诉您您在哪里出错。 如果初学者看不到错误出在哪里,他可能会绝望什么都没有做,然后退出该业务。

因此,有一种观点认为采用现代IDE更好。 在这里,您必须归功于喷气式飞机。 他们制作了具有绝对免费社区版本的PyCharm IDE。 她讲述了所有基本错误。

-您采取什么方法?

我支持第二种方法,以免阻止初学者编写代码。 当代码工作时,就有进一步开发的愿望。 但是,如果发现错误,请弄清楚如何做以及如何解决。

虽然,老实说,我本人是从旧笔记本开始的。



-获得工作的最低要求是什么?

“我在Geekbrains的经验表明,一些学生在完成一年制课程之前就找到了工作。” 这完全取决于学生的学习方式,动机,投入的积​​极程度。

如果我们谈论雇主希望与服务器开发人员交流的技能,那么这是一项基本工作,内容包括语法,站点,后端和Django的知识。 程序员必须知道如何更快,更正确地编写代码。

我还要增加团队合作和数据库知识,因为任何站点的任何后端都与信息存储有着千丝万缕的联系。

-在最初的水平上可以指望什么钱?

-取决于地区。 初学者可以得到4万份工作,有人可以得到10万份工作。 观察它如何表现出来。 为此,您需要证明自己不仅可以编写代码,还可以理解体系结构,可以勾勒出整个项目方案,模块,服务及其交互方案。

-也许这对初学者来说很少见?

-我们将在培训即将结束的第四季度进行设计。

-您需要多少工作才能升职?

-您可以在Geekbrains学习的那一年中抽到中间。 有必修课程和附加课程。 学生本人选择什么时候上课,但是必须诚实完成主修课程和附加课程,才能诚实地称自己为中级。 那就是-主程序的年份,以及另外六个月的并行时间。

-那么谁是签名开发者?

-这是一个有丰富经验的人。 这是一个了解不同框架,能够扩展任务,了解他们需要什么资源的人。 一个不发明自行车的人。 根据我自己的经验,谁了解工作的各个方面和细微差别。

“如果您遇到一个三年前一无所知的人,现在又称自己为签名人,您会怎么想?”

“为什么不呢。” 取决于公司,志向和技能。 如果一个人有天赋,那么我会相信。 如果他说他知道Python,而不是Python,那么可能他还是有机会。

-如果您不是那么聪明,那么您平均需要多少经验?

-如果一个人没有目标,那么他可以轻松地从事中级,五年级和十年级的工作。 执行大量任务,享受其中。

-也就是说,中间人只是不承担责任的人?

-是的,Signor准备领导决策,领导团队。 老实说-有领导者,有追随者。 有人准备好冒险,参加一家创业公司,如果他在一年内开枪,那么该人将立即称自己为董事,签署人或其他。

还有一些程序员只喜欢编程,但他们还没有做好做出全局决策的准备。

-听起来初中毕业并不完全是了解语言。

-此等级通常是任意的,并且因公司而异。 如果绝对是初级用户-初级是一个知道语法的人。 中级-了解所有其他库,框架,知道如何使用所有这些。 Signor-不仅知道如何使用,而且在开发不同事物方面具有丰富的经验。

-寻找什么样的工作,以免立即失望?

-我们必须立即记下我的脑海:“如果没有任何解决办法,我不会感到沮丧。” 值得在自由职业者中练习或在培训期间进行联合项目。

-在面试中如何不面对污垢?

-首先,不要保持沉默。 如果他们给出的任务无法立即解决,请大声说出,说明您认为自己有能力迈向解决方案。 在面试时,他们还可以提出基本问题。 学生们谈论了他们如何获得我们与他们一起整理的任务。 也就是说,不要听耳朵讲的课程

如果第一次面试不成功,最主要的是不要灰心。 进行两次或三次采访时,您会发现问题开始重复。 然后您自己选择在哪里安家,因为一天有3次定期面试,您会到处走动。

-在哪些问题上,您认为最好离开这家公司?

-也许如果他们显示代码,并且您了解它是不可读的。 «-» , . , , . .

— ?

— . — . — , - .

.

Source: https://habr.com/ru/post/zh-CN454182/


All Articles