Jea*_*ash 5 project-management
我意识到这个问题很可能会得到很多"依赖",但无论如何我很好奇.当你雇用一些新的(但经验丰富的)团队时,他们没有你正在使用的技术专业知识,但是他们知道类似的东西,你花了多少时间让他们"上网".
我说的是一些相当实质的东西,比如语言,或者有很多方法可以做的框架/产品.显然,许多库只需要很少的时间就可以开始使用.
根据我自己的经验(10年的经验,包括大量的咨询,所以学习新技术是课程的标准),我需要大约三到六个月的经验才能熟练掌握新技术,大约一年感觉我正在接近专家级别,在那里我了解所有基础知识和中等难度问题,以及一些非常好的领域.
你在项目中做了什么?你如何预算学习时间.
我不认为这样的语言是问题,而是它所包含的编程范式.
比如今年早些时候,我尝试过C#,来自Java的观点.这一切都非常简单.但是,我现在正在尝试Scala.由于功能方面的原因,我希望能够学习和磨练我的技能更长时间(你可以以强制性的方式编写Scala,但是你没有利用它的优势做到这一点).
我怀疑在(比方说)从关系数据库迁移到OO数据库与MS-SQL/Oracle迁移时相同.
这不仅取决于所涉及的个人——更关键的是取决于具体的技术以及个人的背景;某些技术,特别是。语言,只是更难、更慢。我见过一些以前接触过 C++ 的世界级 Java 专家需要花费数月(比如大约六个月)的时间才能在 C++ 中充分发挥生产力;反之亦然(世界级 C++ 大师,之前接触过 Java 为零),我见过大约需要 2-3 个月;同样,对于以前从未接触过动态语言的经验丰富、技术精湛的程序员来说,完全高效地使用 Python 预计需要 3-4 周的时间。在每种情况下,我谈论的是 100% 全职参与相关技术,由一位在技能和经验方面处于世界前 1% 的程序员,在一个团队中拥有其他几位具有相同能力的程序员,他们也是该领域的专家。使用的特定语言。
可以缩短时间的因素是之前接触过“类似”语言/技术,例如,扎实的 C 背景使 C++ 的学习速度稍快一些,扎实的 C# 背景有助于学习 Java,扎实的 Ruby 或 Perl 背景有助于学习 Python。导致时间延长的因素包括缺乏经验丰富的队友、没有100%沉浸在“新事物”中、以及心理上的抗拒(不是真的想全心全意去做!-)。
我在示例中重点关注编程语言,但有些技术可能更难,即需要更长的时间才能掌握 - 如果您从未编写过嵌入式实时程序(不允许动态分配内存,所有功能所需的响应时间的上限)即使六个月也可能不够;某些应用领域需要掌握应用领域,而这些应用领域本身可能需要更长的时间(如果要完全了解正在发生的事情并因此充分发挥生产力,您需要相当于心理学学士学位,或者对心理学有深入的了解)法律,或注册会计师资格等,好吧,每一个都需要数年时间!)。