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

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


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


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


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



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



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



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



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



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



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



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

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

Пост любопытный, но это скорее субъективный опыт, который был успешным.

Дословно цитировать не буду, но с большего:


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

Также, в случае "менторства", неизбежно возникнет 2 серьёзные проблемы в будущем:

  1) Наставник опытный, он знает о возможных проблемах и предупреждает заранее, ты послушно усваиваешь и стараешься недопускать этих ошибок. Но этих подводных камней у каждого языка/технологии тысячи, и через какое-то время ты просто "закапываешься", пытаясь обойти все возможные будущие ошибки, начинаешь мыслить шаблонами, появляется так называемый "паралич анализа" и его очень непросто пересилить.

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


- не используйте в спорах аргументы из книг - да, зачастую это так, но не все книги написаны теоретиками:) По джава, например, книге Джошуа Блоха можно доверять безоговорочно, так как к каждому тезису по несколько страниц объяснений этого самого "почему". Мне ещё учебники Блинова/Романчика понравились, хотя уже там при прочтении много и самому пришлось подумать.


- для программирования любой возраст подойдёт - да хрен там, чем старше становишься тем медленне скорость усвоения/понимания новой информации. Да, попытаться в 30+ можно, но без особой надежды на успех в коммерческой сфере. Разве что-то для себя писать для удовольствия. Но тут ещё и нужда играет роль - можно и в 50 за год стать профи, если кушать нечего:)

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

Согласен насчет наставника (а вот найти его отдельная проблема).

А так же насчет того, что не нравится (прям выделил мою проблему - UI, я тебя ненавижу)

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

Кто хочет стать моим наставником? )) Я как раз только начал изучать Питон )

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

Спасибо! Пишите, конечно, ещё статьи по ИТ! Было бы интересно узнать о различиях в ИТ сферах России и Дании.

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

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

раскрыть ветку