小时候,Anastasia Birillo梦想成为俄语和文学老师。 今天,她是JetBrains Research的研究员,Digital Banana的方法学家和老师,还是她自己的初创公司的开发商。 “人文主义者不是一句话,”纳斯蒂亚声称。 在11月的“满足”会议上,她谈到了如何独自学习编程,为新手开发人员选择什么方向,在哪里寻找项目,在吸烟者的道路上可能遇到什么困难以及如何克服这些困难。

根据削减-她的报告解码。
两种编程方式
人们常常认为编程非常困难。 当您甚至无法编写几行代码时,程序员似乎就是做不可思议的复杂事情的神灵。 实际上,没有任何东西。

您可以通过两种方式进入该行业。 通过一所技术大学的教育,经典之路是相当标准的。 我经历了,很酷,很酷。 您有很多时间,因为您是一名学生。 您年轻,您拥有很多力量和精力。 周围-您的社区,您随时可以向老师或同学提问。 此外,您还将获得技术文凭,这为您提供了许多前景,包括与在国外工作有关的前景。

但是,我们将讨论另一种方式,即所谓的“吸烟者之路”。 这是当您已经获得一些第一文凭时,例如您在PR的某个地方工作-突然间您渴望成为一名程序员。 这种方式有几个缺点。 首先,您几乎没有时间,下班后就坐下来教科书,而不是去酒吧或和朋友一起看电影。 其次,最有可能的是,您将不会获得教育,也不会获得文凭。 但是,通过尽职调查,您将使您的朋友感到惊讶,您将成为他们正在思考的非常“程序员神”:“上帝,这是如此困难。” 现在您知道了!

第一步,第一步困难和成功
在我看来,从网络上登录编程更容易。 起初它甚至根本不是编程,但您可以从布局开始:对页面进行结构化,然后使用样式为页面着色。 通过尽职调查,很快您将能够为此赚到很多钱,可以自由职业者收集订单。 然后学习JavaScript,HTML,CSS ...您认为您已经了解了所有内容-当然,您会误解。
这是来自相当受欢迎的大众VKontakte的真实报价。 他们认为:“我掌握了前端,我是一个非常酷的Web程序员,现在我必须去后端。” 实际上,事实并非如此。

前端是一个非常酷的区域。 很多时候,人们认为那里没有什么有趣的东西,您只需要坐在页面上即可。 就像,即使我掌握了它,它也会变得无聊。 他们不了解此前端有很多逻辑。 您应用常规开发中使用的编程模式,了解算法和数据结构-这非常困难。

使用JavaScript,HTML和CSS之后,您可以开始学习前端框架。 3-4个月后,您已经可以使用Angular或React编写您的简单应用程序。 以前,在控制台中看到一堆错误,您很害怕:“天哪,这是什么?!” 在提及Github时,您不会被冷汗所困扰:您知道这是一只可爱的猫,对所有程序员来说都是一件非常方便的事情。 也许您已经对一个人文学科的朋友sweet之以鼻,他突然也想学习编程。 他没有成功,他坐着并且不了解他正在发生什么。 您会看到他只是忘记了某个地方的括号。
程序员-艺术家
现在您已经很好地掌握了编程知识,可以进入所谓的软件工程。 同样的人住在那儿,他们用Java,C#,C ++,Python等编写各种复杂的东西。 并不是那么困难:至此,您已经了解程序员就像艺术家。 他只是简单地学会了像计算机一样思考,并按照某些严格的规则将其转换为代码。 艺术家没有严格的框架,但是他们正在编程中。 但是您已经了解:原则上,这不是那么困难,我可以解决。

开始什么语言
为您打开了许多路径和编程语言。 例如,您可以从Python开始。 这是一种相当简单的语言,它是为儿童目的而设计的。 如果您懂英语,就算您从未编程也可以理解Python代码。 Servachki是用Python编写的-这是所有站点上的逻辑。 而且,如果您突然发现自己有数学才能,并且花了很多时间,那么您可以去炒作最高的数据科学,并在那里每秒获得30万的收入。 但是这方面存在困难。

Kotlin或Java比Python更难学习。 还有更多的细微之处和相当复杂的语法。 但是,找到工作,尤其是在旅途的开始,会容易得多:初级Java Developer的空缺远远超过初学者Python程序员的空缺。 也有很多机会。 您可以仅以Java开发人员身份从事软件工程工作,也可以仅使用Java或Kotlin进行移动开发或编写相同的服务。

如果您发现自己有很多力量,那么您会感觉自己像是宇宙的大师,然后学习C ++或Rust。 这是那些在Google实习,编写超级复杂的应用程序,不断谈论一些内存泄漏或者他们自己可以站出来的人的方式。 但是,如果您真的想这样做,我敢肯定您不会放弃您能做的-为什么不呢?

凉度等级

我提到过类似Junior Java Developer的事情。 在IT世界中,从初级到高级都有所谓的“冷静程度”。 初中时,您就像个孩子:看到一些错误并感到恐慌,不知道发生了什么。 您只是哭泣,并呼吁这个超级英雄的帮助:他来解决您的问题,您可以在这个问题上坐上几个小时或几天,实际上是一分钟。 这不是魔术,而是随着时间的推移而积累的能力:获得经验并增加知识库。
练习什么

现在您可能会想到:“我会选择一个领域,我将学习Python或访问网络,报名参加大量课程,阅读大量书籍,并成为一名出色的程序员。” 实际上,这是行不通的。 最重要的是练习。 我不是在谈论课程中要求的任何琐碎项目,它们是“删除前10个斐波那契数”或“交换数组中的两个变量”类别。 解决真正有趣的任务,做自己喜欢的事。
编写每天使用的应用程序版本,只需尝试一下即可。 怎么了 读懂理论是一回事:“是的,封装,某种令人恐惧的词……嗯,我大致理解这是为了……”另一件事是在实践中面对这一点:稍后,您将立即看到所有可能还不够的差距。你会得到一份工作。

在面试中,我们经常会遇到一些傻瓜,他们谈论我们阅读的书籍和课程。 您问:“您做了什么?” 他:“好吧,我决定派几位在Stepik工作的培训项目工程师。” 谈论我自己的应用程序要酷得多:“我做了这种架构...我没有成功,我重做了它,遇到了类似的问题,像这样解决了这些问题...” HR看到了,这很酷业力。 申请工作时-是的,他们通常会看知识。 但是对于大三学生来说,重要的是他必须学习,并且在他不仅要阅读理论之前,还要从事某种实践。
在哪里寻找项目

查找项目很容易。 例如,您决定从事布局。 我们都坐在互联网上,您可能拥有一些喜欢的资源-Habr,Picabu和一些带有图片的网站。 您将这个站点组成相同的站点。 是的,它不会被使用,没有人会购买。 但是,当您参与该项目时,您会遇到很多问题-并且您将学习如何解决它们:您将尝试做某事,首先将其无效,然后将其修复。

如果要编写某种逻辑(例如,针对前端或后端的Web应用程序),则只需在Internet上寻找类似的资源并加以实现即可。通常,您可以编写任何代码。 在Internet上找到一个简单的教程-如何列出待办事项。 这是许多建议的建议-这样的待办事项列表,您可以在其中注明已完成的工作。 您可以实现一些与将要学习的朋友一起玩的棋子。 您甚至可以一起来编写一个项目。
如何做所有事情并为业余爱好赚钱

通常我只是不睡很多。 但总的来说,您每天都可以绘画。 如果您有想要做的事情的清单,那么很可能会做。 最主要的是严格的期限。 如果您说“我需要提交测试申请,我有两个星期的时间”,那么它就不起作用。 但是,如果您需要“在12月4日之前完成测试应用程序的存储”,那么您将坐下来观看。 我只是在计算机上启动了一个日历,每天为自己放下东西,然后尝试去做。 同时,我有时间陪朋友散步,跳舞和英语。

仅当您真的喜欢这份工作时,这才有效。 我的同事成为前端开发人员,因为他对在PR中工作感到非常厌倦。 他意识到自己真的很喜欢网站的布局,并把所有的空闲时间都花在了网站上。 但是他喜欢它。 难怪他们会说:找到自己喜欢的东西,然后一天就不会工作。 这听起来很可悲,但这是事实。 我热爱自己所做的一切,以致无法称之为工作。 原来,我因自己的爱好而得到报酬。
切入点:为什么网络比游戏更好
游戏也是一个很好的切入点。 但是您需要做自己喜欢的事情。 例如,我讨厌游戏,即使我真的愿意,也无法通过游戏成为程序员。 如果您使用任何构建工具(制作2D游戏非常简单),那么您实际上就不需要编程。 而且,当您开始排版时,您仍然至少习惯了一些纪律:看到这些括号,就习惯于自己不要害怕编写代码,这将使您更容易适应更复杂的事物。 然后,您会冷静地查看大量代码:“好吧,好吧,我也写过,没关系。”
最主要的是不要害怕
-您认为:“是的,她这么说,好像一切都很容易。 实际上,这些都是梦想。” 不,不容易-但可能。 当我从一所文科学校进入大学时,我的课程表现最差。 但是您尝试了,即使您没有成功,也可以尝试进一步。 我以为我永远都不会理解所有这些OOP,图形,数据结构等等。 但是现在我是一名程序员,并教孩子们编程。 这听起来可能很可悲,但人文主义者却不是一句话。

如果您想使用IT,最主要的是-不要害怕。 您需要克服恐惧,而不是害怕编写代码。 出于某种原因,每个人都在考虑编程,该死的,这非常非常困难。 即使是我所教的孩子有时也害怕运行自己编写的程序:“现在将有一个错误,一切都会崩溃,我将无法理解原因。” 最主要的是克服这种恐惧。 您可以从网络开始,这非常简单。 并记住:练习,练习以及很多练习。 没有她,没有任何工作!
来自“
Contenting ”的所有报告-这是16个小时的有用信息,26次演讲和3个有关如何制作关于技术的酷内容和使用技术的讨论-均在
此处以视频格式显示。 使用促销代码habr_online_promo为Habr用户提供折扣。
为支持会议,我们感谢赞助商: