学习成为一名优秀的开发人员:您可以跳过哪些部分?[关闭]


31

我为自己设定了在明年这个时候成为一个体面的开发人员的目标。我的意思是,我对开发“生命周期”有充分的经验,有一些不错的应用程序/站点/网络应用程序,而且最重要的是能够以稳定的速度工作,而不会被一些应该已经知道的事情所困扰技术。

我不是从零开始。我写了很多html / css,SQL,javascript,python和VB.net,并研究了其他语言,例如C和Java。我知道有关的东西像面向对象,设计模式,TDD,复杂,计算语言学,指针/引用,函数式编程,以及其他学术/理论问题。只是我不能说我确实做了这些事情。

所以我想加快速度,我想知道以后可以离开的东西。例如,学习算法及其背后的数学非常有趣,但到目前为止,除了最基本的嵌套循环之外,我几乎不需要编写任何东西。调查大会以更清楚地了解低级别的操作将是很酷的事情……但是我想很少会侵犯日常工作。另一方面,查看功能性编程语言可能会帮助我编写更易理解且不太容易出现隐藏故障的程序(目前,我发现最大的困难是当应用程序的复杂性超出我的理解能力时) -例如,传递数据很好...直到我不得不开始使用AJAX进行操作,这是一个痛苦的进步)。

我是一名具有基本能力的程序员-我应该专注于开发哪些技能?

(同样,我的Unix技能也很弱,并且对Windows配置也很了解。。。不确定我应该花多少时间)


41
您可以跳过睡觉的地方:-)
Jesse McCulloch

17
一个奇怪的问题。跳过学习?不计算。让我想起一句名言:“专注于旅途,而不是目的地。发现喜悦不是完成一项活动,而是完成它。”
Maglob 2011年

5
我说了“跳过”,然后再返回(“推迟到以后的日期”)。我并不是否认所有这些事情在将来都将是重要的。
Andrew M

13
作为开发人员要记住的一件事:那些将项目“跳过然后返回到以后”的列表似乎总是迷路了……
Wonko the Sane 2011年

8
跳过懒惰。为了学习而学习一切。
DexterW,2011年

Answers:


12

这些建议不是基于我所做的,而是基于事后看来我应该做的:

  1. 跳过新的炒作技术,因为它们中的大多数都会失败。为那些有利益关系或业务计划但总是有选择退出(替换技术)策略的人设置例外。
  2. 跳过成为每种编程语言和库的专家。一定要尝试成为相对较少(七种)编程语言和库的专家,这些语言和库可以为您提供所需的服务。也就是说,千万不要错过尝试了解另一种编程语言的细微差别的机会。掌握一种新语言及其标准库,大约需要两个月的时间。
  3. 只要有解决方法,就跳过单平台技术。
  4. 跳过MS Windows。它有太多的恶习。
  5. 跳过成为专家,但有选择地让其他人认为您就是您。
  6. 如果可以,请跳过公司的伏都教(“用户驱动的企业组件体系结构”)。它无处可去。
  7. 跳过C ++(让其他人来处理)并等待Python绑定。

实际上,如果您相信自己的学习能力,则可以跳过任何内容。我认为您希望通过以下问题更好地满足您的要求:

  • 我知道这个,而且我缺乏的是。从现在起一年内我应该学什么?
  • 我喜欢拥有高薪的项目,但我真正喜欢的是这样的项目。我应该在一年内学会什么?

请记住,优秀的开发人员对一切都一无所知,因为计算很少涉及计算本身,而是更多地将其应用于人类的任何领域,无论是理论物理学,生态系统保护还是《黑客帝国》中的摄影效果。

最后,请确实了解设计,抽象,算法和复杂性。我,教给我的程序员以及我尊敬的程序员将感谢您,并感谢您。如果您有时间学习,我建议您阅读Code Complete的第一版。


谢谢。到目前为止,这可能是我最喜欢的答案,或者至少是最接近我所问的答案。实际上,我已经读过《 Code Complete》,这本很棒的书,感觉像是它帮助我在遇到障碍之前避免了很多障碍。
Andrew M

@Andrew W.请注意,我做的一些品脱是“舌头上的舌头”。这个站点的兄弟姐妹stackoverflow.com是一个以灵活,无结构的方式学习新知识的好地方。它还为开发人员实际从事的工作提供了一个好主意。
2011年

您将如何定义“ 6.如果可以的话,跳过公司的伏都教(“用户驱动的企业组件体系结构”)。什么是用户驱动的企业组件架构?N层开发?设计模式,还有别的吗?
鲍勃

@Bob数十年来,公司的基本时尚一直是一种新技术或新方法将允许非程序员编写工作程序。CASE,UML编码和企业体系结构框架。这是经常发生的:MDA坐在他们的计算机上,制作流程图,并创建软件。
阿帕拉拉2011年

+1。我喜欢“跳过企业伏都教”和“跳过炒作技术”。即使是超棒的很棒的东西(如Python)也仍然是用C&C ++编写的。嗯...我想知道为什么会这样
-riwalk

35

选择一个宠物应用程序。这应该可以很简单地开始,但是随着您的深入研究会有些复杂。它也应该是您感兴趣的东西,因为您将花费大量时间。还要确保它确实有作用。现在不要尝试编写框架或Web服务。只是一个普通的用户驱动的应用程序。

下载git,mercurial或bazaar,并学习如何使用它们创建存储库(这很简单)。

现在,使用自己喜欢的任何技术,尽最大可能来实施您的宠物项目。给自己一个截止日期,以便可以确保完成它。使用您进行的源代码控制存储库来跟踪更改。不必担心分支之类的问题,只需确保您能够摆脱错误即可。

完成编写应用程序后,将其贴上标签。那就是你的V1。让Michael Feathers 与Legacy Code,Bob Martin的敏捷软件开发原理,模式和实践以及Clean Code以及Andrew Hunt和David Thomas的The Pragmatic Programmer一起有效地工作。随意阅读它们的任何顺序,甚至可以在它们之间跳转。重复了很多想法,但由于它们是从不同角度提出的,因此它们也会加深您的理解。(您可能希望拿起GoF 设计模式书作为参考)

在阅读书籍时,请尝试运用所学知识来改进项目。确保使用源代码管理作为所做更改的日志。

如果做得正确,您应该已经学会了许多良好的技能,例如:重构,测试驱动的设计,改进现有代码以及如何(以及何时)应用设计模式(以及其他技能)。

理想情况下,您将有一位导师来帮助您评估进度。如果有兴趣,您可以与我联系(kharasoft dot net的firstinitiallastname),我将帮助您制定计划并提供审核。

祝贺您主动发展您的事业!许多奖励将来自它。


谢谢你,迈克。目前(接下来的几个月),我正在完成我的MSc软件项目,但是在那之后,我想在业余时间做很多事情。一个是针对企业的简单的团队激励应用程序,我为其中一门课程部分开发了该应用程序。我可以选择它作为我的宠物项目,完善UI,添加一些新功能,深入研究诸如并发/多实例,最终移植到Web等内容。可能时候我会为您提供报价。这些书现在在我的阅读清单上。
Andrew M

1
我还建议Martin Fowler和Kent Beck撰写“重构:改进现有代码的设计”。
奥斯卡·梅德罗斯

1
我实际上已经有了那个,不过还没有全部阅读。我经常光顾格拉斯哥大学(位于Haskell的故乡)旁边的当地慈善书店来挑选“经典著作”。到目前为止,我已经找到了Code Complete 2,重构,超越CSS,Zen of CSS Design,Javascript The Definitive Guide,K&R C,GOF以及ASP.NET网站编程,Java集合,数据库系统(Connelly / Begg), Unix学生指南,Ruby编程,使用Haskell进行Func编程入门,UML神秘化,入门Java2。我将整天阅读它们……可能的话,我可能会以便宜的价格购买它们。
Andrew M

28

您知道优秀开发人员的秘密吗?

您不知道全部,但您知道不知道的地方,以及在需要时可以在哪里找到有关不知道的地方的更多信息。

  • 不可能完全了解您提到的所有内容-大脑无法应付。
  • 不可能记住所有事情-未使用的知识将从内存中删除
  • 在大多数实际情况下,您并不需要那么多

试图实现不可能,只会导致焦虑,失眠和自信心丧失。


我不打算“一无所知”,但此刻我觉得软件团队雇用我将是一场赌博。也许我可以在进行过程中掌握所有内容,并很快成为一个富有成效的团队成员,但是对我来说,学习的数量可能太多了。我不喜欢要求人们赌博。必须有一个舒适的区域,专业的开发人员可以到达那里,好了,他们仍然需要查找内容并学习新的技巧,但是总的来说,他们可以完成工作。具有核心技能(他们甚至可能没有意识到)。那就是我想要的地方。
Andrew M

1
@Andrew,初级程序员需要提供指导。学习需要动手实践……

是的,您可能是对的,但广告中的广告从不这么说。希望我可以绕开他们,直接与团队经理进行网络交流。但在起飞的机会,我不能得到什么技能,我现在所拥有的工作,我只是想该死的肯定我不会有同样的问题从现在起一年。
Andrew M

10

我认为对于每个开发人员来说答案都将有所不同,具体取决于他或她想要专注于什么。我建议使用以下算法为自己确定一个好的答案:

  1. 选择一个简单的项目,该项目使用您有兴趣学习的技能。

  2. 实施它,并专注于该技能。

  3. 请注意您对项目结果的满意程度以及不满意的情况。

  4. 对于您喜欢该项目的结果的事情,问自己:“这是我认为我可以擅长的事情,还是我可以擅长并喜欢的事情?”
    一种。如果是这样,请考虑与该专业相关的其他技能并将其写下来。
    b。如果不是,请拍打自己的背,注意它是您擅长的事情,然后继续前进。

  5. 对于您不满意项目结果的事情,请问自己:“这是我应该知道如何做(或想知道如何做)的事情,或者这是我可以并且希望进行的开发的一个方面一般要离开别人?”
    一种。如果您认为想要或应该知道如何做,请将其添加到步骤4a中开始的列表中。b。如果您认为可以将这一方面留给其他人,请为自己作为人类的极限忧郁地叹息,将其视为弱点,然后继续前进。

  6. 从您可以擅长的事物以及您应该从4a和5a了解的事情的列表中选择一项技能。选择您认为最重要的开发内容,以使您的编程更接近您的期望。

  7. 使用该技能集思广益地进行一些简单的项目。选择一个,可能是一个项目,该项目可以让您练习另一项在清单上也很重要的技能,因此您可以用一块石头杀死2只鸟(尽管n / 2与n相同,但是以这种方式仍会更快)。

  8. 返回到步骤2,使用此项目。

在您的余生中重复此循环,直到您不再希望成为一名优秀的程序员为止(嘿,如果您想退出编码来养活饥饿的孤儿,我不会阻止您!)。

我一直专注于测试和n层Web应用程序。我的下一个项目将练习TDD,也许还会练习ASP .NET MVC2。TDD是为了增强我的测试能力(我是SDET,所以TDD会让我更深入地了解单元测试,除了以下方面我一般不会做: (我希望在测试工具上)和帮助改善良好的设计弱点(我希望),而MVC可以帮助解决我在前端设计方面的弱点。我的清单包括测试性能,Web安全性以及与Web设计师合作打造一个良好(美观)网站的内容。

我在早期就收到的另一条建议非常有用:专业化既可以广泛,也可以深入。换句话说,涉猎所有事物都是一种专业。在尝试确定自己想要的专业时,请记住这一点。

对不起,如果您想要干的东西。我认为问题没有这样的答案。


6

我已经进行了多年的编程工作(从7岁起-我现在30岁左右)。

如果我处于您的位置,那么我将强烈建议一件事-但在其他大多数答案中却没有看到,这是找到至少一个其他程序员来与一个已定义的项目一起工作。

在阅读本书时,请阅读有关敏捷编程的内容-SCRUM等,并以敏捷和测试驱动的方式工作。一起工作-但不要让您的任何一个编写大部分代码-真正地作为一对开发人员在上面工作。

而且,尽管编写自己的所有版本都可以提供很多信息-我所知道的最好的开发人员是避免为自己绝对必须做的事情而编写代码(除了自己的项目的核心)以外的大师。

其余时间,他们将广泛地重复使用代码-调用API,使用开放源代码项目(在适当的地方),总之,避免仅出于此目的而重新发明轮子(或数据访问层等)。

然后,在执行此操作的过程中-特别是对于开源项目,他们还将对这些项目做出贡献-他们将读取代码,清理代码,修复错误,贡献扩展等。

现实世界中的开发通常是作为团队的一部分进行的-因此,我强烈建议您这样做。如果您不认识其他想与您一起从事特定项目的程序员,那么我建议您查看1000多个开源项目并选择一个或多个积极参与其中的项目-可能您会找到一个或多个碰到个人的“痒”-很可能您会找到一个可以为之贡献的项目,并找到其他可以合作的开发人员。

就我个人而言,我会不接受这样的建议,即您“跳过我能做的”的态度是不好的-当我雇用开发人员时,我希望那些不想自己做所有事情的开发人员。我强烈希望开发人员的本能不是自己编写,而是开发人员的本能是首先了解如何无需编写代码(然后通过编写所需的最少代码)即可实现业务需求和要求。

同时还要牢记测试并牢记业务需求-是的,有时测试表明您确实必须重写一些代码或自己编写代码(有时您可以回馈以改进项目)。


+1好主意-与他人合作的经验非常重要。
Michael K

+1出于不可思议的原因,您必须组建一支非常罕见的优秀团队,以听取开发人员的意见-首先查看代码是否必要。对于团队编程而言,这也是必不可少的。
2011年

谢谢香农。对于更多的人不同意跳过某些不必要的事情的想法,我感到有些惊讶。事实上,我认为现在我太过纯粹主义者/完美主义者了,总是试图以“最好的方式”学习事物-有时,我会羡慕那些刚被困住并且不在乎是否消除了十几种最佳方法的人实践,或仅部分了解使他们的系统正常工作的原因。当然,我全力支持尽可能利用开放源代码库。
Andrew M

5

只需在需要时阅读和学习相关内容即可。

如果您被困在某个地方或感觉到“我的解决方案缺少某些东西”,那就应该花一些时间来了解更多有关它的信息!


我总是有这种感觉。好答案。
JeffO

5

试图找到要跳过的位并不是最好的态度。

话虽如此,一旦您了解了喜欢哪个开发人员的部分,就可以专注于某些领域。

也许坚持Web开发,例如损害Windows开发人员。

我喜欢成为所有行业的杰克,因为这使我更加有用。


3

一年之内,您不可能完成“一些不错的应用程序/站点/网络应用程序”,尤其是在陡峭的学习曲线中。您唯一会学到的就是倦怠。

相反,请专注于您感兴趣的一种,并将其用作学习工具。不必担心它会提高生产质量(不会),但是可以将其用作可以继续使用的沙箱。

例如,我对幻想棒球感兴趣。多年来,我开发了许多与此相关的东西,从屏幕抓取统计信息收集机器人的东西到仅HTML的网站,再到具有可扩展SQL Server数据库的完整Web应用程序,甚至...我的下一个宠物项目可能是实时Silverlight应用程序,它允许伙计们围坐在虚拟桌子旁草拟草图。

在我的世界之外,这些东西都没有那么有用。但是,他们每个人都帮助我成为了一个更好的程序员,并帮助我学习了我无法接受的技术。


3

无需担心开始使用哪种语言进行编程。
只需选择一种即可。
花时间学习API的内容。

原因如下:

XUL,Eclipse的SWT或wxWindows哪个更好?我不知道。它们都是如此巨大的世界,我无法真正评估它们并说出来。仅阅读教程是不够的。在真正知道它已经足够好之前,您必须流汗并流血一两年,或者意识到无论您多么努力,都无法使UI像真正的食物一样。

乔尔·斯波斯基(Joel Spolsky),“帕默斯顿勋爵(Lord Palmerston on Programming)”, http://www.joelonsoftware.com/articles/LordPalmerston.html


3

对于“应该已经知道”的综合症,我不会太担心。在这方面的工作中,您总是在学习新的东西。每年一次或两次,我的老板给我发送了一个200-300页文档的链接,以获取通信协议或集成电路之类的东西,他指派我成为其内容的常驻专家。没有人期望您达到“完成”学习的地步。

就开发过程而言,就顺其自然。除非您一两次犯错,否则您将不会真正知道什么是最有用的。评估性能并在下次进行改进。

例如,去年我在构建不稳定方面遇到很多问题。我不敢从源代码控制中进行更新,因为就像我每隔一次一样,我最终将花费半天的时间重新编译所有内容。但是,如果我在两次更新之间等待太久,那么最后的合并将是可怕的。我有时还会遇到一些紧急错误,这些错误使我无法推迟更新,这使得跟踪我已经对新功能进行的部分更改变得很困难。

好吧,我的公司正在总体上纠正该问题,但是与此同时,我需要自己可以使用的一些东西。我对构建稳定性进行了一些研究,发现了分布式版本控制,并尝试了一些分支模型,现在有了一个非常可行的混合系统,该系统在本地使用多个市场集市分支,并在需要共享时使用我公司的集中式源代码控制。

我的意思是,如果您两年前曾问过我,接下来我应该了解什么有关软件工具和流程的知识,我无法告诉您。如果您没有像我这样的工作环境,则混合源代码控制只是额外的复杂性而没有边际收益,但是它极大地帮助了我的个人生产力和理智。

接下来我要研究我的估计技能,但是我不知道接下来会发生什么,而且我当然不知道互联网上的某个陌生人一年后会发现最有用的东西。只有你能回答。


2

我想在这里分享两点:

  1. 根据算法进行思考总是有帮助的。当我刚开始的时候,我总是会考虑现实生活中的场景和背后的最新算法,并总是尝试对其进行优化。
  2. 永远都不要放弃学习和理解新事物/技术,在计算机中没有什么比这更重要的了GURU,您始终需要不断学习,并且必须预先接受这一事实并不断学习。

2

只要您坚持并学会做好,那就无关紧要。

您发布的所有想法都是需要了解的好东西,将对您有所帮助。您最感兴趣哪一个?您提到您的Unix技能很弱。您是否考虑过在计算机上安装Linux?知道C会有所帮助,因为您可以专心于Unix系统的编程,而无需学习新语言。如果您对此感兴趣,也可以借此机会了解设备驱动程序。

在您进行开发人员教育的某个时候,我强烈建议您学习汇编和功能原理。在我作为Java程序员的“正常”角色中,这两个事实都对我非常有用。我学习了Lisp和Prolog。我个人更喜欢Lisp,但这是一个见解。汇编教会您思考计算机如何看待您的程序,我认为这对每个程序员学习都很重要。函数式编程教会您更多的确定性思考,就我而言,这有助于我编写更多可测试的代码,并且这是线程安全的。

因此,选择您喜欢的东西并花费几个月的时间。您会做得更好,这可能是您进行自我教育的下一个项目的垫脚石。哦,是的,无论您做什么,都不要停止学习。第二秒钟,您开始停滞不前。


实际上,我买一台旧计算机只是出于尝试Unix / Linux的目的。事实证明,Ubuntu已经在它上面,但是我有一些不错的体验……“有趣”……编辑xorg.conf文件或其他使图形卡正常工作的东西。我说自己,做这样的事情可以扩展您的知识。但这也很耗时,我真正想要的是在明年成为通用软件/网络开发的可行候选人。我并不是想在Google找工作,只是为了成为雇主的“安全赌注”。而且我现在不再是17岁,而是25岁...我真的想确定优先次序,并让我的职业尽快发展。
安德鲁M

并感谢您的建议。您问我最感兴趣的是-也许是Web应用程序和Web设计。从我自己的能力来看,我的利基市场可能做的事情是美学很重要,而技术方面也不是很固定。使用WYSIWYG工具的Web设计人员,我的编程可以为我提供竞争优势,而专业程序员有时则缺乏设计感/风格,而我并不是很擅长。
Andrew M

0

停止尝试在一年内学会成为一名体面的开发人员。在十年内学会成为一名优秀的开发人员。

从链接的文章中:

关键是深思熟虑的实践:不仅要一遍又一遍地做,还要挑战一项超越您当前能力的任务来挑战自己,尝试一下,分析执行前后的表现,并纠正任何错误。然后重复。再重复一次。似乎没有真正的捷径:即使是4岁的音乐天才莫扎特,也花了13年的时间才开始制作世界一流的音乐。

一年后,您仍然会赌博。您对此无能为力。好的公司将初级人员视为一种投资。他们寻找的不是当前的技能,而是潜在的技能,对基本知识的把握和热情。您需要在面试中获得这些素质,才能获得入门级的工作。

您自己从事多少编程工作?这可能是说服潜在雇主您将快速改善的关键因素。您完成了哪些项目?已完成的项目显示出奉献精神。

我仅受雇于两家不同的公司,但每个公司都有自己的内部技术,在提高生产力之前,我需要学习这些技术。最初的障碍不会随着您拥有多少经验而减少多少。好的雇主期望有一个初步的学习期。

别担心,去编程。:D


1
诺维格(Norvig)是一名精英程序员,但他在谈论“卓越”。我只是在谈论能力,而不是在今年(今年)上花时间在雇主不太在意的事情上。不过,感谢您的建议,无论我做什么,我都会努力完成更多的项目。说到哪...我要编写一些GAE处理程序。
Andrew M

@安德鲁·M,“对我们大多数人来说,更大的危险不在于将目标设定得太高而落空;但是将我们的目标设定得太低,并达到我们的目标。米开朗基罗。旨在成为一名优秀的程序员,而不是一个好的程序员。
Dominique McDonnell'2

0

我只想给你我启发性的阅读步骤和迄今为止我最转折的时刻。

在我的软件生涯中,曾有过一些“哇”的时刻。他们如下:

抢先设计模式 -这确实为我打开了OOP / OOD的世界,这是绝对的必备条件。

罗伯特·马丁(Robert C. Martin)-清洁守则 -兴奋的我好几天都没睡觉!就这么简单,男孩让我忘记了拥有清晰代码的含义,这使我重新回到正轨。

Robert C. Martin-敏捷模式和实践 -我现在基于这些原则从事我的编码职业。对于我编写的每一段代码,SOLID一词都贯穿我的脑海。结合使用Clean Code,我对他们的影响如此之大,以至于我当时说服我的雇主让我向大约15个开发人员的整个公司授课。我什至没有高年级,擅长演讲,但是我的热情使它实现了。

我最后一个“哇”的时刻是TDD的发现。我与另外两个具有相同“ WOW”效果的密友分享了对它的认识。我们全都被吸引住了,现在我们将尽可能多地练习这种方法,并且总是在软件开发生命周期中讨论测试的重要性-最好是拥有自我验证的代码,而不是由一群速度较慢的人为您进行测试的团队;)。

我的最后一点是,我感觉非常贴心,如果您想真正了解某种技术,例如脚本解析器,REST库,测试框架等,那么就写一个!只是为了好玩!您不仅会喜欢它,而且我发现尝试写那些我尚未完全理解的东西会给我更多的尊重和更深刻的理解,并迫使我彻底理解它。

抱歉,我刚刚意识到我可能偏离了这个问题。我上面提到的是我的绝对核心。以上所有材料都没有给我留下任何深刻的抽象思想,以至于学习确实变得更加广泛和容易。因此,在回答您的问题时,请尽量不要跳过代码编写和软件设计的核心原则。解决特定问题的其他特定工具并不重要。


0

学习和知识的积累就像建造一栋建筑物,每块砖都座落在彼此之间,它们依靠自己的基础。

如果您开始跳过某些事情,匆匆忙忙,则最终会得到摇摇欲坠的事实,这是广播所支持的。您不敢使用它们,以免它们会掉下去,并且会掉下来。如果事实与理由不合,事实可能是错误的,因为您需要了解其局限性。

我特别担心您想跳过基础知识,数学,算法及其种类。如果没有牢牢把握,您将永远做不到“最基本的嵌套循环”

不要着急,工作永远存在,没有时间不间断地学习。尽一切可能,以找到所需的顺序,永远不会遗漏任何东西。


0

就像Je​​ff O所建议的那样,如果您想成为一名优秀的程序员,您将永远不会停止学习。

您必须认识到,与编程相关的知识有很多,您可能想学到的一切,如果您想全面了解并且擅长于此,那么您将存在数百万年。因此,只需关注将如何使您的生活变得更好。无论是纯粹的享受,金钱,科学努力还是各种原因,这都是您要选择的,应该花些时间和精力在上面。

问问自己自己到底是一个像样的开发商,并做到这一点:在现实生活项目中练习艺术,这会使您忘记现在的时间。

对我来说,成为一个体面的开发人员包括了解如何获得和编写好的需求,如何进行项目管理,如何进行测试,如何呈现结果,如何判断谁可以帮助我,谁不能(招募),如何与他人合作,如何取悦老板和顾客。

在技​​术层面上,对我而言,成为一名好的开发人员包括能够设计,审阅,编码,调试,测试,编写有用的用户手册,以有意义的方式为其他开发人员注释代码,管理版本,模拟并始终查找解决方案,以提高日常工作效率,自动化任务(无论是测试,调试,负载预测的数据分析还是其他)。这意味着能够在需要或需要时执行快速而肮脏的代码,而且还能够通过代码进行清晰,周到的处理。

所获得的一切不是通过学习而获得的,而是通过有目的的学习来解决的,然后再解决。为自己而学习是有益的,但是为目标而学习对于使它成为现实是有益的。

最后,一个好的开发人员是能够接手当前任务所需的人员。


0

看起来您到处都是。我认为人们在专注于特定领域并真正深入研究时会学到最多,因为当您这样做时,总是会遇到某些问题,这需要学习其他工具。这样,您就可以有机地,高度相互关联地提高技能,因此您不会失去所获得的知识,因为将每个新的想法或工具整合到您的思维工具箱中,将使您更轻松地学习其他知识或工具。


-1

选择一个您感兴趣的优秀开源项目,并开始学习它的代码并提供错误修复和新功能。那是每个程序员都应该做的事情。

另外,现在就开始一个项目,学习的唯一方法就是尝试找到一个实际问题的解决方案。如果您没有构建任何东西,那么您就没有问题要解决。

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.