在ThoughtWorks实习六个月所学到的

引言: 看到某篇文章在说在微软8个月所学到的,想想自己也可以总结一下自己在实习的时候所学到的。半年前,我开始了在ThoughtWorks某项目的学习生涯,并在大学毕业(本科)后,在原来的团队中工作。确实对于一个刚毕业的本科学生来说在项目上有所作为,还是有些难度的。我们是作为BAU(Business as usual)程序员工作的,同样的列举一下我所学到的:

那些值得称赞的

敏捷开发的实践

作为一家收费较高的外包公司,交付的代码质量也应该相当的高。刚开始真正在项目上写代码的时候,每次我写完的代码都被作为重构的示例。好在只是在结对编程的时候,并没有带来多少的不快,作为一个实习生,只能感叹原来编程还可以这样。

在学校的时候,看过很多书,书上教了一个又一个的方法,只是这些都没法用在自己的项目上。因为没有深入的理解,以至于在一开始的时候,我写出来的代码(ps:如最小物联网系统设计)不够让自己满意。而在一次次的学习会发现,在我开始重新写一个开源项目——墨颀 CMS,为了获取更充足的经验。而所谓的那些敏捷开发的思想,都不会在公司内部的一些课上出现,更多的是在项目上的实践。

结对编程

在实习的时候结对编程,对技能的成长,和项目上的学习等等都带来很大的帮助。多数情况下,结对编程的都是团队中相当有经验的,可以从中学习到现在多的经验,不仅是在项目上,还有一些如在Mac OS的使用上。于是,在这时候降低了学习上的成本,可以有效地在实践中学习。结对编程的时候经常会对问题进行讨论,讨论的时候会加强其中一些代码思想的理解。

可以走在技术前沿

因为大家在不同的项目上实践,国外的项目更多的是在一些大的平台、大的用户量及大数据,自然也然的可以实践那些走在前沿的技术。这些技术的一些思想及技术可以自己的小项目上进行实践,如上面说到的移动CMS一些前沿技术的实践。或许这就是为什么一些服务类公司不容易撑不下去的原因,技术上是先进的,实践的经验也相当丰富。

成为全栈工程师

在这个项目上或者那个项目上,总会接触到和自己技术栈不同的东西,久而久之,需要不同的能力去解决问题。从产品的开发、测试、再到上线,总会经验到写shell脚本、linux环境、产品优化等等。成为全栈工程师的捷径也许就是维护一个博客,然而我们可以在不同的领域,从后台到前台,再到浏览器调试。或许,交付项目更容易成为这样的程序员。

那些忍不住吐槽的

每天真正的编程时间不到一半

同样的因为项目不是一个新的项目,因此多半的时间都花费在调试bug,跑测试,站会等等。

在项目的某个子项目中,代码是从十年前开始的,这也就意味着我们需要去深入理解代码的逻辑。有时,一天我们没有写任何代码,只是在调试,看看代码如何真正的运作起来。对于,一个项目来说,要让他能跑起来,可能是要几个星期之后才可以。同时,作为一家交付公司,我们还需要花时间去站会,和客户,而这些都差不多会花费半小时的时间。真正在修改代码上的时间少之又少,相信这是在大项目上要经历的。

等等

如果你想知道的话,可以留言。

你可能感兴趣的:(过程分享)