Будучи молодым разработчиком, должен ли я беспокоиться о необходимости использовать технологию «вне стиля» на работе? [закрыто]

11

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

Однако я уже несколько месяцев угадываю это решение по нескольким причинам. Во-первых, мне не очень сложно работать, и я чувствую, что не стал лучше в программировании с тех пор, как начал здесь. Я всегда могу найти время для работы с открытым исходным кодом (и раньше) вне моей работы, поэтому у меня есть место, чтобы обойти это разочарование. Что еще более важно, я обеспокоен тем фактом, что моя работа в основном заключается в работе над скрипучим старым веб-приложением на Perl (с использованием Mason и странного внутреннего ORM).

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

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

schwern
источник
12
Вы стреляете себе в ногу, нет, конечно, нет. Кто-то должен делать то же, что и вы, иногда вам нужно работать подобного рода, чтобы получить опыт, НО, если ваш несчастный поиск другой работы. Вы можете любить свою работу и получать за нее деньги. Не каждая работа будет сопряжена с трудностями, так как в мире нет ничего плохого в использовании внутренних инструментов и Perl.
Ramhound
13
По крайней мере, это не MUMPS!
Мартин Беккет
1
Я несчастен не из-за Perl (что на самом деле довольно забавно), а потому, что я не расту как программист. Я могу работать над вещами вне работы, чтобы улучшить себя - это очень тяжело, так как у меня мало времени (я также профессиональный музыкант, поэтому я выступаю, преподаю, записываюсь и учусь в местной консерватории для большинства раз я не работаю). Я думаю, что я хочу сказать, что я хочу работу, которая будет работать для меня в этом отношении, и я боюсь, как мое нынешнее положение повлияет на мою способность найти такую ​​работу.
Schwern
5
@schwern: Я бы не волновался вообще. Просто включите эти языки в свое резюме и подайте заявку на следующую работу. :-)
Джорджио
7
Perl - это, по сути, клейкая лента программирования, которую никогда не бывает больно знать, и которую можно использовать для почти всего.
Ryathal

Ответы:

51

Прежде всего, перестаньте думать, что ваша работа не продвигает вас дальше к работе вашей мечты! Каждая работа делает! Все зависит только от вас!

  • Это ваша первая работа после окончания учебы, и каждый может понять, что у вас не было хорошего выбора или вы могли подумать о некоторых других факторах, таких как переезд в место, где вы хотели бы остаться. Это действительное «оправдание», вы можете упомянуть его, если прямо спросить во время собеседования.
  • Каждая работа по программированию способствует вашему опыту в качестве разработчика. Есть много не зависящих от языка вещей, которые каждый разработчик должен выучить самостоятельно (реализация слабосвязанных архитектур, отладка и профилирование кода, написание модульных тестов и т. Д.) , Которые можно выучить на ЛЮБОМ языке , и Perl не самый плохой использовать. Я имел обыкновение практиковать все три в разработке VBA для MS Access, и это было очень весело.
  • В конце концов, это не продуктивно : если вы считаете свою нынешнюю работу скучной и бесполезной, вы многому от нее не научитесь. Во многих случаях вашему будущему работодателю будет интересна ваша «кривая обучения» - насколько быстро вы осваиваете новые технологии, а не то, насколько скучной была ваша последняя работа!

Итак, способы, которые помогут вам в следующем:

  • Постарайтесь как можно глубже освоить язык, с которым вы сейчас работаете . Посмотрите тег perl на SO-сайте и попробуйте ответить на вопрос, который там задают. Читайте статьи на многих ресурсах для разработчиков и т. Д. Попробуйте стать гуру в этой области!
  • Perl - это мультипарадигмальный язык, теперь поддерживающий ООП и многие другие парадигмы. Попробуйте отделить их от языка и посмотреть на них индивидуально. Какой тип наследования у Perl? Какие различные типы модификаторов доступа доступны здесь для классов, членов класса и т. Д.? Это сильно напечатано или нет? Многие языки функционируют аналогичным образом, если вы знаете, как они работают в целом, вы легко поймете разницу в других языках .
  • Получите глубокое понимание вашей текущей системы : почему она реализована в Perl? Как решаются различные аспекты, такие как производительность, безопасность, надежность? Каковы нерешенные проблемы, предостережения, потенциальные нарушения? Как бы вы справились с ними? Может быть, там есть какой-то разумный рефакторинг текущей кодовой базы?

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

Когда вы подаете заявку на вторую работу в более или менее ближайшем будущем, вас все равно можно рассматривать как младшего разработчика! Вы должны попытаться подчеркнуть то, что вы узнали на своей первой работе, как вы справились со своими проблемами по поддержанию устаревшего кода и системы «коричневого поля», как вам удалось расширить свой кругозор и какие новые интересные функции вы узнали там.

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

Александр Галкин
источник
2
+1 за любой совет, который предлагает выпускникам следовать решениям, даже если они потом об этом пожалеют. Я потерял счет числу опрошенных кандидатов, которые застрелились в ногу на собеседовании. Если кандидат признает, что ему скучно выполнять работу, ожидаемую от выпускника, тогда интервьюеры думают, что они будут удовлетворены, если я найму их. Мой совет любому новому сотруднику, будь то выпускник или кто-то еще, состоит в том, чтобы искать проблемы с работой и участвовать в полной мере. В худшем случае они получат отличное направление, а в лучшем - продвижение и более сложные задачи.
С.Робинс
Ваш энтузиазм только что сделал мой день. +1 за очень здравый совет.
Raveline
Я регулярно интервьюировать кандидатов для одной из крупнейших софтверных компаний, и это определенно делает больно кандидата иметь выйти из колледжа в работу , которая, по существу , шаблон холдинга.
Крис Питман
1
+1 - Сильные люди не сидят там и не ждут, пока появятся возможности, они встают и создают их.
Пустынная планета
7

Первые рабочие места в индустрии программного обеспечения часто являются дрянными. Хотя некоторые навыки программирования будут иметь место, самое важное образование, которое вы получаете, - это то, как работать в компании.

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

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

briddums
источник
6

Я рассмотрю различные аспекты вашего вопроса отдельно:

  1. Ваша первая работа никогда не будет очень сложной. Причина в том, что университет обучает вас тому, что вам нужно в течение 30 лет, в то время как компании должны работать с технологиями, которые уже доступны. Надеемся, что 30-летний материал более продвинут, чем современное состояние. Продолжительность полугодия также приводит к тому, что работа отличается от привычной в университете.
  2. Обучение в значительной степени делается в свободное время. Это прискорбный факт, но стоимость людей настолько высока, что они всегда должны делать что-то продуктивное. Лучшей альтернативой было бы, если бы можно было сочетать обучение и продуктивное развитие, но тогда вы будете работать с технологиями, которые вы еще не знаете, и это может вызвать проблемы просто потому, что вы не понимаете технологию, которую используете. Если вы хотите создать что-то, что действительно работает, обучение должно осуществляться вне производственной среды. Во многих компаниях это просто означает, что это ваше свободное время.
  3. Вы должны рассматривать Perl просто как задачу - как улучшить свои рабочие методы, чтобы они были полезны не только для Perl, но и для любой новой системы, с которой вы столкнетесь через 30 лет.
  4. При изучении новых вещей сосредоточьтесь на основах. В Perl есть регулярные выражения, хеш-таблицы и множество хороших структур данных. Все знания о том, как наилучшим образом использовать их, пригодятся в будущем.
ТР1
источник
Пункт 2 несколько пугает меня. У меня всегда было довольно хорошее умение программировать с тех пор, как я начинал, когда я был очень маленьким, - над этим я не работал очень усердно, даже в университете. Воспроизведение музыки, которая занимает большую часть моего свободного времени (практика, преподавание, учеба, запись и т. Д.), Похоже, мешает моим карьерным устремлениям. Существует ли где-нибудь работа, в которой я все еще могу многому научиться (не только в процессе, но и в сложных навыках)? В академии, возможно?
Schwern
1
Конечно, есть рабочие места, которые предоставляют возможности для обучения. Хорошие разработчики не только дороги, они также редки - многие места будут искать людей, которые будут обучаться на более высоких уровнях при наборе персонала. Это может быть либо внутреннее наставничество, либо внешнее обучение (или оба).
FinnNk
Музыкальный материал также будет полезен. Возможно, вы еще этого не заметите, но он научит вас точному времени и тому, что людям за пределами музыкальных кругов нужно использовать тяжелую математику для решения. Расширенное программирование очень сильно зависит от обоих аспектов.
tp1
2
@schwern Ключ в том, чтобы найти работу, где вы работаете с умными людьми . Тогда вы будете учиться только на контакте с ними, когда будете заниматься повседневной работой.
Крис Питман
5

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

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

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

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

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

  1. Некоторые общие жизненный цикл разработки программного обеспечения
  2. Управления источником
  3. Как проверить код (TDD, модульные тесты, селен, что-нибудь подобное)
  4. Принципы OOD (Например: в колледже вы, надеюсь, познакомились с шаблонами проектирования, теперь покажите мне, что вы действительно использовали / видели их)
  5. Базовое понимание архитектуры предприятия (например, что такое 3-уровневая система и работали ли вы с ней когда-либо)
  6. Как работать с командой

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

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

Крис Питман
источник
+ для вашей истории VBA. Я не против VBA, как таковой, но делать из этого карьеру? Вы правильно сделали.
Майк Данлавей
Я частично согласен с вами, но я думаю, что большинство программистов обладают гораздо большей гибкостью, чем те, которые они выполняют, и многое из того, что вы упоминаете, - это то, что постер может привнести в себя. Начните использовать контроль источников, даже если компания не является. Поощряйте других следовать их примеру. Начните тестирование, начните пытаться что-то улучшить . Если то, над чем вы работаете, отстой, заставьте его сосать меньше.
Кристофер Кашелл
3

Если бы я был вами, я бы, конечно, подумал о том, чтобы заняться чтением и программированием после работы на другом языке (например, Python, Java, Scala, Ruby, C ++ и т. Д.), Поэтому при подаче заявки на другую работу вы можете показать, что у вас есть знания о языках. которые более широко используются, чем Perl. Кроме того, если у вас есть другие области интересов, я бы определенно сделал дополнительное чтение.

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

Итак, опять же, мое предложение было бы: не волнуйтесь слишком сильно, но начните узнавать что-то новое в свободное время. Как только вы соберете достаточно знаний, вы обязательно найдете более интересную работу.

Джорджио
источник
2

Если вы не хотите больше работать в Perl, это нормально.

Тот факт, что в Perl сейчас мало флеш-памяти , не означает, что он не популярен.


Я хотел бы отметить, что в Perl импульс увеличился значительно только за последние 5 лет.

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

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

Если вы хотите доказательства того , как популярный Moose есть видеть , сколько CPAN модули зависят от лосей .

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


Также есть еще несколько интересных новых проектов, использующих Perl. Лакуна Пространство для одного.

Брэд Гилберт
источник
2

Кто-то должен вывозить мусор, чистить туалеты, рыть канавы и работать в Макдональдсе. Прямо сейчас вы делаете версию разработки программного обеспечения этого.

Нет ничего плохого в том, чтобы признать это и стремиться к чему-то большему!

То, что вы делаете сейчас, определенно формирует то, что вы делаете завтра, в следующем году и в ближайшие десять лет!

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

Что касается Perl, то он вне стиля в «карьерном» смысле этого слова. Как и в , если вы не хотите , чтобы сделать карьеру как парень Perl , начать изучать что - то более новое и более ан-моде. Python, Java, C # откроют больше дверей и станут более продаваемыми или что-то, что находится на пороге большого успеха через несколько лет, как Эрланг.

Все, что сказано, * учиться не делать ** так же ценно, как и делать , а учиться на чужих ошибках менее болезненно, чем учиться на своих.

Прямо сейчас вы получаете уроки в обеих этих вещах.


источник
-1: Кто-то должен забирать мусор, чистить туалеты, рыть канавы и работать в Макдональдсе. Прямо сейчас вы занимаетесь разработкой этой версии программного обеспечения ... То, что вы делаете сейчас, определенно формирует то, что вы делаете завтра, в следующем году и в следующие десять лет! - Отлично ... Так что, если я буду чистить туалеты или подбрасывать гамбургеры в Макдональдсе, куда это меня бросит через десять лет? :?
Джим Г.
В этой работе нет ничего плохого, вы не можете начинать сверху без всякого основания. Кто-то должен сделать эту работу, важный вывод из моего ответа: нет ничего плохого в стремлении к чему-то большему , что вы полностью упустили.
1

По-прежнему существует большой спрос на людей, хорошо владеющих Perl. Вы обнаружите, что сетевая индустрия и многие sysadmin-задания на базе * nix широко используют perl.

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

Билл
источник
Честно говоря, он не сбивал Perl, он просто говорил, что это не та работа, которую он хочет делать в будущем. Так что тот факт, что есть Perl-рабочие места, вторичен.
R0MANARMY
@ROMANARMY из OP: «Я редко вижу задания Perl, и когда я это делаю, обычно я делаю что-то, что мне не интересно (интерфейсная веб-разработка). Системное программирование, визуализация network programmingили, по крайней мере, бэкэндная веб-разработка Темы, над которыми мне бы очень хотелось работать, хм ... не то, что я читаю ... и в этих областях есть работа ... например, сетевая индустрия, как уже говорилось. Я работаю в интернет-компании первого уровня, Perl широко используется для серверной работы.
Билл
1

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

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

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

S.Robins
источник
1

Schwern,

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

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

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

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

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

Страстный программист

Прагматичный программист

Доменный дизайн

Карьерный программист

Пустынная планета
источник
0

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

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

ist_lion
источник