Donation  •  Journal  •  Ads free  •  About  •  Advertisement  •  Place ads banner  •  Fleshlight  •  Send content  •  Timeline  •  Translate Guests: 2    Members: 0 Авторизация Sign In   Sign Up 
Scientific Poke Method
RULVEN
Search  
Blackball iMag | интернет-журнал
Catalogue


Home » Software development » О чём нужно знать до того, как стать программистом
I'll be lucky!

О чём нужно знать до того, как стать программистом


О чём нужно знать до того, как стать программистом
Added: Пн 09.10.2023 • Sergeant
Author: RegionSoft
Source: источник
Views: 354
Comments: 0


«Я хотел бы это знать до того, как стать программистом», — фраза, которую иногда можно услышать даже от достаточно опытного разработчика. Ничего удивительного: представление о профессии и жизнь в профессии — совершенно разные вещи. Чем опытнее и взрослее становится специалист (в любой сфере), тем меньше у него иллюзий и романтизации своей деятельности. Мы собрали 7 фактов, которые должен знать каждый начинающий программист и о которые опасно спотыкаться на профессиональном пути. Кажется, День программиста — отличное время, чтобы об этом поговорить.

О чём нужно знать до того, как стать программистом

Мы собрали общий срез «открытий» для программистов разных уровней и специализаций. Не обязательно столкнуться сразу со всеми ситуациями — но часть из них всё равно хоть как-то но проявляется в жизни каждого из нас 🙂

Не все программисты одинаковы

Когда мы только думаем стать программистом, программирование для нас делится на специализации: игры, сайты, приложения для бизнеса, программирование ЧПУ (о нём кто-то думал, интересно?). Кажется, вот сейчас прочитаешь пару книг, попрактикуешься и утрёшь нос игроделам, Цукербергу и разработчикам электронного расписания. А потом оказывается, что программист — это лишь часть команды, причём не то чтобы часть наряду с дизайнерами или тестировщиками, а часть команды программистов, каждый из которых отвечает за узкие и порой скучные задачи. Серьёзный коммерческий проект пилится одним человеком в каких-то уникальных, исключительных случаях — и речь в них идёт об очень опытных разработчиках с глубоким бэкграундом.

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

Не весь смысл в коде

В какой-то момент на заре карьеры фанат своего дела прочитывает (и что важно, понимает) «Совершенный код» Стива Макконнелла и решает, что всю жизнь будет писать код ёлочкой, комментировать, оптимизировать, проводить непрерывный рефакторинг и делать код понятным, эффективным и производительным. Более того, некоторые строго следуют всем постулатам и выносят мозг своим коллегам и руководителям, не обнаруживая код достаточно совершенным. До первого горящего багфикса, пятничного релиза и «срочно-важного» клиента, у которого некоторые вещи приходится дописывать чуть ли не на проде. И тут-то выясняется, что исправление в одной строке требует переписывания десяти других, где-то есть щепотка легаси, а продуктовый менеджер никоим образом не готов ждать новых итераций рефакторинга. Фигак-фигак и в продакшен.

О чём нужно знать до того, как стать программистом

Однако как только вы начнете работать над проектами, в которых задействовано большое количество участников команды, вы быстро окажетесь под большой кучей кода, потому что, чтобы изменить одну строчку, необходимо изменить 5 других блоков кода. И получается, что код — это функциональность, а смысл — в управлении разработкой, взаимодействии внутри команды, способности решать нестандартные задачи на лету и гибко перестраиваться для достижения оптимального результата в сжатые сроки при наименьших затратах времени, труда и нервов.

Что касается совершенного кода, он приходит с опытом и становится стилем — но только если пройти все предыдущие этапы.

Код — это ещё не всё

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

Так вот, программирование — это не только реализация идеи в коде, это ещё и документация (без которой не смогут работать пользователи), спецификации, тесты и автотесты, комментарии коду, нудные описания в базах знаний и багтрекерах и многое другое. Кроме всего перечисленного, ещё есть сбор и анализ требований, составление технического задания, правки техническому заданию и ещё много всего того, что приходится делать, особенно если в команде нет хорошего продакта и аналитика. И это всё отнимает много времени, вызывает раздражение, но без такой «бюрократии» мало-мальски рабочий проект не выживет.

О чём нужно знать до того, как стать программистом

Я разработаю свой лучший проект

Нет. Для разработки лучшего (и особенно хорошо монетизируемого) проекта нужна хорошая, сильная команда профессионалов, которые точно знают, как сделать свою работу хорошо. Со временем становится понятной ещё одна мысль: свой лучший не равно лучший для пользователей. Практически каждый спринт вы будете натыкаться на неожиданные требования, которые реально удовлетворяют запросам пользователей, но при этом противоречат вашему вкусу, пониманию UX и представлениям о прекрасном. Лучший проект это тот, который нравится пользователям, решает их задачи и легко поддерживается. Остальное — высокое искусство программирования, не имеющего ничего общего с реальностью 🙂

О чём нужно знать до того, как стать программистом

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

Проекты ради проектов бессмысленны

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

О чём нужно знать до того, как стать программистом

Главный код-ревью — твой

Всегда нужно оставаться критичным к своему коду. Код-ревью от коллег бесценен: любые проблемы лучше увидеть незамыленным глазом. Но важно уметь работать с кодом самостоятельно: не делать его совершенным, не заморачиваться на мелочах, но иметь свой внутренний code style (который будет совмещаться с любым корпоративным), своего строгого ревьюера, который не только видит код, но и понимает, как он работает внутри всей системы, как его можно улучшить, ускорить. Это не врождённый талант, это серьёзная и вдумчивая работа, которая требует обучения и понимания технологий улучшения читабельности, производительности, устойчивости и универсальности. Если вы научитесь быть микрокомандой для самого себя, ваша ценность на рынке значительно возрастёт, а зависимость от типа команды и стиля управления разработкой снизится. Профессионал с высокой степенью свободы и независимости — это во многом даже круче, чем некоторые дутые тимлиды и СТО.

О чём нужно знать до того, как стать программистом

Учиться придётся непрерывно

Если хочется чего-то добиться в профессии, расти и иметь авторитет в сообществе, придётся очень много учиться. По факту — непрерывно. Хорошая новость: когда ты благодаря этому зарабатываешь, обучение идёт не в пример легче.

О чём нужно знать до того, как стать программистом

Стоит ли идти в программирование? Если появилась такая мысль, обязательно нужно хотя бы попробовать. Будет просто? Просто не будет, будет сложно. и чем выше ваши амбиции и потребность в развитии, тем будет тяжелее. Нужны ли склонности и задатки? Для по-настоящему хорошего разработчика — да, потому что там и алгоритмы, и математика, и сети. Этому за шесть месяцев не научиться. Будут ли разочарования? Будут. Главный профит? Вы — востребованный специалист, который точно знает, что делать и который твёрдо стоит на ногах. Всё остальное приложится: и деньги, и уважение, и карьерный рост.



Мне нравится 0   Мне не нравится 0



Comments

Чтобы добавить видео с YouTube, нужно написать [@youtube=xxxxx] , где xxxxx – ID видео.


Комментарии: 0
Нет ни одного комментария.
RSS-лента
Share link:

программист
Минусы профессии программиста, что не нравится в работе Пн 22.04.2024
Минусы профессии программиста, что не нравится в работе
5 приемов увеличения продуктивности разработчика Пн 18.12.2023
5 приемов увеличения продуктивности разработчика
Развенчание мифа о собственной продуктивности программистов Пн 11.12.2023
Развенчание мифа о собственной продуктивности программистов
О чём нужно знать до того, как стать программистом Пн 09.10.2023
О чём нужно знать до того, как стать программистом
Кодеры за работой Чт 27.04.2023
Кодеры за работой
Год: 2011
10 историй, как «валят» айтишников на технических интервью Пн 20.02.2023
10 историй, как «валят» айтишников на технических интервью
Зарплата по результатам собеседования — лучший способ сократить отклики на вакансию, а тестовые задания — избыточны Пн 06.02.2023
Зарплата по результатам собеседования — лучший способ сократить отклики на вакансию, а тестовые задания — избыточны
Почему вы никогда не должны соглашаться на собеседования с программированием Пн 30.01.2023
Почему вы никогда не должны соглашаться на собеседования с программированием
Ср 10.02.2021
Кривые развития программиста и немного об эффекте Даннинга—Крюгера
Ср 16.12.2020
Жестокая правда будней программиста: 8 наблюдений
Программист 2020: Терминатор отдыхает Пн 12.10.2020
Программист 2020: Терминатор отдыхает
Идеальный программист Вт 22.09.2020
Идеальный программист
Год: 2018
Три дороги для программиста: эксперт, руководитель, основатель Пн 21.09.2020
Три дороги для программиста: эксперт, руководитель, основатель
Карьера программиста Вт 08.09.2020
Карьера программиста
Год: 2020
Идеальный программист Вт 19.03.2019
Идеальный программист
Год: 2012
Пн 05.11.2018
Найм программистов. Советы от программиста
Пн 29.10.2018
Несколько вещей, о которых стоит помнить программисту в возрасте
Пн 01.10.2018
10 правил дзен-программиста
Пн 24.09.2018
Четыре типажа программистов
Пн 17.09.2018
7 золотых правил одного программиста
Пн 20.08.2018
Чем же занимаются программисты, и как объяснить это остальным?
Перестаньте называть себя программистом и другие карьерные советы Пн 09.04.2018
Перестаньте называть себя программистом и другие карьерные советы
Books
Designing Data-Intensive Applications Вт 14.05.2024
Designing Data-Intensive Applications
Год: 2017
Fundamentals of Software Architecture Вт 07.05.2024
Fundamentals of Software Architecture
Год: 2020
Refactoring with C# Вт 23.04.2024
Refactoring with C#
Год: 2023

Разработано на основе BlackNight CMS
Release v.2024-05-19
© 2000–2024 Blackball
Design & programming:
AboutAdvertising
Visitors
Web-site performed by Sergey Drozdov
BlackballAdvertisingStatsПоддержка | MusicPlaylistsCinemaVideoGamesAudioDownloadsMagazinePicturesHumorForumWebsite journalSend content