11

10 вещей, которые никогда не преподаются программистам в вузах

Andrey Lapin
1 июня 2010 года

1. Мы не правы

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

2. Все, что может сломаться, ломается

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

3. Весь код — дерьмо

После 10-ти лет жалоб на дерьмовый код, который меня окружает, я пришел к
замечательному выводу — весь код (включая мой) — это дерьмо. Конечно,
есть множество степеней дерьмовости кода, но самый лучший код, который я
видел было достаточно сложно читать.

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

4. В программе всегда есть баг

ВСЕГДА! Вопрос только в том, сколько времени потребуется, чтобы найти
баг.

5. Наиболее важная вещь — это клиент

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

6. Программа, изложенная на бумаге не работает

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

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

7. Меньше — лучше

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

8. Кодирование занимает 20% времени

Будьте готовы потратить 80% на обдумывание, отладку, тестирование,
встречи, разговоры… Другие виды деятельности тоже важны и вам следует
учиться не только техническим навыкам, чтобы стать хорошим
разработчиком.

9. Заказчик НИКОГДА не знает, что он хочет

Заказчики имеют необходимость, идею, но они не знают деталей. Разработка
ПО вся состоит из определения деталей и устранения неопределенностей, и
в конеце концов из преобразования идей в код.

10. Кто-то это уже делал

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

Бонусный пункт!


Эй! А ведь наша работа клевая!

Источник

Метки:

11 комментариев к записи «10 вещей, которые никогда не преподаются программистам в вузах»

  1. roza,

    отличный пост!Прочитала уже на Хабре…прониклась.

  2. roza,

    только ссылку на короткую замени.

  3. ast,

    А я преподаю в вузе! И про некоторые пункты рассказываю.

    Особенно про ошибки:
    2) Все, что может сломаться, ломается
    4) В программе всегда есть баг

    И про кодирование:
    7) Меньше — лучше
    8) Кодирование занимает 20% времени
    9) Кто-то это уже делал

    Вот =)

  4. andrey,

    А по моему в вузе и не должны этому учить :) главная цель вуза — научить учиться :)

  5. suslik2,

    [cite]главная цель вуза — научить учиться[/cite]

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

  6. ast,

    suslik2,
    [cite]главная цель вуза — научить учиться

    Это — главная цель твоих родителей. Цель ВУЗа — дать необходимый объём специфических знаний и умений по специальности, которую ты должен выбрать сам ещё до окончания школы.[/cite]

    все же — научить учиться. специфические знания добираются на работе.

  7. Trurl,

    roza,
    исправил ссылку.

  8. Trurl,

    ast,
    Хорошо, что у нас есть такие преподаватели!

  9. Trurl,

    Спасибо всем за отзывы!
    Разместил эту статью на хабре
    http://habrahabr.ru/blogs/htranslations/95063/
    Там она вызвала ажиотаж и попала в топ!

  10. Влад,

    Наконец-то пошли интересные посты. Учитесь товарищи!! УРА!

  11. xenia,

    suslik2,
    а нам в вузе рассказывали, что кто-то типа Рылеева, говорил, что университете вам расскажут где знания брать, т.е. именно научат учиться, а цель родителей — ВОСПИТАНИЕ

Ответить на сообщение Trurl