如何找到编程指导者?[关闭]


46

我决定学习编程。我已经读了几天,所以我会在阅读一些文章时从C ++开始。我对循环,数组,程序逻辑和对象有所了解,我需要有人来帮助我解决我的第一个项目时遇到的一些小问题。

所以这是一个问题-我在哪里可以找到这样的人?我没有任何编程的朋友。

编辑:2年后,我仍在寻找导师。我没有积极地编写代码,只是再次开始三个月。我致力于Cocos2d的Objective-C和iOS编程以及游戏编程。如果您想成为我的导师,请给我留言或发表评论。


1
您选择的语言也买了良好的“初学者”的书
德棉Kasier

2
只需与这些用户进行交流即可。给他们喝一两杯啤酒。阅读他们的帖子。问他们问题。
WernerCD 2010年

1
这是签署了Software Craftsman Manifesto的名称(和地图)的列表:manifesto.softwarecraftsmanship.org
2010年

1
我的回答有点愚蠢,但我建议您在学习更严格的类型化语言时学习JavaScript或Python。两种范例都有其优势,具体取决于您要做什么,但是在“较懒惰”的语言中,您可以在控制台中尝试一些东西,而对于JS,则可以直接解决网页布局和UI行为chrome的开发人员工具。另外,可以在参数中传递的函数;便便的人甚至都不知道,也永远不会(谢谢,吉布斯,因为我和那些家伙一起工作过);非常强大。
埃里克·雷彭

1
两年后,您所需要的只是一些小便。你准备好了吗?
ott-- 2012年

Answers:


31

加入开源项目无疑是入门的一种方法。但是,多年来我一直在使用开源软件,坦率地说,几乎所有此类项目的质量通常都在厕所里。如果您完全从他们那里学习编程和设计技能,那么您可能会选拔一些非常贫穷的人和那些优秀的人,而无从分辨它们之间的区别。

您想学习什么编程答案将决定您应该寻找什么以及在哪里。下面是一些常见的答案,我就如何追求他们的专业意见(请记住,这刚认为,虽然恕我直言,准确):

只是说您知道该怎么做。

然后,您实际上就不需要导师了,而C ++是一个很差的起点。我喜欢C ++,这是我进行常规编程的首选,但是请改用另一种语言。我建议使用Python;它的学习曲线比C ++柔和得多,并且与某些语言(没有提及任何名称,今天我没有穿石棉内衣)不同,您仍然会学到一些有用的技巧,以备日后进一步使用。如果您决定继续沿用这条路线,那么很多概念都可以直接转换为C ++。

只是尝试一下,看看您是否喜欢它。

一个开源项目可能已经足够了。选择一个您喜欢的程序,但发现了一些问题或烦恼,并向运行该程序的人提供帮助。大多数开源项目都是开放供稿的,这通常就是为什么它们首先是开源的原因。

然而,在这种情况下,也不会尝试C ++作为你的第一个编程语言。掌握基础知识并不难,但是C ++足够底层,您可以在程序中遇到一些严重且很难发现的错误。除非您已经知道自己喜欢编程,或者您像众所周知的牛一样固执,或者已经找到可以将您指向正确方向的导师,否则您将失去在该领域的任何萌芽兴趣。参见上面关于Python的答案,它更适合于此。

因为您对要编写的特定程序有想法。

(我不认为OP属于此类,我将其提供给以后的读者。)

您对掌握程序设计和实施所需的时间有任何想法吗?提示,以年为单位。如果您既聪明又非常幸运,那么经过几个月的学习,您也许可以提出一个像样的设计,但是任何有一点工作经验的人(包括您在内,后来都需要这样做)都会希望您永远不会出生-我是凭经验说的。:-)除非这个想法如此秘密,以至于在完成之前没人知道它,否则就不要打扰。雇用一位经验丰富的程序员为您做这件事,或者如果您买不起,但仍然想让程序变得非常糟糕,请与一个人合作–您处理业务方面,然后由他处理编程部分。大多数优秀的开发人员都更喜欢编程,因此这种报价对他们而言是值得的。

因为您已经知道自己对编程很着迷,并且想了解更多。

然后,您将走上正确的道路。:-)无论是业余爱好,还是以后可能会成为职业,如果您拥有一种使自己无限魅力的个性,那么您最好的办法就是将自己沉浸在其中。在这种情况下,C ++和其他语言一样好,并且导师肯定会有所帮助(而且不仅会发展您的技能,而且如果没有朋友分享您的热情,它会变得孤独)。


4
问题是如何找到一位导师,而不是他是否应该/不应该寻找一位导师。
marktani 2012年

4
答案最初包括向任何对C ++真正感兴趣的人提供指导。在找到八位自称真正感兴趣但又不想打扰他们的人之后,我删除了这个提议。
极客头

23

要找到导师,不要寻找导师。尝试以特定方式改善自己。如果您为提高自己的能力而努力,您将发现自己与志同道合的人接触,并且发现自己与这些人有共同之处。

用户组很可能是找到导师的地方,但没人愿意帮助在那里的人以为“我正在寻找导师”。但是,如果您在想:“早晚有人能帮助我学习编写好的JavaScript单元测试,我会很喜欢的”,或者“我希望与某人配对并在Clojure中试用kata,我会喜欢的”您会发现一个与您志趣相投且相距甚远的人。


14

在真正的良师益友中,通常在任何时候都有十几名大三学生在闲逛。因此,“寻找”合适的导师仅仅是开始,与指导他人相比,导师对您的吸引力/回报也要高得多。

因此,第一步是加入您可能会遇到好的导师的社区。

第二步是成为一名有价值的导师。我个人希望在受训者中寻找的一些东西是:

  • 接近,等于或大于我自己的智力。
  • 对我必须提供和享受的教学感兴趣。
  • 个性的兼容性(即我们相处融洽,喜欢互相交谈)。
  • 我愿意通过以下方式对他/她所指导的项目/社区有价值:

    • 编写代码
    • 撰写文件
    • 进行剪切工作,例如问题队列分类,清理注释等。
    • 帮助经验不足的贡献者
  • 与我通常的工作流程兼容。
  • 有能力教一些东西。比某人更有经验并不能阻止向他们学习。最好的指导者有一个技巧,可以提出正确的问题,或者有新鲜的见解,或者可以从我的知识领域之外学到一些经验。

12

加入一个开源项目。您也不必为它们编程。大多数项目都希望有人帮助您进行文档编制。您可以查看代码并提出问题。当您感到不舒服时,就可以开始为他们编写代码了。


1
好的,我听起来可能很愚蠢,但是您如何加入开源项目?什么是最好的网站?
蚂蚁先生2010年

1
gnu.org/help或一些开源代码存储库(谷歌代码,github ...)。寻找一个有趣的项目,缺少人来撰写文档和发送电子邮件。
cbrandolino

2
我坚信没有愚蠢的问题。尽管有许多开源项目网站,但sourceForge仍然是最受欢迎的网站之一。
Jim C 2010年

1
@Ant:最好的开源项目是您经常使用或期望使用的程序。
拉里·科尔曼

7
-1:加入OS项目是一个很好的答案,但绝对不是在学习的这个阶段(即第一天)。甚至在弄湿之前,它就已经潜入了深渊。通过书籍或一类结构化的学习是一个更好的主意。
史蒂文·埃弗斯

6

您对导师有什么期望?开源项目或本地用户组的建议旨在更多地涉及联网,并找到距离您想要的人仅几步之遥的人,以便他们可以以某种方式帮助您。将其视为尝试向Jamie Oliver或Gordon Ramsay学习烹饪的方法,最终可能会非常有趣且有用。

根据您的期望,找到导师可能很容易,也可能很难。如果您期望有人能读懂您的想法,并一步一步地告诉您在一年或更短的时间内变得很棒的秘密,那可能是不现实的。同时,如果您想找到一个可以做得比您更好的人,那么可能做起来并不难。因此,首先要弄清楚您的期望是什么。

其次,既然您知道想要什么,就必须找到它。这可能很难,因为并不是像在加拿大和美国一样,有很多地方专门展示开发人员使用他们的技能,这就是为什么我会想到这个建议。 导师网可能是一个程序的示例,尽管我没有尝试过,但它可能仍然有效,我很久以前就对其进行了研究,但并不认为它适合我和我想要的。这里的另一个想法是您的朋友和家人对您在这里想要什么的了解程度如何?如果您提出要求,他们可能认识某个人或某个地方可以为您提供帮助。虽然这不是一个全面的答案,但您的要求有点含糊,因此希望您可以对此进行补充,然后在您提供所需的详细信息以及所需的方式后,我将进行后续跟踪。不是Burger King,但我们可以尝试采用这种方式。


C ++服务器端组件专家可能很难找到。附近有大专院校吗?那些人可能拥有一些技能,这些技能可能会转变为其他东西。找这位导师祝你好运。


从我身边+1。看起来和某人一起工作是前进的方式。
Fanatic23 2010年

4

开源项目非常擅长于获取有关已添加的特定代码和潜在的新处理方式的反馈,但是正如您所发现的那样,这可能并不等于导师关系。

我建议您已经提到的是用户组。用户组通常会相当频繁地聚集在一起,因此您可以与潜在的导师一起面对面。面对时间可以使通讯流程更快,更轻松。是否可以保证每个人都在同一个域中?不,但是您必须从某个地方开始。如果您发现有很多经验的人,他们可能仍然可以根据他们的其他经验为您提供域名帮助。


3

您可能会查看本地Linux用户组(在这里可以找到列表),通常大多数参与者是程序员-至少是perl黑客。另外,如果您告诉他们您在这里找到编程指导者,他们会爱您的。

craigslist上的帖子可能值得一试,但是我不会打赌。

另外,如果您是德国人,我可以特别推荐几个地方。


在加州湾区呢?
greatwolf

@Victor,我真的不知道,但似乎有几个:google.de/...
cbrandolino

3

既然您已经在Stack Exchange上注册,那么您已经可以使用许多非正式的指导者。您可以轻松地提出问题,或者让许多乐于助人的人审查您的代码。

在本地,如果您想进行面对面的指导或教学,不错的选择包括:

  • 用户组-优点:免费或便宜,向所有人开放。缺点:社区中可能不经常出现,不是系统性的。
  • 合作社-优点:开放,免费/廉价。缺点:比C ++更不常见,特别,更可能用于Web。
  • 大学/学院学位-优点:系统,高质量,受人尊敬,敞开大门,通常为至少提供一些高质量的教师提供机会。缺点:入学竞争激烈,主要承诺,费用昂贵,淘汰率高,因此这是一种昂贵的方法,可用来确定您是否想使软件成为您的专业,学习计划可以灵活,但可能会要求您不喜欢或愿意的主题发现困难。
  • 社区大学课程或学位课程。优点:价格低廉,物有所值,更受教练的关注,更容易被接受。缺点:威信比大学少,但是好学生就是他们所到之处的好学生。
  • 专业组织-优点:可以保持良好的人际关系和继续教育。缺点:您可能需要在该领域获得学位或工作才能获得会员资格。每月会议可能是有关创新的临时主题,而不是系统地涵盖职业发展主题。
  • 在同事,高级员工或管理人员的工作中-优点:经常,有针对性,欣赏/热情/跟进将建立您的职业,这是无与伦比的。缺点:如果您的工作导师进入判断模式并且一直任由其闲逛,可能会出错,这种导师可能要等到您拥有一份工作后才可以使用,这意味着在全球竞争后获得学位。
  • 同事-优点:好资源,好人,通常是公社和一群未来的CEO之间的桥梁。缺点:可能无法在您居住的地方使用,可能涉及现金承诺以帮助支付共享空间的租金,该空间中的许多空间将是自雇人士,因此您必须尊重他们的时间并找到使收益互惠的创新方法。

2

我认为论坛是找到一些对此事有专门知识的人的最佳方式。我相信你应该从这里开始。

在Google或我们亲爱的朋友stackoverflow上查看一些c ++网站,那里有很多c ++忍者准备回答您的问题!


1

学习编程是一个雄心勃勃的事业(我想这个站点上的每个人都会同意)。但是,即使有导师,也很难从头开始学习。我认为您会发现,至少参加一些入门课程来为您打基础是最好的方法。

导师是个好主意,如果没有一个在我的第一份“真实”工作中提出问题的家伙,我将不会在15年后成为编码员,但实际上,一个人无法为了给您时间和指导,您需要成为一名成功的程序员。他或她自己可能会从事一份全职工作(或课程负担)。这并不是说您不应该找到一个或多个导师,只是您还需要其他东西。

诸如此类的网站,在线教程,书籍以及其他所有内容都是难题。教育是边界的组成部分。

这并不是要阻止您;相反,我认为设定现实的期望会给您带来更大的成功机会。


1

如果您在公司环境中工作,则可以在那里寻找导师。

至于开源项目,我怀疑您会为创建的项目找到指导者,但是您可能会在他们创建的项目中找到一名指导者。

不要忘记,他们的指导者也需要从这种安排中得到一些东西。他们正在花费宝贵的时间来帮助您。准备为他们做一些工作,以换取他们。


0

“我怎么找到编程神童?这就是我想要的。我只是想组建一支庞大的机器人大军来接管整个世界。我很聪明,我写了AI。我有钱,有影响力,我只是不介意处理那种令人讨厌的.NET或JVM的愚蠢……嗯……怎么……怎么!!该死!”

通常,我不会对此进行解释,但是我们在堆栈上。有些人喜欢它的字面意思。通过有用,您会找到一个(导师)。通过解决有经验的孩子(或-可能是-大脑-或(他)有钱)不想解决的问题,您会很有用。

解决蚱problems的那些问题。

还是不。这是信息时代。DIY我的朋友。希望像Stack这样的社区告诉您什么时候您变得愚蠢或明智,因为某些与代码相关的事情或一些我们不容易理解的事情,就像那个想要将您搞砸的投资者的阴谋诡计。

并分享您所知道的。一旦发现自己的想法,就参加一些集体活动。这不是1700年代的锻造。您的父母不必认识任何人(尽管当您不向自己学习知识并与行会分享时,当然每个人都会感激)。

您只需要确定自己有兴趣就可以。当它沉入水中时,它确实相当怪胎。这需要一段时间(我知道),但请相信我(如果仅在这个看似荒谬的观点上,我花了十年多的时间才意识到,是的,我是一个令人恐惧的程序员),所有这些真正重要的是您具有基本的才能水平,并且您确实感兴趣。如果您不是,请!@#$ off,找到您感兴趣的东西。

因为否则编程/脚本/编码是一个可怕的选择。但是我不想把它放在消极的,令人讨厌的观点上。如果您有兴趣,不必担心自己的表现如何。问问题。要求答案。像我这样忍受着总的long绕的汽油/冲洗袋。如果需要,您会到达那里。

你喜欢拼图吗?您喜欢随机的任意问题来解决吗?你喜欢角斗士电影吗?毫无疑问,前两点是吗?不要寻找导师。很好地学习一种语言,学习与入门语言水平不太相似的一种或两种其他语言,阅读一些书籍,并发表一些意见。乐于让他们挑战并偶尔更改它们,即使只是为了看看您是否完全不对。您可能会惊讶自己的直觉实际上并没有那么糟糕。要求人们出来问您一个错误的问题时会打您的脸,您可能会发现自己比大多数举起那个场合的人更了解自己。但大多数情况下,这是一个需要解决的问题。解决这个问题。


哦,当然,并分享解决方案,这样我们就可以把我们不喜欢的东西都扔掉。
艾里克·雷彭

-2

对于导师,请进入freenode(irc)。我发誓,您可以从该地点获得大部分CS学位,并且对任何技能水平都非常有用。那是我学到的很多东西。不管该人是在该频道一次还是24/7,都是实时的,这才是关键。

而且,正如大多数其他人所说的,不要不使用C ++。取而代之的是,从静态类型的垃圾收集语言开始,直到您掌握足以击败垃圾收集器的知识,然后再转向手动内存管理。您可以尝试快速编写一些该死的Haskell或OCaml。

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.