Кто-то думает, что программирование — это как в фильмах. На столе 5 мониторов и 3 чашки кофе. На экране зелёный код, его очень много и он постоянно меняется или дёргается. Комната обязательно тёмная. Главный герой что-то яростно набивает на клавиатуре «Так, так, сейчас, ещё чуть чуть, ВСЕ! Мы в системе». Знакомая картина?
Так вот, реальность совсем иная — обычный ноутбук, обычный текст в редакторе кода, и Гугл / StackOverflow для поиска ответов на вопросы. Чай или кофе на столе, желательно светлая и хорошо проветриваемая комната. Никаких мигающих текстов и никаких трёх мониторов.
В нашей профессии очень важна концентрация, и тишина. А точнее - уединение со своими мыслями и своими задачами. Да, именно поэтому многие айтишники предпочитают работать в наушниках. Не для того, чтобы слушать Heavy Metal (хотя такие тоже есть и я не имею ничего против), а чтобы отключить внешние источники шума.
Что же такое программирование на самом деле?
Меньше спешки, больше качества
Хороший программист это история не про скорость и яростное набивание кода на клавиатуре. Это про опыт, житейскую мудрость и умение структурно смотреть на вещи. Точно так же, как хороший хозяйственник наводит порядок на складе, складывая вещи одну-к-одной — точно так же и хороший программист складывает программы из качественного кода, строка к строке. Здесь не должно быть спешки и страсти. Здесь нужен спокойный и бережный подход.
Умение находить ответы
Второй важный момент. Хороший программист это история не про знание «всего обо всём». Программист это не специалист по выучиванию словарей и свободному пересказу умных книжек. Программист это про умение быстро и самостоятельно находить нужную информацию, решать логические задачи имеющимися инструментами.
На мой взгляд, «словарный запас» программиста составляет не более 300 команд. Из них, около 50 команд используются в большинстве случаев. При этом, практически все языки и платформы похожи друг на друга, имеют схожую логику работы и схожие выполняемые задачи. И да, в какой-то момент «словарный запас» перестаёт увеличиваться. И это не говоря про языки, набор которых практически не меняется год к году ( про популярный в 2022 году стек языков программирования я писал вот здесь ).
И в этом нет ничего удивительного. Точно так же, как все картины в мире написаны плюс-минус одними и теми же кисточками из белки или соболя ( да простят меня художники за столь узкий взгляд на кисточки ), точно так же и все программы написаны одними и теми же командами. Что Яндекс, что Google, что AliExpress. Хороший коммерческий художник умеет быстро понять нужды заказчика или почувствовать запросы широкой аудитории. Хороший коммерческий программист обладает аналогичными навыками.
Умение работать в команде
Третье. Программирование — это про умение согласовать свои умения и опыт с уже имеющимися системами. Ну то есть, создавая модуль для некоторой программы или заказчика, нужно чтобы это модуль соответствовал определённым стандартам / правилам / вписывался в то что было уже сделано до тебя. Точно так же, как приходя в футбольную команду, игрок должен уметь сыграться с другими игроками. И следовать определённым правилам — бить по мячу ногами, и не пытаться закинуть его в ворота рукой. И тем более, уметь играть в "пас" членам команды, а не пытаться самому обыграть команду противника в одиночку.
Умение создавать конструктивное творчество
Четвёртое. Хороший программист это прагматичный художник. Он опирается на имеющийся опыт, но открыт к новому. Он находится в балансе, и при это соблюдает принципы "брать-давать".
Запуская новый проект, всегда имеется соблазн сделать все "с чистого листа - с полного нуля", прославиться и показать миру на что ты способен. Но это по большей части игры эго, нежели чем работа на результат. Проработанные специалисты понимают это, и стараются достигать результата, привнося аккуратные авторские штрихи личного видения мира. Но в то же время не забывают, что творчество может быть не только конструктивным, но и деструктивным. И стараются применять свой талант творца разумным и сбалансированным образом.
На что тратит время типичный программист?
Суммируя пункты выше. Исходя из моего опыта, типичная работа в программировании декомпозируется следующим образом. 20% - поиск информации и чтение документации, 25% - написание программного кода, 15% - написание документации и пояснений к программному коду, 15% - общение с заказчиком / командой / партнёрами, и 25% - тестирование продукта.
Иначе говоря, условные 10 дней работы представляют из себя 2 дня на поиск информации, 2.5 дня на программирование, 1.5 дня на комментарии к собственному коду, 1.5 дня на общение с командой, и 2.5 дня на тестирование. Исходя из такого подхода, мы получаем качественный программный продукт. Который стабильно работает, и в который можно приглашать к работе других участников. Такие дела.
Понравилась статья? Подпишись! Дальше будет ещё интересней!
#программист #it #itтехнологии #обучениепрограммированию #информационныетехнологии #айтишник #программирование #программированиеснуля #программированиедляначинающих #языкпрограммирования #обучение #технологии #образование #студенты
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Так же, я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как автор выглядит в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка