Оценить:
 Рейтинг: 0

Веб-разработчик. Легкий вход в профессию

Год написания книги
2024
Теги
<< 1 2 3 4 5 6 7 >>
На страницу:
5 из 7
Настройки чтения
Размер шрифта
Высота строк
Поля

Что самое сложное в full-stack?

Пожалуй, это опыт. Нужно много знать и стараться поспевать за трендами. Обычно это приводит к тому, что код, написанный, например «frontend», красивее и лучше, так как человек целыми днями только этим занимается и оттачивает мастерство, однако заказчику нужен реально работающий проект. Особенно если это «startup». И ему главное готовый продукт.

Правда, что узкая специализация ценится больше?

Скажем так. Ценится хороший разработчик. Специализацию всегда можно поменять. Это не проблема, начиная от определенного уровня навыков и технологий. Если ты «full-stack», ты можешь стать хорошим «backend» или «frontend». Количество вакансий обычно больше на «frontend» или «backend», так как руководители проектов набирают команду в уже создаваемый проект. Им нужен тот, кто будет создавать какую-то конкретную часть проекта.

Какой путь развития лучше: сразу в full-stack или что-то одно, но глубоко?

По моему мнению изначально желательно вкладываться в своё развитие. Изучать технологии. Попробовать то, что нравится. После того как определился, можно выбирать направление. Лучше всего начинать путь в разработке с углубленного изучения чего-то одного. Если станешь хорошим «backend» или «frontend» разработчиком, посмотришь, как у других работают проекты под капотом, сможешь пройти собеседование (отдельная тема), тебя возьмут в нормальную команду и подтянут твой «skill».

Как постоянно поддерживать уровень знаний, ведь технологий много?

Это самое сложное. Как я уже писал выше – никто не хочет платить за твоё обучение, поскольку тебе на работе платят зарплату, и ты должен её отбивать. Все заинтересованы в получении прибыли. Главный критерий – максимально быстро сдать проект и приступать к следующему. Приходится изучать технологии в свободное от работы время. Читать книжки в метро или в поезде после работы. Тебе должна нравится профессия, иначе встанешь на своём уровне и годами будешь делать одно и то же. Стагнация.

Правда, что full-stack разработчик в одиночку может построить большой проект уровня «управления всеми процессами компании»?

Когда меня спрашивают, можно ли сделать такой проект или такую функцию, я всегда отвечаю: можно всё, что угодно. Главное – время и деньги, которые будут выделяться на разработку. Обычно этот ответ нравится всем. Все понимают, что хорошо, быстро и дешево не бывает. Можно написать всё самостоятельно – это не проблема, но проект будет затягиваться. Можно нанять человека, который тебя разгрузит, только ему нужно платить зарплату, что удорожает проект. Можно нанять команду – это гораздо быстрее, чем делать всё самому, однако уже нужно хорошее финансирование.

Что бы ты посоветовал новичкам?

Как завещал Ленин: «учиться, учиться и ещё раз учиться». Видел и хороший плакат: «Теория без практики – мертва, практика без теории – слепа». Много практики. Пишите какие-то свои простые завершенные проекты, используя стек знаний. И всё получится.

7. Денежные потоки

Зарабатывай за счет своего ума,

а не за счет своего времени.

Наваль Равикант

Раньше, лет двадцать назад или более, компьютерная тематика и уж тем более профессия в этой сфере привлекала лишь узкий круг людей, которых в свою очередь называли «гиками» (от англ. слова geek – «человек, увлеченный высокими технологиями»), и которые были рады работать почти за бесплатно (у программистов или системных администраторов, было даже правило: что-то сделать «за пиво», хотя-бы что-то). Сейчас направление «айти» привлекает многих «зарплатами», о которых не говорит в последнее время только ленивый. В этой главе я расскажу, какими путями «айтишнику» могут приходить деньги, возможно, подтвержу какие-то общепринятые мнения, или же опровергну. В любом случае, посчитать всегда интересно (особенно чужие денежки, правда?).

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

В зависимости от того, какой путь в «айти» вы выбрали – найм, фриланс или собственные проекты, – будут определенным образом формироваться денежные потоки.

В найме вы просто получаете зарплату, то есть деньги от работодателя ежемесячно поступают к вам, на их количество влияет соблюдение вами рабочего графика (и трудового договора), уровень компетенции и немного (или много) удачи при устройстве на работу. Вопреки всеобщему убеждению, что зарплаты у всех «айтишников» высокие, скажу, – не у всех! Только у тех, кто является профессионалом высокого класса. Новичок может рассчитывать на сумму в половину от средней зарплаты. И новичком может считаться первые три года (а то и дольше) работы в компании. Да, грустно, не спорю, но такова реальность.

Имея хороший стаж, от пяти лет, и «прокачку» по всему «стеку» технологий, можно рассчитывать на 1-1,5, максимум 2, средние зарплаты. И только на отметке стажа в семь или десять лет можно говорить о сумме в 3 и более средних зарплат. Еще раз: друзья, может понадобиться десять лет, чтобы выйти на тот уровень зарплат, о которых все кругом говорят!

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

Есть и обратная сторона: это – потолок, в который упирается каждый фрилансер, а именно – физическое ограничение по максимальному количеству выполнения заказов в месяц. И даже повышение уровня квалификации не в силах помочь. Дело в том, что задачи как были из разряда «все подряд» – и простое, и сложное, – так и остались. Высокая квалификация может просто не пригодиться. Если же фрилансер решит сфокусироваться лишь на сложных и хорошо оплачиваемых заказах, он рискует длительное время «сидеть» без работы. Достичь показателей в зарплате, максимального уровня найма, возможно, не удастся – никогда. Вы можете десять лет работать и получать тот же доход, что и в первые месяцы после входа в эту сферу. Неоднократно проверено на личном опыте…

В собственных проектах, опять же, интереснее: тут открывается поистине большое поле для творческих идей по части формирования бизнес модели и денежного потока. Вы можете получать деньги с прямых продаж исключительных прав на свой «продукт», или же с предоставления неисключительных прав на использование (авторское вознаграждение) с рядом ограничений для клиента (о правовых аспектах, авторстве, правах и лицензиях поговорим в следующих главах). Возможно, предоставление доступа с разовой оплатой или с оплатой помесячной или годовой подписки. SaaS (Software as a Service) – предоставление программного обеспечения как сервис.

В отличие от найма, где вы продаете свое время, и фриланса, где продаете конечный результат вашего труда, в собственных проектах вы как личность можете вообще не быть вовлечены в так называемый товарно-денежный обмен. Сначала работаете на «продукт» – потом «продукт» работает на вас. Все может функционировать автономно. Опять же, проверено на личном опыте. Именно тут начинается строительство собственного бизнеса, будь то в рамках индивидуального предпринимательства или компании.

Здесь доход может быть нулевой и даже минусовой (расходы тоже бывают), если проект «не зашел»; может быть доход с постепенным ростом длиною в годы; а может произойти и резкий скачок по числу совершаемых сделок, доход устремится на отметку, о которой и говорить «неприлично». Как вы понимаете, тут давать оценку в средних зарплатах уже некорректно, так как разброс сумм – «ноль тире бесконечность». Не всем подойдет такое положение дел, но те, кто готов рисковать, в ком есть предпринимательская и творческая жилки, будут в восторге!

Денежные потоки, друзья, – они такие. Кому что больше по душе – выбирайте, комбинируйте. Мир «айти» разнообразен.

8. Права на код

Для меня не важно, на чьей стороне сила,

важно то, на чьей стороне право.

Виктор Мари Гюго

Работая с кодом, как со своим, так и с чужим, важно учитывать и юридический аспект по части того, кто является автором кода, кто правообладателем и какие операции над кодом разрешено производить вам (если работаете с чужим кодом) или вашим пользователям (если они работают с вашим кодом). При этом учитывать юридическую сторону нужно в любом случае, используете ли вы непосредственно сам текст кода или со скомпилированной (где исходный код переведен в машинный язык) программой – запуская ее на своем устройстве для выполнения.

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

Начнем с того, кто такой «автор»? И что такое «авторское право»? В контексте разработки программного обеспечения, автор – это тот, кто его написал, и факт авторства (то есть, имя автора) закрепляется за программистом автоматически, для этого не обязательно что-то специально оформлять и регистрировать, таков закон (причем это регулируется, в том числе, международным правом). Если кто-то пожелает оспорить принадлежность кода автору, это бремя ляжет на плечи оспаривающего.

Для того, чтобы уведомить пользователей произведения, что все права на него защищены (напомню, это происходит автоматически по факту его реализации автором), можно дополнительно разместить в описании программы или на сайте (если речь о сайте) копирайт. Он выглядит следующим образом: – «© Имя Автора. Все права защищены, 2023», то есть содержит символ копирайта, имя автора, текст о правах и год публикации. Такой копирайт имеет юридическую силу: пользователь произведения с наличием копирайта осведомлен об авторских правах на него.

Автор имеет следующие права, одни из которых отчуждаемы (могут быть переданы другим лицам), а другие нет:

? Считаться автором (не отчуждаемо).

? Обнародовать произведения под своим именем, псевдонимом или анонимно (не отчуждаемо).

? На неприкосновенность произведения (отчуждаемо).

? Исключительное право на произведение (отчуждаемо).

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

Исключительные права на произведения позволяют использовать программу любым образом: осуществлять публичный показ, воспроизводить, модифицировать, распространять или продавать ее копии с ограниченными правами использования. То есть, совершать абсолютно любые действия. Тот, кто владеет исключительными правами, является правообладателем. Например, распространение программы без разрешения правообладателя называется «пиратством» и уголовно наказуемо. В случае неправомерного размещения программы на каком-то интернет ресурсе правообладатель может потребовать у владельца ресурса удалить ее, в ином случае обратиться в суд и Роскомнадзор (Федеральный орган, осуществляющий надзор в сфере связи), после чего данным вопросом будут заниматься они.

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

По желанию, для большей надежности, по части закрепления за собой статуса автора, а также исключительных прав, можно зарегистрировать программу в Федеральной службе по Интеллектуальной Собственности (Роспатент), получив на нее свидетельство. Для этого надо подготовить необходимые документы, сам код программы и отправить заявку в Роспатент. Стоит учитывать: сам Роспатент не изучает присланный вами код на его уникальность и достоверность факта, что именно вы являетесь автором и правообладателем.

Роспатент занимается так называемым депонированием. То есть, лишь принимает на хранение присланный вами код, и в случае возникновения споров по нему (об авторстве или исключительном праве) Роспатент сможет предоставить хранящийся у него код с указанием даты, когда тот был депонирован. Это позволит установить факт (например в суде), кто первее из сторон заявителей (участников спора) имел исходник данного кода на руках (а следовательно признается автором по закону). Депонирование – один из способов защиты программы от незаконного распространения (от «пиратства»). В своем блоге я подробно рассказал, как получить свидетельство на программу в Роспатенте, статья доступна по ссылке https://s.rche.ru/fips (https://s.rche.ru/fips).

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

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

Ее текст можно составить самостоятельно. Он может содержать перечень, что пользователю разрешается делать с программой. А можно воспользоваться уже готовым текстом. Существует множество готовых лицензий (GNU General Public License, MIT, AGPL и т. д.), разработанных профессиональными юристами в области международного права. Их текст, как правило, написан на английском языке. И тем не менее он имеет силу в большинстве стран мира. В некоторых случаях, подобные (готовые) лицензии, могут вступать в конфликт с законодательством тех стран, где используется ваша программа, поэтому, если разрабатываете «продукт» для рынка, какой-то определенной страны, заблаговременно проконсультируйтесь с компетентным юристом (разумеется, это актуально только если ваш продукт уже имеет большой пользовательский охват и «бюджеты»). Для более удобной работы с готовыми лицензиями я подготовил для вас «генератор лицензий», доступный в моем блоге по ссылке https://s.rche.ru/licgen (https://s.rche.ru/licgen). Пользуйтесь на здоровье.

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

Также при разработке программного обеспечения не исключено, что вы будете использовать сторонние готовые модули и библиотеки, написанные ранее другими авторами, поэтому тщательно изучайте условия их использования. Может получиться так, что их авторы (правообладатели) не разрешают, например использование в коммерческих проектах или требуют соблюдение каких-то иных, порой специфических, условий. Возможно, для разработки вашей программы лучше посмотреть сторонние библиотеки, которые не имеют подобных ограничений, например, распространяемых по лицензии MIT (The MIT License).
<< 1 2 3 4 5 6 7 >>
На страницу:
5 из 7

Другие аудиокниги автора Роман Чернышов