Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2011, 00:40   #1
FredPerry
Пользователь
 
Аватар для FredPerry
 
Регистрация: 06.07.2010
Сообщений: 18
Радость 20 советов по программированию

20 уроков программирования

"Программист Джонатан Данилко поделился с читателями DCS Media своим опытом, сформулировав 20 наиболее ценных правил, которые он вывел за 20 лет работы. "Вебпланета" представляет перевод его статьи "20/20: Top 20 Programming Lessons I've Learned in 20 Years".

Я программировал с 11 лет и с тех пор полюбил технологии и программирование. Со временем я усвоил несколько трудных и лёгких уроков. Как коллеги-программисты вы могли и не сталкиваться с ними, но я предлагаю их тем, кому интересно вынести что-то полезное из моего опыта.
Вот наиболее запомнившиеся уроки, которые я усвоил за 20 лет работы:


1. Установите срок, который, как вам кажется, потребуется вам на решение проблемы

Да ладно, признайте: я такой же, как и любой другой программист. Я видел программистов, которые сидели перед монитором по восемь часов подряд, пытаясь решить какую-то проблему. Установите себе график в 1 час, 30 или даже 15 минут. Если вы не можете найти решение вашей проблемы за выбранный интервал времени, обратитесь за помощью или поищите решение в Интернете, вместо того чтобы пытаться быть супер-кодером.


2. Язык это язык это язык

Со временем, когда вы поймёте, как работает один язык программирования, вы заметите его сходства с другими языками. Язык, который вы выбираете, должен предоставлять вам подходящий уровень "комфорта", способность производить эффективный (и чистый) код, и, прежде всего, язык должен подходить к проекту и наоборот.


3. Не перестарайтесь с шаблонами проектирования

Иногда проще написать простой алгоритм, чем разработать шаблон-"одиночку" или шаблон-"фасад". По большей части, это также приводит к более чистому и понятному коду.


4. Всегда делайте резервные копии своего кода

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


5. Вы не самый лучший в программировании. Смиритесь с этим

Я всегда думал, что я очень много знаю о программировании. Но всегда найдётся кто-то, кто лучше вас. Всегда. Учитесь у них.


6. Учитесь учиться большему

У меня всегда под рукой лежит журнал или книга по компьютерам или программированию (мои друзья подтвердят). Да, существует множество технологий, и быть в курсе всего — это работа в полную смену, но если вы с умом организовали способ получения новостей, вы каждый день будете узнавать что-то новое.


7. Перемены постоянны

Ваши знания технологий и/или программирования должны соответствовать тому, как вы обращаетесь с акциями: вкладывайте в разное. Не слишком удовлетворяйтесь какой-то одной технологией. Если спрос на этот язык или технологию окажется недостаточным, вам всё равно пора будет обновлять резюме и начинать период обучения. Какое моё главное практическое правило, которое меня спасало? Знайте как минимум два или три языка, так что если один отомрёт, вы сможете воспользоваться другим, пока изучаете новую технологию.


8. Помогайте молодёжи

Обучайте младших/начинающих разработчиков хорошим правилам и методам программирования. Кто знает... возможно, вас повысят, и вы будете чувствовать себя увереннее, если лично обучали и готовили их к их новой должности.


9. Упрощайте алгоритм

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


10. Документируйте свой код

Неважно, касается ли это API веб-сервиса или же простого класса — документируйте по ходу дела. Меня, бывало, обвиняли в избытке комментариев к моему коду — и это то, чем я горжусь. Требуется какая-то секунда на то, чтобы добавить строку комментария к каждым трём строкам кода. Если речь идёт о трудном для понимания алгоритме, не бойтесь "перекомментировать". Это та проблема, на которую большинство создателей ПО, резервных кодеров и членов группы поддержки не жалуются, если вы выполняете свою работу правильно.
FredPerry вне форума Ответить с цитированием
Старый 15.10.2011, 00:40   #2
FredPerry
Пользователь
 
Аватар для FredPerry
 
Регистрация: 06.07.2010
Сообщений: 18
По умолчанию

11. Тестируйте, тестируйте, тестируйте

Я фанат тестирования "чёрного ящика". Когда вы закончили кодировать, начинается период "получения одобрения". Если у вас имеется отдел гарантии качества, вам, возможно, придётся больше общаться с ними по поводу ошибок в коде, чем с руководителем вашего проекта. Если вы не будете тщательно тестировать код, то в результате можете получить кое-что помимо кода. Возможно, плохую репутацию.
12. Отмечайте каждый успех
Я встречал много программистов, которые решали головоломные задачи, используя великолепную технику программирования, после чего пожимали коллегам руки или хлопали ладонями об их ладони, или даже танцевали победный танец. У каждого в жизни бывают светлые периоды, и даже когда какой-то счастливый кодер попросит вас взглянуть на его исключительной красоты кусок кода, который вы за свою жизнь повидали раз сто, отпразднуйте успех с коллегой в 101-й раз.


13. Часто проводите ревизию кода — в проектах и лично

В компании у вас постоянно будут проходить ревизии кода на предмет того, как хорошо вы кодируете. Не смотрите на это так, словно ваш стиль кодирования подвергают распятию. Рассматривайте это как на конструктивную критику. В индивидуальных проектах также проверяйте свой код и всегда спрашивайте себя: "Как можно было сделать это лучше?" Это ускорит ваше обучение и улучшит вас как программиста.


14. Вспоминайте свои старые программы

На свой старый код можно смотреть двумя разными способами: "Не могу поверить, что я это написал" и "Не могу поверить, что я это написал". Первая фраза содержит отвращение и попытку понять, как этот код можно усовершенствовать. Вас удивит, как старый код может быть преобразован в лучшую подпрограмму или даже, возможно, отдельный продукт. Вторая фраза содержит удивление и успех. У разработчиков бывает один-два завершённых проекта, которые были замечены. Опять же, основываясь на вашем прекрасном умении кодировать, вы можете взять эти старые процедуры или проекты и усовершенствовать их.


15. Без юмора никуда

За 20 лет работы я ни разу не встречал программиста, у которого бы отсутствовало хорошее чувство юмора. Вообще в этой области наличие чувства юмора обязательно.


16. Опасайтесь всезнаек, кодеров-собственников и неопытных программистов

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


17. Не бывает простых проектов

Друзья, родные и коллеги не раз просили меня "склепать для них что-нибудь". Чтобы "склепать" программу или веб-сайт, потребуется планирование с участием обеих сторон, тогда выйдет нечто, удовлетворяющее всех. Если кто-то поначалу хочет сайт из трёх страничек с поддержкой Microsoft Access, это закончится 15-страничным сайтом с SQL-сервером, форумом и кастомизированной CMS.


18. Не принимайте ничего на веру

Если вы берёте простой проект, вы можете решить, что какую-то определённую его часть будет легко выполнить. Не допускайте даже такой мысли. Если у вас нет уже готового класса, компонента или части кода... который, к тому же, тщательно оттестирован... и уже работает в другом проекте — не думайте, что это будет просто.


19. Программа никогда не бывает закончена

Коллега-программист однажды сказал мне, что программа не бывает закончена, что она лишь "временно завершена". Хорошая мысль. Если клиент всё ещё пользуется программой, написанной вами и прошедшей испытание временем, почти наверняка вы её до сих пор обновляете, что совсем не плохо. Это обеспечивает вас работой.


20. Терпение — это, несомненно, добродетель

Когда клиенты, друзья или члены семьи используют компьютер, они могут в раздражении ударить по какой-то его части или начать ругаться. Я не устаю повторять: это вы управляете компьютером, а не наоборот. Вам понадобится определённый уровень терпения, чтобы программировать компьютеры. Когда программисты понимают, где они ошиблись, они смотрят на это с точки зрения компьютеров и говорят: "А, вот почему он сделал так".
Надеюсь, этот список полученных мною уроков кого-нибудь вдохновит или же заставит посмеяться.
FredPerry вне форума Ответить с цитированием
Старый 15.10.2011, 00:58   #3
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Есть замечательная книга Голуба - "веревка достаточной длины, чтобы выстрелить себе в ногу." Маст хэв для каждого кодера и более свежие постулаты, нежели эти. Теперь картина похожая, но точка зрения на нее изменилась
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
crazy horse вне форума Ответить с цитированием
Старый 15.10.2011, 16:31   #4
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

16 совет совсем не понравился, в отличии от остальных
С таким подходом никогда не научишься программировать имхо.
Lime вне форума Ответить с цитированием
Старый 18.10.2011, 10:49   #5
VovanZ
Веб-разработчик
Форумчанин
 
Регистрация: 23.05.2009
Сообщений: 279
По умолчанию

Цитата:
Сообщение от FredPerry Посмотреть сообщение
16. Опасайтесь ..... неопытных программистов

Смиритесь, если встретите кодера одного из этих типов. ...неопытный кодер каждые десять минут обращается за помощью.....
Видимо автор этих советов родился не только с идеальным знанием математики, алгоритмов и языков программирования, но ещё и с огромным опытом работы над реальными проектами, так что у него просто не было необходимости задавать вопросы, учиться у более опытных товарищей и т. д.
VovanZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВУЗы ИТ жду советов Leg@ Свободное общение 1 02.03.2011 09:16
Delphi. Дайте пару советов White_foxSA Помощь студентам 14 20.02.2010 21:51
с нетерпением жду советов Римма Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 06.02.2008 09:43