Я только что закончил колледж со степенью в CS, поэтому я хотел бы найти работу, где я могу узнать больше о области и накопить некоторый профессиональный опыт.
Я брал интервью у компании, которая использует свой собственный язык программирования, и я не думаю, что другие его используют. Они не упомянули использование каких-либо других языков или того, что они используют для среды разработки.
Что меня должно беспокоить, принимая такую работу? Если бы мне пришлось сменить работу позже, пришлось бы мне снова начинать искать должности начального уровня, потому что у меня не было опыта работы с конкретным языком?
programming-languages
skills
AlexMA
источник
источник
Ответы:
Основные минусы:
Если бы это был я, я бы спросил их, почему они используют внутренний язык. Если это по уважительной причине, такой как сумасшедшие аппаратные ограничения, домен, который не может быть легко смоделирован ни на одном из существующих языков, тогда это совершенно нормально. С другой стороны, если их ответ предполагает, что они создали свой собственный язык, чтобы они могли объединить кучу хаков и бизнес-логику в то, что составляет кучу дурацких макросов, то это большой красный флаг. Вы хотите убедиться, что они используют хорошие инженерные принципы, чтобы вы могли учиться у них и преуспевать с ними.В этом случае вы можете увидеть, могут ли они рационально оправдать использование собственного языка, который не имеет базы знаний сообщества и внешней поддержки. Вы можете обнаружить, что их решение совершенно рационально (я считаю, что Facebook создал свою собственную версию PHP для решения проблемы масштабируемости, что им очень помогло), или вы можете обнаружить, что они создали чудовище языка, который был настолько тесно связаны с их основными системами, что они не могут отделиться от него. Поверьте мне, вы не хотите работать на языке, основной тип данных которого называется ImARInObj (объект счета-фактуры неизменной учетной записи). В таких ситуациях часто возникает тесная связь между языком и потребностями бизнеса, и каждый день сталкиваться с подобной системой было бы настоящим кошмаром.
источник
Беги и беги быстро. Если вы не отчаянно нуждаетесь в работе и очень голодны, это ситуация, от которой вы хотите избежать.
У меня есть опыт работы с компанией, которая сделала это, и единственная причина, по которой они это сделали, состояла в том, чтобы их сотрудники не получали значимого, передаваемого опыта. Это действительно было все о контроле.
Другие, кто сказал здесь, что «программирование - это программирование», правы, но я бы перевернул это с ног на голову и спросил, почему бы не использовать какой-то стандартный язык, для которого есть возможность выбрать внешнюю поддержку, библиотеки, форумы и пул доступных программистов. от?
Единственная ситуация, когда я думаю, что такая ситуация была бы в порядке, была бы, если бы язык только для компании был для нестандартного оборудования. Например, вы должны написать все для гамма-интерферометра 9000X, используя сборку / машинный код, специфичный для этой машины.
источник
Поскольку ваше резюме в основном не заполнено после окончания учебы, ваша первая работа придает большой импульс вашей будущей карьере. Ваш следующий потенциальный работодатель (и) будет придавать большое значение этой работе. Так что, если вы не будете программировать и на других (более рыночных) языках, я настоятельно рекомендую не брать эту работу.
Я говорю это по опыту, потому что я только что оставил свою первую работу после получения степени CS, где я оказался почти в том же положении, как вы описываете. Большая часть программирования была выполнена на практически неизвестном языке, называемом Progress (он же OpenEdge ABL). Это ужасно. Не так плохо, как Кобол, но близко. Я застрял там, потому что в районе, где я получил высшее образование, не так много рабочих мест по программированию, и я ждал, пока моя жена закончит учебу, прежде чем переехать.
Заставить этот язык общаться с другими языками или базами данных было почти невозможно (он также был заблокирован собственной проприетарной базой данных - бонус!). Я потратил много времени на написание собственных фреймворков, которые уже существовали на других языках, и, вероятно, уже были лучше реализованы, так как язык не очень хорошо поддерживал этот тип парадигмы «расширения». Язык был более приспособлен к подходу «свяжитесь с Progress Corp. с запросом функции и дождитесь версии n + 1 для новой функции». Излишне говорить, что индустрия программного обеспечения не движется достаточно медленно, чтобы этот подход был жизнеспособным. Я не буду рассказывать о том, как все было плохо, но я полагаю, что вы столкнетесь с аналогичной проблемой, если будете иметь дело и с проприетарным языком.
Чтобы добавить к этому, существующая кодовая база была, скажем так, неоптимальной. Много унаследованного кода, относящегося к концу 80-х / началу 90-х годов. Держу пари, что вы должны ожидать чего-то подобного, поскольку я думаю, что большинство компаний придерживаются только проприетарных языков, потому что они несут с собой большую часть этого унаследованного багажа. Помните, что для такого работодателя, вероятно, трудно найти программистов, желающих писать код в этой устаревшей / проприетарной среде, плюс им, вероятно, придется также платить за обучение, так как никто никогда не слышал об этом. Ваши коллеги, вероятно, тоже не будут титанами разработки программного обеспечения из-за эффекта Мертвого моря(кто-нибудь с талантом, вероятно, уже ушел). У меня было много проблем с обзорами кода, пытавшимися использовать объектно-ориентированный код, не говоря уже о любых типах шаблонов проектирования, поскольку они просто не понимали этого (люди в моей команде в лучшем случае имели степень MIS (без обид )).
Наконец, если вы берете на себя эту работу, но жаждете сделать что-то лучше после того, как уйдете, для того, чтобы стать конкурентоспособным для вашей следующей работы, вы должны либо пожертвовать большим количеством своего свободного времени вне работы, создавая ломкие игрушки на более рыночных языках (и вероятно, с открытым исходным кодом большую часть того, что вы делаете), или сделайте то, что я сделал, и накопите немного денег, прежде чем уйти и потратить месяц или два, делая то же самое. В любом случае, это очень стрессовая вещь, особенно если вам нравится иметь какие-либо социальные отношения вне работы или проводить свободное время, занимаясь чем-то, что не кодирует время от времени.
Теперь мой опыт может не соответствовать вашему выбору, но я уверен, что некоторые из них будут применимы. Надеюсь, это, по крайней мере, даст вам несколько вопросов для обсуждения. Как уже упоминали другие, вы, вероятно, захотите узнать, какие инструменты они используют (аппаратное обеспечение, среда разработки программного обеспечения / IDE и, безусловно, контроль версий). Тест Джоэла может быть полезным руководством.
TL; DR
Не делай этого.
PS Для тех, кто говорит, что изучение любого нового языка полезно, это само по себе верно. Проблема в том, что вы застряли в использовании этого языка почти исключительно на полный рабочий день в течение длительного периода времени, теряя знакомство с более полезными языками (и техниками). Это то, что вы хотите избежать.
источник
Очевидным недостатком является то, что вы не сможете добавить эту работу к требованию «5+ опыт с использованием языка x», которое будут иметь будущие вакансии, к которым вы хотите подать заявку. Это может быть более раздражающим, чем вы думаете (говоря как о человеке с многолетним опытом работы, но с широким спектром языков программирования). У меня есть профессиональный опыт работы с VBA, который, возможно, был бы опытом работы с LOLCODE, исходя из того, какую работу я ищу сегодня.
Но используют ли они исключительно этот язык? Редко когда компания использует только один язык. Даже мое время с VBA включало в себя некоторые ASP, Java и PostgreSQL.
источник
Я склонен согласиться с мантрой « программирование - это программирование », независимо от того, на каком языке вы работали. Большая часть программирования учится думать, а остальное - просто синтаксис. Потенциальный будущий работодатель будет более впечатлен « Я достиг Х с Компанией Y », чем « Я знал язык Х в течение Y лет ».
Последняя работа, которую я взял, была связана с PL / SQL, и я никогда не писал ни одной строки PL / SQL - я взял ее примерно за две недели.
Тем не менее, я определенно буду практиковаться с другими языками, просто чтобы быть в курсе. Находясь на новой работе, имейте один или два любимых проекта, которые будут держать вашу руку в форме с более стандартным языком, но не слишком суетитесь по этому поводу.
источник
В сфере ИТ компания часто связана с рекрутером, чтобы найти хороших кандидатов. Рекрутеры не являются специалистами по ИТ, поэтому имеют некоторые критерии и подбирают кандидатов, а затем отправляют их обратно в компанию. Это идет тем же путем с человеческими ресурсами в больших компаниях.
У вас есть проблемы с этим. Вы не будете соответствовать критериям рекрутера. Итак, я бы сказал, что это не проблема, касающаяся ваших соревнований. Программирование - это программирование, и серьезный программист должен знать, как переключаться с одного языка на другой, потому что синтаксис менее важен, чем умение создавать надежный код, тестируемый код и обслуживаемый код. Эти возможности в основном не зависят от языка.
Однако до тех пор, пока вы не будете соответствовать критериям, по которым никто из ИТ-специалистов не будет вас нанимать, вероятно, будет неудобно найти работу в будущем. Даже если вы все равно будете конкурентоспособны. Эти люди не знают, как это судить, потому что они не ИТ.
Я бы определенно не рекомендовал эту работу для первого. Но если у вас уже есть какая-то запись в вашем резюме о широко используемых технологиях (Java, PHP, C, C ++, C #, ...), сделайте это, если вам это нравится.
источник
Определенно есть навыки, которые вы можете приобрести / улучшить, используя проприетарные языки и среды. Как уже упоминалось в других ответах, некоторые навыки выходят за рамки языка, и они могут быть очень ценными в резюме.
Тем не менее, эти навыки часто упускаются из виду, когда люди, рассматривающие резюме, не являются техническими. Часто (в нижней части спектра качества работы, что, к сожалению, часто является лучшим выбором для относительно неопытных разработчиков), резюме будут оцениваться в основном по x годам языка y , а другие навыки, которые вы, возможно, не освоили играйте до тех пор, пока не пройдете ногу за дверью с интервью.
Еще один фактор, который следует учитывать, заключается в том, что проприетарные среды имеют тенденцию (по крайней мере, на мой взгляд) с большей вероятностью быть плохо спроектированными, грязными и в целом разочаровывающими, чем обычные среды. Работа исключительно в плохой проприетарной системе может быть очень обескураживающей, особенно для тех, кто только начинает карьеру в программировании.
При этом помните, что опыт работы с проприетарной системой, хотя и не такой хороший, как аналогичный опыт работы с популярными основными языками, все же лучше, чем отсутствие опыта в долгосрочной перспективе. Для некоторых должностей вы будете иметь преимущество выше начального уровня, а для других вы можете (или не можете) квалифицироваться как начальный уровень для определенных языков, но ваш опыт значительно опередит вас среди других соперников. для тех рабочих мест.
Прежде чем рассмотреть возможность отказа от предложения из-за акцента на проприетарном языке, обязательно рассмотрите текущий рынок вакансий и то, как обычно принимаются ваши заявки.
источник
Это зависит от того, какие вспомогательные языки и навыки вы приобретете. Если их родной язык не используется или даже не известен за пределами компании, это будет иметь ограниченную карьерную выгоду (если только не произойдет взрыв и он не станет следующей большой вещью). Я потратил несколько лет на работу со сторонним инструментом, который сам по себе бесполезен для меня (с точки зрения карьеры), однако благодаря работе над этими проектами мои навыки работы с HTML, css и javascript улучшились. Я также много узнал о том, как корпоративные проекты запускаются и структурируются, работают с клиентами, управляют ожиданиями. Все вещи, которые являются неотъемлемой частью современной разработки программного обеспечения, на самом деле не являются языком.
источник
А как насчет фреймворка: IDE, редактор, библиотеки? Самые сложные бизнес-приложения. в настоящее время это невозможно сделать с помощью простого текстового редактора и компилятора командной строки.
У них есть что-то для их собственного языка программирования?
источник
Часто изучение бизнеса важнее, чем изучение технологии. Если вы думаете, что хотите остаться в той отрасли, в которой работает эта компания, тогда сделайте это. Если это нишевый рынок или тот, который вас не особенно интересует, то я бы предложил пропустить его. Знание тонкостей (скажем) фармакокинетики и процесса открытия лекарств откроет двери, которых не может быть еще один программист на C # / Python / Java. И если этот «уникальный» язык не является в большей степени генератором кода или конфигуратором, вы все равно будете решать общие проблемы, поэтому вы все равно получите некоторый общий опыт, даже если конкретные методы не могут быть напрямую переданы.
источник
IT'S A TRAP!
Я бы подумал о том, чтобы взять его, если и только если у вас будет большой опыт работы на других языках. Если вы все же приступите к работе, вы можете (и должны) сохранить свои навыки в основных языках, работая над проектами с открытым исходным кодом в свободное время.
Чего вы хотите избежать, так это возможности того, что ваши навыки будут в высокой степени адаптированы к одной конкретной компании и не будут передаваться другим. Технически, программирование - это программирование, и опыт работы вне единой среды программирования полезен, а не вреден, поскольку помогает вам более четко видеть проблемы.
Подумайте об этом так: если вы занимаетесь написанием Perl-программ, это не обязательно обрекает вас на вечность написания Perl-программ. Работа в .NET также не обрекает вас на вечную связь с Microsoft.
Но вот важная часть: я бы никогда не нанял программиста, который знает только один язык , даже если я хочу, чтобы он использовал его. Программист, у которого нет большого опыта работы на многих языках, часто беден даже с его языком выбора. Это также отражает отсутствие стремления учиться чему-то новому.
С другой стороны, если программист знает Python, Ruby, C #, PHP, C и Erlang, то тот факт, что он также знает APL, не является ударом по нему, хотя в аду нет никаких шансов, что мы будем использовать APL для что-нибудь.
Так что, если у вас есть дисциплина, не позволяйте языку стать вашим единственным центром внимания, то приступайте к работе.
И стоит еще раз заявить: внести свой вклад в проекты с открытым исходным кодом. Они рассчитывают на тонны больше , чем «опыт работы» , потому что это не то , что вы только что сделали , чтобы сделать зарплату. Программисты, работающие над проектами с открытым исходным кодом, похожи на золото.
источник
Моя первая работа после получения степени CS связана с развитием неясного языка. Не уникальный Не разработано собственными силами. Но достаточно малоизвестный VMS 4GL, чтобы я никогда не видел, чтобы кто-нибудь еще использовал его.
Оглядываясь назад, это было неразумное решение. Хотя я много узнал о профессиональной разработке программного обеспечения, выполняя эту работу, было бы намного лучше развить рыночный уровень владения языком, чтобы соответствовать «мягким» навыкам.
Мне повезло - моя вторая работа работала с еще одним малоизвестным VMS 4GL. Они наняли меня, потому что знали, что не могут найти людей, которые уже знают этот язык - того факта, что у меня был опыт работы на платформе VMS с 4GL, было достаточно. И на этой работе у меня была возможность обучаться рыночному языку, поскольку они хотели перейти от VMS к серверам Windows.
Но я легко мог бы не иметь такой удачи, и я оказался в своей карьере пять лет с абсолютно нулевым опытом, который бы убедил вербовщика или сотрудника отдела кадров взглянуть на мое резюме.
Что касается вашей первой работы после окончания учебы, я очень, очень не рекомендую.
источник
Чтобы дать мета-ответ, я заметил, что многие ответы говорят: «Из личного опыта это плохо».
Многие другие говорят: «Теоретически, это не должно быть плохо».
Но ни один из ответов, которые я видел, не был от людей, которые сделали что-то подобное и думали, что это был хороший опыт.
Теперь, может быть, некоторые люди сделали это и в восторге от своей работы, но не на Stack Exchange. Это верно для некоторых коммерческих программ. Например, есть некоторые действительно преданные администраторы Software AG Natural / Adabas, но о Stack Exchange не так много обсуждений. Однако, по крайней мере, кто-то ищет даже этих нишевых специалистов. Это не было бы верно для полностью проприетарного языка.
Поэтому, если цель состоит в том, чтобы перейти к типу технологий, обсуждаемых здесь, тот факт, что немногие подтверждают это из реального опыта, говорит о том, что это не обязательно лучшее начало. Это может быть не поцелуй смерти. Но вы бы хотели поработать над тем, чтобы он не стал ужасным препятствием, например, путем запуска или участия в проекте с открытым исходным кодом, связанным с вашими устремлениями.
источник
Возьмите работу, если вы чувствуете, что есть хорошие / замечательные программисты, которые будут помогать и наставлять вас. Вы могли бы подумать, что в этом месте есть довольно хорошие люди, но не уверены. Кроме того, имеет ли эта компания какую-либо репутацию для найма лучших кандидатов? Вы можете быть наняты кем-то другим, независимо от языков, используемых на работе.
источник
Будьте особенно осторожны, если в проблемной области доминирует один или несколько языков в отрасли. Разработка баз данных тесно связана с SQL. Разработка ПЛИС в основном разделена между Verilog и VHDL. Сравните это с веб-приложениями, написанными на (комбинациях) Java, PHP, Perl, Python, Scala, C ++ и т. Д. Менеджер по найму, ищущий веб-разработчиков, будет гораздо лучше разбираться в передаваемых навыках, если у вас нет особого опыта на их языке выбора. Менеджер по найму, который ищет кого-то, кто будет писать запросы к базе данных, будет ожидать опыта SQL.
источник
Я программировал на проприетарном языке. Но это был не тот язык, который использовался повсеместно. Теперь я ничего не имею против этого опыта, хотя я жалел каждый момент выполнения этой работы. У меня был шанс использовать этот язык, поддерживать этот язык и улучшать его, а также поддерживать программу, написанную на этом языке.
Попутно я научился читать и понимать, как будет работать маленький переводчик. Если у вашего потенциального работодателя есть источники для компилятора / интерпретатора для проприетарного языка, вы также можете получить возможность поработать над его внутренними компонентами. Я могу сказать, по опыту, вы будете ценить этот опыт работы на долгие годы.
Какие передаваемые навыки вы бы приобрели: работа в команде, разработка программного обеспечения, написание компилятора / интерпретатора или его частей, алгоритмов и т. Д. Если это интерпретатор, проприетарный язык - это просто маска, под которой вы найдете переводчика. написано, скажем, на С или другом таком языке. Если проприетарный язык скомпилирован, у вас будет возможность поработать над рабочим компилятором, который полностью загружен. Поэтому, когда вы ищете следующую работу, вам нужно продавать эти навыки сложнее, чем, скажем, C / C ++ / Java / Python для разработчика приложений или Python, Perl, Java, HTML, CSS, JavaScript, Flash для веб-разработки или Verilog, VHDL для встраиваемых разработок или любой другой набор языков для другой области приложений.
Все это при условии, что у вашего потенциального работодателя есть источники для проприетарного языка, и вы готовы не только работать над программами, написанными на проприетарном языке. Тем не менее, я признаю, что я крайне оптимистичен, говоря, что у вас может быть такая же возможность, как и у меня несколько лет назад.
На собеседованиях многолетний опыт и технические навыки не одиноки в принятии решений о найме. Ваша жажда к обучению, культурное настроение, культурное стремление, играют большую роль в принятии решения.
Итак, для первой работы, если ваша работа не будет ограничиваться программами, написанными только на проприетарном языке, но позволит вам также работать над ее реализацией, возьмите ее.
источник
Я думаю, что у этого есть две стороны. Во-первых, это конкретная работа, а во-вторых, как она влияет на ваши карьерные перспективы.
Что я хотел бы знать об этой работе, так это то, почему они создали свой собственный язык программирования. Имеет ли это смысл? Если нет, я бы взял другую работу.
За последние десять лет я работал в трех компаниях со своим языком. Первый, потому что, когда проект был запущен, не было ничего, что могло бы сделать то, что им было нужно. (Они написали техническую версию Visual Basic, но это было для Unix и за годы до появления VB.) У двух других были требования к производительности, которые не могли быть выполнены с существующими языками. Я считаю эти довольно веские причины.
Что касается перспективы карьерного роста, как уже упоминали другие, у рекрутеров и специалистов по персоналу, которые не разбираются в программировании и работают с использованием ряда флажков, будут проблемы с вашим резюме. Многие компании, которым нужен программист на языке C ++ с поддержкой технологии plug-and-play, будут платить за то, что вы изучаете новый язык. Все это правда.
Но вы действительно хотите работать в такой компании?
Если ответ на этот вопрос «Да», то вам, вероятно, следует отказаться от этой работы и найти ту, у которой более обычные требования. Кроме того, в зависимости от того, где вы живете, у вас может не быть большого выбора, и вам придется работать в компаниях, которые на самом деле не понимают программистов.
Лично я не хочу работать в такой компании, и думаю, что будет справедливо сказать, что я не нашел, что мой выбор слишком ограничен. Если у вас есть опыт быстрого изучения новых технологий, решения реальных проблем и, возможно, некоторых «деловых» знаний, то я думаю, что у вас все будет хорошо.
Также есть плюсы. Сколько еще мест вы можете поиграть с компилятором / интерпретатором? Как часто вы влияете на новые функции и синтаксис языка, который вы используете каждый день?
источник
Прежде всего, внутренний язык программирования не обязательно является плохой вещью, однако, есть несколько основных правил, которые необходимо оправдать для пользовательского языка.
Ты пишешь, что думаешь, что они не используют другой язык. Первый вопрос, который вы должны задать, это если они используют любой другой язык.
Пользовательские языки программирования могут иметь веские основания. Я знаю математику, работаю со специализированными языками. Я слышал, что налоговая служба использует специальный язык для расчета налогов с учетом ежегодно меняющихся законов о них. Добро пожаловать в область метапрограммирования .
Однако любой пользовательский язык никогда не должен реализовывать полный язык. За пределами этого домена вы все равно должны использовать классический / широко известный язык программирования. Даже в языковой области не все мелкие детали охватываются языком домена.
Хорошие вопросы, чтобы задать:
Из этих ответов вы сможете узнать, в каком состоянии находится язык. если это язык домена, который добавляет большую ценность, все в порядке. Если это чей-то любимый проект по замене Java или C #, тогда уходите оттуда как можно скорее .
Редактировать: я предлагаю вам прочитать статью на специальном языке домена в Википедии, которая должна дать более глубокое понимание.
источник
Нам это может не нравиться, но, как программист, мы должны иметь резюме, которое агенты и отделы кадров готовы направить менеджерам проектов . Наше резюме также должно выделяться как соответствующее необходимому по-прежнему установленному в течение 30 секунд тому, кто на него смотрит, оно также должно иметь правильные ключевые слова, которым соответствует поиск в базе данных cv.
Так что работа на уникальном языке программирования - это большой риск! Однако использование сочетания DSL и языка основного потока может быть хорошо представлено в резюме. (Вы должны сказать правду в своем резюме, но это не должно быть всей правдой!)
источник
Я бы меньше нервничал, если бы устроился на такую работу, если бы у вас уже был достаточно широкий круг знаний в области программирования. Если вы новичок в этой отрасли, это может привести к плохой профессиональной репутации, возможно, настолько, что вам придется фактически начать сначала как младший или стажер позже ... Это может быть особенно плохо, если вы останетесь с этой компанией на некоторое время, только чтобы уйти без передаваемых навыков.
Если вы уже достаточно опытны в этой отрасли, то это может быть отличной точкой для вашей карьеры. И восприятие, если / когда ты покинешь это место, было бы больше «черт, он джедай, он сделал все»
источник
Присоединяйтесь к компании только в том случае, если вы будете работать в компании всю свою жизнь, или даже никогда не подумаете о том, чтобы заняться ею, даже если вы получаете хороший пакет заработной платы. У меня есть опыт работы в такой компании и застревание там, несмотря на много разочарований в работе, потому что нет опыта в других языках программирования, чтобы искать другую работу.
источник
Я видел человека с 15-летним опытом работы, главным образом в качестве ведущего или основного разработчика, который не мог получить работу в течение длительного времени, в первую очередь потому, что компания оставила его без опыта работы с современными языками и API.
Программисты попадают в мусорное ведро так же, как это делают актеры в фильмах (герой, Виллиан и т. Д.), И, как только вы определитесь с тем, что у вас есть, я думаю, что вам будет намного сложнее найти работу, чем если вы только что вышли из колледж.
То есть, если у вас есть степень CS, вы, вероятно, кандидат на ряд рабочих мест.
Но если у вас есть степень CS с 3-летним опытом работы с PHP, вы на самом деле МЕНЬШЕ из кандидатов на должность веб-разработчика Java, чем когда вы закончили. Вы называете себя разработчиком PHP, и пока у вас не будет опыта, это то, что вы будете наняты для работы. (Странно, но я думаю, что у вас больше общего опыта, но ваше резюме будет проигнорировано как не относящееся к делу, потому что это неправильный тип опыта, в то время как ваше резюме из колледжа могло бы и не быть)
И если у вас есть степень CS с 1-летним опытом работы в SpecialtyLanguageX, то вы закрыли для себя все виды дверей.
Это всего лишь мои мнения и наблюдения, конечно, я никогда не делал найма, это как раз то, на что это похоже.
источник