Questions tagged «training»

不支持关闭主题的问题!教育建议不在此站点上。培训是指通过教授理论和实践技能来获取知识。

9
缺乏编译器错误词汇表使新手程序员感到沮丧
我一家人的朋友在学习编程(用C语言)时向我寻求帮助。在我们交谈时,他对很难理解自己的编译器(GCC)在出错时向他发送的错误消息感到沮丧。他不理解所有使用的术语,有时是它们的组合超出了他的理解。他问我:“编译器文档为什么不包含对错误消息的更长解释?” 我对他没有一个好的答案。 我本人-作为一个经验丰富的程序员-在这种情况下很少见,但那些罕见的情况确实发生了-我以前从未遇到过的一些奇怪的错误消息。我设法在搜索引擎中查找错误消息,但是显然这并不总是对他有用-尤其是因为他遇到的错误更常见并且发生在多个不同的情况下,这与他的问题有关拥有。 那么,新手程序员应该如何应对理解编译器错误消息的挑战?具体来说,结合C和GCC?

20
开发人员必须了解业务领域,还是该规范足够?
我在一家公司领域工作,因为该领域是电子领域的高科技,因此很难理解,但是它适用于复杂领域中的任何软件开发。 我工作的应用程序显示了很多信息,图表和度量标准,如果没有该领域的经验,这些信息,图表和度量标准将很难理解。开发人员使用规范来描述软件必须执行的操作,例如指定特定的图表必须显示此类指标,并且该指标是以下算术公式。 这样,开发人员并不真正了解业务以及他/为什么要执行此任务。如果规范确实很详细,那么可以这样做,但是当规范不是很详细时,或者当作者忘记了用例时,开发人员很难找到解决方案。 另一方面,对每个开发人员进行所有业务方面的培训可能会非常漫长且困难。 我们应该更加重视详细的规范(但众所周知,不存在完善的规范),还是应该培训所有开发人员以了解业务领域? 编辑:请记住您的回答,即该公司可以使用外部开发人员,并且对所有域的组建大约需要2周的时间

15
业余爱好者有可能成为一名优秀的程序员吗?[关闭]
专业的全职程序员可以通过不断学习他们的工作来做得很好。业余程序员如何训练成为一名优秀的程序员? **如果您喜欢播放音乐或唱歌,可以这样做,因为这是您的爱好,并且您很感兴趣,因此您可以成为一名优秀的歌手或音乐播放器。但您无需成为专业歌手或唱歌来谋生。对程序员来说也是如此吗?有一位著名的业余程序员吗?
46 training 

20
教授编程会不会使您成为更好的程序员?
我认为自己是中级Python程序员,并且有机会成为初学者Python编程课程的培训师。 我想知道这是否真的会扩大我的编程范围。在成功地训练了一群人之后,有人有启发性的经历吗? 它是否还取决于这些人-他们是程序员还是菜鸟生?(就我而言,他们是中级的.NET和Java程序员) 我对他们有什么期望? 我的恐惧之一是-如果其中一个问一个纠结的问题时我cho住了怎么办?这正常吗?

3
如何为当今(复杂的)Web环境培训初级程序员?
目前,我们公司主要在Ruby on Rails Web服务器和大量不同的REST客户端中开发应用程序,从Java的信息亭系统到C / C ++的嵌入式设备(标准Web浏览器的接口除外)。我们需要扩展我们的团队,但由于未能找到优秀的高级程序员,我们决定付出一些努力来培训与公司一起成长的初级程序员。 我们已经给了他们一些Ruby和Rails书籍,并要求他们构建一些玩具程序,但是我现在意识到对于Web编程当前状态的学习曲线有多陡峭。 15年前,当我开始编程时,我仅使用Delphi和Source Safe,并且能够从一开始就生产可用的软件。它们都是简单的工具,很容易探究环境的内部运作。慢慢地,我开始使用第三方框架,切换到CVS,SVN,最后是Git,学习了构成当今Web的内容,例如HTTP,JavaScript,CSS,REST等。今天,即使经过多年的经验,我也不知道关于Ruby on Rails的内部工作原理与过去有关Delphi的工作一样重要,对我而言,这很重要,因此我可以将基本的学习模块与所使用的工具连接起来。 在我看来,我正在招聘的程序员将需要很长时间才能与团队整合并产生有用的东西,因为要使用单一框架(Rails)需要学习很多东西:Ruby,HTML,CSS,JavaScript, REST,测试用例,数据库访问(在框架内神奇地构建了SQL!),MVC,三种不同的程序包管理器(适用于Ubuntu,gem和bundler用于Ruby),ssh,git,Apache和Phusion Passenger进行部署等。 因为这是我第一次直接与初级程序员打交道,所以我感到迷茫。如果选择太多,什么是培训初级程序员采用当今Web开发最佳实践的最佳方法?

10
帮助新程序员变得更加熟练,并且不问我那么多?
我目前正在与新程序员一起进行项目。我如何帮助他加快工作速度?他经常问我问题,并且我与他一起在ribs.js(项目的一部分)中编程。 现在,我希望他亲自处理项目,以便我可以专注于其他事情以加快流程。他不想Google的事情或不想在论坛上问问题是否出现。他只是来找我。他应该怎么做?我该怎么办?当我强迫他时,他很快就会做事。我如何激励他自己做更多的工作?

7
高级导师应聘请几位大三学生?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 我们商店的规模会动态增加,因此我们计划雇用一些新的初级开发人员,但我们不想通过过多的指导和培训来压倒老年人。在高级开发人员的指导者仍然能够有效地完成其任务时,有多少(通常是刚从大学毕业的初级开发者)能够(并且应该)担任高级开发者指导?

12
教导自己,作为物理学家,成为一名更好的程序员[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 我一直很喜欢物理学,也一直喜欢编码,所以当我获得大学博士学位时提供数值物理学的职位(细节不相关,主要是集群的并行编程)时, -我的脑子 但是,像大多数物理学家一样,我是自学成才的。我没有关于如何以面向对象的方式进行编码的广泛背景知识,也没有在某些kD树中优化搜索的特定算法的名称。 由于到目前为止我的所有工作都更加关注物理学和科学成果,因此毫无疑问我有一些不良习惯- 尤其是因为我的编码是我自己的,而不是真正的团队合作。我主要使用C,因为它非常简单,而且“您写的就是您所得到的”-不需要花哨的抽象。但是,由于我想进一步了解抽象所具有的功能,因此我最近改用了C ++,它非常像C(至少在语法上)。 我该如何像计算机科学专业的毕业生那样以一种良好的抽象方式自学编程呢? 我知道我的代码是高效的,但我希望它也要优雅,可读。请记住,我没有时间阅读关于抽象编程的几本1000页的书。我需要花时间进行与物理相关的实际研究(如果我的主管知道我花时间考虑如何优雅地编程,我的主管会嘲笑我)。如何从程序员的角度评估我的工作是否还不错?

5
Ant是否仍在Java构建的“主流”中?
我们一直在慢慢地用更全面的Ant构建(例如从CVS中获取,清理编译,jar,存档,电子邮件等)替换批处理命令文件(windows .bat),这些命令文件只是破坏了在开发人员IDE中编译的类。 我已经花了很多时间在Ant上学习(和调试问题),所以我最习惯将其用于这些任务。但是我不知道蚂蚁是否仍然像我刚开始学习时那样被广泛使用,还是“世界已经发展到”一种新的东西(也许更光滑了)。(例如,我开始看到分发了更多的Maven构建资料,例如,我从未使用过。) 这个问题的实际含义是,我是否要促使新开发人员学习Ant,还是应该为构建进行其他学习? 我从不总是掌握趋势,因此,很高兴听到其他Java开发人员的意见,他们认为这是最好的构建工具,以及他们认为新开发人员应该学习的知识。
14 java  training  maven  builds  ant 

8
我们应该坚持让一名员工在多年后仍在编写糟糕的代码吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 我将这个问题提交给C ++程序员,因为:a)只有C ++程序员才能判断示例的技术优点;b)只有一个程序员才会有另一位这样编写代码的程序员的气质。 人力资源部和董事意识到存在问题仅仅是因为他们看到了现场的证据。我打电话给我们是否给问题程序员更多时间。许多错误都处于非常基本的水平上-我(对程序员)的问题是,是否应该根据自己当前代码的样本,对自称是高级C ++开发人员的人们是否会产生怀疑。非程序员-甚至是C ++编程以外的人-也无法对此做出任何判断。 作为背景知识,我被分配了为一家老牌公司管理开发人员的任务。他们只有一个开发人员,专门研究所有C ++编码(从此以后),但是工作质量却很糟糕。代码审查和测试发现了许多问题,最严重的问题之一是内存泄漏。开发人员从未测试过自己的代码是否泄漏,而且我发现应用程序在使用一分钟后可能会泄漏许多MB。用户正在报告巨大的速度下降,而他的看法是:“与我无关,如果他们退出并重新启动,那一切都很好。” 我给他提供了检测和跟踪泄漏的工具,并与他坐了许多小时,以演示如何使用这些工具,出现问题的位置以及如何解决这些问题。我们已经走了6个月了,我指定他编写一个新模块。在将其集成到更大的代码库中之前,我进行了审查,并且很沮丧地发现与以前相同的不良编码。我无法理解的部分是,某些编码比业余编码差。例如,他想要一个可以填充另一个类(Bar)的对象的类(Foo)。他决定Foo将保留对Bar的引用,例如: class Foo { public: Foo(Bar& bar) : m_bar(bar) {} private: Bar& m_bar; }; 但是(出于其他原因)他还需要Foo的默认构造函数,并且他没有质疑他的最初设计,而是写了这个gem: Foo::Foo() : m_bar(*(new Bar)) {} 因此,每次调用默认构造函数时,都会泄漏Bar。更糟的是,Foo从堆中为其他两个对象分配了内存,但他没有编写析构函数或复制构造函数。因此,每个Foo分配实际上都会泄漏3个不同的对象,您可以想象复制Foo时发生了什么。而且-只会变得更好-他在其他三个班级上重复了相同的模式,所以这不是一次过的失败。整个概念在很多层面上都是错误的。 如果这是一个新手,我会感到更多的理解。但是这个家伙已经这样做了很多年,并且在过去的几个月中一直非常专注于培训和建议。我知道他大部分时间在没有指导或同行评审的情况下工作,但我开始感到他无法改变。所以我的问题是,您会坚持与正在编写如此明显的不良代码的人吗?

3
您如何摆脱代码维护者的角色?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 在最近的三份工作中,我是代码维护者。在这三种情况下,我都已经为该项目编写了大部分代码后才被雇用。 我是一个自学成才的程序员。在开始我的第一份专业工作之前,我大概有十几个项目可以成功启动并交付。 编写新代码和维护现有代码是两个完全不同的工作。就像将航空工程师和飞机技师进行比较。 当您是由一名工程师设计的飞机机械师,而该工程师没有试图使飞机以任何逻辑或易于维护的方式设计时,这种情况尤其糟糕。 我开始感觉像在项目刚开始时就在身边,您必须是那些以某种方式超越了计算机科学领域其他人员的特殊人员之一。处于那个位置需要什么? 我觉得这个问题确实没有简单的答案,但是有人可以给我一些见解吗?您曾经在一个新项目的底层吗?到达那里需要什么?

3
我们如何改善总体程序员教育和培训?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 上周,我刚刚观看了《第二人生》的菲利普·罗斯代尔(Phillip Rosedale)的凯文·罗斯(Kevin Rose)所做的精彩采访。 他们就如何找到,聘用和确定优秀的程序员,以及找到优秀的程序员有多么艰辛进行了精彩的讨论。 这使我真正考虑了我们程序员学习的方式。对于我们大多数人,包括我自己在内,我们都是自学成才的。成为一名程序员很棒,任何人都可以学习和发展技能。 但是,这也意味着,没有一个真正的标准来确定一个好的程序员是/是什么,以及什么样的环境可以促进编程技能的发展。 这不是一个问题,而是我的一种愿望,希望了解我们如何才能改变编程的文化和编程的管理者,从而鼓励教育和自我完善。 继续教育,YouTube视频,书籍,会议有很多途径,但是由于我们所做的事情具有经验性,因此并不总是清楚学习和掌握重要的知识。 让我们看一下Joel 12 Steps。 乔尔测验 您是否使用源代码管理? 您可以一步一步构建吗? 您每天制作吗? 您有错误数据库吗? 您在编写新代码之前会修复错误吗? 您有最新的时间表吗? 你有规格吗? 程序员有安静的工作条件吗? 您是否使用金钱可以买到的最好的工具? 你有测试员吗? 新候选人在面试中会写代码吗? 您是否进行走廊可用性测试? 我认为所有这些都具有重要的价值,但是由于我所说的“经验差距”,如果程序员或经理从未经历过因未完成列表中的项目而遭受的任何负面后果,他们将永远看不到需要做任何事情其中。 经验鸿沟是我的基本理论,即我们每个人都有不同的工作和不同的经历。因此,对于我们中的某些人(这些人一直与数十名程序员一起工作),必须具有源代码控制。但是对于那些一直是唯一的程序员的人,他们无法想象需要源代码控制。 正是由于我们在学习方面存在重大缺陷,我们才根据人们的最佳实践对他们进行评估,以及他们这样做的原因都可以引发一场大战。 我们总是根据他们的工作来评估他们,并认为:“哦,如果这个人/ gal没有做过xyz最佳实践,那么他/她就不能成为一名优秀的程序员,因此,不要浪费时间或精力与他们聊天。” 这就是为什么我们有如此多的编程火焰战争的原因,由于经验差距,我们无法想象人们没有做出我们必须做出的决定。 因此,这使我想到,我们完全需要重新考虑如何训练,教育和管理程序员。 例如,在您的经理的鼓励下,有百分之几的人参加会议,甚至让他们付费? 对于我和很多人来说,这是极为罕见的,我们很多人都希望参加会议,了解更多信息,但是没有钱去做。 因此,这个问题的重点确实是激发了我们如何更好地进行培训,学习和管理? 我们如何创造一种新的学习文化,不会侮辱人们没有相同的工作经历。 是的,我们每个人都有工作要做,但是我们做好工作的能力取决于我们对提高对技能的掌握的愿望,兴趣和支持。 现在,我看到我们的文化变得杂乱无章,我们支持精英阶层,但是我们当中很多想要变得更好的人,只是没有足够的支持来学习和改善自己。 我的意思是,我们作为一个行业,是否希望被视为可替换的齿轮? 谢谢...

4
尝试向命令式程序员讲解声明式编程时,有哪些好的做法?
我愿意在我的公司做一些F#的培训,他们似乎表现出了一些兴趣。他们通常是VB6和C#程序员,他们对编程的热情不高。话虽这么说,当您考虑功能问题时,我觉得编写正确的代码会更容易,因此他们一定会从中受益。 谁能提供一些有关我应该如何处理此问题的建议? 主意 不要专注于语法,而应该专注于如何使用该语言及其所推广的习语。 试想一下以命令式方式编写的示例很痛苦,但是以声明式方式编写时却转换为优雅的代码。

4
阻止开发人员在DVCS上提交错误的分支
问题 我在一个大约有10个开发人员的软件项目中,我们通过Mercurial共享源代码。每个版本都有一个开发和生产分支。在项目进行过程中,我们反复从一个分支(即v1)获取源代码,以进入补丁和维护分支以获取早期版本的软件(即v2)。 如果我们没有注意到代码进入错误的分支,则这将导致花费时间来撤消错误的提交,或者导致错误的代码(可能是非QAd)到达并部署在错误的分支中。 我们的分支和合并设计/方法 v1-test v1-patch1 v1-patch2 ^---------^-----------^ v1-prod / / \ \ -----------------------/ \ \ v1-dev \ \ \ --------------------------\ v2-dev \ \ \ ^-------^------------- v2-prod v2-test v2-patch1 因此,我们将在发布开发分支上工作,直到它准备就绪为止,然后将其分支到一个测试/ UAT /生产分支,在此完成所有发布和维护。标签用于构建该分支的发行版。在测试v1时,将为v2建立一个分支,并且开发人员将开始开发新功能。 趋于发生的事情是,开发人员将由于v2-dev分支而提交的工作提交到v1-dev或v1-prod中,或更糟糕的是,他们将v2-dev合并到v1-prod中(或类似的错误)。 我们告诉大多数开发人员不要访问-prod分支,但是代码仍然会潜入。一组更高级的开发人员“照看” -prod分支。 应该注意的是,尽管v2才刚刚开始开发,但v1中可能仍然有一些相当大的补丁程序可以解决问题。即v1可能不仅获得了奇怪的小补丁。 到目前为止我们尝试过的 有一个单独的-prod分支,带有网守。-prod分支应通过其名称发出警告,并且大多数开发人员不必永远都位于该分支中。这并没有真正减轻问题。 在开发人员中提高了对此问题的意识,以使他们更加警惕。再次,这不是很成功。 我认为开发人员承诺使用错误分支的可能原因 过于复杂的分支机构设计 在多个分支并行发展中。(该项目确实表现出使用雪崩模型的症状。) 开发人员对DVCS的了解不够充分 我读过的与某些问题相关的问题 我读过这个问题上不承诺到错误的分支,我觉得对于视觉线索的答案可能会有所帮助。但是,我并不完全相信,我们所遇到的问题不是更根本问题的征兆。 通过视觉线索,我们可以轻松地将它们合并到命令行中,但是大约有一半的团队使用Eclipse,我不确定如何合并视觉线索。 题 我们可以使用什么方法,以软件,项目管理或治理的形式来减少(理想地停止)错误的分支,从而占用我们的时间或弄脏我们已部署的代码? 对于我认为可能会做出上述贡献的原因的具体评论,将不胜感激,但这不应该限制您的答复。

4
工作时如何安排学习时间?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 7年前关闭。 我已经为一家公司编程了8年。我们建立商业智能软件系统。由于我认为工作是学习中的东西,所以我一直按照每周工作60个小时在公司工作的方式进行学习。但是,这些天来,我正在寻找一家新公司来工作,我发现这种想法很愚蠢,因为我经常因为没有其他领域的知识而在面试中经常失败。当然,我仍然愿意提高自己,并且确实在努力。但是,尽管每周要花费大量时间,但我找不到足够的学习时间来跟上。 我不认为我是对此唯一关心的人,所以我想问一下你们如何找到时间学习自己的职业?您分配多少小时学习其他领域?我是否缺少一些时间管理技能?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.