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

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

  • автор:

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

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

Теория графов

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

Математическая логика

В написании кода математическая логика является неотъемлемой частью. Всё начинается с банальных if и else , а доходит до самых сложных SQL-запросов, где приходится оперировать массой переменных.

Ещё очень часто пригождается булева алгебра. Рекомендуем вникнуть в правила перерасчёта логических выражений. Это улучшит ваше понимание принципов работы с условиями и алгоритмами.

Теория вероятностей и математическая статистика

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

Обе дисциплины сильно помогут программисту в следующих сферах:

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

Базы данных

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

Теория алгоритмов

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

Моделирование

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

Защита компьютерной информации

У рядовых разработчиков под защитой данных часто подразумевается простая цифровая гигиена. Сейчас стоит задуматься об основных принципах безопасности информации.

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

Чтобы создать единое представление о цифровой безопасности в России уже ввели специальный ГОСТ. В нём есть определения основных систем защиты данных и принципов их использования.

Микропроцессорные системы

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

Операционные системы

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

Більше цікавих новин

10 интересных веб-экспериментов на основе HTML, CSS и JavaScript10 интересных веб-экспериментов на основе HTML, CSS и JavaScript
Лучшие интерактивные сайты на HTML5Лучшие интерактивные сайты на HTML5
10 интересных браузерных игр для изучения веб-разработки10 интересных браузерных игр для изучения веб-разработки
ТОП 10 полезных возможностей Google КартТОП 10 полезных возможностей Google Карт

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

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

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

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

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

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

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

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

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

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

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

Нужно: всем.

Математика

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

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

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

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

Нужно: всем.

Логика

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

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

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

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

Нужно: всем.

Статистика

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

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

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

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

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

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

Информатика

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

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

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

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

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

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

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

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

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

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

Нужно: всем.

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

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

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

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

VladOsadchyi

Программирование — это ремесло. Ремесло, обычно, постигается при помощи практики.

Без задачи, от решение которой вас прёт, вы обречены на провал.

search

stk

Меня всегда поражали люди, которые не имея вообще никаких знаний сразу выбирают себе область и составляют обширный план, начинающийся с ООП, имеющий в середине бд, и заканчивающийся переменными.
Нет, чисто теоретически, изучить всю абстрактную теорию в таком порядке можно. Но на практике это нереально.
Я программировал 3 года в школе. Потом 5 лет в универе. И только к концу 4 курса я понял, что хочу работать в сфере мобильной разработки. До этого меня штырило от всего — OpenGL? Дайте два, будем пробовать. Cuda? Пофиг, что видюха ноута не поддерживает, почитаю пока, потом когда-то забахаю. Lisp? Круто, выносит мозг. Компиляторы? Круууто, магия, хотеть, пишем свой! И так далее, и тому подобное. Я отдавался каждому языку, который встречался на пути.
Так что подумайте, правда ли вы знаете всё об этой сфере и о других, чтобы понимать, где вы хотите работать.

Вначале нужны алгоритмы. Любая программа это алгоритм. Нужно понимание архитектуры ЭВМ. Нужно хотя бы базовое понимание ОС. Нужны знания в каком-то языке. Лучше в двух-трёх. Потом всё прикладное. БД, фреймворки, паттерны и прочее.

  • Facebook
  • Вконтакте
  • Twitter

Destroymydreams,
1. Выучите английский. Программист обязан знать английский язык, без него вообще никуда.

2. Начните с архитектуры ЭВМ. Имейте хотя бы общее представление, что такое процессор, регистры, память, как они взаимодействуют друг с другом.
Копните чуть глубже, чем «процессор — это «сердце» компьютера, а память, это то, где он хранит данные».
Получите представление о том, как компьютер работает с информацией, почему используется двоичный код, почему в байте 8 бит, как машина работает с текстом, целыми числами, что такое число с плавающей точкой. Как это можно записать в память/на диск, какая разница между big-endian / little-endian

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

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

3. Определитесь с языком, который хотите изучать (который вам показался проще, нагляднее и понятнее).

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

  • Facebook
  • Вконтакте
  • Twitter

customtema

Продолжайте писать код.

Присоединитесь к свободным проектам. Скиллы прокачаете, и пользу принесете.

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

Что полезно знать для программирования, помимо знания самого языка С++?
Недавно начал читать С++руководство для начинающих Герберт Шилдт. Скажите, пожалуйста, что полезно.

Что должен знать претендент на вакансию где требуют базовые знания языка C#?
Что в себя в включает базовое знание языка C#?что должен знать претендент на вакансию где требуют.

Что нужно знать для программирования в Bass
Приветствую всех. Подскажите плз, какие знания нужно иметь для bass работы с 2д и 3д звуком? В.

Что нужно знать для программирования под Android?
Всем привет! Скажите пожалуйста, что нужно знать помимо Java, чтобы писать приложения под Андроид?

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

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