Чем отличается хороший программист от плохого?
Любой владелец онлайн-бизнеса знает, как важно, когда есть хороший программист, а так же как сложно, когда нет хорошего программиста и приходится мучиться с тем, который есть.
К сожалению, очень мало критериев, позволяющих определить хороший программист, либо нет. Это может быть человек, который в совершенстве знает программирование, но с ним постоянно проблемы: то модуль работает не так, как должен, то пока он в одном месте сайта что-то прикрутит, в другом что-то отвалится, то еще какая-то проблема.
В то же время бывает так, что программист не знает в совершенстве языков программирования, у него уходит много времени на поиски и изучение документации, он делает все медленно, но делает качественно и без выноса мозга (единственная проблема – это сроки, которые всегда затягиваются в 2-3 конца от изначально названных).
Вообще, есть несколько законов Мерфи, относящиеся к сфере программирования.
1. Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший.
2. Как только проект окончательно принят, он становится устаревшим в смысле своих концепций.
3. Любая программа, которая успешно прошла тестирование, устарела.
4. Если что-то у Вас получилось кривовато, назовите это бета-версией.
5. Не позволяйте компьютеру догадаться, что вы спешите.
6. Когда кажется, что все уже работает, все объединено в систему — вам еще осталось работы на четыре месяца.
Чарльз Портман , ICL.
7. Ошибка? Это не ошибка, это системная функция.
Т. Джон Уэнделл.
8. Указание начинающему программисту. Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе.
9. Совет начинающему программисту. Никогда не исправляйте найденные ошибки, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.
10. Свойство четности ошибок. Если написанная программа сработала правильно, то это значит, что во время ее работы выполнилось четное число ошибок или программист не понял задание.
11. Языковый редактор, призванный уберечь программиста от синтаксических ошибок, позволяет вносить в программу весьма хитроумные ошибки, которые не удается обнаружить ни транслятором, ни отладчиком. Обычный текстовый редактор таких возможностей не предоставляет.
И знаете ли, эти правила реально работают в нашей жизни!
Поймите, программирование – это отдельный мир, со своими принципами и законами.
Вы, как руководитель, должны знать основные принципы и только в этом случае, сможете составить качественное техническое задание программисту, что в итоге позволит серьезно сократить сроки разработки и повысить качество программного продукта.
Так вот, вернемся к нашему вопросу: чем отличается хороший программист от плохого?
Хороший программист при разработке программного кода продумывает большее количество возможных сценариев чем не опытный.
Ярчайший пример мы можем увидеть в фильме «Муха», 1986 год.
Помните, что произошло с главным героем фильма?
Когда муха залетела в кабинку телепорта, то компьютер объединил ДНК ученого и мухи, так как в программное обеспечение не было заложена функция, что должен делать компьютер, в случае, если в кабинке окажется более чем одно существо и компьютер принял решение их объединить.
На основании этого, я могу сделать вывод, что главный герой фильма – плохой программист, так как он не предусмотрел такую вероятность.
Таким образом, хороший программист – это человек, который умеет предусматривать все возможные вероятности и сценарии и разрабатывать программный код с учетом этих вероятностей.
Но есть суровая правда жизни — программист хорошим бывает лишь на протяжении 1-2 лет. Дело в том, что хороший программист однажды понимает, что ему не нужен работодатель и он может сам разработав какой-нибудь интересный программный продукт, через некоторое время зарабатывать на много больше своего заказчика и в наше время, с ростом краудфандингогвых платформ, возможностей значительно больше.
И если вы нашли человека, хорошо знающего языки программирования, помните, что относиться к нему необходимо как к инструменту: ему необходимо подробно описывать то, что вам нужно, а так же проверять за ним работу — без этого, к сожалению, никуда не деться.
Вопросы?