Советы школьнику, который хочет стать программистом

Содержание:

Профессиональное обучение в университете

Задаваясь вопросом относительно того, как стать программистом с нуля, большое количество людей подумают об университет. Там есть профессиональные преподаватели, которые могут передать часть своих знаний и опыта тем, кто желает обучаться этому делу. После обучения вы получаете диплом, поэтому можете работать в крупных компаниях программистом и строить собственную карьеру. Некоторые частные клиенты будут более серьезно относиться к сотрудничеству с дипломированным специалистом.

Преимущества такого обучения очень большие. Вы работает с профессиональным преподавателем, быстрее разбираетесь в тех или иных нюансах, тратите меньше времени на поиск информации и ее анализ. Вы уже преподавателю задаете вопросы о том, как стать веб программистом, а он вам рассказывает с профессиональной точки зрения, предлагает проверенную литературу, дает практические задания и помогает вам в них разобраться. Профессионалы разрабатывают определенную методику обучения, поэтому за несколько лет вы становитесь реальным специалистом, который может рассчитывать на высокооплачиваемую работу.

Недостатки такого выбора являются также явными и лежат на поверхности. Вам придется платить за обучение, в зависимости от университета, стоимость обучения может быть достаточно высокой. Вам придется учиться несколько лет, вы не всегда сможете совмещать учебу с работой. Не все могут выйти из университета профессионалами, кто-то просто будет лениться и эти годы учебы пройдут зря. Одно дело заставить себя учиться и делать это самостоятельно, входя постепенно в кураж и другое дело посещать лекции в университете, где никто вас не заставляет учиться.

Шаг 6: Найдите Команду

Разработка игр является командным видом спорта. Если вы хотели создать игру сами, то изучение программирования и использование игровых движков будет лишь началом вашего пути. Вам нужно будет стать художником, дизайнером, композитором, писателем, маркетологом и просто настоящим идеалом 21-го века.

Если быть более точным, то на это у вас уйдёт гораздо больше, чем 11 лет обучения в школе.

Вместо этого, вы можете использовать свои связи в игровом сообществе, чтобы найти себе помощников. Вы все должны собраться, придумать идею для игры, составить план и начать работу.

Не пытайтесь сразу же сделать следующий AAA проект. Ваша команда будет неопытной и немногочисленной для этого. Начните работу над небольшой инди-игрой, которая будет немного отличаться от конкурентов. Учитесь на ошибках и улучшайте свой конечный продукт.

Продолжение обучения

Вполне возможно, что вас не позовут на интервью в первую неделю, а ходить по собеседованиям придётся ещё не один месяц. Зато за это время вы сможете улучшить свои навыки.

Изучайте различные библиотеки

Библиотеки JavaScript как правило делают жизнь разработчика намного проще. Одна из самых популярных библиотек — это jQuery. Она помогает с манипулированием DOM, функциями объектов, массивов и многим другим.

Изучение jQuery — отличное начало для знакомства с работой с библиотеками JavaScript. Есть множество курсов и учебных пособий по jQuery, но мне нравятся уроки freeCodeCamp.

Завершите уроки HTML и CSS

Вернитесь к изучению HTML и CSS на freeCodeCamp и завершите остальные уроки: Applied Visual Design, Applied Accessibility, и CSS Grid.

Улучшите свой CSS (необязательно)

Если вы любите дизайн и разработку стилей внешнего интерфейса, то есть крутой курс Daily CSS, который научит создавать изображения только с помощью CSS и HTML. Это может пригодиться для собеседования.

Узнайте, как работает JavaScript

Умение использовать JavaScript — это замечательно, но понимание того, как он работает, позволит вам писать код лучше.

Чтобы глубже понять JavaScript, рекомендую серию книг «Вы не знаете JS». Первые две книги помогут разобраться в основах JavaScript и заложить хороший фундамент. Их можно прочитать онлайн бесплатно или купить в печатном виде.

Создавайте проекты

Ещё один способ улучшить свои навыки — создавать проекты. Это может быть что угодно, ваша цель — попрактиковаться в использовании инструментов, в которых у вас мало опыта. Плохо с массивами? Создайте приложение со списком покупок. Сомневаетесь, хорошо ли разобрались в стилях? Попробуйте сделать точную копию реального сайта.

Проекты должны улучшать ваши навыки, поэтому, если они слишком простые или сложные, остановитесь и начните проект на приемлемом уровне.

При создании проекта, вам могут потребоваться новые навыки. Нужно уметь учиться на ходу.

Стоит Ли Становиться Разработчиком Программного Обеспечения?

Если вы творческий человек, который любит программировать и задается вопросом, кто такой разработчик программного обеспечения, вам следует потратить некоторое время на изучение этой профессии. Это нелегкий путь, но, как вы, наверное, уже поняли, преимущества, безусловно, того стоят.

В этой статье «Кто такой разработчик программного обеспечения» мы не только рассмотрели основные аспекты, необходимые для успешной разработки программного обеспечения, но и рассказали о самой профессии. Кроме того, теперь вы должны знать, почему это такой популярный путь карьеры, и что он не исчезнет в ближайшее время.

Так что, если вы думаете о выборе пути карьеры разработчика программного обеспечения, и вы еще не начали, лучшее время для начала сейчас. Выберите курс и начните учиться!

Разновидности

В программировании на первое место ставятся не только практические навыки, но и идеи специалиста. Программистов можно условно разделить на три категории в зависимости от специализации:

  1. Прикладные программисты занимаются в основном разработкой программного обеспечения прикладного характера — игры‚ бухгалтерские программы‚ редакторы‚ мессенджеры и т.п. К области их работы также можно отнести создание программного обеспечения для систем видео- и аудио-наблюдения‚ СКД‚ систем пожаротушения или пожарной сигнализации и т.п. Также в их обязанности входит адаптация уже существующих программ под нужды отдельно взятой организации или пользователя.
  2. Системные программисты разрабатывают операционные системы, работают с сетями, пишут интерфейсы к различным распределенным базам данных. Специалисты этой категории относятся к числу самых редких и высокооплачиваемых. Их задача состоит в том‚ чтобы разработать системы программного обеспечения (сервисы)‚ которые‚ в свою очередь‚ управляют вычислительной системой (куда входит процессор‚ коммуникационные и периферийные устройства). Также в список задач входит обеспечение функционирования и работы созданных систем (драйвера устройств‚ загрузчики и т.д.).
  3. Web-программисты также работают с сетями, но, в большинстве случаев, с глобальными — Интернет. Они пишут программную составляющую сайтов, создают динамические веб-страницы, web-интерфейсы для работы с базами данных.

Подходит ли вам программирование?

Прежде чем мы перейдем к вопросу о том, стоит ли становиться разработчиком, вы должны решить, подходит ли вам программирование. Если вы хотите научиться программировать, потому что слышали, что товарищ-разработчик много зарабатывает, лучше не торопитесь.

Что характеризует хорошего программиста и то, что ищут работодатели, – это постоянная готовность учиться и развиваться. Если вас интересуют технологии, вы хотите развиваться и мыслите аналитически – программирование определенно для вас! В самом начале самое главное – это мотивация и целеустремленность, без этого не научишься программировать.

Шаг 2. Выбираем сферу по душе

После изучения основ необходимо определиться, в каком направлении развиваться. Здесь нам помогут более двухсот вебинаров на разные темы, на которых можно узнать больше о выбранной теме, оценить свой интерес к ней и пообщаться с преподавателями и другими учениками по волнующим тебя вопросам.

Даже если ты совсем не интересовался программированием до этого, просмотр нескольких вебинаров расширит твой кругозор и поможет выбрать дальнейшее направление развития. А если останутся сомнения, то преподаватели GeekBrains помогут принять решение о том, на какой сфере кодинга специализироваться.

Рекомендации

Профессионалы уверяют, что большое значение имеет первый язык, который начинает осваивать новичок. Именно эти знания станут основой для всех последующих. Первый язык позволяет понять логику написания кода, поэтому лучше, если он будет простым и понятным. Также следует как можно раньше начинать применять знания на практике.

Самым простым для изучения считается язык Python. Незамысловатый синтаксис не вызывает трудностей понимания логики, а знание этого языка позволяет сэкономить время. Более того, после освоения уже можно выполнять оплачиваемые задачи. Существующие базы библиотек сделают работу с Python максимально простой.

Следующим претендентом на изучение является Java. Язык популярный, используется при решении многих задач. Правда, осваивать его будет сложнее, чем предыдущий. Интересным вариантом будет и PHP. Особенность языка заключается в том, что есть много вариантов решения одной задачи.

Все специалисты сходятся во мнении, что это худшее начало погружения в профессию

При этом важно, чтобы первый язык позволял решать задачи в выбранной сфере деятельности

Шаг 1: Игра с Целью

Первым шагом к освоению чего-либо становится знакомство с этой сферой. Если вы хотите стать отличным музыкантом, то для начала начните слушать отличную музыку. Если вы хотите написать отличный роман, то вам нужно прочитать множество романов для этого.

И, если вы хотите создать игру, то вдохновляйтесь лучшими играми. Однако недостаточно просто бездумно играть в них. Вы должны делать это с умом, пытаясь понять различные решения, которые разработчикам пришлось воплотить в жизнь.

Обратите внимание на структуру и детали игры, как они сочетаются друг с другом. Для начала начните разбираться в играх

Только после этого вам нужно будет волноваться обо всём остальном. Это первый шаг на пути к тому, как стать разработчиком игр.

Как научиться программированию

Итак, вы определились с языком, теперь нужно придумать, как его выучить. А выучить его вам будет не так уж и сложно, как кажется на первый взгляд. У страха глаза велики. Нужно просто приложить усилия и потратить на обучение несколько месяцев. Это не так уж и много на самом деле. Специалисты уже подсчитали, что на изучение programming language нужно в среднем от 6 до 13 недель, если заниматься по 8 часов в день. Если предположить, что вы уже где-то работаете на полный рабочий день, и свободного времени у вас меньше, то это 2-6 месяцев.

Есть еще такая теория как «10,000 hours rule». Она гласит, что в любом ремесле можно стать профессионалом за 10 тысяч часов. Если поделить на 40 часов в неделю, то выйдет около пяти лет. Но это чтобы стать прям экспертом. А для первых серьезных проектов и первой работы достаточно, как мы уже сказали, от нескольких месяцев до полугода.

Где учиться?

  • Книги. У нас в блоге выходила подборка лучших книг для изучения программирования. Рекомендуем к прочтению.
  • Онлайн-курсы. В той же самой подборке о них тоже сказано несколько слов, но если вкратце, то можно заниматься в GeekBrains (рус), Яндекс Практикуме (рус), Codeacademy (англ), Coursera (в основном англ), Skillshare (в основном англ) и так далее.
  • Видеоуроки на YouTube. Есть много хороших бесплатных курсов. В том числе записи уроков из платных видеокурсов прошлых лет — слитых или выложенных самими школами. 
  • Оффлайн школы и тренинги. Это самый дорогой способ научиться программированию, но самый эффективный. Под личным руководством наставника вам будет гораздо проще, ведь не придется задерживаться на одном месте.

Что общее у всего вышеперечисленного? Наличие практики. В хороших учебниках всегда есть разделы с практикой, на онлайн-курсах есть тренажеры или домашние задания. На ютубе вы можете сами попробовать написать программу по туториалу. А на тренингах вы именно этим и будете заниматься большую часть времени. Возможность написать что-то своими руками будет вас мотивировать. В идеале вы должны написать свою первую программу уже на первом, максимум на втором уроке.

Стоит ли поступать в университет, чтобы научиться программировать? Можно, но это вовсе не обязательно. Курс обучения в университете длится от четырех лет. За это время вы спокойно можете выучиться самостоятельно и получить несколько лет опыта. Поступать стоит в том случае, если вы планируете освоить сложную профессию по узкой специальности, и знаете, что в этом конкретном университете вас этому могут научить.

Выбор языка и направления

Стать программистом с нуля в домашних условиях довольно сложно. Для начала придется выбрать более узкую сферу специальности, ведь программист может делать приложения, сайты и многое другое. Потом следует определиться с языком программирования. Это непросто, придется углубиться в сферу и потратить много времени на детальное изучение.

Сам процесс обучения может быть полностью самостоятельным и проходить с помощью доступной литературы и программного обеспечения, сервисов. Некоторые находят себе наставников или идут в специализированные учебные заведения для получения сертификата или диплома. Все варианты могут быть одинаково эффективными.

Рассмотрим основные направления и языки программирования.

  • Веб-разработка. Здесь используются такие языки, как Python, Ruby, JavaScript и PHP.
  • Разработка для мобильных устройств. Для гаджетов под управлением IOS нужно знать Objective-C, а если нужно писать для Android, то используется язык Java. В данном направлении также используется Swift.
  • Разработка программ и игр для ПК. Следует знать такие языки: C++, C#, C.
  • Машинное обучение и ИИ. Для работы в этом направлении используются Python, R, Scala.

А что насчёт книг?

Чтобы стать разработчиком игр, нужно много практики, но это не значит, что её не стоит подкреплять теорией. Стоит отметить, что подавляющее большинство хороших книг по геймдеву можно найти только на английском языке. Держите настоящую дорожную карту по геймдеву от одного из пользователей GitHub:

Каждый из этих блоков включает в себя ряд книг по разработке игр, которые позволят двигаться в нужном направлении.

Особой популярность пользуются ещё такие книги по геймдеву:

The first volume of Foundations of Game Engine Development discusses the mathematics needed by engineers who work on games or other types of virtual simulations. The book begins with conventional treatments of topics such as linear algebra, transforms, and geometry. Then, it introduces Grassmann algebra and geometric algebra to provide a much deeper understanding of the subject matter and highlight the places where traditional arithmetic with vectors, matrices, quaternions, etc., isn’t quite correct. Includes exercises.

Over the years, the Unity game engine has extended its scope from just being about creating video games to building AR/VR experiences, complex simulations, real-time realistic rendering, films, and serious games for training and education. Its features for implementing gameplay, graphics, and customization using C# programming make Unity a comprehensive platform for developing professional-level, rich experiences.

With this book, you’ll be able to build impressive Unity projects in a step-by-step manner and apply your knowledge of Unity concepts to create a real-world game. Complete with hands-on tutorials and projects, this easy-to-follow guide will show you how to develop your first complete game using a variety of Unity tools. As you make progress, you’ll learn how to make the most of the Unity Editor and create scripts using the C# programming language. This Unity game development book will then take you through integrating graphics, sound, and animations and manipulating physics to create impressive mechanics for your games. You’ll also learn how to code a simple AI agent to challenge the user and use profiling tools to ensure that the code runs in a performant way. Finally, you’ll get to grips with Unity’s AR Foundation for creating AR experiences for 3D apps and games.

By the end of this book, you’ll have developed a complete game and will have built a solid foundation using Unity’s tooling ecosystem to develop game projects of any scale.

In this new and improved third edition of the highly popular Game Engine Architecture, Jason Gregory draws on his nearly two decades of experience at Midway, Electronic Arts and Naughty Dog to present both the theory and practice of game engine software development. In this book, the broad range of technologies and techniques used by AAA game studios are each explained in detail, and their roles within a real industrial-strength game engine are illustrated.

New to the Third Edition

This third edition offers the same comprehensive coverage of game engine architecture provided by previous editions, along with updated coverage of:

  • computer and CPU hardware and memory caches,
  • compiler optimizations,
  • C++ language standardization,
  • the IEEE-754 floating-point representation,
  • 2D user interfaces,
  • plus an entirely new chapter on hardware parallelism and concurrent programming.

This book is intended to serve as an introductory text, but it also offers the experienced game programmer a useful perspective on aspects of game development technology with which they may not have deep experience. As always, copious references and citations are provided in this edition, making it an excellent jumping off point for those who wish to dig deeper into any particular aspect of the game development process.

Key Features

  • Covers both the theory and practice of game engine software development
  • Examples are grounded in specific technologies, but discussion extends beyond any particular engine or API.
  • Includes all mathematical background needed.
  • Comprehensive text for beginners and also has content for senior engineers.

4

Как стать разработчиком мобильных приложений?

Если мы говорим про случай, когда у человека нет знаний и опыта в программировании, то стоит для начала изучить:

  • один из языков программирования (Kotlin или Swift),
  • саму платформу (Android или iOS),
  • объектно-ориентированное программирование,
  • алгоритмы и структуры данных (без фанатизма, только основные принципы).

Также нужно обязательно научиться гуглить. Кому-то этот совет может показаться оскорбительным, но это не так. Программисты всех уровней и мастей гуглят,  без исключений. Умение правильно задать вопрос — навык, который потребуется и в дальнейшей работе с коллегами, если этот вопрос нужно будет адресовать им.

Стоит оговориться, что для начала разработки под iOS необходимы устройства от Apple. Как минимум нужно приобрести бюджетный Mac mini или MacBook на вторичном рынке. Для изучения одного из языков программирования и изучения самой платформы подойдут основные туториалы на сайте Apple или Android. В идеале — найти ментора, который поможет на первоначальном этапе и выстроит план обучения. Курсы тут тоже будут кстати, но не стоит надеяться, что после простого их прослушивания всё станет очевидным и понятным.

Преимущества и недостатки способов обучения

У каждого метода обучения есть преимущества и недостатки. Учитывайте их, когда будете выбирать подходящий для себя вариант обучения.

Самостоятельная работа

Главное преимущество самообучения – бесплатность и возможность подстраивать график под себя. Однако это самый трудный путь, поскольку вам придется постоянно изучать и усваивать большое количество информации. Вам нужно будет самостоятельно составить учебный план, искать источники знаний и т. д. Вы чаще будете сталкиваться с ошибками и малополезной литературой, т. к. у вас пока мало опыта. Однако не стоит бояться самообучения, потому что даже при выборе других методов вам все равно придется частично изучать информацию без помощи преподавателей и наставников.

С помощью наставника

Наставник выделит самый важный материал, расскажет вам о ошибках и подводных камнях, даст те знания, которых нет в книгах. Это эффективный, но платный метод обучения. Он поможет вам сэкономить время, но нанимать наставника стоит только в том случае, если вы настроены на освоение программирования, иначе вы просто потеряете деньги.

На курсах или в университете

Университет даст вам высшее образование и знания в сфере математических наук, однако программирование придется изучать самостоятельно. Программа в вузах отстает от современных тенденций. Курсы – это риск. Если у учителя работа поставлена на поток, он будет набирать большие группы и преподавать прописные истины, которые мало чем вам помогут. Лучше предпочесть наставников с индивидуальным подходом.

Полезные советы для обучающегося

Если вы решили учиться программированию, нужно максимально расширить перечень источников информации и как можно чаще практиковаться.

Изучение чужого кода

Изучение чужих фрагментов кода поможет вам быстрее обучиться основным функциям и предотвратить часть ошибок. Заодно вы дополните свой арсенал несколькими приемами и сможете оптимизировать код.

Изучение чужого кода поможет вам быстрее научиться программированию.

Написание собственных элементов

Без практики вам не удастся быстро овладеть программированием, поэтому нужно как можно быстрее перейти к написанию собственных элементов кода.

Использование отладчика

Отладчик поможет вам увидеть ошибки в своем коде, что сэкономит много времени. Желательно пользоваться им постоянно. Он нужен не только начинающим, но и опытным программистам, поскольку они могут допустить ошибку по невнимательности.

Обращение к англоязычным источникам

На англоязычных сайтах вы найдете ту информацию, которой может не быть в российском сегменте интернета

Это особенно важно, если вам не удалось найти достаточно обучающей литературы по выбранному языку

Создайте план обучения

Теперь мы можем создать план обучения. Постарайтесь следовать ему шаг за шагом: сложные вещи легче понять, если уже знаете простые.

HTML и CSS

Это строительные блоки большинства веб-сайтов. Необходимо хорошо разбираться в них, чтобы получить работу. К счастью, существуют сотни бесплатных и платных ресурсов, которые помогут вам в изучении.

freeCodeCamp — это ресурс, который учит всему, что связано с разработкой сайтов. Именно благодаря этим пошаговым урокам я выучил HTML, CSS и JavaScript!

Начните с Responsive Web Design Certification и разделов Basic HTML, HTML5 и Basic CSS. Эти разделы знакомят вас с HTML и CSS, и в конце вы будете создавать формы и стилизовать HTML с помощью каскадных переменных.

Изображение, которое вы создадите в разделе Basic CSS: Cascading CSS variables

Чтобы улучшить свои навыки CSS, изучите раздел Applied Visual Design до Create a More Complex Shape Using CSS and HTML, а затем сделайте все задания в Responsive Web Design and CSS Flexbox. Остальные разделы пока можно пропустить.

Научившись использовать HTML и CSS для создания и стилизации веб-страницы, пройдите практику на Responsive Web Design Projects. Вы примените все ваши знания, чтобы создать пять веб-сайтов.

Контроль версий

Контроль версий — это система, в которой вы сохраняете файлы, чтобы можно было посмотреть, что и когда изменилось

Его используют почти везде, и знать основы действительно важно

Есть большой гайд An Intro to Git and GitHub. Вы можете изучить его до разработки на HTML и CSS и использовать контроль версий для проектов.

Теперь попробуйте сделать все свои проекты в локальном редакторе (например, VS Code) и загрузить их в CodePen, когда закончите. Это поможет накопить опыт.

Существует много способов использования систем контроля версий, но для начала нужно уметь создавать GitHub-репозиторий, связывать его с локальной папкой, фиксировать работу, которую сделали, и отправлять её в GitHub. Как только научитесь этому, сможете эффективно работать в команде разработчиков.

JavaScript

JavaScript — это язык, на котором работают 94,8 % веб-сайтов. JavaScript позволяет сделать статический веб-сайт полностью интерактивным.

Изучите раздел Javascript Algorithms And Data Structures Certification на freeCodeCamp. На работе большую часть времени вы будете тратить на написание кода на JavaScript. Чтобы хорошо в нём разобраться, нужно сделать все задания.

Портфолио

Чтобы показать работодателям ваши умения, нужно портфолио. К счастью, у вас уже будет 10 проектов: 5 на HTML и CSS и 5 на JavaScript. Убедитесь, что вы загрузили всё на GitHub, чтобы будущие работодатели могли посмотреть и увидеть, как хорошо вы работаете.

Теперь можно выложить новые проекты на сайт-портфолио. Используйте полученные знания в JavaScript, чтобы добавить интерактивности, например, всплывающее описание при наведении курсора, слайд-шоу или даже мини-игру.

Перспективы мобильной разработки в цифрах

Мобильных разработчиков нужно всё больше. По данным международной системы аналитики , в апреле 2020 года доля мобильного трафика составляла 57%, хотя еще в 2012 году не превышала 14%. Маркетплейсы тоже растут: в первом квартале 2020 года Google Play предлагал 2,5 млн приложений, AppStore — 1,8 млн (по данным Statista.com).


Количество приложений в разных маркетплейсах. Источник

Вероятно, всё это надолго. Уже появляются док-станции для смартфонов: ноутбук без процессора, превращающий смартфон в полноценный компьютер или компактный настольный девайс, к которому можно подключить смартфон, монитор и клавиатуру с мышью. Два таких проекта — Mirabook и NexDock — получили краудфандинговые инвестиции, а Samsung запустил свою линейку DEX Station.

Шаг 9: Не Поддавайтесь Своему Эго

В любой момент вашего путешествия к тому, как стать разработчиком игр, вы можете подумать, что ваши идеи незаменимы и неповторимы.

Вы можете быть самым талантливым разработчиком игр, но это будет иметь мало значения, если вы не сможете реализовать эти таланты.

Тысячи таких же энтузиастов как и вы пытаются начать свою карьеру в сфере разработки игр. Только те, кто работает над этим усердно, достигает своей цели. В связи с последними событиями будет не лишним сказать, что даже 70-часовая рабочая неделя не будет чем-то необычным. Если вы не хотите посвятить себя тому, как стать разработчиком игр, то другие люди с радостью займут ваше место.

Забудьте про своё эго, позвольте результатам и работе говорить за вас.

Шаг 10: Никогда Не Сдавайтесь

Умопомрачительная карьера в игровой индустрии может быть отличной мечтой, но давайте оставим её в покое. Даже если у вас есть невероятные идеи, для их реализации вам могут потребоваться годы.

Мы не планируем демотивировать вас, просто говорим о предстоящем пути. Конечно, если вы по-настоящему настроены узнать, как стать разработчиком игр, то никто не сможет вас остановить как сильно бы этот кто-то не старался.

Однако факт остаётся фактом: Ваша первая игра скорее всего будет мягко говоря ужасна; первая ваша заявка на работу будет отклонена, если вы не уделите этому достаточно времени.

Вы встретите много препятствий на своём пути, но не позволяйте им сломить вас. Вы же знаете, что некоторые игры нельзя пройти, если не прилагать для этого достаточно усилий.

Как стать разработчиком игр? Анализировать, общаться, учиться и НИКОГДА не сдаваться! Уже звучит проще, не так ли?

Окружите себя технологиями

Окружив себя технологиями, вы будете «обучаться, отдыхая».

Представьте, что…

Вы просыпаетесь рано утром и начинаете день с продолжения онлайн-туториала. Спустя час глубокой концентрации вы решаете передохнуть. Сериал на Netflix? Нет. Вместо этого вы открываете YouTube и смотрите тридцатиминутное выступление на Coding Tech.

Видео набрало более сотни тысяч просмотров. Спикер говорил о будущем CSS, связанном с Grid Layout. Интересно! «Посмотрю, как это работает», – думаете вы.

Вы гуглите CSS Grid и находите статью на Medium. Там вы узнаете несколько ключевых моментов и уже не можете дождаться, чтобы открыть VSCode и применить знания на практике. Здорово!

Во время обеденного перерыва вы включаете подкаст freeCodeCamp о том, как разработчик-самоучка нашел первую работу. Затем вы открываете туториал на Udemy по React. Внезапно вы сталкиваетесь с проблемой, и секция «Вопросы и ответы» не помогает.

Фото: Unsplash

Вы решаете отложить задачу на потом. Вы заходите на codeburst, чтобы почитать о трендах и советах, о которых пишут технические энтузиасты. Это действительно место, где люди делятся знаниями с другими и обсуждают разные проблемы.

Вам на ум приходит идея: «Может, мне стоит начать писать о том, чему я научился? Открываете Google Документы и с волнением печатаете: “Хотите ли вы стать разработчиком?”»

Что должен знать и уметь сеньор разработчик?

Так как же стать Senior разработчиком? Не стойте на месте: осваивайте новые языки и технологии, записывайтесь на вебинары, бросайтесь в принципиально новые подходы, дабы не пасти задних, и развивайтесь всесторонне.

Довольно обобщённые советы, не правда ли? Что ж, попытаемся их структурировать и раскрыть подробнее.

1. Технические навыки

Во-первых, это понимание алгоритмов и умение писать чистый код. Во-вторых, для одной задачи существует множество решений, но именно Senior Developer способен определить, какое из них оптимально в конкретном случае.

Перед началом работы всегда спрашивайте себя:

  1. Можно ли разбить таск на подзадачи, и если да, то как?
  2. Какой подход к решению этой задачи наиболее оптимален?
  3. Смогу ли я подключить других сотрудников, и как в таком случае организовать рабочий процесс?

Если для решения проблемы нужно освоить новую СУБД, фреймворк или сторонний сервис, вы осваиваете это.

Но что реально отличает сеньора от остальных, так это опыт поддержки проектов, даже если речь идёт о всеми забытом и припорошенном пылью легаси коде.

Кроме того, чтобы думать, как Senior, нужно расширять способы обработки информации. В этом поможет книга Иана Макдермотта и Джозефа О`Коннора «Искусство системного мышления». Также есть краткая выжимка основных мыслей в формате аудиокниги:

2. Коммуникативные навыки

Не будем распыляться о том, что старший разработчик должен хорошо знать английский язык. В любом случае держите бесплатные материалы по английскому для айтишников.

Как вы уже поняли, сеньоры часто ведут проекты самостоятельно, поэтому очень важно уметь обрабатывать ТЗ заказчика, задавать правильные вопросы, которые выльются в исчерпывающие ответы, устанавливать сроки выполнения и выстраивать план работ. Разумеется, проджект-менеджеров никто не отменял, но в идеале старший разработчик может справляться и без их помощи

А ещё программирование — это почти всегда работа в команде, поэтому нужно уметь организовать процесс, отталкиваясь от навыков и запросов других сотрудников. Вы должны быть на «ты» с гибкими методологиями разработки, и такие термины, как Agile, Scrum и Kanban, не должны вас пугать.

3. Навыки ментора и интервьюера

Подбор персонала и обучение новичков — задачи, которые нередко ложатся на плечи сеньоров. Как человек, прошедший обучение, становление и набивший достаточное количество шишек, Senior-программист прекрасно знает, какие вопросы задавать, чтобы выделить сильные и слабые стороны кандидата, а также как организовать рабочий процесс для тех, кто уже прошёл собеседование.

Нелишним будет прочесть книги «HBR Guide. Эмоциональный интеллект» и «Как разговаривать с кем угодно, когда угодно и где угодно».

4. Навыки профессионального роста

Если вы думаете, что дослужитесь до звания Senior Developer и закончите на этом свой учебный путь, вы ошибаетесь

Старшие разработчики как никто знают, сколь важно постоянно развиваться, осваивая всё новые и новые горизонты. Они никогда не ограничиваются одним набором инструментов, ведь в погоне за оптимизацией рабочего процесса так или иначе приходится обращаться к чему-то новому

Если у вас есть боязнь применения новых знаний на практике, также известная как синдром вечного студента, вам нужно её преодолеть, чтобы стать Senior разработчиком.

Принципиальная разница между джуном и сеньором в том, что первый, как правило, воспринимает обучение как обязаловку, в то время как второй видит в этом ценную необходимость, ключ от закрытых дверей.

От сеньора редко можно услышать что-то вроде «Ненавижу этот инструмент», поскольку он уже изучил его, выделил все плюсы и минусы, знает, когда его стоит применять, а когда это бесполезная трата времени и ресурсов.

5. Навыки работы с сообществом

Мало того что старшие программисты хорошо выполняют свою работу, так они ещё и «подтягивают» айтишное комьюнити. Часто выступают с докладами, организовывают митапы, пишут документации и полезные статьи, которые помогают развиваться другим.

Иными словами, Senior разработчик не закрывается в своём рабочем пространстве, втихую накапливая знания и скрывая их от остальных. Скорее, это те самые гуру, раздающие дельные советы на Stack Overflow. Они любят делиться своим опытом, так как это:

  • помогает взращивать новые поколения талантливых разработчиков и способствует развитию IT в целом;
  • в ходе общения позволяет почерпнуть полезную информацию и от самого сообщества.

Почему я выбрал Java?

  • На мой взгляд, Java – едва ли не единственный язык программирования, от начала изучения которого до получения конечного продукта проходит не так много времени. Возможно, я такой человек, которому хочется поскорее «пощупать» результат. Чистая теория меня не очень привлекает.
  • Передо мной стояла определенная цель. Я понимал, что работу программиста мне получить будет крайне сложно, необходимо на будущем собеседовании показать хоть что-то и сказать: «Опыта работы нет, диплом тоже – не совсем то, что нужно, но зато есть вот это – посмотрите». Но, к счастью, я получил работу через стажировку.
  • Сейчас есть огромное количество разнообразных руководств для разработки приложений для ОС Android. Так что здесь у меня буквально все сходилось: и материалов для обучения достаточно, и существовала возможность сравнительно быстрого получения легко осязаемого результата.

Одним словом, после короткого курса C++ я взялся за какое-то руководство по Java для начинающих. Не помню, как оно называлось, помню только, что я бросил его читать, не добравшись и до середины. Мне хотелось поскорее «прогать».

Много ответов на свои вопросы я нашел в этом телеграм-канале.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector