редакции Выбор
Нужно ли начинающему программисту учить алгоритмы?
Я двадцать лет пишу софт, немножко алгоритмов я знаю. Из того что я понимаю, откуда, вообще, берётся эта наша тяга к алгоритмам. У нас сейчас нету фундаментального образования по программированию. Мы не умеем обучать программистов. У нас нет теоретической базы. Мы пытаемся это сделать. Но тут у нас история Хогвартса. Мы не можем сделать школу волшебников, пока у нас нет ни одного волшебника. Что делает университет, к которому приходят и говорят: «Начните обучать программистов»? Программистов у них нет. Потому что все программисты работают в mail.ru, rambler, yandex. Им там хорошо. Они ещё не на пенсии и нескоро будут.
Университет думает:
- Ок, программирование.
- Давайте найдём какую-нибудь смежную область знаний и пригласим оттуда специалистов.
- Что у нас в программировании?
- Ну, они пишут тексты.
- Там есть немножко цифр.
- Есть плюс, минус, разделить, умножить.
- Ещё эти компы они электрические.
- Давайте пригласим журналистов, которые умеют писать текст.
- Давайте пригласим инженеров-электриков, которые умеют делать электрические схемы.
- Давайте пригласим математиков и физиков, которые умеют алгоритмы.
Получается, что они пытаются обучать алгоритмам и структурам данных. Которые, конечно, имеют отношение к программированию. Там действительно в фундаменте алгоритмы и структуры данных. Но это примерно так, как обучать строителя, физике элементарных частиц. Потому что: «Вы знаете, цемент и кирпич, они, вообще-то, состоят из элементарных частиц». А про цемент и кирпич не рассказывают. Физик, который пытается обучить строителя. Он дома та строить не умеет. Поэтому, выходит, такой строитель, который хорошо может расписать, как работает цемент, но ни разу его в руки не брал. Моё мнение алгоритмы и структуры данных это очень хорошо, но это маленькая прикладная область, которая нужна, если ты пишешь игровой движок, компилятор, сетевой протокол. А большинство программистов решают бизнес-задачи. Там не нужны алгоритмы и структуры данных. Самая сложная математика, это два раза сложить, а потом разделить.
Оригинал шутки: ProgrammerHumor
Нужно ли понимать, как работает пузырьковая сортировка, чтобы работать программистом?
Программирование, скорее о том, как с помощью языка программирования, который является клеем. Правильно и быстро собирать из готовых блоков некие фантомные инженерные конструкции. Знать, как их отлаживать. Как делать так, чтобы они не разваливались. Понимать, почему они разваливаются. Что происходит, когда идёт дождик, а дом начинает оседать на фундаменте. Что происходит, когда идут изменения требований и программа начинает оседать на фундаменте. Все вот эти прикладные штуки. То есть, как именно писать софт. А пузырьковая сортировка нет, не нужна. Потому что в контейнере у неё будет метод sort() и там у неё всё хорошо. А знать надо, например, что, кроме отладчика, у python, есть совершенно замечательный набор инструментов. Который покажет, где именно в программе тормозит. Программисту надо уметь запускать проверку(чекер) и она ему скажет: «Вот здесь ты плохой, вызвал это. Вызови вот это и всё будет хорошо».
Бизнесу нужен писатель. Бизнесу не нужен лингвист. Писателю совершенно не нужно знать, почему 1 тыс. лет назад вот это слово изменилось в это слово. Ему надо уметь применять эти слова.
Эта статья, пересказ прямой речи Григория Петрова:
Помните, что смотря видео в 1.5x, вы экономите 20 минут с часа.
Я проверял грамматику этой статьи, с помощью сайта orfogrammka. Откуда еще здесь могли появится буквы ё? А этот абзац я не проверял.
Смотрите ещё:
Какой язык программирования учить начинающему веб-разработчику?