2008-12-12 35 views
4

一些开发技巧,比如重构操作,觉得他们有几乎无限的学习空间 - 只有傻瓜会说他已经完成了学习。在开发面向对象的开发经验7-10年以上后,你会获得哪些开发技能?

其他技能必然会被特定的工具所吸引,作为优秀的开发人员,我们大多数时候会学习新工具 。

但是,一些技巧与您如何思考代码以及如何处理编码有关,有时如何使用特定的工具功能 。旋转对编程和与其他人密切合作似乎是获得这些技能的最佳方式,但当然不是唯一的方法。 (有时你学习,你应该有5年前学到的东西,这些都不是我要问的是那些)

所以我想对编程与所有的StackOverflow的:

什么是你后期收购的编码技能?

编辑:如果你今天刚刚离开学校,我想我不会想到你将作为课程的一部分学到的东西。

回答

5

这是围绕成为团队中更好的开发人员的软技能,而不是实际能够制作(或多或少)符合规范并编译并使用户/测试人员不会太多喊话的应用程序。

  1. 何时防御性地编写可扩展代码,因为您知道它最终可以节省您的时间。
    • 何时明确不做点(1)。
    • 如何在一个团队中工作
    • 如何阅读和规范的反应是不准确的奇妙或写清楚
    • 时(以及如何)让别人有时髦的项目,因为你太忙了与德拉吉

主要是关于成为一个更好的驮兽,还有时间和地点是阿尔法男性,但往往程序员不能接受批评,我们不能总是跟你玩游戏像他们是我们的玩具的项目。

如果你不能这样做,那么Guy Kawasaki和Joel Spolsky就创立自己的公司写了很多好东西。

3

原型&嘲笑。

我想到了过去的时代,当我脚踏实地地开发一个功能“原位”时 - 更好地隔离沙盒应用程序中的问题。

嘲讽 - 再次,从隔离原则(除法&征服),这是我现在提出的任何设计的绝对核心。

+0

加上松散的耦合,我想这些确实是时代的标志。那些东西5年前不在那里。如果你今天刚刚离开学校,你会了解这些吗? – krosenvold 2008-12-12 10:22:23

+0

我不确定,10年前去uni的时候肯定没有提到!认为这只是软件日益复杂的一个标志 - 关于任何人都可以作为一个整体来管理的应用程序很少。 – Duncan 2008-12-12 10:57:36

+0

好吧,我同意,我的U教会我很少或没有一个好的软件开发人员的技巧 – krosenvold 2008-12-12 12:10:48

8

只有当我意识到我需要人技能来补充我的技术技能,我真的开始发展我的职业生涯。

令人惊讶的是,程序员忽视了这种情况,或者与“开发技能”相比,这种情况被认为是不重要的。

+0

职业发展对我而言是次要的;我对编码技能感兴趣;)我的职业生涯就是我想要的。 – krosenvold 2008-12-12 10:54:07

+0

@krosenvold - 对不起,如果我在这一个轨道上走了。我意识到这不是你问的问题,但仍然是我强烈的想法。对你而言。 – Galwegian 2008-12-12 12:00:47

3

一些技巧,其中不在身边的时候,我开始编码:

  • 单元测试,
  • 重构,
  • 其他一些灵活的范例。

你应该停止学习,如果你停止呼吸。

+0

你甚至不应该停止学习。死亡不是无知的借口。 :) – MusiGenesis 2008-12-12 13:32:25

0

只处理我的代码的逻辑结构并尽可能忽略物理文件位置。

2

我可能不属于管理层(我花了几年的时间)。我更喜欢编码比管理:)

编辑:此外;我刚刚开始真正掌握TDD,我很享受它!

6

它可能看起来很愚蠢和明显,但...我认为这需要很多年才能掌握它,据我所知:

  • 知道何时写评论,他们是真正需要的。
  • 知道何时不写评论,因为代码现在已经足够自我记录了。
1

知道:虽然我可以,并不意味着我应该“放纵”自己,并建立我的方式的每一个要求。我的主要目标是提供一个解决方案,如果这意味着采取已经存在并扩展的解决方案 - 那就是了。

3

实用主义和人的技能。

务实的态度。是的,这可能是理想的,但它确实是必要的。有些东西可能是世界上最酷的功能,但它真的会产生更多的收入。提出这些问题并保持现实,可以让你从小麦中过滤掉很多糠。。

我还在学习人才技能。这不是全部知道所有答案,而是能够以他们将理解和接受的方式将这些答案传达给管理层和客户。作为OCD和Bi-Polar的孤独症有时候会让事情变得有点棘手。

3

嗯,写入可测试的代码感谢依赖注入。如何我们之前管理...

对我来说,它是,知道要测试什么。

我曾经是一个狂热的人,他说一切都必须经过测试,DTO的get/set方法等。这是不切实际和不必要的。你必须测试(处死)复杂和关键的东西,因为那是你复杂和关键的缺陷所在。轻轻地测试其余部分。

2

软件架构,大型编程。 我意识到软件>>代码,而编程语言的问题是最好的。

3

我学会了不要亲自附上我写的代码。当人们更改我的代码或批评我的代码时,我不再感觉到个人攻击/违规行为。

2

看到这么多代码,一些好,一些坏,然后有些奇怪,你认识到你想要在哪里工作,什么你不想拥有的谦逊。例如,有些人喜欢“牛仔”风格的节目,而其他人则完全有条不紊,不会做任何事情,因为它已经被三名高层管理人员编写,审核并签字,做一些可能需要几周的事情。

更好地组织代码并查看重构的位置,使其更具通用性,因此它有更多的用途或什么时候尝试锁定某些东西,从而完成,而不是像客户一遍又一遍地完成整体变化不知道他们想要什么,但他们不想要他们看到的101原型。

1

我真的很同意“的人的技巧”的帖子,但除了:

要命名一个 - 我真正理解语言如何其实并不语言。他们是方言。

看来,对于进入手指自主部分的每一个知识微观片段,我都有能力将其推广到更高层次的事物理解中。 - 这些是来自我父亲的焊工/钢铁工人的话。不能同意更多。

/Robert