Будущим и начинающим программистам посвящается :)

Наверное я переживаю некоторый профессиональный кризис, но мне нестерпимо хочется поговорить об идеологии программирования, об опыте разных людей, а в Дании это не очень получается. Не заинтересованный там народ. Можно я тут немножко попишу? :) Комменты к другим постам как бы говорят о том, что людей, связанных с IT, на пикабу очень много.


Что бы вы стали говорить начинающим программистам, если бы вас попросили поделиться с ними своим опытом?


Я думаю, что вот мой список:


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



Очень важно найти хорошего наставника/руководителя. Такого, который поверит в вас и даст вам задачи не просто, чтобы дырку заткнуть, а найдет такие, которые будут способствовать постоянному повышению квалификации. И если ради хороших задач вам придется ругаться с кем-нибудь (ну не до мордобоя конечно), лучше так, чем просидеть несколько лет, делая репорты. Удивительно, но за интересную работу нужно бороться. Сложнее всего вырваться из рутины первый раз, дальше в эту рутину вас уже не загонят.



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



Это очень весело и здорово добровольно поработать 20 часов в сутки в молодости, коль проект интересный и захватывающий. Это даст огромный толчок и ни с чем не сравнимый опыт. А вот когда вы стали руководителем, вы должны сделать всё, чтобы ваша команда отдыхала, в том числе и такие бравые студенты :)



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



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



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



Рисуйте побольше. Для себя, без всяких там конкретных UML сущностей, просто для себя. Как взаимодействуют части системы, как передаются данные, всё рисуйте. И складывайте в ящичек, в какой-то момент это пригодится. И не только вам. Чем лучше и шире вы представляете систему, тем больше у вас шансов грамотно разруливать любые проблемы.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Всё должно применяться с поправкой на ситуацию

и даже...... goto?

раскрыть ветку (11)
1
Автор поста оценил этот комментарий

Для освобождения ресурсов, финализации, уничтожения объектов при ошибке и нормальном выполнении в С, постоянно использую.

Автор поста оценил этот комментарий
Вот про goto я-то и забыла )) а в каких книгах сейчас про него пишут?
1
DELETED
Автор поста оценил этот комментарий
Да - выход(переход к началу внешнего) из вложенных циклов.
раскрыть ветку (8)
1
Автор поста оценил этот комментарий
Break, пожалуйста..
раскрыть ветку (7)
1
DELETED
Автор поста оценил этот комментарий

В ряде случаев - не подойдёт. К примеру - из внутреннего цикла нужно попасть на след. итерацию внешнего, минуя вызов someAction3:

for () {
    someAction1();
    for () {
        someAction2();

        break;

    }
    someAction3();
}

В Java, JS и D используется break/continue с так называемой меткой (аналог goto):

http://stackoverflow.com/questions/324831/breaking-out-of-a-...

Она может использоваться только внутри циклов и служит как раз для таких случаев - они хоть и редкие, но бывают. Где читал - не помню, но разработчики вышеуказанных языков осознанно отказались от goto, оставив единственный обосноснованный случай использования - вложенные циклы.

раскрыть ветку (6)
4
Автор поста оценил этот комментарий
И тыщу раз подумать, что привело к необходимости строить такие циклы. (Если речь идёт не об алгоритмах)
Автор поста оценил этот комментарий

bool runAction3;
for () {

    runAction3 = true;
    Action1();
    for() {

        Action2();

        runAction 3 = false;

        break;

    }

    if (runAction3)

        Action3();

}

1
Автор поста оценил этот комментарий

Какой-то стрёмный пример. Зачем бряк на первой же итерации?


Ставлю 1000 рублей на киви-кошелек, что зарефакторю любой ваш реальный пример с вложенными циклами на С-подобных без goto без потери читабельности.

раскрыть ветку (3)
Автор поста оценил этот комментарий

по моему пример достаточно логичный. в пхп вроде даже есть break(n), где n - количество уровней

DELETED
Автор поста оценил этот комментарий

Написал пост с задачей, денег не нужно:)
http://pikabu.ru/story/otvet_pro_goto_4775267

Хочу увидеть читаемый пример без goto и с той же вычислительной сложностью

(без лишних итераций)

DELETED
Автор поста оценил этот комментарий

Пример, возможно, неудачный.

Вечером напишу получше.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку