Как стать программистом в малом бизнесе [закрыто]

Я ищу возможности роста. Моей страстью стало программирование и создание решений для решения бизнес-задач. Мой нынешний работодатель, где я проработал 7 лет, представляет собой небольшой бизнес с 15 сотрудниками. Наш основной бизнес - предоставление обучения и консультирования B2B. Это моя единственная должность программиста, которую я когда-либо занимал.

Я считаю себя полноценным разработчиком. За последние 7 лет мои навыки программирования развились от знания того, как выглядит HTML, до разработки RESTfull API и использования Jquery (в качестве примера).

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

Теперь моя дилемма; Я доволен своим положением. Мне нравится иметь свободу принимать решения и командовать, но я чувствую, что упускаю возможности, предоставляемые работой в крупных компаниях . Поскольку я единственный разработчик, мне не у кого учиться. Я сосредоточился только на веб-приложениях / решениях для баз данных и никогда не работал над мобильными приложениями или настольными приложениями. Когда я смотрю на множество вопросов на собеседованиях по программированию, я теряюсь. С другой стороны, если мне передавали задачу, которую нужно решить в моем офисе, я всегда мог предложить решение до сих пор.

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

«Я чувствую, что упускаю возможности, которые предоставляются при работе в более крупных компаниях» — какие возможности вы ожидаете найти там, чего не нашли бы в своей компании? Обычно более крупные компании означают, что «вы еще один программист», а здесь вы находитесь в уникальном положении и с несколькими вещами, которые разработчики из «крупных компаний» хотели бы иметь. Самостоятельное обучение более значимо и долговременно, чем передача всех пережеванных знаний вам по наследству.
@DarkCygnus, я склонен не согласиться. Я не знаю, означает ли ОП то же самое, но... Когда я начал программировать, я учился сам, очень усердно работал, и это дало мне мою первую работу. Затем я продолжал учиться и прикладывал много усилий к работе, но именно среда сделала меня лучшим разработчиком — обзоры кода, рекомендации, разговоры с другими, даже сумасшедшие требования, которые ставили меня в ситуации и проблемы, я мог никогда не думал о себе, или нашел через Интернет. Поэтому я считаю, что работа над разными проектами и с разными командами имеет решающее значение для вашего роста.
@1lifeUp да, мы не знаем, может ли OP точно сказать то же самое, но в этом случае кажется, что OP любопытно, чего ему «не хватает» в работе в более крупных компаниях. Я бы не стал жертвовать хорошей работой только ради удовлетворения любопытства (или, по крайней мере, хорошенько подумать, прежде чем это делать)
@DarkCygnus. На самом деле, в конце концов, я думаю, что компания, в которой я сейчас работаю, уйдет завтра, и я ищу работу. Как мне убедиться, что у меня есть навыки, чтобы получить работу в другом месте. Мне кажется, что если бы я работал в более крупном бизнесе, у меня, скорее всего, был бы желаемый набор навыков, потому что крупные компании больше инвестируют в своих сотрудников.
@1lifeup, Вот некоторые из областей, которые, по моему мнению, мне не хватает и которые мешают моему росту. _code обзоры, рекомендации, разговоры-
Насколько велики ваши шансы нанять второго программиста?
@ Эрик, маловероятно. Недавно мы начали нанимать фрилансеров в определенных случаях.
Я не понимаю, как какой-либо из обсуждаемых здесь факторов (возможность работать над различными проектами, знакомство с более опытными разработчиками, обзоры кода, возможность приобрести навыки, инвестиции в сотрудников) имеет КАКОЕ-ЛИБО отношение к размеру работодателя. . Я работал в крошечных компаниях, у которых было все это, и в гигантских компаниях, у которых этого не было. Я считаю, что это обоснованные опасения, но считаю ошибкой связывать их с размером компании.
@dwizum, да, но разница в том, что я работаю в небольшой компании, а я единственный разработчик в компании. С кем вы ведете дискуссии, когда нет других разработчиков, и кто выполняет проверку вашего кода в этой ситуации?

Ответы (5)

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

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

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

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

Немногие люди могут делать это каждый день...

Я очень уверен в своей безопасности работы в этой компании. Они предоставили мне долю в компании. Пока компания существует, у меня обязательно будет место. Меня беспокоит, когда я смотрю объявления о вакансиях, и хотя я создаю веб-приложения, используемые многими пользователями, основываясь на требованиях к объявлениям о вакансиях, я чувствую, что не подхожу для многих из списков. Это мой страх. Спасибо за ваш отзыв, я буду продолжать читать и взаимодействовать с сообществами.
Подумайте об этом так: каждый пользователь, переполненный стеком, не знает 99% задаваемых вопросов, даже самые опытные люди знают, может быть, 2% ответов. Важно то, как быстро вы можете что-то понять, научиться и адаптироваться. Удачи.

Я хочу изучить полезные навыки и правильный способ решения проблем

навыки , необходимые для трудоустройства, могут отличаться от компании к компании. Способ получить больше навыков, пригодных для трудоустройства, — это быть в соответствии с вашим рынком. ИТ быстро меняются и могут быть локализованы для региона, следуя объявлениям о вакансиях, чтобы узнать поток рынка и найти ключевое слово в объявлениях, которые вы не знаете, держать вас в курсе вашего рынка, давая знания о том, какие навыки более применимы. .

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

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

  • Посещение нескольких ИТ-мероприятий и общение с несколькими увлеченными людьми, во время мероприятия или после него, посещение закусочной или кафе, общение с этими людьми. Эти обмены дадут вам некоторое представление о других рабочих местах, о том, как они работают, какой стек они используют и почему они выбирают именно их;
  • Наблюдение за разработчиком, который транслирует во время программирования;
  • Находясь в команде на каком-то мероприятии кода, где у некоторых участников есть разные способы достижения решения, они также могут комментировать ваше решение;
  • Прохождение некоторых катов на разных сайтах и ​​чтение других программных решений;
  • Чтение книг, блогов, форумов и просмотр видео, подобных другим предложенным;
  • Отправка вашего кода в такую ​​компанию, как дядя Боб, для его проверки, это дорого, и некоторые соглашения о неразглашении могут помешать этому, но вы можете бесплатно обратиться к своему боссу;

Преподавание также является способом обучения, потому что некоторые учащиеся могут:

  • дать отпор вашему решению, обнаружив некоторые недостатки и, возможно, у них есть лучшее предложение
  • поделиться своим опытом, который может привести к открытию нового;
  • задавать вам вопросы, которые могут заставить вас копать, чтобы найти ответ;

Когда я смотрю на множество вопросов на собеседованиях по программированию, я теряюсь.

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

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

Некоторые идеи:

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

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

В своем комментарии , отвечающем на комментарий Эрика о найме большего количества сотрудников, вы сказали

Недавно мы начали нанимать фрилансеров в определенных случаях.

Будь то команда, которой вы управляете, или один или несколько фрилансеров, вы всегда можете получить от них материал. Когда вы руководите командой, всегда нанимайте людей, которые умнее вас. Вы не хотите офисной политики, вы хотите расти.

Всякий раз, когда вы берете в команду нового человека, даже на короткий срок, позвольте ему высказать свое мнение по всем техническим вопросам, будь то код, структура и управление проектами, способ решения определенных проблем или использование контроля версий. Слушай их. Не все, что они говорят, может быть лучше того, что вы делаете, но это расширит ваш кругозор.

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

Я начинал в похожих ролях. Я оставался на связи с другими разработчиками по всему миру на форумах, где мог получить помощь в случае необходимости (и помочь другим).

Однако как программист я не вырос. Ни капельки.

Время от времени мы получали новый SDK для работы, и я ломал голову над тем, что происходит в коде, поскольку я не знакомился с различными парадигмами проектирования.

Когда вы работаете в одиночку, у вас появляются ужасные привычки (у меня так и было). Вы постоянно выбираете более простые варианты и срезаете углы, даже не осознавая, что делаете это.

Если вы не работаете в крупной организации с хорошей системой рецензирования, вы не будете расти. Вы не выйдете из своей зоны комфорта (независимо от того, сколько статей или книг вы прочитаете).

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

Классический пример классической логической ошибки: en.wikipedia.org/wiki/Faulty_generalization . Я работал почти исключительно в очень небольших компаниях и всегда был ответственным (как ОП), но это никогда не мешало мне оставаться в курсе современных методов и лучших практик. В любом случае, самая большая проблема с вашим ответом заключается в том, что он ничего не отвечает: он просто очень негативно говорит ОП, что он / она облажался.
@solarflare: Я согласен, в настоящее время я нахожусь в аналогичной должности, работая программистом-одиночкой, и меня беспокоит мое следующее собеседование, когда оно состоится. Я был таким ленивым последние пару лет, потому что нет обзора кода, стандартной практики, еженедельных встреч и тому подобного. Все, что мне сказали, это заставить код работать. Остальное никого не волнует.
@yonikawa лучший способ, который я могу придумать, - это иметь портфолио, чтобы показать его для следующей работы, на которую вы пойдете (например, вклад в открытый исходный код и т. д.). В остальном я не могу винить вас, я тоже шел по легкому пути почти 10 лет.