@Destroymydreams

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

Совсем недавно я решил всерьез заняться программированием. Сферу я уже для себя выбрал. План обучения, в целом, составил. Я вроде начал проходить туторы по языку и писать код, однако, в один момент понял, что одного кода недостаточно для понимания программирования, поэтому возник вопрос по поводу самого начального этапа: какие необходимы базовые знания перед тем как начать учить какой-либо язык? (либо делать это параллельно). И в каком порядке их учить? Я вот выделил пока что для себя такие понятия как ООП, Основы информатики, алгоритмы, базы данных, структуры данных, функции и переменные. В каком порядке мне все это учить, подскажите пожалуйста. И если я что-то упустил, обязательно меня подправьте и добавьте что-то свое. Заранее спасибо!
  • Вопрос задан
  • 1244 просмотра
Пригласить эксперта
Ответы на вопрос 3
zagayevskiy
@zagayevskiy
Android developer at Yandex
Меня всегда поражали люди, которые не имея вообще никаких знаний сразу выбирают себе область и составляют обширный план, начинающийся с ООП, имеющий в середине бд, и заканчивающийся переменными.
Нет, чисто теоретически, изучить всю абстрактную теорию в таком порядке можно... Но на практике это нереально.
Я программировал 3 года в школе. Потом 5 лет в универе. И только к концу 4 курса я понял, что хочу работать в сфере мобильной разработки. До этого меня штырило от всего - OpenGL? Дайте два, будем пробовать. Cuda? Пофиг, что видюха ноута не поддерживает, почитаю пока, потом когда-то забахаю. Lisp? Круто, выносит мозг. Компиляторы? Круууто, магия, хотеть, пишем свой! И так далее, и тому подобное. Я отдавался каждому языку, который встречался на пути.
Так что подумайте, правда ли вы знаете всё об этой сфере и о других, чтобы понимать, где вы хотите работать.

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

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

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

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

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

Дальше уже копайте по специфике своего языка. Думаю, на этом этапе у вас уже сложится чёткое понимание того, что и как дальше изучать.
Ответ написан
Комментировать
customtema
@customtema
arint.ru
Продолжайте писать код.

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

Фаулера почитайте. С практикой это будет очень полезно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы