美文网首页有意义的杂谈涨知识IT
自学编程之前,你需要知道这些

自学编程之前,你需要知道这些

作者: 技匠 | 来源:发表于2016-05-30 19:39 被阅读17528次

在我写了《为什么你应该让你的孩子尽早学习编程》一文后,收到很多读者的留言,询问如何自学编程以及希望我推荐一些书籍或教程。令我颇感惊讶的是他们中的大部分并非孩子的家长,而是那些渴望自学编程的年轻朋友们。我并没有急着给他们提供意见,因为我知道那些短时间内所做的仓促回复很可能会让他们作出错误的选择,从而使他们走上弯路,而最终半途而废。经过一番思考之后,我将那些自学编程前需要了解和思考的问题记录下来,希望能给那些刚刚开始或正准备自学编程的朋友们带去一些启发。

你是否适合自学编程

自学编程会是一个漫长而艰辛的过程,在你信心满满地准备开始之前,不妨先问问自己下面这几个问题,来判断你是否真的适合自学编程呢?

  • 你是一个逻辑和抽象思维能力比较强的人吗?
  • 你是否愿意不断地去学习那些新的东西,而在大多数时间内你都需要去自学。
  • 当你遇到一些问题和困难的时候,你是否有足够的耐心和毅力去独自解决这些问题?
  • 你是否有很强的好奇心去研究和探索那些未知的领域?

如果上面这四个问题中,至少有两到三个你的答案是Yes的话,那相信你是适合自学编程的,相反,你可能需要考虑选择更适合自己的学习方式,比如参加一些培训班,由导师带着进行系统地学习。


学习编程后你能做什么,不能做什么

很多人只是将编程作为一项技能去学习,而他们并不清楚学习编程之后能做些什么。这就和孩子在学校学习英语一样,由于缺乏目的性和应用的场景,而使得效果大打折扣。带有目的性地去学习,并不断地实践是学习编程的最佳方式。

学习编程以后,你可以:

  • 独立地设计、开发一个软件,然后通过测试将它发布出去给更多的人使用。并不断地去维护与改进它。
  • 可以参与到开发团队中,去开发一些更复杂应用,满足你客户的需求。

但你不能:

  • 维修电脑,或解决Inernet连接问题。
  • 像黑客一样去黑其他人的电脑。(黑客也都是程序员,但他们需要更多其他方面的知识和技能,我可以在后面谈谈我认识的那些黑客们是如何修炼的)

选择你的第一门编程语言

编程语言有几十种,你该如何选择你的第一门编程语言呢?我的建议是根据你学习编程的目的去进行合理的选择。

希望找到一份程序员工作

下面是那些大型企业最普遍采用的开发技术,你可以根据自己的喜好,选择不同领域的开发语言。

  • Web前端开发(开发网站,基于Html5的手机APP等):JavaScript
  • 后端开发(企业应用,后端服务):Java(跨平台), C#(Windows平台)
  • 移动开发:Swift(iOS平台),Java(Android平台)
  • 3D或游戏开发:C++
  • 大数据或人工智能:Python,Java
如果你已经有一个很好的点子,并希望实现它
  • 搭建网站:JavaScript + HTML5
  • 做一个APP: Swift(iOS平台),Java(Android平台)
如果你希望为那些初创公司工作

可以选择JavaScript,因为越来越多的初创公司直接使用JavaScript来构建他们的前端和后端应用(比如使用基于JavaScript的NodeJs来开发后端服务等)。

如果你希望教孩子编程

可以先让孩子尝试Scratch或类似的游戏类编程学习软件,当孩子对那些基本编程知识有所了解,并具备一定逻辑思能力后,可以转而学习Python。

如果你只是想建一个个人博客或搭一个论坛或企业服务站点

你可以学习PHP,因为几乎所有那些优秀的基于CMS的建站平台都是用php写的,包括Wordpress,Drupal,Joomla等等。

从语言的难易程度方面选择
  • 选择从最简单的编程语言开始:选择Python
  • 稍微难度高一些,但使用场景更广的语言:选择Java
完全没有任何想法

如果你暂时对学习哪门编程语言没有任何想法,或只是为了提高自己想学习一门编程语言,那么我的建议是 Python


可以帮助你免费学习编程的在线网站

慕课网

慕课网是国内我比较喜欢的IT在线教育平台,包含了大量的视频教程,我上面提到的那些编程语言几乎都能在慕课网上找到相应教学视频。另外,它也根据不同的学习目的,比如制定了针对 前端工程师,Java工程师,PHP工程师 的学习计划。可以根据它的学习计划,由浅入深进行学习。


codecademy

Codecademy创建于2011年,它是一种基于网络的互动编程教程。每一节课你都会被要求完成一些练习,帮助你巩固学习的编程知识。


网易云课堂

网易云课堂也包含了大量的优秀IT课程,其中有不少编程基础课程,它们大部分也是免费的,非常适合初学者进行学习。


StuQ

如果你觉得自学开发对自己来说不太适合,那么你可以考虑StuQ,它采用众筹小班制教学的方式,由一些有经验的讲师进行授课,让你能够更有效地学习。


推荐几本教孩子学编程的书

最后,回答部分家长的问题,推荐几本我觉得写得不错,适合家长或孩子一起学习的编程书籍。

Scratch少儿趣味编程

Scratch 是麻省理工学院设计开发的一款编程工具,是适合少儿学习编程和交流的工具和平台,有中文版且完全免费。这本书结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教大家如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,通俗易懂,寓教于乐。


趣学JavaScript

JavaScript可能是目前最流行的的开发语言,这本书用轻松愉快的方式,通过耐心的、按部就班的示例,以及充满乐趣的图示,帮助你轻松地学习编程知识。


父与子的编程之旅:与小卡特一起学Python

这本书得到了很多人包括教育专家的推荐,经过了孩子们的亲身检验。这本书同样适合大人阅读,如果你想自己学习编程,就赶紧拿起本书,探索看似神秘的编程世界吧!


自学编程绝不是一件容易的事,需要极大的耐心和克服一切困难的毅力,希望这篇文章能给每一位编程自学者一些帮助和启发。

简书签约作者:技匠,以上内容欢迎大家分享到朋友圈/微博等。

相关文章

网友评论

  • liuuuuuu:指正一个错误论点:Nodejs不是基于javascript!
    解释:Nodejs和Java,Php,Python一样,都是后台语言。只是用js语法来解释代码,Nodejs就像父亲,js就像儿子,有父亲长得像儿子这么一个说法吗?
  • aebc81dfaf3a:妈的简书全是恶心的广告!
  • 79b34cfff905:只要发财就好
  • Bryant_2423:初中生适合学swift吗?
  • 一蛮牛:准备入门,感谢
  • 8ebf2b85b544:讲的很条理,很喜欢,现在自己想法还比较混乱先收着,学习IT是高中开始就有的想法,家里一直没有人支持,自己也比较懒惰,就拖到了现在,现在也搞不清楚是执念还是喜欢了,还是想试着先学一些东西,真心感谢!
  • 柳梦琼:准备当程序员的小白,想知道,干开发零基础应该从什么学起
  • DHclly:好文章还是要顶 :blush:
  • 翼须付出:我是一个iOS程序猿,最近感觉很迷茫,有些遇到瓶颈的感觉,很想提升自己,我的编程基础不好,没学过操作系统,数据结构懂一点,看到你写的文章很受影响,是再学一门语言,还是一直研究移动端,最近iOS不景气,未来不定,大神给点意见吧!如果可以,希望可以加个微信,求大神指导!
  • 42b6963cd819:说的还是很有道理的!
  • 18968ced1b72:学到好多
  • 9808f2c53707:带着需求学代码写代码,漫无目的的学太枯燥无趣
  • 5759def22feb:🙋我要加油了
  • 715ce9a75ff3:谢谢分享
  • 我不愿你一个人:这个还可以 顺便也为自己加一下油
  • 5d7ec879c695:之前看你的文章,觉得你写的很有道理,就收藏了。现在我也在学习了,小白一枚,在学习HTML,再把你的文章找出来,又仔细看了一遍,受益匪浅,真的很谢谢你。
    技匠:@宓小晩 谢谢喜欢:smile:
  • 天轻云狂:正在自学的路上
  • 4bfc3f57d95d:收藏了
  • f811a91a9e34:不知道为什么,我就是觉得如果不是因为我选错专业,我本应该是个程序猿。。。
    修得养得梦得过得:@小宇爱读书 如果你愿意,你就是
  • 1958d562d8fa:正在自学的路上
  • 橙子爱火龙果:在用codecademy 学习HTML CSS, 很有意思的网站。
  • 5a1fdc52600f:拿走谢啦
  • 67a615647165:我学c的,好像楼主都没说过这个。。。这可是第2受欢迎的编程语言啊。。
  • 阿威说说:良心推荐,多谢楼主
  • e13dd32287ec:我自学的是php JavaScript HTML css 刚开始学HTML ,所以呢,这些难道只能写一个博客玩玩??
    scarecrowlxb:@曹記樂購2015 怎么会这么想呢,学习最重要的是他的思想,学通一门后上手其它的就非常快了
  • 5b5738f292e2:暑假想学学
  • b5a162f341ef:数学提不起兴趣,学编程会有改善吗
  • 54b59ee78c42:可以再加一本乐高EV3机器人搭建与编程
  • 向日葵的笑:超级谢谢。我是自学的现在能用python和js打算暑假做网站给点建议吧。
  • 向日葵的笑:我超级愿意
  • 766f0c6cb382:除非有用,否则就是浪费时间,因为不要忘了,你的时间是有限的 你的精力是有限的
  • 34f2bcbf8d96:Python对数学和英语有些怎样的需求?
    向日葵的笑:@检书 对英语有要求。但只要你想学就没有不能学的。我现在大一自学python现在能用django做网站。数学只有高数的基础。英语能看懂一些文章而已。所以加油
  • 记得当初那杯水是热的:大:+1: 纯干货 谢谢你:heart:
  • 8bd2e6fc479c:有空拜读下,先收藏了
  • 2e60ce581b7f:初学者学学python还是蛮不错的,数据结构也要好好学
  • Evermemo:学材料的正在准备跨考计算机。。。
  • 竹林晓圣:想以后做安全方向,
  • 903ff963874f:这个时代正需要勇于创新和实践的人,而编程是最好的例子
  • 夢回吾夢:正准备开始自学,并准备以后以此为事业。谢谢作者的建议
  • 毛毛熊很忙:目前就在一边工作一边学习编程,效率低,而且觉得依赖书本和教学视频,不知道这样的习惯对于后面从事这一行是不是非常不好?往往学完部分知识点,难以对此应用和扩展开来,挺打击自学积极性的。还在坚持中。
    动机至善私心了无:@毛毛熊很忙 读书和看视频教程是一个非常好的习惯,学习完那些之后,你可以自己想一个小项目,通过你所学到的知识,编写出来,这样你会有很大的成就感,而且在编写项目的时候你会遇到很多你预料不到的问题,解决这些问题对于提高你的编程能力会有很大的帮助
  • 94f6a0acdb29:反正是个大坑,慎入。一年三百六十五天都要在学习就是了。除非已经喜欢,否则。。嘿嘿。。
  • 米老头:想学但是很迷茫,不知道怎么下手,看到作者得这些建议,我想我会愿意尝试一下了
    米老头:@李繁 好的,到时候还请您不吝赐教了
    Randoom:@米老头 可以啊,有问题可以请教我
  • c632e8482847:非常赞哦😊
  • 4062c51baa5d:其实没有什么门槛,只要你想学。
  • cd4d1724742a:想问一下学习uwp应用的话该从哪个语言学起,小白来的,谢谢
  • e4a707a1e179:C语言,自学中。。。计算机的世界真的很大,也非常非常有趣
  • 46d073cdf88a:在学校学过一点c++和java 正在纠结往哪个方向深度学习
  • 68f2f75300d4:自学c语言中!
  • faf81b5e2090:正在学习c++的路过
  • f53deb69f18a:看完还是不知道自己要学什么
  • 4588e4274830:慕课网
  • 八十分先生:怎么有想教孩子编程的父母,神经病吧!?
    默默守护:@八十分先生 先接触,产生兴趣,然后在说交。所有都一样!你这明显要全打死啊
    e4a707a1e179:C语言,自学中。。。计算机的世界真的很大,也非常非常有趣
  • 9b279afde63c:刚开始学
  • 千里山南:赞,写的很中肯 :smile:
  • 特别想写东西:第一个就从python学起对于基础来说太不扎实了
  • buleboy:已经开始自学啦!
  • 洛书luoshu:满心欢喜的打开看了一眼,我以为真的能修电脑😭愚昧无知啊,讲讲怎么修电脑呗,要不……推荐一款电脑吧
    findsomeoneys:@洛书luoshu 应该是吧233
    洛书luoshu: @findsomeoneys 你猜呢哈哈哈哈
    findsomeoneys:@洛书luoshu 这语气我瞬间觉得是妹子:joy:
  • 心光:马克一下,这几个网站很实用,谢谢作者
  • 4d5e87334403:赞\(≧▽≦)/一个
  • psj_psj:我想独立开发android,但是没有后端数据支持,该怎么办?
    psj_psj:@千里山南 开源app倒可以考虑,谢谢!
    千里山南:@psj_psj 可以使用一些开放api(如天气数据等)或在app内部解析某些网站数据(使用jsoup解析html)或者重新设计开发已有开源app(开源中国的客户端等)
    囧_囧:@psj_psj 你的意思是做一个单机程序呗
  • 静默丶:自学了四个月,感觉进步很小,看视频能看懂,看书也可以,就是自己编不出来
    心光:@静默丶 做一个软件,是要从需求开始入手的。你现在是没有需求,所以不知道该怎么编。建议试着找些需求,从朋友、同事、亲人之中,然后试着通过编程实现它,这样完成几个简单功能的软件后,你就掌握基本的软件开发了。
    静默丶:@技匠 有道理。受教了
    技匠:@静默丶 如果你缺乏目的性,自学会很困难。不妨假象一个项目或产品,试着去实现它,当你能够一点点做出来的时候,你自然就学会了:smile:
  • 34c343e7515f:很受启发,谢谢啦:smile:
  • 狮女柔心_Nicole陶:很好的指导受用谢谢
    狮女柔心_Nicole陶:@狮女柔心 根据作者的推荐我买了一本书,以后小孩可以学,自己先看看能掌握多少

本文标题:自学编程之前,你需要知道这些

本文链接:https://www.haomeiwen.com/subject/omkgrttx.html