如何提高自己的编程技能

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 736

当你学习编程时,这一刻一切的作业都改变了。在 Firehose,咱们习气称之为编码的拐点。在这个阶段之后,你作为开发人员的编程才能将大不相同,树立起编码的拐点是非常重要的,抵达拐点也就意味着你不再需求别人手把手的协助,这是一个非常重要的进程,可是假如你达不到这个拐点的话,那么你就很难前进编程技术。

62.jpg

在 Firehose,咱们的方针不是教你运用 Ruby,怎么开发运用程序,或许怎么写单元测试,即便咱们现已做了许多的作业,**咱们最主要的方针是协助同学们加速走过拐点,前进他们遇到困难自己处理的才能。**咱们相信可以独立处理问题是一项非常重要的才能,而这种才能要比学习怎么开发一个运用程序要重要得多。

起始阶段(严格编码 3 - 8周)

当你开端学习编程时,还有许多你不知道的技术。这些是特定范畴的常识,比方包含:知道如安在 ruby 中编写循环或怎么运用 Ruby on Rails 从数据库中提取某些东西。这些特定范畴的常识是你构建运用程序的底子,也是你的"硬件"。

成为能自主处理问题的开发人员的第一步是学习怎么完结特定使命。一旦你把握了特定的使命,各个特定部分该怎么结合在一起的思路将在你的脑海中显现。随着时刻的推移,你会开端了解这种模式,那么最初让你感觉到很困惑的东西将深化你的骨髓中,成为你的一种天分。

对初学者来说,最重要的技术是重视细节

在阅览文档或许教程时,密切重视细节是非常重要的,即便最小的错别字和拼写过错也会导致过错和 bug 的呈现。看见一些过错刚开端会感觉非常困惑,但却是学习进程中一个很有用的进程。在这个阶段处理这些过错音讯和问题会教给你一个在安全的环境下的一项很重要的编程技术 :留意细节。

可以 Debug 过错音讯是极其重要的。问题的事实是: 过错的音讯也是编程的一部分,关于一个缺乏编程经历的开发者和一个很有经历的开发者来说都是相同的。仅有的不同便是,你处理了越来越多的问题后,你下一次处理问题所花的时刻会越来越少,原因如下

  • 随着时刻的推移,你会从中学到怎么读取过错音讯而且可以快速找出和这个问题相关的一些原因。你第一次看见一个过错后,你会花费一些时刻去了解其真正的意思是什么,但这之后你会看到成百上千种问题,你会快速定位问题的原因并找出相似的处理办法。
  • 你应该从每次你处理的问题中学到一些东西,不要仅仅只处理了这个问题,要了解你编码进程中遇到的问题,经过从过错中学习,下次遇到相同的问题你会处理的越来越快。
  • 实践上,你或许一旦遇到问题都要向别人求助,这是很一个不好的习气。随着时刻推移,你要减少向别人讨教的次数,你应该养成独立处理问题的习气: 经过屡次查看你的代码并向聪明的谷歌寻求协助

在教程阶段,你将依照教程说明一步一步来。一开端,你会发现遵从教程很有应战性而且常常呈现过错音讯。随着时刻的消逝,你会增强调试过错的才能并更好地重视细节,你将可以更快地取得前进。当你完结教程阶段时,你会发现你可以以更快的速度编写代码。

在这一点上,有些人会感到自傲 - 就像小白任何力量训练都不做,上来直接做 20kg 的卧推相同 - 很简单就堕入深渊中。其他学生将寻觅更多的教程,企图取得更多特定范畴的常识,以寻求让自己充沛了解。不幸的是,教程只会带你到这儿了,真正的自傲是在教程中找不到的。真正的决心来自于处理你不知道怎么处理的困难,以及自己发现处理方案。

编程的潜规则

你永久不会知道处理一切问题所需求知道的一切。你或许设想经过自己终身学习找出一切的处理办法来摆平这个问题,这种主意只存在于幻想中,由于它永久不会产生。

编程是一种终生学习体验。经历丰富的软件工程师善于找到没有处理问题的处理方案,由于这给了他们更多学习新常识的机会。假如你发现自己正在等待你终于知道关于编码的一切的时分,那么我会告诉你:这一刻永久不会到来。这是一件很棒的作业。

63.jpg

你会进入到下一段旅程中,当你......

  • 你现已看到足够多的过错音讯而且你不会再感到惊讶。相反,你知道它们的原因是什么而且可以在代码中定位出问题呈现的位置。
  • **你是谷歌查找方面的专业人士。**当你正在尽力添加一项功用时遇到过错,你知道怎么用 google 查找过错信息时。
  • 你可以引用你在运用程序其他部分编写的代码,而不是每次都进行新的编码。也便是前进可用性 ctrl c + ctrl v

拐点(2 - 4 周,心态放平)

拐点阶段是学习代码最令人懊丧的阶段之一,但在许多方面,它是仅有重要的阶段。这是你逐步停止运用教程,开端处理没有人为你准备好处理方案的时分。

在某些时分,你会觉得你还没有准备好应对这一阶段,你想返回第一阶段并树立一个清晰的作业大纲。不要成为这种心态的牺牲品。

我剖析下你会感到懊丧的原因是

在拐点阶段,你编码的时刻要比之前的阶段慢至少 10 - 20 倍。

在这个阶段你会开端怀疑你自己,质问你自己是否是一个合格的程序员。在这个阶段,不安和怀疑常常会呈现。

尽管你觉得自己或许在渐渐的学习而且做一些作业,但实践上你正在做最最重要的作业。当你想在某一个特定范畴有所助力的话,你正在学习的一切都是关于程序性的常识。

程序性常识是指自己在整个进程中不知道的才能。当你需求完结一个新的功用,你应该做什么类型的 google 查找?此时此刻,当涉及到许多你想要完结的作业时你会感觉到无比压抑。你必须自己学会找到光的方向,由于你永久不会知道一切要知道的作业,所以你需求自学可以处理手头的问题。

大多数人没有意识到,为了学习编码,你需求学习特定范畴的常识和程序常识。

在你余生的每一天都要超出你的极限

一些软件工程师一旦找到自己的立足点就会留在舒适区内。这些类型的程序员被称为维护型程序员 - 他们不是你想要靠齐的程序员。相反,你应该每天尽力超出你的极限。程序员辞职的最大原因应该是: "由于我现已处理了一切有趣的问题,所以它不再具有应战性了。"

你应该寻觅超出你现有技术处理不了的问题,而不是把你的项目拉到舒适区内。这是树立和提高你的技术的仅有办法。

在拐点处,你或许会听到这句话:"我知道我现已走到了尽头,这便是我想要去的舒适区。"

##在web开发中,实践上有两个拐点将会聚在一起

web 开发的拐点 是你可以构建任何你想要的数据库驱动的运用程序的时分。这意味着你可以构建具有许多页面的web运用程序,这些页面的存储和检索来自数据库信息。web 开发者把它称为:"把握 CRUD"。在此阶段,你还应该可以经过遵从 GitHub 或博客文章中供给的文档与任何第三方库(例如 ruby gem)集成。

算法和数据结构的拐点 不是那么一个浅显的拐点,但实践上却更重要。除了把握编程的根底常识和把握处理杂乱编码的应战之外,把握了这一点的人将把握他们正在运用的编程语言。

征服了算法和数据结构的人会像下面这样:

  • 写排序算法
  • 完结和回转链表
  • 了解和编写仓库、行列和树的程序
  • 运用递归或迭代来编写计算机程序

简单来讲,一旦你经过了这些拐点,你将了解数据操作并了解你编写代码的性能怎么。传统计算机科学学位专心于让学生超越算法和数据结构的拐点。许多大学会教授它们并没有在实践企业运用中运用的语言,比方 Scheme,Racket 或 LISP 语言。

**在大多数技术面试中,面试官会确定你现现已过了 web 拐点,由于 web 拐点很简单经过,而且会将问题聚焦在数据结构和算法中。**面试通常会会集咱们上面现已提到过的主题:排序算法,回转链表,以及运用仓库,行列和树。

一旦开发人员经过了Web开发拐点和算法以及数据结构拐点,它们便是大神了

这类开发人员可以处理这两者相交的应战:需求在高档 Web 运用程序的上下文中构建的杂乱算法,这也是专业Web 开发人员每天都在做的核心作业。

拐点的结果

当你第一次听说时,拐点最大的结果或许有点违背常理。深呼吸 :**在学习编码时,特定范畴的常识在宏观概念中并不重要。**对。我不是在开玩笑 - 这底子不重要。一旦你经过拐点,这些概念将只用一到两周的教程,乃至几天即可流畅地翻译!

最重要的是

  • 你对 web 开发框架有扎实的根底
  • 你可以很好地把握在任何编程语言中编写杂乱算法的代码

招聘经理期望开发人员有扎实的 Web 开发和算法技术。

当我在 PayPal 作业时,我的团队聘请了一位没有 Rails 经历的高档 Rails 开发人员 - 他在 Python、LISP、和 Perl 上编写了许多代码。几天之内,他现已发挥了巨大的效果,并在几周之内发挥了巨大的影响。他很快就成为了技术团队的领导者,而且是我参加过最好的招聘决议计划之一。

**不要大惊小怪。**许多人或许都会说:"AngularJS 这些天很火,""JavaScript 运用比率在上升",或许说"最新的时尚是..." 我的回答是: "所以呢?" 当你学会怎么编程时,你仅有的方针便是找到拐点并消灭它。一旦你这样做了,那么学习一项新技术底子不适合一件艰巨的使命。

**要自力更生。**可以在没有结构化指导的情况下学习新的编码技术意味着你不在需求等待任何人协助你。这意味着,关于你所需求学习的大部分内容,你只需求从网上查询并重视你所想要了解的内容即可。

这并不意味着你当即“知道”一切作业,但仅仅现在一切东西都“可以处理”,所以从本质上说,你便是大神。

你在拐点需求培育的技术

作为软件工程师,最好的材料是那些你之前写过的代码。当你彻底知道你写的代码时,你就不需求把一切的代码都记在你的 "内存"  中。这意味着当你需求开发一个新功用的时分你就会问自己:“我之前做过相似的作业吗?”假如你的回答是必定的,那么请从头 view 代码。从头解说代码的含义并问询自己:"我可以运用相同的办法吗?"

视频很难解说特定范畴的常识,由于它们需求花费很长时刻才能观看。一旦你经历过这样的操作,在 GitHub 中翻开代码或许需求不到一分钟的时刻,仿制并张贴代码到你的项目中。视频或许会花费你10 - 30 分钟重复观看。

64.jpg

运用一些办法尽或许有用的经过拐点

学习编码最重要的事莫过于赶快经过拐点了,你应该让自己尽或许顺利地完结这个进程。你要尽或许的在教学阶段就开端准备,并在这段时刻内保持一个正确的心态。

在教程阶段,多花些时刻阅览材料,并在此进程中给自己带来一些应战性的问题。

  • 关于书中的每一章节,在了解书中意思之后测验做一些范围外的作业,假如你看的教程或许书籍中有课后训练部分或应战,一定要完结这些。独立处理这些问题会关于你的前进非常有协助。
  • 测验尽或许少的运用教程 在 Firehose,咱们常常让学生整合现有的资源或文档进行干事。许多学生将遵从文档并运用教程作为后备方案,而不是简单地依照教程中的解说操作。请留意,文档会将你视为现现已过拐点的开发人员。在GitHub上阅览和阅览文档时,你可以自行学习。
  • 关重视点而且重复运用这些要点。学习怎么做一些常见的作业比方从头开端编写运用程序,把它推送至. GitHub 或许 Heroku,尽早的做数据库的迁移等。

推进拐点或许更具应战性。这儿有一些指导意见以协助你完结他

  • 了解这是一个艰难的进程而且不要严重,轻松应对。此外,设置你的期望值,你不能把"超人"级别的阅览速度和你自己学习的"蜗牛"速度进行比较。请记住,你正在学习许多东西,在这个阶段,你正在学习一种新的技术,可以自己搞清楚新的常识。
  • 假如你在自傲心中挣扎,要知道你的感觉是彻底正常的。一向作业。假如你的自傲心依然有问题的话,试着去和最近经过拐点的人进行沟通。他们能和你树立联系而且告诉你现在所遇到的困难仅仅暂时的。**持续作业,但不要过度劳累。**在这个阶段要知道你每天最多只能作业6小时左右。在疲惫不堪的状态下作业只会延伸你抵达拐点的时刻。

在这个阶段能提高你决心的办法是战胜你现有的困难。你的心情或许像过山车相同。有时你会觉得自己很生气,可是在过了15个小时之后,你会显着感觉到心情的两极分化。

假如你不知道某件作业是否会花费你5分钟或5小时,这或许会让你感到很懊丧,可是每次你完结并成功完结一个新功用时,你会树立一个新的自傲心。在没有任何协助的情况下处理了一些困难的问题之后,你会沉迷上在舒适区外建造东西的感觉。

怎么知道你经过了拐点

拐点最终的阶段是承受。承受软件开发是一个不断学习的进程。承受你成功学到东西的感觉意味着你准备好处理更杂乱的问题了。


本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: