我从12岁起就开始(一直在痴迷)编程,从汇编,C ++,Javascript,Haskell,Lisp和Qi的各种语言中我都非常了解。但是我所有的项目都是我一个人做的。
我获得了化学工程专业的学位,而不是计算机科学或计算机工程专业的学位,但是今年秋天我第一次与其他人一起从事大型编程项目,而且我不知道如何准备。我一生都在使用Windows,但是这个项目将非常适合Unix,因此我最近购买了一台Mac,希望自己熟悉环境。
去年,我很幸运地与一些朋友(包括CS专业)一起参加了黑客马拉松,令人兴奋的是,我们赢了。但是当我与他们一起工作时,我意识到他们的工作流程与我的非常不同。他们使用Git进行版本控制。当时我从未使用过它,但是从那以后我就学会了所有关于它的知识。他们还使用了很多框架和库。我必须了解Rails在黑客马拉松比赛中几乎是一夜之间(另一方面,他们不知道什么是词法作用域或闭包)。我们所有的代码都运行良好,但是他们不了解我的代码,而我也不了解他们的代码。
我听到了真正的程序员每天做的事情的引用–单元测试,代码审查,但我对这些内容的含糊不清的感觉。我通常在我的小项目中没有很多错误,因此我从来不需要错误跟踪系统或对其进行测试。
最后一件事是,我花了很长时间才能理解其他人的代码。变量命名约定(随每种新语言而异)很困难(__mzkwpSomRidicAbbrev),我发现松散耦合很困难。这并不是说我不会松散地做一些事情-我认为我对自己的工作很擅长,但是当我下载Linux内核或Chromium源代码之类的东西来查看它时,我花了数小时来尝试找出所有这些奇怪命名的目录和文件如何连接。重新发明轮子是编程上的罪过,但是我经常发现,自己写功能要比花费数小时来剖析某些库更快。
显然,以此为生的人没有这些问题,我需要自己解决这一问题。
问题:我可以采取什么步骤与其他人开始“整合”?
谢谢!