Что каждый программист должен знать или уметь делать? 🤔
Отвечает Чарльз Уэзерелл, автор книги "Этюды для программистов".
👉 Иметь познания в формальной математике. Уровня для понимания книг Хопкрофта и Ульмана (Структуры данных и алгоритмы), дополненного немного теорией графов, будет достаточно. Дискретная математика крайне необходима; математический анализ может понадобится в некоторых областях.
👉 Умение понятно писать на родном языке. Дейкстра говорил, что человек, не умеющий писать на собственном языке, не может писать хорошие программы (надеюсь, Дейкстра это действительно говорил!). Написание программ, по сути, - как написание прозы. Если вы не можете связно излагать на родном языке, сделать это, например, на С, будет еще сложнее.
👉 Стоит помнить, что программа предназначена для общения людей, а не компьютеров. Что вы напишете, то компьютер и сделает. Ему все равно, что именно. Ваша задача убедить других людей, что то, что вы попросили компьютер исполнить, правильно. Помните, компьютеру на правильность наплевать.
👉 (Бонус, четыре по цене трех). Ответ на последний вопрос значит, что программы должны быть в форме понятных комментариев, объясняющих назначение кода, который следует за этими комментариями. Форматирование должно быть таковым, чтобы читателю было легко и просто понять ваш код. А компилятору без разницы. В частности, следуйте соглашениям, принятым в математике и вашем естественном языке, а не вычитанным в каком-то непонятном руководстве по языку программирования. Сначала пишите комментарии, а затем код, и не наоборот. Если вы не знаете точно, что хотите получить и почему, любой код, который вы напишете, будет, по определению, неверным.
Источник