Uncategorized

初学者在学习编程时需要了解的10件事情

学习编程绝不是容易的事情。很多网站为了鼓吹人们学习写代码,而会使用一种论调说,编程是一个很容易就能成为专家的行业。然而事实上,要拥有过硬的编程技术并成为这个行业的专家,需要付出很多努力。作为初学者,你可能想知道在学习编程的过程中如何把握方向,或者是从初学者上升到中级水平,会是一个怎样的过程?每个人的学习经验会因人而异,因此你可以自由地选择适合自己的学习路径。本文所分享的内容,是想让初学者在学习编程前要知道以下10件事情,这样可以有助你有一个更好的开始,并知道如何接近编程。

1. 打好基础

当你开始学习编程的时候,首先你要确定的东西是“基础”。要打好基础,你需要学习计算机科学。现在,我们可以在网上找到很多针对初学者的课程。互联网的确为初学者提供了便利,使你可以通过网络找到大量有用的信息。因此,你得花时间研究一下这些信息,从中选择最适合自己需求的。

 

以下这些网络课程可以帮助你开始学习编程:

2. 建立耐心

作为一名程序员,要想获得成功,首先要建立耐心。它可以令你在经历了无数次打击后仍然能够站起来,让你随时作好准备应对失望。耐心可以帮助你成为一个更出色的问题终结者,它还可以提高你对计算机的认识。计算机的概念是很复杂的,它要求要灵活,耐心和努力工作去理解它。绝大多数时候,当初学者开始学习编程的时候,他们并没有正确的期望。在初学阶段,你不要期待想获得一切,寄望过于乐观是危险的。由于不正确的期望,很多初学者很快就放弃了,转而学习其它东西了。要对付这个问题,你应该建立耐心,并且要想着最终的目标。

siliconvalley5

 

3. 设定目标并向目标前进

设定目标是一种有力的,有激励性的方法,鞭策着你不断进步。例如,当你开始学习PHP的时候,你可以设定一个目标,要求自己完成一个简单的项目。一旦你的目标达到了,再设定另一个,并重复这个循环。 编程的学习和提高是永无止境的,因此不断地为自己设定目标,而且不要忘了你的主要目标。

 

作为初学者,你可以尝试设定以下这些简单的目标:

  • 使用 CSS和JavaScript创建一个计算器
  • 使用HTML, CSS 和JavaScript开发一个自适应网站
  • 使用后台编程语言,如PHP, Ruby, Python等开发一个动态网站
  • 使用JavaScript设计一个简单的2D游戏

 

livecoding.tv上,就有很多初学者在尝试开发一些简单的项目。你可以看看他们分享的视频。作为初学者,你可以从别人的经验中学到很多东西。

beginner-videos

 

你设定的目标应该是切实可行的,在现阶段,不要想着去开发像facebook这样的网站或者是一个功能齐全的游戏。尝试一步一步来,当你的能力去到另一个阶段时,你就可以专注更大,更复杂的项目了。

 

4. 多做项目

通过做更多的项目,你不仅可以了解你自己的局限性,而且可以提高你分析和解决问题的能力。毕竟,学习代码不完全是只学习语法,而是要学习如何使用手中的工具去解决问题。

 

编程还需要具有创意的见解以及要有计划地去做一些有意义的事情。对于初学者,很难产生一个好的项目创意,因此你可以多看看别人的项目。例如在livecoding.tv 上,你可以看其程序员在线编程,开发产品。这是一个很好的学习机会。通过看别人的项目,你可以获得灵感来帮助你创建自己的项目。另一个好处是,你可以发现别人在开发项目有可能碰到哪些问题,然后如何解决它们。这些问题在你开发项目的时候,也有可能会碰到。因此这是一个很好的借鉴机会。

 

您也可以注册成为GitHub的用户,在网站上保存你的代码以便随时用到它们。在互联网上,你可以找到各种编程语言的公共资料库,通过浏览相关资料,你可以发现很多项目创意。

 

5. 参与社交编程

学习写代码从来不是“一个人在战斗”。如果你觉得不需要任何帮助就可以创建一个更大的应用软件,那么你就错了。事实上,编程是一项集体活动,如果你想坚持下来,你需要从各种社交平台上获得帮助。例如,GitHubStackOverFlowLivecoding以及其它的社产平台,都是很多程序员聚集的地方。每一个社区都各有特色,选择合适自己的社区,积极参与社交编程,可以帮助你提高技能。

siliconvalley4

 

6. 平衡好你的学习

作为一个开发人员,能力的提升是永无止境的,而持续的无助感只是作为一个开发者的一部分而已。新技术的诞生不会令开发者轻松下来,因为他们需要不断地提升自身的能力来适应市场的要求。作为初学者,你应该随时准备学习新的东西。即使是有经验的开发者,他们也会对自己的能力缺乏信心,因为市场上会不断有新的工具,技术和标准涌现,这需要开发者与时并进,才能跟得上变化。但这并不是说你得知道一切事情,只要了解你要了解的事情就可以了。关键是不要停止学习新的东西。

emulation

 

7. 学习算法

当你获得一定的项目经验后,你就应该开始学习算法了。 算法是构成计算机科学的核心。无论你是正在做网页开发还是游戏开发,你总得使用算法来实现最终的结果。

 

随着算法熟练程度的提高,你的技能可以达到新的高度。算法思维也可以帮助你找到第一份工作,因为大多数工作在面试时都是基于算法和解决问题的能力。你应该每天专注于解决至少一个算法问题,并保持解决问题的能力,以达到拔尖的水平。

 

8. 利用代码文件

代码文件帮助你了解你正在使用的编程语言,框架或者是库。它们包含了关于某个具体主题的丰富信息,可以帮助你学得更快。作为初学者,有时候你会觉得阅读代码文件是一件可怕的事情,但这是你在学习过程中必须要经历和克服的。开始时先慢慢来,并学习如何阅读代码文件,遇到不明白的地方,你可以求助强大的google。

 

9. 习惯使用工具

与任何其他的行业一样,在编程行业中,使用工具可以帮助比平常更快地完成琐细的事情。无论你学习的是哪种语言或框架,你都应该学会利用可用的工具。它们还可以帮助你自动完成大多数人手工作,让你可以专注于主要的问题。你应该使用的工具诸如GitSlackcode editorsChrome DevTools,编程框架(前端和后端)等等。

 

10. 寻找导师

如果你没有一个导师来指导你,编程可以是一个耗时的工作。在导师的帮助下,你节省的不仅是时间,还有从导师身上学习到的宝贵经验。一个有经验的导师可以引导你如何开发项目,并帮助你成为优秀的程序员。因此,在你开始学习编程的过程中,寻找一个导师来指导你,这样可以加快你的学习进度。现在你可以有很多渠道找到合适的导师了。无论是“面对面”的指导还是通过网络授课,都是很不错的方法。(阅读《Code Mentorship:只需五步,你就可以获得编程导师的指导》了解如何聘请导师)

Add hCode Mentorship- 4 Steps of Epiphany to get a Code Mentoreading

 

结束语

学习编程会成为你一生中一个很棒的决定,记得要参与编程有关的圈子,无论是技术社区还是社交平台,在这些地方你可以认识很多志同道合的朋友。一旦你的技术和能力达到了一定的水平,你还可以尝试通过一些自由职业者的平台,例如Upwork 和Freelancer,找到了一些兼职的工作。livecoding.tv也有各种大大小小的专门针对程序员的工作任务。只要你有足够的能力,肯投入时间和努力,再加上一点点运气,好的工作就有可能降临到你身上了。

 

(本文为编译,英文原文出处:http://www.hongkiat.com/blog/get-started-with-programming/ 感谢原作者在文中对livecoding.tv的推荐。)

 

你可能感兴趣的文章:

“嘿,程序员们,不要光顾着写码——编程大牛们对年轻程序员的职业建议”

这8个免费的网上课程可以有助你的技术成长

10个最好的JavaScript在线编辑器

Avatar
About author

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like Opensource.com, Dzone.com, Cybrary, Businessinsider, Entrepreneur.com, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.