Vm (vicky) Brasseur 发布的文章

编程初学者可能都思考过这个问题,“我该怎么学编程?”这里我们提供些相关的参考指导来帮助你找到最适合自己学习情况和学习需要的方法。

最近有很多关于学习编程的争论。不仅仅是因为与软件开发公司公开的待应聘的职位数量相比较符合招聘要求的人远远无法满足缺口,编程也是工资最高工作满足感最强的众多职业之一。也难怪越来越多的人都想进入这个行业。

但是你要怎么做才能正确地入行呢?“我应该怎么学习编程?”是初学者常见的一个问题。尽管我没有这些问题的全部答案,但是我希望这篇文章能够给你提供相关指导来帮助你找到最适合你的需求和自身情况发展的解决办法。

你的学习方式是什么?

在你开始学习编程之前,你需要考虑的不仅仅是你的方向选择,还要更多的考虑下你自己。古罗马人有句谚语, γνῶθι σεαυτόν gnothi seauton ,意思是“认识你自己”。投入到一个大型的编程学习过程中难度不小。足够的自我认识是非常有必要的,这能够确保你做出的选择通向成功的机会非常大。你需要思考并诚实地回答接下来的这些问题:

  • 你最喜欢什么样的学习方式?怎么做你才能学到最好?是通过阅读的方式吗?还是听讲座?还是主要通过动手实践?你需要选择对你最有效的方法。不要仅仅因为这种学习方法流行或者有其他人说过这种方法对他们很有用就选择了这种方法。
  • 你的需要和要求是什么?你为什么想学习如何编程?是因为你只是想换一份工作吗?如果是这样的话,你需要多次时间才能完成呢?你要牢记,这些是需要的 ,不是想要的 。你可能想要下周就换份新工作,但是需要在接下来的一年里供养你正在成长的家庭。当你在人生的道路上面临方向的抉择时,时间的安排特别重要。
  • 你能获取的参考资料有哪些?当然,重返大学并获得一份计算机科学专业的学位证书可能也不错,但是你必须对你自己实事求是面对现实。你的生活必须和你学习相适应。你能承受花费几个月的时间和不菲的费用去参加集训吗?你是否生活在一个可以提供学习机会的地方,比如提供技术性的聚会或者大学课程?你能获取到的参考资料会对你的学习过程产生巨大的影响。在打算学编程换工作前先调查好这些。

选择一门编程语言

当你打算开始你的编程学习之路和考虑你的选择的时候,请记住不管其他人说什么,选择哪门编程语言来开始你的编程学习关系不大。是的,是有些编程语言比其他的更流行。比如,根据一份调查研究,目前 JavaScript,Java,PHP, 和 Python 处于 最受欢迎最流行的编程 中的前排。但是现在正流行的编程语言有可能过几年就过时了,所以不用太纠结编程语言的选择。像那些方法,类,函数,条件,控制流程和其他的编程的概念思想等等,不管你选的哪门编程语言,它们的底层原理基本是一致的。只有语法和社区的最佳实践会变。因此你能够用 Perl 学习编程,也可以用 Swift 或者 Rust。作为一个程序员,你会在你的职业生涯里用很多不同的编程语言来工作。不要认为你被困在了编程语言的选择上。

试水

除非你已经涉足过这个行业或者确信你愿意花费你生命的剩余时光来编程,我建议你最好还是下水之前先用脚趾头来试试水温之类的来判断这水适不适合。这种工作不是每个人都能做的。在把全部希望都压在学习编程之前,你可以先尝试花费少量时间金钱来学习一小部分知识点来了解自己是否会享受这种每周起码花费 40 个小时来编码工作的生活。如果你不喜欢这种工作,你不太可能完成编程项目的学习。即便你完成结束了编程的学习阶段,你也会在你以后的编程工作中感到无比痛苦。人生苦短就不要花费你人生三分之一的时间来做你不喜欢的事了。 

谢天谢地,软件开发不仅仅需要编程。熟悉编程概念和理解软件是怎么和他们结合在一起的是非常有用的,但是你不需要成为一个程序员也能在软件开发行业中找到一份报酬不菲的工作。在软件开发过程中,另外的重要角色有技术文档撰写人、项目经理、产品经理、测试人员、设计人员、用户体验设计者、运维/系统管理员和数据科学家等。软件成功的启动需要很多角色之间相互配合。不要觉得学习了编程就要求你成为一个程序员。你需要探索你的选择并确定哪个选择才是最适合你的。

参考的学习资料

你对学习参考资料的选择是什么?可能正如你已经发现的那样,可供选择的参考资料非常多,尽管在你的那片区域不是所有的资料都能够获得。

  • 训练营:最近这几年像 App AcademyBloc 这样的训练营越来越流行。训练营通常收费 $10K 或者更多,他们宣称在几周内就能够把一个学生培训成一个称职的程序员。在参加编程集训营前,你需要研究下你将要学习的项目能确保正如它所承诺的那样,在学生学完毕业后能够找到一个高薪的长期供职的职位。一方面花费了数目不小的钱财,而且时间也花费了不少——通常这些都是典型的全日制课程并且要求学生在接下来的连续几周里把其它的事先放在一边专心课程学习。然而时间金钱这两项不菲的消耗通常会使很多未来的程序员无法参加训练营。
  • 社区学院/职业培训中心:社区学院常常被那些调研自己学习编程的方式的人所忽视,不得不说这些人该为自己对社区学院的忽视感到羞愧。你在社区学院或者职业培训中心能够接受到的教育是和你选择其他方式学习编程的学习效果一样有效,而且费用也不高。
  • 国家/地方的培训项目:许多地区都认识到在他们的地区增加技术投资的经济效益,并且已经制定了培训计划来培养受过良好教育和准备好的劳动力。培训项目的案例包括了 Code OregonMinneapolis TechHire。检查下你的州、省或自治区是否提供这样的项目。
  • 在线训练:许多公司和组织都提供在线技术培训项目。比如,Linux 基金会致力于通过开源技术使人们获得成功。其他的像 O'Reilly MediaLynda.comCoursera 在软件开发涉及的许多方面提供培训。Codecademy 提供对编程概念的在线介绍。每个项目的成本会有所不同,但大多数项目会允许你在你的日程安排中学习。
  • MOOC:在过去的几年里,大规模开放在线课程的发展势头已经很好了。像 哈佛斯坦福MIT 和其他的一些世界一流大学他们一直在记录他们的课程,并免费提供在线课程。课程的自我指导性质可能并不适合所有人,但可利用的材料使这成为一个有价值的学习选择。
  • 专业书籍:许多人喜欢用书自学。这是相当经济的,在初步学习阶段后提供了现成的参考资料。尽管你可以通过像 SafariAmazon 这样的在线服务订购和访问图书,但是也不要忘了检查你本地的公共图书馆。

网络支持

无论你选择哪一种学习资源,有网络支持都将获得更大的成功。与他人分享你的经历和挑战可以帮助你保持动力,同时为你提供一个放心的地方去问那些你可能还没有足够自信到其他地方去问的问题。许多城镇都有当地的用户群聚在一起讨论和学习软件技术。通常你可以在 Meetup.com 这里找到。专门的兴趣小组,比如 Women Who CodeCode2040,在大多数城市地区经常举行会议和黑客马拉松活动,这是在你学习的时候结识并建立一个支持网络的很好的方式。一些软件会议举办“黑客日”,在那里你可以遇到有经验的软件开发人员,他们能够帮助你解决你所困扰的一些问题。例如,每年的 PyCon 会议都会提供几天的时间来让人们聚集在一起工作、研讨。一些项目,比如 BeeWare,使用这些短暂的时间来帮助新程序员学习和对这些项目做贡献。

你的网络支持不需要来自正式的聚会。一个小的学习小组可以有效地保持你的学习积极性,并且可以像在你最喜欢的社交网络上发布邀请一样容易形成。如果你生活在一个没有大量软件开发人员社区所支持的聚会和用户组的地区,那么这一点特别有用。

开始学习编程的几个步骤

简单的来说,既然你决定学习编程,可以参考这几个方法给自己一个尽可能成功的机会:

  1. 将你的需要/需求和参考学习资料列出清单并进行收集
  2. 搜寻在你的当地那里能够可用的选择
  3. 放弃不能符合你的需求和参考学习资料的选择
  4. 选择最符合你需求的和最适合你的学习参考资源
  5. 找到一个能够得到支持的网络

务必牢记:你的学习过程永远不会结束。高速发展的软件产业,会导致新技术和新进展几乎每天都会出现。一旦你学会了编程,你就必须花时间去学习适应这些新的进步。你不能依靠你的工作来为你提供这种培训。只有你自己负责自己的职业发展,所以如果你想保持最新的技术和工作能力,你必须紧跟行业最新的技术。

祝你好运!


作者简介:

VM (Vicky) Brasseur - VM (aka Vicky) 是一个技术人员,也是项目、工作进程、产品和企业的经理。在她的长达 18 年的科技行业里,她曾是一名分析师、程序员、产品经理、软件工程经理和软件工程总监。目前,她是惠普企业上游开源开发团队的高级工程经理。她的博客是 anonymoushash.vmbrasseur.com,推特是 @vmbrasseur。 


via: https://opensource.com/article/17/4/how-get-started-learning-program

作者:VM (Vicky) Brasseur 译者:WangYueScream 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这些练习目前已经支持 33 种编程语言了。

 title=

我们中的很多人的 2017 年目标,将提高编程能力或学习如何编程放在第一位。虽然我们有许多资源可以访问,但练习独立于特定职业的代码开发的艺术还是需要一些规划。Exercism.io 就是为此目的而设计的一种资源。

Exercism 是一个 开源 的项目和服务,通过发现和协作,帮助人们提高他们的编程技能。Exercism 提供了几十种不同编程语言的练习。实践者完成每个练习,并获得反馈,从而可以从他们的同行小组的经验中学习。

这里有这么多同行! Exercism 在 2016 年留下了一些令人印象深刻的统计:

  • 有来自 201 个不同国家的参与者
  • 自 2013 年 6 月以来,29,000 名参与者提交了练习,其中仅在 2016 年就有 15,500 名参加者提交练习
  • 自 2013 年 6 月以来,15,000 名参与者就练习解决方案提供反馈,其中 2016 年有 5,500 人提供反馈
  • 每月 50,000 名访客,每周超过 12,000 名访客
  • 目前的练习已经支持 33 种编程语言,另外 22 种语言在筹备工作中

该项目为各种级别的参与者提供了一系列小小的挑战,使他们能够“即使在低水平也能发展到高度谙熟”,Exercism 的创始人 Katrina Owen 这样说到。Exercism 并不旨在教导学员成为一名职业程序员,但它的练习使他们对一种语言及其瑕疵有深刻的了解。这种熟悉性消除了学习者对语言的认知负担(使之更谙熟),使他们能够专注于更困难的架构和最佳实践的问题。

Exercism 通过一系列练习(或者还有别的?)来做到这一点。程序员下载命令行客户端,检索第一个练习,添加完成练习的代码,然后提交解决方案。提交解决方案后,程序员可以研究他人的解决方案,并学习到对同一个问题不同的解决方式。更重要的是,每个解决方案都会收到来自其他参与者的反馈。

反馈是 Exercism 的超级力量。鼓励所有参与者不仅接收反馈而且提供反馈。根据 Owen 说的,Exercism 的社区成员提供反馈比完成练习学到更多。她说:“这是一个强大的学习经验,你需要发表内心感受,并检查你的假设、习惯和偏见”。她还指出,反馈可以有多种形式。

欧文说:“只需进入,观察并发问”。

那些刚刚接触编程,甚至只是接触了一种特定语言的人,可以通过预设好的问题来提供有价值的反馈,同时通过协作和对话来学习。

除了对新语言的 “微课”学习 bite-sized learning 之外,Exercism 本身还强烈支持和鼓励项目的新贡献者。在 SitePoint.com 的一篇文章中,欧文强调:“如果你想为开源贡献代码,你所需要的技能水平只要‘够用’即可。” Exercism 不仅鼓励新的贡献者,它还尽可能地帮助新贡献者发布他们项目中的第一个补丁。到目前为止,有近 1000 人成为 Exercism 项目的贡献者。

新贡献者会有大量工作让他们忙碌。 Exercism 目前正在审查其语言发展轨迹的健康状况,目的是使所有发展轨迹可持续并避免维护者的倦怠。它还在寻求捐赠和赞助,聘请设计师提高网站的可用性。

Owen 说:“这些改进对于网站的健康以及为了 Exercism 参与者的发展是有必要的,这些变化还鼓励新贡献者加入并简化了加入的途径。” 她说:“如果我们可以重新设计,产品方面将更加可维护……当用户体验一团糟时,华丽的代码一点用也没有”。该项目有一个非常活跃的讨论仓库,这里社区成员合作来发现最好的新方法和功能。

那些想关注项目但还没有参与的人可以关注邮件列表


作者简介:

VM(Vicky)Brasseur - VM(也称为 Vicky)是技术人员、项目、流程、产品和 p^Hbusinesses 的经理。在她超过 18 年的科技行业从业中,她曾是分析师、程序员、产品经理、软件工程经理和软件工程总监。 目前,她是 Hewlett Packard Enterprise 上游开源开发团队的高级工程经理。 VM 的博客在 anonymoushash.vmbrasseur.com,tweets 是 @vmbrasseur。


via: https://opensource.com/article/17/1/exercism-learning-programming

作者:VM (Vicky) Brasseur 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出