代码之家  ›  专栏  ›  技术社区  ›  Chaddeus

是什么把自学和受过训练的专业奉献者区分开来的?[关闭]

  •  3
  • Chaddeus  · 技术社区  · 14 年前

    我已经用C/ASP.NET(现在是ASP.NET MVC)开发了几年。我是100%自学成才的,我想相信我会尽力做到最好的做法,但是…

    我的问题是,你认为是什么将自学的开发人员与受过培训的专业开发人员区分开来?在C语言中,您认为哪些技术是先进的——自学的开发人员可能没有自己学习过?

    更新:

    我喜欢到目前为止的回答,谢谢。这里有一点澄清我在找什么。

    您认为专业开发人员使用的哪些C特性/技术/用法可能不是自学的(通常是自学的,先学什么最容易)?

    7 回复  |  直到 11 年前
        1
  •  2
  •   user171910    14 年前

    让我们说,
    从100名开发人员中,有5名开发人员对技术的热情非常高涨,他们可以自学自己认为最好了解的东西。
    其他95名开发人员将接受这5名开发人员的培训,他们认为这是最好的技术。

    最佳实践/技术?:
    IMO这些都是开发软件产品的方法,已知会导致一个可执行和可维护的系统——这些方法来自于开发真实软件系统的经验,而不是培训课程的经验。

    /后编辑:

    //主题回答简短
    -&企业环境中的最佳实践?
    他们使用与CSLA类似的框架 http://www.lhotka.net/cslanet/ 或者他们制作或使用框架,其基本概念如下: 业务实体、业务组件或业务对象。
    更具体的是C->什么都不符合约定:)。

    //冗长乏味的回答:

    --我的背景
    我在一家拥有170-200名员工的公司里与ASP.NET MVC 1.0合作过,现在我在同一家公司工作,但仅仅是在ASP.NET上,我们几乎都在做这样的ERP和大型Web应用程序。 我自学了ASP.NET MVC,当我在ASP.NET MVC工作时,我不得不为我团队中没有经验的其他成员做一些小培训。


    按照我的逻辑,
    Selft Thaught是一个在Frelanching项目或初创企业中工作的开发人员。
    企业培训的开发者是一个在100到50000名员工的公司工作的人,在Java/NET中有良好的控制和计划的企业环境。
    因为即使你是自学成才的,在一个公司里,你最终也会接受培训。

    /技术
    一个自学成才的人更多地考虑技术本身,而不是背诵:“这东西在三年后是否容易维护,这对企业客户有好处吗?等等。 问题是,一个自学成才的人总是自学最新的技术,而一个受过公司培训的开发人员通常都在接受“无风险”的“成熟技术”培训,公司董事会的每个人都认为这将在这里呆至少10年…
    因此,一个公司的一个负责任的项目经理将强制他们的开发人员在项目中使用一个控制框架的反转——一个成熟的反转:p。
    而一个自学成才的人,因为他没有经历过大的项目,就会被诱惑去仅仅编码。
    我的逻辑是,一个大项目需要50多个开发人员,这是类似的公司主义。 记住,如果你自学成才,在一家公司工作,你会得到培训…

    //项目和规模思维
    一个开发人员不必思考,他必须非常了解公司的流程和实践。
    企业PM总是考虑可扩展性并拥有一个平滑的体系结构,而 自学成才的人应该这样想: http://www.aorsi.com/wb/startups_die_for_not_having_customers_so_stop_thinking_about_how_to_scale/

    //一点编码实践:


    公司:
    我们希望开发X和Y,好的,让我们围绕解决方案构建一个框架,可能是CSLA、业务实体或最坏情况下的业务组件,我们创建三层,并将项目拆分为任务。
    在企业环境中,您希望这样做是因为您一直在考虑维护,这有点有趣,因为您将看到一句话-->“我们需要开发人员A、B、C来培训新成员有关框架的知识”-因此,您在培训时仍有一些开销…
    自学开发人员:
    直接潜入技术领域。


    //自学和游乐场训练的编码实践是相同的:
    例如,在ASP.NET MVC中
    保持你的控制器非常干净和小的尺寸。
    TDD越来越多地被企业和自创企业所使用。

        2
  •  3
  •   AshtonKJ    14 年前

    我也是一个自学成才的开发人员,并且已经进入了一家主要由“合格”开发人员组成的公司。我不否认我的许多同事都是我工作过的最好的人,但自学也让我有动力不断提高自己,努力保持自己的水平。

    根据我的经验,合格的开发人员倾向于更好地掌握过程。它们具有良好的结构化设计和实现方法。合格的开发人员通常也有更多的信心来选择、构思和坚持它,从他们的资格和他们自己的经验中吸取经验。这并不是说成为一个自学的开发人员是一件坏事。我遇到的自学成才的开发人员往往阅读能力很强,善于尝试不同的解决方案来找到最合适的解决方案。

    至于一个训练有素的专业人士在C语言中可能拥有什么样的技巧,一个自学成才的人可能没有,我不认为真的有。然而,经过培训/合格的开发人员可能对设计模式、数据结构或开发方法有更好的理解,但是一个好的自学的开发人员也可以学习这些。

        3
  •  1
  •   Alex    14 年前

    自学和训练有素的开发人员之间差异的主要表现形式是对理论的认识、可用的技术选项以及重要的相关技术和行业标准。这并不是说自学的开发人员无法与受过培训的开发人员相匹配,这只是一种趋势。每个特定于C_和ASP.NET的示例可能包括了解OO概念及其在不同场景中的应用、设计模式的应用、在协议级别上了解TCP/IP和HTTP、了解PCI-DSS及其对Web应用程序开发的影响。

        4
  •  1
  •   this. __curious_geek    14 年前

    自嘲会……

    • 对软件开发有自我激励。
    • 对他们的工作充满热情。
    • 不要抱怨。
    • 对Web和HTTP的工作原理有更深入的了解[因为您询问了ASP.NET MVC]。
    • 不是先解决问题,而是先找到正确的问题。
    • 最终成为忍者开发人员。
        5
  •  1
  •   nmclean    11 年前

    所有 开发人员是自学的开发人员。培训课程是一个介绍。最棒也是最棒的培训来自经验,任何专业的开发人员都必须准备好持续“培训”。事实上,许多工作岗位明确地将自我学习列为一种期望。

    期望学校跟上现实世界中使用的各种不断变化的技术是不合理的,因此他们正确地倾向于关注概念。但即使模式和方法也不是静态的。什么是“最佳”模式可能取决于语言、框架或项目本身。同样,开发人员必须适应并开放地学习新的概念,甚至重新评估他们在学校所教的概念。

    对于C,一般的面向对象编程实践适用。我不认为C本身通常是在学校里教的,但是语言的特定特性通常只是简单的便利层,而不是已经普遍使用的模式。例如,属性只是方法对,而事件只是 观察者模式 . 与所有语言一样,您应该遵循其社区使用的约定,例如标识符命名规则。

    如果你担心你可能忽略了专业培训中涉及的一些话题,你可以在YouTube Edu上浏览来自顶尖大学的完整讲座:

    http://www.youtube.com/education?category=University/Engineering/Computer%20Science

        6
  •  0
  •   ariel    14 年前

    可以自学编程语言、算法、OO原理和模式、基于XP和组的开发、可用性原理和测试等。

    但他很可能只会学习编程语言。

    即使在大学里,也有人只学习编程语言。

        7
  •  -2
  •   Juk    14 年前

    你可以教任何人成为训练有素的专业开发人员,给他们一些模板和模式等,但你不能教任何人对技术和自我学习充满热情。 自我学习和动力只是做工的关键。

    例如,如果我们将开发商与食品进行比较=>

    训练有素的专业开发人员-非天然快餐(麦当劳等)

    自学成才的发展商-优秀的天然熟食。

    现在感觉到不同了吗?