我们使用Python Junior Podcast的主要思想进行了简短的解密:在其中讨论了从哪里开始以及从哪里去新手Python开发人员。 最近,我们为中老年人提供了很多内容,但是这个问题绝对是针对琼斯的。
主要主题:- 新手程序员需要掌握哪些知识?
网站开发? - 雇主对开发商的期望是什么?
- 找不到工作怎么办?
- Python开发人员如何开发?
Python Junior Podcast是那些想更好地了解Python的人的编程播客。 电波由MoscowPython社区的布道者和Learn Python课程的老师领导。涉及的对话:
- 莫斯科Python联合创始人Valentin Dombrovsky
- NVIDIA团队负责人Zlata Obukhovskaya
- Grigory Petrov,莫斯科Python的传播者
- AlexEx Shtyrnyaev,FinEx的开发人员,学习课程的老师
巨蟒
为什么Python适用于Web开发
Valentin Dombrowski: Python为什么适合于Web开发? 例如,为什么不使用PHP或JavaScript?
格里高利·彼得罗夫(Grigory Petrov):因此,别无选择。 尽管事实上在现代Web上实际上没有后端(实际上仅在JavaScript的前端技术上)就可以组装单个页面应用程序或渐进式Web应用程序,但它仍然过于复杂,索引编制较差并且需要出色的开发人员。
如果要创建网站或服务,则可以使用组合方法:我们拥有某种实现逻辑并创建网页的后端,而某些前端则在浏览器中绘制这些网页。 当我们需要快速收集所有这些东西时,那么没有太多选择。
让我们看一下可能的选项。
- C# 微软真的很棒,他们制作了.NET Core并以各种方式进行推广。 但是,首先,这是一种新的跨平台技术,并且那里的一切进展都不顺利。 其次,它确实很昂贵,很少有C#开发人员-仅仅是因为它不受欢迎。
- 爪哇 这很复杂。 在Java中创建普通站点不是10行代码,就像在Python中那样。 这是很多代码,这些都是框架,您需要了解设置Java服务器的细节。 一般来说,持续的痛苦和折磨。
- 的PHP 在最新版本中,它很棒。 我什至会这样说:PHP 7.2并不比Python差。 但是您不能随便使用PHP 7.2。 如果普通的,非顶尖的开发人员使用PHP创建站点,那么他将不会仅用7.2编写:您仍然必须阅读一些教科书,教程,到处都是一堆旧代码,这不是很好。
- JavaScript和Node.js。 当前端和后端都使用一种语言时,这真是太好了,而且非常现代。 只是不是很稳定。 Node.js是一件好事,但是将其部署到生产环境中以至于它不会掉落并稳定运行是有问题的。 另外,如果我们要编写高质量的JavaScript代码,则不需要JavaScript,而只需输入TypeScript。 但是TypeScript异常复杂,在它看来,一个普通的开发人员会崩溃。
让我们省略Ruby,Haskell,Erlang和其他利基产品,而我们拥有Python。 一种语言,具有一致的语法,统一的标准库,最佳文档,流行的轻量级框架以及广受欢迎的Django。
事实证明,尽管选择范围最广,但是如果我们有普通的而不是顶尖的开发人员,那么我们是一个常规的企业,想要创建普通的网站,我们没有50人的开发部门,那么我们就选择Python。
进入该行业需要什么知识
Zlata Obukhovskaya:我认为您需要充分了解一个框架-并且还要了解还会发生什么以及何时使用它们。 Tornado在哪里,Django在哪里,Flask在哪里,aiohttp在哪里等等。
知道有诸如协议之类的东西很有用。 特别是,http协议的知识对于构建Web应用程序至关重要。
仍然需要至少大致想象一下前端在Web项目中的排列方式:什么是HTML,CSS,JS。
Alexey Shtyrnyaev:并且知道文档在哪里。 这是最重要的。
格里高利·彼得罗夫(Grigory Petrov):在这里,我们踩在非常不稳定的土壤上。 如果我们不走运并且以某种方式开始认真研究现代前端,那么它的难度将比Python后端高10倍。 新手开发人员需要限制自己的注意力,以便他开始学习HTML,但不要陷入所有这些div,范围,浮动,所有内容如何对齐和排列的问题。
Alexey Shtyrnyaev:我们需要基本的Bootstrap课程。 以及HTML的基础知识。
在第一年,您不应该研究JS框架(如果您专注于后端)。 基本的Bootstrap课程已经有现成的模块:如果需要滑块,请创建滑块,如果需要浮动菜单,请创建浮动菜单。
Zlata Obukhovskaya:我认为研究前端尤其可以沉浸在通常如何为Web应用程序赋予静态信息的地方。 因此,开发人员可以顺利地开始学习原则上如何安排Web应用程序的体系结构以及它们如何在生产环境中生存。
Grigory Petrov:是的,如果您选择Python作为开发后端语言,例如Django作为框架,我会立即建议:Django在Django Book中有文档,这真的很酷,Zlata所说的就是全部她对初学者真的很好。
Alexey Shtyrnyaev:如果目标是学习Django,那么另一个Django Girls适合快速
入门 。 这是一个这样的教程,您可以在一天内上楼,了解基础知识和框架的功能。
Valentin Dombrovsky:准备录制播客时,我们列出了Python程序员进行Web开发所需的清单,该清单总结了前面所说的内容。
Python Web开发基础包括哪些内容
- Web框架Django,Flask,aiohttp,Tornado等(并了解其余部分的存在)。
- 协议和API:主要是HTTP,JSON-RPC,协议缓冲区,gRPC。
- ORM和迁移,关系数据库,SQLAlchemy,SQL,PostgreSQL,MySQL。
- HTML,CSS,Bootstrap以及JS框架和JQuery的基础知识。
- 生产,测试,单元测试,自动测试,版本控制系统,git上的应用程序原理。
少年需要算法吗
Zlata Obukhovskaya:起初,您不需要了解这些算法,如果您长期从事开发工作,它们本身就会逐渐出现在您的脑海中。 我认识许多优秀的工程师,他们没有在算法方面有很好的正规课程。
格里高利·彼得罗夫:我想在火上加油。 那么,我们对算法的渴望从何而来?
现在我们没有算法的基础知识,我们不知道如何训练程序员,没有技术基础。
他们正在尝试做到这一点,但是这里有霍格沃茨的故事:只有拥有一个巫师,我们才能组成一群巫师。 因此,大学应该问什么:“开始培训程序员”,但他们没有程序员,因为每个人都在Mail.ru,Rambler和Yandex工作,他们在那里好吗?
在大学里,他们看着并说:
-好的编程。 让我们找到某种相关的知识领域,并从那里邀请专家。 让我们邀请可以写文字的记者,知道如何制作电路的电气工程师和知道如何编写算法的数学家。
结果证明,仅由于砖和水泥由基本粒子组成,就和教导建筑工人基本粒子的物理学一样方便。
同时,他们没有谈论水泥和砖块本身,因为试图培训建造者的物理学家不知道如何建造房屋。 结果,我们得到了一个能够完美描绘“水泥的工作原理”的建筑商,但从未见过他,并且知道如何从中制造任何东西。
算法和数据结构非常好,但这是一个非常小的应用领域。 例如,如果您编写游戏引擎,编译器和网络协议,则迫切需要它们。
大多数程序员解决了不需要算法和数据结构的业务问题。
那里最困难的数学是两次折叠然后除法。 他们需要完全不同的知识。 解决业务问题需要首先应用而不是基础的知识。
新手开发人员最好对业务有一个想法,以及如何正确,快速地从现成的块中组装必要的结构,如何调试它们,如何确保它们不会崩溃,知道为什么会崩溃,在需求变化和程序启动时会发生什么?像雨后的房子一样,“安顿在地基上”。
这些都是实用的知识,也是对如何编写软件的理解。 他需要知道,除调试器外,他还具有一组工具,这些工具将准确显示程序的运行速度。
瓦伦丁·唐布罗夫斯基(Valentin Dombrovsky):比较发生在我身上:这是从商务语言到可以与计算机进行通讯的语言的翻译。 也就是说,程序员是一种特定的语言学家。
Grigory Petrov:业务需要作家,而不是语言学家。 作者不需要知道为什么这个词在1000年前就被转化成了这个词。 他需要能够运用这些话。
寻找开发人员的第一份工作需要什么
Alexey Shtyrnyaev:可能没有通用的食谱可以准备初级
课程 。
如果您来某公司,您将不会因为知道Django,JSON和某些算法而被吸引。 您很可能会被此公司现在和现在所需要的技能所吸引。
公司很多,每个人都有不同的要求。 没有必要获取如此普适的知识来进一步准备简历并找到工作。
格里高里·彼得罗夫(Grigory Petrov):当我们在VoxImplant上寻找几本佳作时,我们的技术总监将基本要求制定为:一个人必须能够解决问题。 显然,June不会总是高效地,不是以最佳方式且并非总是正确地做到这一点,但理想情况下,您要为一个人设置任务,他会紧张并解决它。 这是雇主主要在寻找的技能。
Zlata Obukhovskaya:从其他角度来看,正在寻找工作的人(从其他领域迁出)具有一定的优势,因为他们已经走了一些路,并且知道如何快速解决问题。 这些都是软技能,我什至称之为工作文化。 通常,尚未培养出这种工作文化的研究生。
但是我仍然想尝试给初学者一些食谱。
新手开发人员的第一步
Zlata Obukhovskaya:第一个仍然是您自己的项目,因为您需要在履历表中写些东西并显示最低限度的投资组合。 当这些项目不是为自己而设计的,而是由自由职业者为某人设计时,会更酷。
在第一个项目完成之后,已经可以制作一份简历,并将其发送给所有有六月职位的公司。 访谈将使您了解公司的需求。 迟早会有人至少将您带到一家小公司。 随后,这种工作经验将使您有机会进入公司,越来越有趣。
Valentin Dombrovsky:顺便说一句,我们正在为课程中的学生做准备,以便他们有自己的计划进行10周的培训。 另外,我们训练团队发展的技能。 这些只是Zlata所说的软技能。
Alexey Shtyrnyaev:根据经验,我想说第一份工作可以找很长时间。 当您寻找一两个月时-很好。 如果您将简历提交给所有公司,请进行面试,在第三个月您肯定会找到一些东西。
瓦伦丁·多姆布罗夫斯基(Valentin Dombrovsky):您可以自由地剪切项目或进行简单项目,同时发送简历。
Python开发人员的前景如何
Zlata Obukhovskaya: Python开发人员可以去任何地方。 您可以去测试,继续发展为高级架构师。 甚至在管理中。 技术经理是不同的,您可以成长为高级管理人员。 您可以开发数据科学,DevOps,进行自动测试或机器学习。
Valentin Dombrovsky:总的来说,包括我们的课程在内,还有很多选择和机会。 您不需要在入口处那么多的知识,但是建议覆盖更广的范围,因为您能做的越多,对您越好。
***
这只是
Python Junior版本的一部分。 您可以
收听该剧集
的完整版本。
甚至看到:
播客RSS感谢您的阅读,收听或观看。