Подтвердить что ты не робот

Позиционирование для работ Scala или Лифт

Я начинаю понимать Scala, и мне это очень нравится.

Как вы можете позиционировать себя, чтобы получить оплачиваемую работу в качестве разработчика Scala (при условии, что они станут более распространенными)?

  • Какие части экосистемы Scala имеют лучший потенциал работы (Lift, Actors?).

  • Как вы можете получить доверие у потенциального работодателя, не имея возможности указать на опыт работы Scala (возможно, опыт работы с проектами с открытым исходным кодом?).

(Вышеупомянутые вопросы, мы надеемся, представляют собой несколько общий интерес к Scala folk. Если вы хотите повлиять на мою конкретную ситуацию в своем ответе, вот несколько подробностей обо мне: давний разработчик (в основном Java) с Computer Sci PhD, в настоящее время не работает, я привязан к непересекающему месту (Rochester NY), поэтому я могу быть ограничен удаленной работой.)


Обновление 2010/07/30:

Спасибо за ответы. Я хотел бы обратить внимание на проблему местоположения. Я привязан семьей к месту, которое, вероятно, не будет Scala работать локально в течение длительного времени. Есть ли реалистичные перспективы для получения удаленной работы Scala, и если да, то как вы позиционируете себя для получения удаленной работы? (скромное количество поездок было бы выполнимым, но не полным воинским воином.)

Кроме того, мне было интересно, как использовать мой опыт преподавания. Будет ли преподавание класса Scala в местном университете сделать большую разницу в одной товарности в качестве разработчика или просто отвлечь больше усилий, чем это стоит?

4b9b3361

Ответ 1

Чистая Scala позиция:

Поиск чистой позиции Scala не очень прост, но становится все легче и проще. В течение нескольких дней я начинаю свое первое чистое собеседование Scala.

Надеюсь, что мы увидим, что многие новые системы полностью написаны в Scala, и я думаю, что эти системы будут в основном базовыми, мощными системами. Эти системы будут использовать Scalas менее склонный к ошибкам функциональный стиль для уменьшения ошибок. Я думаю, что Akka, SBT и Specs станут важными платформами для разработчика Scala (это не слишком много прогноза, поскольку они уже важны).

Если вы не найдете чистую позицию Scala:

Ваше доверие приходит с вашего времени с Java. У большинства крупных компаний есть куча кода Java, который должен поддерживаться и развиваться. Если ваша работа заключается в том, чтобы присматривать за старым Java-кодом и как старый Java-гуру, вам следует сказать, как это должно быть сделано. Первым шагом является изменение настройки Maven для создания смешанной среды Java/ Scala. Переход на SBT - это, вероятно, ваш лучший выбор. Это одноразовая инвестиция, которую вы должны сделать, иначе вы не сможете продолжить!

  • Если вы работаете независимо, вы, вероятно, замените Java Scala, когда захотите, скорее всего, когда вам придется повторно использовать какой-то старый код. Говорите о Scala как о "фреймворке" для Java (это технически ложь), что повышает производительность при разговоре с менеджером нетехнического проекта, это может успокоить их тревожные умы. В конце концов, вы будете нести ответственность за то, чтобы Scala действительно интегрировался с Java. Но так как Scala делает это очень хорошо, это не большая проблема. Фактически, сохранение старого устаревшего кода не является мечтой для всех, поэтому PM обычно счастливы, если найдут тех, кто будет делать это более 3-х месяцев. Менеджмент, вероятно, будет мириться с вами восстанием.

  • Если вы работаете в команде, это немного сложнее. В этом случае вам нужно обучить команду Scala, иначе они не смогут понять ваш код. Вы должны убедить своего PM выделить ресурсы для обучения Scala (может быть, трудно). Когда вы вводите команду Scala в команду, начинайте с малого. Мой опыт в том, что для Java dude требуется некоторое время, чтобы узнать Scala, поэтому это не делается за одну ночь. Поэтому игнорируйте все, что "трудно", когда вы преподаете Scala. Когда команда схватывает основы, начинайте с написания тестов в Scala (спасибо Davetron5000 за этот совет), продолжайте использовать Java для программирования в приложении (производственный код). Надеемся, что команда научится и наслаждается Scala, и после этого, ну, это все спустится с этой точки.

Удачи!

Ответ 2

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

Знание библиотек ( Akka и Подъем является очевидным) sbt инструмент сборки отличный, но он лишний. Я хотел бы знать, что вы понимаете:

Если вы понимаете язык, вы без проблем поймете библиотеки.

Другие библиотеки:

  • scalaz для функционального программирования
  • scalala для численного программирования (линейная алгебра и т.д.)
  • scalaj для взаимодействия с Java

Ответ 3

Думаю, ваш лучший выбор - это получить удовольствие от Scala и стать видимым в сообществе Scala. Это не обязательно одно и то же, но, к счастью, они очень тесно связаны с сообществом Scala. Как только вы это сделаете, есть определенная возможность использовать Scala для удовольствия и прибыли, будь то консультантом/подрядчиком или как (удаленный) сотрудник с полной занятостью. В рамках улучшения и более заметного я бы рекомендовал стать активным в одном из существующих сообществ (Lift, Akka, ScalaNLP, вы называете это) или даже выходите в пустыню и взломать для решения общей проблемы, даже если он просто делает родную Scala альтернативу популярной библиотеке Java (например, squeryl и Dispatch, возможно, не были нужны, но они потрясающие).

Я предполагаю, что я говорю, что вклад в любой хороший, полезный код Scala будет хорошим опытом, и я думаю, что экосистема настолько молода, что нет необходимости (или выгоды?) специализироваться только на одной части Это. Конечно, если существует конкретный объект, который Scala полезен для и/или определенного поля, которое извлекает выгоду из Scala, которое выдается вам, направьте свое внимание в этом направлении.

Ответ 4

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

Кроме того, начните использовать Scala (особенно Specs и ScalaCheck) для тестирования в вашем текущем проекте, сегодня, если возможно.

Наконец, как сказал pr1001, вы можете увидеть в сообществе Scala. Вносить вклад в проект, взаимодействовать в списке рассылки, болтаться в # scala на freenode, отвечать на вопросы, где вы можете.

Ответ 5

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

Он работал на Дика Уолла, поэтому он должен сработать для вас.:)