кто такой кодер и чем он занимается
Профессия программист: кодер или создатель?
Знаете ли вы, что музыкальная шкатулка считается одним из первых аналогов запрограммированных механизмов, а жаккардовый ткацкий станок, который был изобретен в 1804 году, является первой системой со своей программой? Хотя, конечно, сама профессия программиста возникла гораздо позже, когда появилась первая ЭВМ.
Сегодня уже трудно представить себе жизнь без специалистов в области программирования. И, если вы решили связать себя с этой профессией, то советуем прочитать нашу статью. Мы расскажем о том, что обязательно пригодится вам при принятии решения. И для начала давайте разберемся, кто же такие программисты и почему эта сфера деятельности так популярна сегодня.
Коротко о профессии
Программист – специалист, который занимается разработкой исходного кода для программы, например, для мобильного приложения, операционной системы компьютера, компьютерной игры и т.д.
Такой код пишется на языке программирования, который состоит из различных символов и слов. Самыми популярными языками являются:
Каждый из них предназначен для решения определенной задачи. Например, Java используется для создания мобильных программ под операционную систему Android, 2D-игр, а PHP применяется для разработки веб-сайтов, серверных приложений, утилит, скриптов.
Какой язык программирования выбрать, программист решает сам в зависимости от конкретной задачи (сделать игру, приложение для web или программу для сервера) и собственных знаний. Квалифицированный программист уверенно использует 2-4 языка.
Часто программистов называют «айтишниками», что является ошибкой. IT-специалист может заниматься технической поддержкой, системным администрированием, разрабатывать интерфейсы и другими видами деятельности, связанными с компьютером. Программисту для работы вовсе не обязательно наличие компьютера, он может написать программу на листе бумаги.
О специализации программистов
Если говорить общими понятиями, то специализация программистов подразделяется на три вида:
Каждая из специализаций включает в себя несколько направлений работы программиста. Давайте поговорим о них подробнее.
1С-программист
Это одна из самых популярных специализаций программиста, которая по сей день не теряет спрос на рынке труда, хотя у профессионалов к ней двоякое отношение: некоторые разработчики не считают 1С языком программирования.
1С-программист создает алгоритмы, которые применяются в различных отраслях, а также занимается настройкой и доработкой существующих программ по запросу клиента. Он должен знать язык конфигурации 1С, типовые блок-схемы и базы данных T-SQL.
Чаще всего программистов 1С нанимают компании, которые осуществляют внедрение подобных программ в регионах. Если предприятие имеет потребность в постоянной настройке и обслуживании 1С-программ, то они берут такого профессионала в штат на постоянной основе.
Инженер-программист
Это одно из немногих направлений деятельности программиста, которое требует серьезной профессиональной подготовки специалиста, ведь для работы понадобятся знания не только программирования, но и математики, физики и других дисциплин.
Инженер-программист задействован во многих технологических и производственных процессах, в частности, занимается разработкой программ для автоматизации производства. Именно он программирует бытовую технику, без которой так трудно представить нашу повседневную жизнь: микроволновки, хлебопечи, роботы-пылесосы и т.д.
Такой специалист должен хорошо разбираться в технической области, в которой работает, знать языки программирования (C/C++, C# и т.д.) и низкоуровневое программирование (Assembler).
Front-end разработчик
Программист этой специализации занимается разработкой интерфейсов. Он создает внешний вид сайта и, как правило, использует для этого JavaScript. При отсутствии верстальщика может работать с HTML-кодом.
Front-end разработчик востребован в крупных компаниях, которые занимаются разработкой сайтов. Сам факт разделения обязанностей между Front-end и Back-end разработчиками говорит о высокой культуре работы в организации.
Front-end разработчик должен знать фреймовики, HTML и CSS, препроцессоры, и, конечно, язык программирования JavaScript, включая его библиотеки. Также он должен владеть графическими редакторами, основами SEO-оптимизации и другими технологиями, необходимыми для разработки сайта.
Back-end разработчик
Если Front-end разработчик отвечает за декоративное оформление сайта, то Back-end разработчик создает основу сайта, т.е. его программно-административную часть.
В своей работе он использует разные языки программирования, но чаще всего это PHP, Java, Go, Python и Ruby.
Full-stack веб-разработчик
Такой специалист может вести весь проект от начала до конца, он объединяет в себе функции и Back-end разработчиков. Его еще называют мастером на все руки в области программирования и, соответственно, он должен владеть всеми технологиями, которые применяют в своей деятельности Front-end и Back-end специалисты.
Чаще всего Full-stack разработчик работает в небольших компаниях и стартапах в единственном лице или в команде с Front-end и Back-end разработчиками, выступая в таком случае в роли координатора их работы.
Разработчик игр
Название специализации говорит само за себя. Программист подобного профиля занимается разработкой игр с нуля. Как правило, это десктопные, мобильные и массовые многопользовательские онлайн-игры (MMORG).
Разработчики игр должны знать языки программирования С#, C++, Java, Open GL или DirectX и игровые движки, например, Unity, Unreal Engine, Torque.
Android разработчик
Специалист этой области программирования разрабатывает мобильное приложение под операционную систему Android. Фронт работы может разделяться между Front-end и Back-end разработчиками, но, как правило, Android разработчики создают приложения от начала до конца или включаются в рабочий процесс на любом этапе создания.
Такой специалист востребован в стартапах, игровых студиях и компаниях, деятельность которых связана с разработкой приложений для мобильных устройств. Android разработчик должен знать: Java, OpenGL, Android Studio, Android SDK.
iOS разработчик
Он создает программы для мобильных устройств с операционной системой iOS. Такой специалист также востребован, как и Android разработчик, в компаниях, которые занимаются созданием мобильных приложений.
iOS разработчик должен знать следующие технологии: CoreData, Swift или Objective-C, XCode, OpenGL, Cocoa Touch, CoreGraphics.
Надеемся, что замысловатые названия профессий не напугали вас, а, напротив, подогрели интерес к этому виду деятельности. Но, прежде чем выбирать из предложенного списка понравившуюся специализацию, следует учесть наличие определенных личностных качеств, а также свою мотивацию.
О качествах программиста
Основная задача программиста – написание кода, но для этого знания языков программирования недостаточно. Специалист взаимодействует с заказчиками, командой, работает с техническими заданиями – в этом заключается главное отличие профессионала в области программирования от кодера.
Вот ключевые качества, которыми должен обладать программист:
Кроме того, программист должен стремиться к самосовершенствованию, постоянно изучая новые технологии в своей области работы, иначе он рискует потерять свою значимость на рынке труда и остаться невостребованным.
Здорово, если специалист такого профиля интересуется изучением иностранных языков, ведь это открывает множество перспектив: стажировка и работа в иностранных компаниях, работа над проектом международного уровня, преимущество в карьерном росте.
Сколько зарабатывает программист?
Профессия программиста со временем приобретает особую значимость, а все потому, что цифровой мир все больше поглощает реальный. Отсюда и привлекательная зарплата. Конечно, в регионах уровень оплаты труда таких специалистов варьируется от 25 до 35 тысяч рублей в месяц. Профессионалы высокого уровня могут претендовать на зарплату в размере 50-65 тысяч рублей в месяц в зависимости от круга обязанностей и компании, в которой они работают.
Куда более привлекательнее обстоят дела с зарплатами программистов в столичных регионах. По данным сайта Superjob, 50 тысяч рублей – стартовый размер оплаты труда в Москве, опытные специалисты получают от 90 тысяч рублей, при этом доход не ограничен. Средний заработок программистов со стажем работы и претендующих на вышестоящие должности – 130 тысяч рублей в месяц.
В Америке программист зарабатывает примерно от 250 до 500 тысяч рублей в месяц или 45-90 тысяч долларов в год. А в Японии такие специалисты оцениваются примерно в 200-220 тысяч рублей в месяц. Вы можете убедиться в этом сами, заглянув на популярные сайты поиска работы за рубежом.
Да, зарплата в этой сфере действительно привлекательная, но не стоит забывать, что она зависит от уровня квалификации специалиста, места работы и сложности проектов, если речь идет о проектной работе.
Преимущества и недостатки профессии
Конечно, высокая зарплата – несомненный плюс, но при выборе профессии не стоит опираться только на один критерий, а лучше здраво взвесить все «за» и «против».
Давайте сначала о хорошем. Программист – востребованная вакансия на рынке труда, причем работу найдет и программист 1С и web-разработчик, главное определиться, что именно важно при выборе работы.
Работа программиста полна творчества и интересных задач. Сегодня он пишет сайт для интернет-магазина, а завтра программирует роботов или работает над очередным крутым приложением для владельцев Apple.
Также плюсом является то, что программист может работать не только в офисе, но и удаленно, т.е. совершенно не привязывать себя к месту и времени. Многие известные IT-компании давно перешли в режим свободного графика, ведь главное в их работе – результат. А офисы крупных представителей IT-сферы впечатляют своим масштабом, креативом и удобством. Там есть все для комфортной работы программистов – чего стоит только офис компании Google.
Более того, специалисты такого профиля могут работать удаленно на иностранную компанию, только для этого понадобится знание иностранного языка.
К минусам профессии можно отнести сидячий образ жизни, ведь программист проводит много времени за компьютером. Если вы решили связать свою жизнь с программированием, обеспечьте себя физическими нагрузками в свободное время от работы, а также делайте перерывы в работе каждые 45 минут.
Еще одним недостатком является то, что программист должен постоянно повышать свой уровень профессионализма, ведь компьютерные технологии не стоят на месте, а полученные знания в учебных заведениях быстро устаревают. Хотя этот факт можно отнести и к плюсам профессии, ведь это здорово мотивирует к совершенствованию себя как специалиста. Согласны?
Куда пойти учиться?
Конечно, с профессией хорошо бы определиться еще в школьные годы, ведь тогда вы начнете углубленно изучать математику, информатику, иностранные языки и знакомиться с полезной литературой о будущей специальности.
Чтобы стать хорошим специалистом, лучше всего закончить профильное учебное заведение и получить соответствующий диплом, ведь, благодаря профессиональному образованию, вы не только приобретете полезные знания, но и вырастите как личность. Более того, обучение в вузе поможет обрести новые знакомства и зарекомендовать себя еще будучи студентом, а это залог успешного трудоустройства.
Сейчас выбор специальностей достаточно обширен. Вот несколько из них:
Перед поступлением советуем тщательно ознакомиться со списком направлений, которые есть в выбранном вами учебном заведении, и принять решение, учитывая свои способности и пожелания.
Есть много курсов, которые можно пройти онлайн параллельно основной учебе или чтобы прокачать уже имеющиеся навыки. Советуем заглянуть на следующие ресурсы:
На самом деле полезных ресурсов для программистов бесчисленное множество. Вот еще 70 бесплатных сервисов для изучения программирования.
Какое бы учебное заведение вы ни выбрали, помните, что эта профессия требует постоянного обучения, поэтому не останавливайте свое развитие, если хотите стать профессионалом.
И напоследок
Сегодня профессия программиста – одна из самых востребованных на рынке труда. И это не просто профессия, а свойство характера, когда многочисленные знаки, символы, задачи, компиляции приносят удовольствие.
Никто не говорит, что для того, чтобы стать профессионалом в этой области, нужно быть талантливым человеком. Здесь речь идет о стремлении в постоянном совершенствовании своих навыков и о соответствии личностных качеств данной профессии.
Советуем пройти нашу онлайн-программу «Самопознание», где за несколько недель с помощью психологических тестов и упражнений вы узнаете сильные и слабые стороны, более 50 характеристик своей личности и поймете, обладаете ли вы теми качествами, которые присущи специалистам в области программирования. Рекомендуем!
Если вы решили стать программистом, начинайте свое знакомство с этим ремеслом прямо сейчас: прочитайте полезную литературу, пройдите онлайн-курс и пообщайтесь с тем, кто уже достиг успеха в этой области. Это поможет принять взвешенное решение и не ошибиться с выбором.
Отчасти мы все программисты, ведь каждый из нас пишет сам свою жизнь на своем языке. Любите свое дело, стремитесь быть лучшими в нем, и тогда все вершины будут покорены.
Кодер и программист, в чем разница?
Программист — это собирательное название для людей различной квалификации, каждый из которых задействован в процессе написания программ. Как то так.
————-
Например, есть у меня знакомый кодер и знакомый программист. И мне нужна программа «калькулятор». Программисту я просто скажу «напиши мне калькулятор». И он мне напишет. Если я кодеру скажу «напиши мне калькулятор», он задаст мне 100500 вопросов: «на чем писать, как рисовать кнопочки, какое сделать поле ввода, как цифры распологать на клавиатуре. » и т. п.
————-
Вот уж с точностью до наоборот.
Кодер не будет задавать вопросов, он или откажет или напишет (попробует написать) так, как разумеет. Врядли получится что то хорошее. Ибо кодеров не учат ничему, кроме синтаксиса того или иного языка. Вообще ничему. В цивилизованных странах кодеры учатся на курсах «Любой_язык_программирования за 21 день» и бегут устраиваться на работу; у нас же — в ПТУ, но с работой может не повезти, ибо наши чёкнутые директора даже у уборщиц требуют высшее образование. =(
А вот как раз человек, отучивший на программиста в ВУЗ’е, назадаёт кучу вопросов ибо ВУЗы готовят начальников разного рода и их учат, кроме всего прочего, тому, как и о чём говорить с клиентами и как правильно техническое задание написать. Тогда программа будет [более-мение, заказчики, увы, сами не знают чего хотят, частенько] соответствовать желаемому. Кодеры же о существовании таких вещей и не подозревают.
Разница в выполняемой работе.
Кодер пишет код, который ему говорят писать. Т. е. дают ему какой-либо алгоритм, говорят с помощью каких инструментов его реализовать надо и кодер его реализовывает.
Программист же сам ищет инструменты и придумывает/ищет алгоритмы, которые нужны ему для реализации его задач. Соответсвенно и задачи ему ставятся в общем виде. Что-то типа «напиши программу, которая умеет то-тот и то-то».
Например, есть у меня знакомый кодер и знакомый программист. И мне нужна программа «калькулятор». Программисту я просто скажу «напиши мне калькулятор». И он мне напишет. Если я кодеру скажу «напиши мне калькулятор», он задаст мне 100500 вопросов: «на чем писать, как рисовать кнопочки, какое сделать поле ввода, как цифры распологать на клавиатуре. » и т. п.
Т. е. получается, что кодирование это лишь часть работы программиста. А еще проектирование, тестирование и прочее и прочее.
Кодеры vs инженеры: как не остаться «кодировщиком» на всю жизнь?
В эпоху популярного тренда «войтивайти» с новой силой вспыхнула дискуссия о том, кто сегодня приходит в индустрию — «кодеры» или инженеры, кто из них на самом деле нужен компаниям и и за кем будущее в профессии. Как не остаться «кодером» на всю жизнь и совершить качественный скачок в инженеры-программисты, рассказали основатели курса cron.is Юрий Петранков, Илья Яскевич и Игорь Куценко.
— В чём разница между «кодером» и инженером-программистом?
— Инженер-программист — это инноватор, который с помощью технологий не только создаёт что-то новое, но и постоянно ищет способы, упрощающие решение однотипных задач. Закончив программировать модуль, он уже думает о том, как его ускорить, сделать оптимальнее, безопаснее и пр. Основатели Google создали поисковик, потому что знали, что смогут «заставить» его работать быстрее и лучше, чем у конкурентов (Yahoo и Lycos).
А вот кодировщик не создаёт ничего, он пользуется готовыми решениями, день за днём выполняя одно и то же. Такие люди тоже приносят пользу, но их бич — невысокая зарплата по сравнению с первыми и отсутствие карьерного роста. Пример такого специалиста — PHP-программист, создающий только интернет-магазины. Это не значит, что PHP — плохой язык (профессионалы создают нём поразительные вещи), просто так сложилось, что это лучший пример кодера, пишущего примерно одинаковый функционал на одном и том же движке.
— Как понять, к какому «классу» разработчиков принадлежишь?
— Каждый человек сам выбирает, что ему ближе. У инженера-программиста нет стандартного графика 8 часов в день, потому что он не знает счёта времени, и ему это нравится.
А вот кодировщику ближе стабильная, неспешная и предсказуемая работа. Алгоритм такой:
Взгляните на следующий код:
Инженер-программист очень настороженно отнесётся к данному коду, так как он изобилует подводными камнями и, с большой долей вероятности, в итоге приведёт к проблемам с дальнейшим развитием продукта.
С точки зрения трёх базовых принципов ООП всё верно: код декомпозирован на объекты.
С точки зрения популярных паттернов проектирования код использует паттерн «одиночка» (singleton).
Но личный опыт, полученный на болезненных ошибках, или целенаправленное изучение шаблонов проектирования GRASP подскажут:
Все эти ошибки очень сильно затрудняют переиспользование данных классов и усложняют отладку.
Чтобы видеть все эти проблемы в коде, вам необходимы определённые фундаментальные знания.
— Что имеется в виду под «фундаментальными знаниями»?
— Прежде чем ответить на этот вопрос, нужно обрисовать сегодняшнюю ситуацию в ИT. Люди из других специальностей стремятся попасть в индустрию, и некоторым это даже удаётся. Но такие «специалисты» спустя годы остаются на том же уровне и с той же зарплатой, с которой начинали. Причина застоя кроется в нежелании изучать информатику.
Для большинства из нас информатика ассоциируется со школой, набором текста в Microsoft Word и рисованием в Paint. Но слово «информатика» переводится на английский язык как Сomputer Science. Именно Computer Science необходимо знать для «качественного скачка» или, другими словами, превращения кодера в инженера-программиста.
В действительности информатика затрагивает очень широкий спектр тем: теорию алгоритмов, структуры данных, архитектуру компьютера, анализ производительности, компьютерную безопасность и криптографию, компьютерные сети, базы данных и многое другое.
Заметьте, что в списке перечисленных дисциплин нет популярных фреймворков ASP.NET MVC, AngularJS, Laravel и других. Все они функционируют, опираясь на фундаментальные основы информатики.
— Что конкретно, по-вашему, нужно знать, чтобы стать хорошим разработчиком?
— В ИT существует два типа знаний: узкоспециализированные (по определённому языку, технологиям или фреймворку) и фундаментальные (по разделам информатики).
Как правило, курсы — это ориентированная на один продукт программа, дающая знания по определённому языку. Вы получаете знания по функционалу какого-то одного фреймворка, но при этом понятия не имеете о том, как он создан, какие механизмы заложены в его основу. А фундаментальные разделы информатики, которые мы преподаём студентам, показывают, как работают фреймворки, базы данных, поисковые алгоритмы, как оценивать и оптимизировать работу программ.
Без знаний фундаментальных разделов информатики построить карьеру в ИТ сложно. Некоторые аспекты этой области освещает университет, но не все студенты стремятся постичь информатику, отмахиваясь, что им это не пригодится.
Зная, что лежит в основе работы языков и систем, вы можете легко «переключаться» с одних технологий и фреймворков на другие.
Фундаментальные знания не устаревают, а время, потраченное на их освоение, даёт дивиденды.
— Почему многие, с вашей точки зрения, пренебрегают этими знаниями?
— Проблема в том, что не каждому под силу самостоятельно разобраться в их тонкостях. Большинство учебников и статей преподносят информацию в недоступной для понимания форме. Причины этого разные: слишком сложный математический аппарат, нежелание автора расписывать детали тех или иных алгоритмов, подходов или структур данных, незнание автором всех технических деталей.
Знания, необходимые для целостной картины фундаментальной информатики, фрагментированы и содержат ошибки. Поэтому могут понадобиться годы, чтобы разобраться во всех нюансах информатики. А таких временных ресурсов на информатику, как правило, ни у кого нет.
— К слову, один из ваших преподавателей два года проработал в Google. Какое там соотношение инженеров и кодеров?
— Стоит начать с того, о ком именно идет речь: в Google есть несколько разновидностей работников:
Среди первой категории кодеров не может быть в принципе, поскольку все интервью направлены именно на то, чтобы отобрать исключительно инженеров-программистов. Google — это продуктовая компания, ей нужны люди, которые создают что-то новое, а не делают каждый день одно и то же.
Что касается трёх оставшихся групп, сказать сложно, в их наборе участвуют посредники и только финальное интервью проходит непосредственно с представителями Google. Уровень знаний у этих инженеров порой меньше, чем у «гуглеров», но всё равно — они должны быть инженерами.
Каждый работник Google — это высокомотивированный специалист, которому не сидится на месте: ему хочется разрабатывать, разбираться, учиться. Учиться без конца — это суть человека, без которой нельзя попасть в компании такого уровня. Некоторые инженеры Google сидят на работе по 10, порой 16 часов, потому что это им действительно интересно. И для этого «весёлого» времяпрепровождения компания создаёт всевозможные условия. При этом, никто не заставляет вас работать более 8 часов — люди делают это исключительно по своему желанию.
— Можно ли ожидать, что «кодеров» заменят роботы? А инженеры-программисты рискуют?
— Стоит обратиться к исследованию оксфордского университета: профессия инженер-программиста выглядит достаточно перспективной и «безопасной». В исследовании Оксфорда за 2013 год было установлено, что инженеры-программисты имеют 8-процентный шанс на автоматизацию в ближайшие 20 лет. И, конечно же, инженеры-программисты не единственные, кто рискует. В исследовании прогнозируется, что 47% всей занятости в США, скорее всего, будет автоматизировано к 2030 году. Другими словами, учиться на инженера-программиста нужно и как можно скорее.
«Мы учим не языкам программирования, мы учим программировать»
— Создавая курс, вы имели в виду, что программист не может самостоятельно «переквалифицироваться» из кодеров в инженеры? Или пытались облегчить ему задачу?
— Каждый человек, желающий совершить скачок из кодера в инженеры-программисты, должен ответить на вопрос: знает ли он, где искать нужную для этого информацию и сколько времени ему понадобится? Если ответ «да» — начинайте прямо сейчас. Но рассчитывайте, что путь будет не из лёгких.
Понимание подводных камней этого процесса привело нас к созданию курса Cronis, в котором мы объясняем все тонкости фундаментальной информатики, убрав из материалы всю «воду» и не вовлекая в объяснения избыточную, ненужную сложность.
Создавая курс, мы ставили перед собой две цели: максимально понятное объяснение самых сложных вещей и решение сложнейших задач, встречающихся на интервью в лучшие компании мира.
Наша идея очень проста: убрать те мучения, через которые в своё время прошли мы и через которые проходят тысячи кодировщиков и студентов. Сэкономить годы бессмысленных попыток понять книги, для прочтения которых необходимо иметь серьёзнейший математических аппарат.
— Речь идёт о теории?
— Мы говорим не только о теории. За время обучения человек проработает несколько тысяч строк кода, оттачивая свои способности на задачах, которые спрашивают на интервью такие топовые компании мира, как Microsoft, Google, Amazon и Facebook.
— Учите ли вы конкретным языкам программирования и фреймворкам?
— Нет, мы учим программировать. В курсе намеренно не затрагиваются языки программирования и фреймворки, поскольку для этих целей существует сотни других тренингов.
— Кто ваши преподаватели?
— Люди с реальным 10-летним опытом, через который пропущены все знания, которые мы даём. Каждый преподаватель является практикующим программистом, поэтому знания курса актуальны и применимы в реальных проектах. Наши преподаватели работали как у нас, так и за рубежом: в финансовых и полупроводниковых отраслях, космической промышленности, имеется двухлетний опыт работы на Google.
— Хватит ли на усвоение всех этих материалов двух месяцев обучения?
— Это два месяца интенсива. Время обучения оптимально: как показывает опыт, это лучшее соотношение с точки зрения эффективность\скорость — скучать точно не придется.
— Можно ли понять фундаментальные темы информатики без высшего образования в сфере Computer Science?
— Действительно, может показаться, что без высшего образования программиста понять фундаментальные темы информатики невозможно. Это неверно — на самом деле всё, что необходимо иметь человеку, это инженерный склад ума, а также целеустремленность, усидчивость и желание развиваться.
— Для кого всё-таки предназначен курс и кто ваши сегодняшние слушатели?
— Курс отлично подходит для студентов, программистов с опытом, кодировщиков, желающих стать инженерами-программистами, а также людям, тем или иным образом связанным с ИT.
Стоит заметить, что если человек никогда не программировал, ему мы помочь не сможем. Нужно иметь базовые знания о любом языке программирования, а также уметь писать «ифы» и циклы.
У нас учатся парни и девушки от 17 до 35 лет. Студенты, люди с 6- и 10-летним опытом разработки. Среди наших клиентов, например, присутствуют сотрудники компании Wargaming — являясь специалистами одной из самых престижных компаний, они растут и совершенствуются.
За время существования курса никто из наших студентов не бросил обучение. Это говорит о том, что наш формат нравится и нужен людям, желающим развиваться.
— Приведите конкретные примеры того, в чём ваш курс отличается от других.
— За созданием курса стоит 10-летний опыт и обобщение всех знаний, которые получил каждый из нас за время своей карьеры. Было разобрано, переработано и исправлено множество информации. В большинстве своих объяснений мы апеллируем к вещам, которые разъясняли сами их создатели.
Например, тема рекурсии в большинстве статей затрагивается довольно поверхностно. Мы же обращаемся к тому, кто первым ввёл рекурсию в программирование — Эдсгеру Дейкстре.
На логичный вопрос, «зачем уделять столько времени рекурсии?», можно ответить так: алгоритмы сортировок, поиска, деревьев и графов в большинстве своём являются рекурсивными. То же самое касается алгоритмов парсинга (разбора) компилятором языков программирования. В конечном счёте, большинство вещей существующих в информатике, сводится к рекурсии. Также, чтобы инженер мог оценить скорость работы рекурсивной программы и потребляемую ей память, необходимо знать, как работает рекурсия на самом «низком» уровне.
Тоже самое касается деревьев, графов и других структур данных. 99% людей не напишут «с головы» удаление узла из АВЛ-дерева. В курсе эта тема даётся так, что вы никогда не забудете, как это сделать. Потому что мы рассказываем ту суть, которую вкладывали авторы в эту процедуру. А зная суть, вы всегда сможете написать данный код без «зазубривания».
— Делитесь ли вы полезными материалами бесплатно?
Время от времени мы проводим бесплатные открытые лекции, чтобы заинтересованный человек мог оценить, подходит ли ему наш курс.
Эта публикация подготовлена в партнёрстве с обучающим центром Cron.is.
Хотите сообщить важную новость? Пишите в Телеграм-бот.
А также подписывайтесь на наш Телеграм-канал.