我开始了解Scala,我非常喜欢它.
你如何定位自己以获得Scala开发人员的工作(假设那些变得更常见)?
Scala生态系统的哪些部分具有最佳工作潜力(Lift,Actors?).
如何在未能指向Scala工作经验的情况下获得未来雇主的信誉(也许是开源项目的经验?).
(上述问题有望引起Scala民众的普遍兴趣.如果你想将我的特定情况考虑在你的回答中,这里有一些关于我的细节:长期开发人员(主要是Java),拥有计算机科学博士学位;目前没有工作;我被绑在一个非锋利的位置(罗切斯特纽约),所以我可能只限于远程工作.)
更新2010/07/30:
谢谢你的回复.我想强调对位置问题的重视.我被家人绑在一个可能不会让Scala长时间在本地工作的位置.获取远程 Scala 是否有现实的前景,如果是这样,您如何定位自己以获得远程工作?(适度的旅行量是可行的,但不是一个全面的公路战士.)
另外,我想知道如何利用我的教学背景.在当地大学教授Scala课程会对一个人作为开发人员的市场性产生重大影响,还是只是转移更多的努力而不是价值?
oll*_*erg 12
纯斯卡拉位置:
找到一个纯粹的Scala位置并不是一件容易的事,但它变得越来越容易.我将在几天内进行我的第一次纯Scala求职面试.
我希望我们会看到许多新系统完全用Scala编写,我认为这些系统主要是后端的重型系统.这些系统将使用Scalas减少错误的功能样式来减少错误.我认为Akka,SBT和Specs将是Scala开发人员的重要框架(由于它们已经很重要,因此这并不是一个预测因素).
如果您没有找到纯Scala位置:
您的可信度来自您使用Java的时间.大多数大公司都有大量必须维护和开发的Java代码.如果你的工作是照顾旧的Java代码,作为一个古老的Java大师,你应该对如何做到这一点有一些说法.第一步是更改Maven设置以允许混合Java/Scala环境.搬到SBT可能是您的最佳选择.这是您必须做的一次性投资,否则您无法继续!
如果你独立工作,你可能会在你想要的时候用Scala替换Java,很可能当你不得不重新考虑一些旧的代码时.谈论Scala作为Java的"框架"(这在技术上是一个谎言),在与非技术项目经理交谈时提高了工作效率,这可能会使他们担心的头脑平静下来.最后,您有责任确保Scala确实与Java集成.但是,由于Scala做得非常好,所以这不是什么大问题.实际上,维护旧的遗留代码对任何人来说都不是梦想,因此,如果发现任何人超过3个月,他们通常会感到高兴.管理层可能会忍受你的反叛.
如果你在团队中工作,那就有点棘手了.在这种情况下,您必须教Scala团队,否则他们将无法理解您的代码.你必须说服你的PM为Scala培训预留资源(可能很难).当你向团队介绍Scala时,从小处着手.我的经验是,Java家伙学习Scala需要一段时间,所以这不是一夜之间就完成的.因此,当你教Scala时,忽略一切"难".当团队掌握基础知识时,首先在Scala中编写测试(感谢Davetron5000获得此技巧),继续使用Java在应用程序中编程(生产代码).希望团队能够学习并享受Scala,之后,从那时起,这一切都是艰难的.
祝好运!
我认为你最好的选择是擅长Scala并在Scala社区中看到它.这些不一定是一回事,但幸运的是它们在Scala社区中非常密切相关.一旦你这样做,无论是作为顾问/承包商还是作为(远程)全职员工,都有机会使用Scala获得乐趣和利润.作为变得更好和更明显的一部分,我建议在现有社区之一(Lift,Akka,ScalaNLP,你的名字)活跃,甚至出去在荒野中劈开以解决一个常见问题,即使它只是使用Scala替代流行的Java库(例如squeryl和Dispatch)也许没有必要,但他们很棒).
我想我所说的是,为任何好的,有用的Scala代码做出贡献将是很好的经验,我认为生态系统是如此年轻,以至于不需要(或有益于?)只专注于其中的一部分.当然,如果某个Scala特定的主题和/或受益于Scala的特定领域跳出来,请将注意力引向该方向.
在这一点上有两个全职Scala工作,我要说最重要的是学习内部和外部的类型系统和标准库.然后可以相对容易地拾取各种技术.
此外,如果可能的话,今天开始使用Scala(特别是Specs和ScalaCheck)在当前项目中进行测试.
最后,正如pr1001所说,在Scala社区中可见.参与项目,在邮件列表上进行互动,在freenode上的#scala中闲逛,尽可能回答问题.
| 归档时间: |
|
| 查看次数: |
3350 次 |
| 最近记录: |