Перейти к содержимому

Что нужно знать программисту кроме языка программирования

  • автор:

Всё ли в программировании сводится к знанию языков? — Эксперты дают советы новичкам

Обложка поста Всё ли в программировании сводится к знанию языков? — Эксперты дают советы новичкам

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

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

Всё ли в программировании сводится к знанию языков?

Павел Егоров
заместитель руководителя управления разработки СКБ Контур

Тут такое дело. Опытные разработчики, которые сами потратили на развитие 5‒10 лет напряженного труда, действительно любят щеголять перед молодыми: «Ха, программирование — это просто, главное — научиться правильно мыслить, остальное суета». К сожалению, мир чуть сложнее ?

Людям, умеющим структурировать информацию и мыслить абстрактно, проще дается программирование (которое во многом и есть структурирование и абстракции). Но только одного этого категорически недостаточно.

Есть разные парадигмы программирования и философии, как следствие, разные языки программирования, каждый со своими языковыми возможностями. Переход с одного языка на другой сопровождается переосмыслением взглядов на методы решения задачи — пары недель на этот сдвиг сознания недостаточно. Поэтому развивайте кругозор и осваивайте разные языки — объектно-ориентированные (C# / Java), функциональные (F#, Clojure, Haskell, …), динамически типизированные (Python, JavaScript, …), ориентированные на математику (Octave, R). До кучи поглядите на чудные и нестандартные. При этом недостаточно учить синтаксис — поймите философию языка. С этим кругозором проще осваивать новые языки и технологии по аналогии с уже известными. Но даже это не гарантирует вам, что послезавтра вы справитесь с освоением какого-нибудь инновационного нано-языка аспектно-квантового мета-программирования, непохожего на то, с чем вы имели дело раньше.

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

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

И, наконец, что значит «программирование в общем» и «правильно мыслить»? Мы в компании 6 лет занимаемся образовательными программами для студентов, я сам 10 лет учу программировать на матмехе УрФУ, но никто из нас не знает, как научить «программировать в общем» так, чтобы хоп — и готово! И на все случаи жизни! В программировании есть множество концепций и паттернов принятия решений. Чем больше из них знает программист и чем больше у него опыта их применения, тем проще ему работать. Маленького волшебного подмножества, после которого наступает просветление, к сожалению, просто нет.

Стас Павлов
руководитель направления маркетинга для технических аудиторий в Microsoft Россия

Да, я считаю, что это справедливо в целом, но дьявол в деталях. Хочу сразу предостеречь. Базовый уровень языка не позволит эффективно решать сложные задачи. Базовый уровень позволит стандартным образом решать базовые задачи. Также, я бы не расшифровал «программирование в общем», я бы сказал так: для алгоритмических языков — алгоритмическое мышление, базовая алгоритмическая подготовка, понимание основных принципов работы алгоритмических языков.

Михаил Адигеев
руководитель отдела программных разработок и поддержки компании «ГЭНДАЛЬФ»

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

Дмитрий Щербаков
разработчик мобильного поискового приложения «Яндекс»

Важно научиться учиться — пробовать новые идеи, осваивать новые технологии, применять их в нужном месте и в нужное время. То же самое можно и применить к языку — это действительно только инструмент, но инструмент, который направляет мысли и помогает решать определенный круг задач. Мне пришлось несколько раз поменять язык и инструментарий — сначала core java/idea, затем ssh/vim/c++/python, теперь — android studio и эмуляторы. И на каждом витке во главу угла ставятся разные проблемы и разные решения. Самый грубый пример: программируя в vim-е на с++, больше думаешь о миллисекундах в производительности, а под android — о рефакторингах, выделениях абстракций и гибкости модифицирования бизнес-логики.

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

И еще: не стоит думать, что знание языка программирования — это всё, что нужно изучить для того, чтобы успешно набирать код. Существует множество факторов, о которых никто особо не задумывается в процессе обучения, например: удобство, уровень освоения и «технологичность» IDE, навыки работы с системой контроля версий (например, во время использования git-а можно, с одной стороны, быстро переключаться между задачами, а с другой — погрязнуть в перемещении веточек и бесконечном merge самим с собой), правильность построенного процесса разработки, организация тестирования (как написания тестов, так и прогона их) и прочее, прочее.

Но с другой стороны, нельзя сказать, что это очень хорошо — уметь написать «Hello, world!» на всех языках и не более того. Ведь у каждого языка есть своя специфика и область применимости. Поэтому нельзя не знать конкретных технологий. У каждой технологии есть свои сильные и слабые стороны, которые за две недели не прочувствуешь. Учиться стоит ради двух целей — расширения кругозора (новые инструменты, новые возможности) и для решения конкретной задачи (доскональное изучение конкретного языка). И обязательно нужно поддерживать баланс между этими целями.

Таким образом, на вопрос, справедливо ли мнение, ответ — да, справедливо. Так как инструментов много, язык — один из них. А если расширить вопрос до «что важнее: мыслить или знать конкретные технологии?», то ответ будет следующим: «важно как уметь мыслить и учиться, так и знать конкретные технологии, их сильные и слабые стороны».

Артём Кудзев
руководитель направления маркетинга технологий 2ГИС

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

Дмитрий Сошников
технологический евангелист Microsoft, доцент МФТИ, МАИ, преподаватель детского лагеря JUNIO-R

Абсолютно правильно утверждение. Тем не менее, стоит сразу начинать изучать «хороший» язык программирования, чтобы вырабатывать в себе правильный вкус и чтобы процесс был более занимательным. Из традиционных языков мне всегда был близок C# — для него есть хорошая среда разработки, а программировать можно всё: от игр в Unity до веб-сайтов на ASP.NET или электроники. Для обучения можно посмотреть видеоуроки или почитать книжку C# для школьников.

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

Денис Кудинов
ведущий ios-разработчик Trinity Digital

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

руководитель Лаборатории Больших Данных и Информационных систем Университета Иннополис

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

Методы ИТ используются для решения проблем, и программирование — один из наиболее распространённых способов реализации данных методов. Программирование требует объективности и чёткости мышления. Однако, это не единственный необходимый критерий. Решение некоторых сложных задач также подразумевает использование результатов исследования (например, теории и алгоритмы), архитектуры и других элементов, которые обеспечивают эффективное и качественное программирование.

Иван Бибилов
руководитель направления программирования в GoTo

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

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

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

Да, не для всех профессия программиста так многогранна (будем говорить прямо: для большинства это не так). Но все же. Узнать всю ее красоту, сложность можно, если задаться такой целью.

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

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

Что нужно знать программисту? Чек-лист требований

Итак, вы твердо решили готовить ребенка к IT-карьере, вас интересуют, а каке же требования к программисту? Математика, алгоритмика и английский — только малая часть того, что придется освоить будущему айтишнику. Что ещё нужно обязательно знать, чтобы стать программистом?

Фундаментальная база

Любая профессия стоит на крепком фундаменте. IT — не исключение. Чтобы стать специалистом, нужно обладать определенной базой знаний. Лучше всего, если они будут закладываться уже с детства. Итак, что прежде всего надо знать будущему программисту:

Математику

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

Логику

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

Алгоритмику и структуры данных

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

Базовые инструменты разработки

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

Английский

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

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

знания программиста

Какими знаниями еще должен обладать программист?

«Человеческими». Это значит, что он понимает базовую психологию общения и готов к сотрудничеству. Речь идёт о развитии так называемых гибких навыков. В наше время мало быть просто хорошим специалистом. Необходимо работать как самостоятельно, так и в команде, уметь искать нужную информацию и разбираться в ней. Чтобы быть успешным программистом, нужно соответствовать строгим требованиям рынка, которые постоянно обновляются. Безусловно, спрос на IT-специалистов высокий, но по-настоящему успешные программисты даже не ищут работу. Как так? Хедхантеры гоняются за ними сами.

И им бы не удалось достичь высоких результатов, если бы они просто хорошо разбирались в своей сфере. Работа в IT, вопреки популярному мнению, мало похожа на добровольное заточение в серверной. Наоборот: специалисты постоянно поддерживают контакт, согласовывают действия и ищут компромисс. Без этого встанет работа любой компании! Поэтому обладать модными в наше время soft skills просто необходимо. Элементарные знания психологии, умение их применять и быть гибким — must have каждого программиста.

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

Практика и ещё раз практика

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

Одна из них — fullstack-разработчик. Этот универсальный профи способен и интерфейс сайта сверстать, и функционирование форм и кнопок запрограммировать, и сервер написать. Fullstack-разработчики могут работать с большим набором технологий и создавать веб-проекты в одиночку, одновременно выполняя задачи frontend-программиста и backend-разработчика.

Многофункциональные профи высоко ценятся на рынке и никогда не останутся без работы. Однако их путь начинался с малого — фундаментальной базы IT-знаний. А начать ее осваивать можно прямо сейчас! Помогите ребенку заложить прочный фундамент будущей профессии. Для этого зарегистрируйтесь на нашей платформе Informatics и выберите дату вступительного испытания. Мы проверим знания ребенка и поможем подобрать программу обучения.

Что нужно знать и уметь, чтобы стать разработчиком на С++

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

Что такое C++

C++ — это язык программирования высокого уровня. Это значит, что он работает не напрямую с процессором (хотя такие возможности там есть), а с помощью привычных и понятных программисту команд, похожих на слова в английском языке.

Ещё C++ поддерживает ООП — там есть объекты, классы, свойства, методы и всё остальное. Это значит, что на нём можно реализовать любой современный алгоритм, используя всю мощь объектного программирования.

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

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

Вот пример кода на С++:

#include #include using namespace std; const int INFINITE_ROOTS = -1; int solve_linear(double a, double b, double &root) < if (a == 0) return b == 0? INFINITE_ROOTS: 0; root = -b / a; return 1; >int main() < cout > a >> b;) < const int roots = solve_linear(a, b, x); if (roots == 0) cout return EXIT_SUCCESS; >

Что сейчас пишут на С++

За 40 лет существования языка в сфере разработки мало что поменялось: на С++ традиционно пишут критически важный софт:

  • драйверы;
  • операционные системы;
  • приложения для встраиваемых систем (например, охранная сигнализация);
  • высокопроизводительные серверы и сервисы;
  • компьютерные игры и движки для них;
  • языки программирования;
  • компиляторы и интерпретаторы.

Один из основных профилей С++ — программы, в которых нужна максимальная скорость и производительность. Например, большинство банковских приложений по обработке транзакций написаны на C++, так же как и популярные базы данных — MongoDB и Redis.

Чем отличается C++-разработчик от всех остальных

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

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

Что нужно знать кроме С++

Чтобы хорошо программировать на C++, недостаточно знать только синтаксис и основные конструкции языка. Если разработчик хочет профессионально расти и развиваться, кроме этого нужно знать много разного.

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

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

Сетевая архитектура. Пригодится, если программе нужно будет работать с сетью и получать оттуда данные (или отправлять их). Для разных задач — разные сетевые протоколы.

Инструменты разработки. Тоже нужно всем, не только разработчикам С++. Сюда относятся отладчики, системы контроля версий (например, Git), среды разработки и средства автоматической сборки кода (например, CMake или Make).

Стоит ли выбирать С++ как первый язык

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

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

Наше мнение такое: если вам нужен первый язык программирования, после которого все остальные языки будет выучить гораздо проще, — начните с С++. Или если вы хотите сразу погрузиться в системное программирование — С++ будет отличным стартом.

Сколько платят

По данным Хабр Карьеры, средняя зарплата разработчика на C++ составляет 184 тысячи рублей. При этом новички получают в среднем 88 тысяч, а мидлы — в два раза больше, 172 тысячи:

7 дисциплин, которые стоит знать программисту

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

Евгений Кучерявый

Евгений Кучерявый

Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.

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

Английский язык

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

  • лучше понимать код;
  • читать мануалы;
  • взаимодействовать с иностранными заказчиками.

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

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

Полезная литература:

  • English for Information Technology.
  • Career path Software Engineering.
  • Oxford English for Information Technology.
  • Professional English in Use ICT.
  • Check Your English Vocabulary for Computers and IT.

Нужно: всем.

Математика

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

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

Полезная литература:

  • Томас Кормен. «Алгоритмы: построение и анализ».
  • Дональд Кнут. «Искусство программирования».

Нужно: всем.

Логика

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

$cost = $position['cost']; $costMessage = "Цена: ".$cost; if($position['type'] == $sale['type']) < //Проверяем, участвует ли этот тип товаров в акции if($date > echo $costMessage;

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

Полезная литература:

  • Непейвода Н.Н. «Прикладная логика».
  • Владимиров Д. А. «Булевы алгебры».

Нужно: всем.

Статистика

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

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

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

Полезная литература:

  • Чарльз Уилан. «Голая статистика».
  • Савельев В. «Статистика и котики».

Нужно: аналитикам, ученым, разработчикам ИИ.

Информатика

В школах курс информатики состоит из примерно таких уроков:

  • как включить компьютер;
  • как выключить компьютер;
  • как открыть/создать/удалить папку;
  • как работать в MS Word;
  • как писать программы на Pascal и HTML в тетради.

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

Полезная литература:

  • Иванов Б.Н. «Дискретная математика. Алгоритмы и программы. Расширенный курс».
  • Есипов А. «Информация и информационные технологии».

Нужно: желающим.

Профильные науки

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

  • найти ближайший магазин;
  • решить домашку по математике;
  • рассчитать стоимость строительства;
  • отредактировать фотографию;
  • создать 3D-модель;
  • сохранить запись в базе данных;
  • проанализировать статистику;
  • перевести текст.

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

Нужно: всем.

Программирование

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

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

Читайте также:

  • Как перестать быть джуниором и начать жить
  • Нужен ли программисту английский?
  • Кто такой мобильный разработчик и как им стать

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

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