2021-07-20 14:15:08
Программисты vs кодеры. Точка зрения
По следам вчерашнего поста о необходимости (или её отсутствии) изучения теоретических основ информатики (
Computer science) в сети нашлась довольно интересная статья англоязычного автора
Shalitha Suranga, в которой он описывает свою точку зрения по этому вопросу. И она состоит в том, что настоящий разработчик программного обеспечения должен изучать теорию Computer science.
Вот какие плюсы, по мнению автора, даёт разработчику изучение информатики:
Знание теории мотивирует к написанию оптимизированного кода
Несмотря на постоянный рост мощности вычислительной техники, производительность всё ещё остаётся ключевым фактором при разработке ПО, особенно когда дело касается взаимодействия с аппаратным обеспечением (
hardware) или если ваш продукт используют миллионы пользователей.
А раз уж нужно писать оптимизированный код, то для этого необходимо использовать правильные структуры данных, быстрые алгоритмы, оптимальные модели использования памяти и т.д.
Знание теории отличает программистов от кодеров
Многие считают, что программирование == кодирование. По мнению автора, это не так. Кодер пишет код (как правило, на языках высокого уровня), не задумываясь над тем, как происходит его последующее исполнение. Кодеру даже не нужно знать, как на самом деле компьютер отрабатывает полученные команды.
Программист делает примерно то же самое (пишет код), но с пониманием внутренней механики исполнения кода компьютером, что позволяет ему минимизировать возможные ошибки своей работы.
Таким образом, кодинг – это только часть искусства программирования. Чтобы стать кодером, достаточно выучить синтаксис языка. Чтобы стать программистом, нужно ещё изучить теоретические основы Computer science.
Знание теории помогает получить навыки в смежных IT-областях
Изучение теории Computer science помогает лучше ориентироваться в различных IT-областях, таких как разработка ПО, сетевая инженерия, облачные вычисления, мобильные вычисления, проектирование баз данных, проектирование встроенных приложений и т.д.
Имея необходимый теоретический базис в Computer science, можно со временем переключаться между этими разделами знаний, и развивать свою экспертизу в них.
Знание теории помогает лучше справляться с решением задач
Как правило, при разработке ПО возникающие задачи не имеют единственного верного решения. Всегда есть несколько путей реализации. Наличие теоретических знаний помогает выбрать наиболее эффективное решение под заданные требования.
В качестве примера автор приводит историю создания GitHub – ресурса для совместной разработки и хранения исходных кодов программ. На начальных этапах проекта у его создателей были сложности с корректным сохранением и контролем изменений (
commits) исходного кода, вносимых несколькими разработчиками.
Команда проекта смогла решить эти проблемы за счет использования механизма хэширования и древовидных структур данных, что было бы невозможно без знания теории.
Суммируя изложенное, автор приходит к выводу, что хотя знание теоретических основ Computer science и не является обязательным условием для вхождения в разработку программного обеспечения, знание теории всё же даёт дополнительные преимущества при построении карьеры в этой области.
Если вы не изучали теорию, то можете стать кодером, но не программистом
Shalitha Suranga.
92 views11:15