怎样零基础学编程需要什么基础,想学做些简单的手机软件。

打算把公众号和知乎专栏的文章搬运一点过来。

不知道B站会不会判定抄袭我自己…

话说回来…如果不会判定的话那专栏岂不是又要变抄袭重灾区了…

历史文章可以去关注我的公众号:不二小段,或者知乎:段小草。

也欢迎来看我的视频学Python↓↓↓

这篇文章回答以下几个问题:

我们为什么要学习编程?

非计算机学生,如何对编程产生兴趣?

零基础,如何入门编程?

第一个问题:我们为什么要学习编程?

如果说和编程有关的最经常收到的提问,莫过于如何(零基础)入门编程/Python/爬虫。刚开始收到这种问题,还会认真地写点回答给些建议,后来见得多了,发现绝大多数都是只说不做的伸手党,渐渐地也就懒得回答了。

我们为什么会既热衷于“学习”,又热衷于放弃呢?

其实说起来,我是很热衷于号召乃至帮助大家学习编程的,虽然我正处于并且将长期处于编程的入门水平,但是我实在是有太丰富的入门经验了,以至于我已经很久没有在市面上买到、读到我理想中的入门文章了。了解我的朋友都知道,我经常会拉着他们忽悠他们学编程,其实最初是因为义务帮忙太多,想着教会徒弟闲了师傅。结果皇帝不急太监急,往往是虎头蛇尾。

在我自己的观察里,现在很多人患上了知识恐慌症(包括我自己),进而衍生出了“马克党”和“收藏夹党”,每每看到精品文章、入门教程,评论区“Mark”之,再往收藏夹一丢,从此相忘于江湖,知道某天翻起,已经忘记当时想看什么想学什么。如此循环往复,给自己一种每天都在接受新知识的错觉,殊不知轻飘飘的马克和再满的收藏夹,都不会把知识塞进你的脑子里。

说白了,在这个信息爆炸的社会,我们需要给自己一种时刻不停地学习的错觉。看到别人会这个懂那个,就往自己身上套,无怪乎如今智商税越收越多,割完一茬又一茬,不全是知识恐慌闹的吗。

但是,在许多无用的努力和浪费里,我却始终坚定:人人都应该懂点编程!

理由很简单,套用现在流行的时髦说法,现在是IT(信息技术)时代,以后是DT(数据处理技术)时代,而未来是AI(人工智能)时代。编程,则是迈入新时代必不可少的一块敲门砖。我们一直讲,编程语言编程语言,语言语言,你不学会和机器对话的语言,又如何使用乃至掌控机器呢?

编程是生产力,可以帮人节约非常多的重复劳动。举个栗子,上周末回家,接到我哥的电话,帮他在职介所的两张Excel表里根据身份证号的比对结果自动填表,学过Excel的同学都知道,一句VLOOKUP的事嘛。但是在没有学会这个公式之前,人工比对几百人的表格就要花去一下午的时间。节约下来的时间,不就是你的财富吗?再直白一点,学点编程,技能傍身,混不下去了也能养活自己,技术不断精进,收入也会随之增长,这或许也是最实在的收获。

有人又要说,我不跟数据打交道,也不靠编程养活自己,为什么要学编程?知乎大V ze ran在回答“你会为什么喜欢上编程?”时说:

编程是最容易习得的超能力。

何意?当你看到别人可以轻松搞定重复性工作,当你看到别人轻松抓取到导师布置的数据工作,当你看到人工智能切实改变自己的生活,你可能会高呼:Magic!殊不知,编程这种“雕虫小技”,实在是最容易习得的超能力了。这件事情,真的不难,但却可以改变很多很多。你可以不学习,但不可以不了解;你可以不认同,但未来可能不得不去……拥抱变化。

第二个问题:非计算机学生,如何对编程产生兴趣?

于是有人要问了,我不是学计算机的,甚至不是理科生,二指禅敲键盘,看见字母就眼花,看代码如天书,如何才能对编程产生兴趣?

兴趣是最重要的老师,没有兴趣,没有目的导向,是很难有效学习的。关于获得兴趣这件事,其实有些通法,然而矛盾之处在于:我们究竟是因为有兴趣而去做一件事,还是因为做一件事的成就感而对它感兴趣?

这也是我的一个主要观点,我在这里不再赘述如何把编程联系工作生活,也不再赘述如何坚持一份热爱,虽然这些都是有效的做法。但是如前文所述,学习编程,已经是这个时代你不得不去面对的一件事情,而培养兴趣,只是让你在这条不归路上走的更加心甘情愿而已。

兴趣和获得感,是相辅相成的一件事情。你很喜欢去做一件事,但是这件事却无法带给你丝毫的长进、收获或者新鲜感,那么你的兴趣会一点一点消失;某件事你虽然很陌生,但是你总能看到自己做出的成果,你每天活在进步中,也自然会对这件事越来越感兴趣。

学编程亦是如此。在我看来,很多人对编程畏难,很多人连入门都摸不着方向,实在是因为指导方针出了问题。编程难吗?难,学到精深处,需要大量的数学基础和推导,需要投入大量的精力,学好了能轻松月入X万;编程简单吗?简单,零基础成为一位“hello world”程序员也不过半天工夫。这并不矛盾,这就好像你是初入江湖的小虾米,偏偏要拿着木棍去挑战最终BOSS,BOSS打不过,小兔子小猴子小熊小野猪你还打不过吗……

所以,如何培养兴趣,这个问题的答案在我这里便是,选对正确的入门方向以后,不断依靠获得感、成就感和虚荣感(没错就是虚荣感,要敢于show off)提供给自己正反馈,进而巩固自己的兴趣。

第三个问题:零基础,如何入门编程?

那么,对于零基础的朋友,究竟如何入门编程才算做正确的方向?

首先要明确一点,编程之所以被成为超能力,在于其无所不能。学到深处,你自然可以跳脱限制,随心所欲;入门之时,你却处处碰壁,像蹒跚学步的孩童。其实如同学习外语一样,学的好了可以斗酒诗百篇,学的差者也能勉强日常读写。

单单讨论入门编程,我为大家指两个方向:一是写网页,二是写爬虫。

大家觉得编程很难,编程很神秘,却对Office不是那么畏惧,其实在于Office套件属于WYSIWYG(所见即所得)的软件。而大多数情况下的编程都是面对枯燥的代码,经历了艰深的入门,却很难看到代码的实际效果,更不要提理解其内部原理和运行过程了。

但是也有例外,网页和爬虫这对相爱相杀的孪生兄弟,就是学习编程中所见即所得的代表。

先说网页。我们日常浏览的网页是HTML格式,其本质是一个文本文档,和txt是没有差别的。我们之所以能看到页面中各式各样的图片、视频、动画效果,其实依赖于浏览器对HTML中标签的渲染。这就意味着,你只需要打开一个.txt的文档,写上几行简单的字母,拿到浏览器中打开,就能直接看到最终效果。进而你不停地学习更多标签、更多知识,不停地在浏览器中看到其效果,就能在这种反馈感中持续地学习下去。

学习网页,推荐给大家一个网站,时间关系,就不再写更详细了:

至于爬虫。什么是爬虫呢?爬虫可以说是写网页的逆向过程了,如同加与减乘与除一般。网络爬虫(Web Spider)源于搜索引擎,它像一只整天挂在“网”上的蜘蛛一样,把网络数据爬取下来,留作处理。而在现在的海量信息时代和未来的大数据时代,网络爬虫自然成为获取网络公开数据的一项必备基本技能(在此不讨论爬虫的道德困境)。

如同写网页文档的所见即所得,写爬虫程序时你也很容易能看到自己每一步程序的输出结果,当你有一个具体需求(一般是批量抓取一系列有规律网页的有规律数据)时,这样的输出结果带来的反馈可以激励你一点一点完成一个复杂的程序。

至于学习爬虫的建议嘛,本来想说跟我学习就够了,毕竟中文环境的几本书我看过以后觉得不甚满意(并非写的不好,只是章节体系和一些具体例子我不喜欢),而外文语境的书翻译过来已经略显过时,不翻译过来对一部分朋友又有语言障碍。但是我实在是一个怠惰的人,虽然最近勤奋笔耕,指不定何时就又咕咕咕地放大家鸽子。

好在以前有所积累,我以前写东西都在知乎,在知乎的三年里,风向变了很多。以前很多人热衷于写入门文章,后来大概是自己进步了,入门文章不写了,反过来抨击入门文章泛滥破坏社区生态;14年的时候知乎上鲜有人关注Python和爬虫(这真的是两个东西,虽然经常连在一起),我随便写上一些,也会被人惊呼大神,拥有一些粉丝,颇有种山中无老虎,猴子称大王的感觉。而如今爬虫文章都快人人喊打了。也就只有我这种三年了还没什么长进的人,依然停留在入门水平,乐得写些入门文章,乐得继续搞搞爬虫吧。

知乎、简书、博客等等平台,实在不缺入门爬虫的文章,虽然良莠不齐,至少学习资料充足。究其原因,无非是极其容易量产,相似的代码,换个网站就是新的数据,换个数据就是新的结论与文章,炮制热点文章简直不要太容易。

如果一定要推荐的话,《Python网络数据采集》是一本不错的入门书籍,只是书中示例都是国外网站,具体实战可以自己找其他例子。

零零散散写了许多,其实其中很多观点都可以拉出来单独成文。时间仓促,文展开不多,不够丰富,以后会多记多写。

编程零基础应当如何开始学习 Python ?

可能跟题主的基础不同,我在学校学过简单的Java,所以对面向对象编程能稍微容易理解。学习Python从三月份开始到现在,差不多半年了。学习路径如下:廖雪峰的Python教程(建议先看2.7版本)Learn Python the hard wayPython数据分析《集体智慧编程》(跟着敲代码,理解算法思想)慕课网廖雪峰老师的Python进阶(入门就不用看了)等其他所有Python有关的教程,例如Python异常处理,文件处理,操作数据库等,每个代码都要自己敲伯乐在线的文章,没事看一看现在我也才学了半年,并不能说学的多好,但已经在入门到进阶的路上,这一点是没问题的。其他就是多逛逛程序员论坛看看Python的话题。

我也是0基础,你就直接看慕课python视频就好了,坚持下去就好。

你们以为这篇文章该是我教你们如何泡妞了吧?并不是...最近连续发了几篇文章都不是跟Android太相关,已经有人给我留言说「你这还是 AndroidDeveloper 的公号么?果取关!」我只想说,我这个公号的介绍早就已经介绍了不仅限于Android技术分享,我这里有很强的个人色彩,有段子,有励志,有人生,有感悟,文风幽默随意,我说了算。再说了,我最近两篇写给学生们的文章我并不觉得没用,做人要懂得换位思考,你觉得没用的文章对那些学生们不知道多有用呢!

我这暴脾气,对于这种人我只想说,爱看不看,不看随你取关,我这种自尊心很强的人是绝对不会强留你们的!

哎...哥...亲哥...我特么随便说说的,您还真取关啊?我错了,我真的错了!

这不,这两天我就发点跟Android相关的技术文章,泡妞的文章容我缓缓可以么?让那些取关的人在角落里哭去吧,哈哈哈哈哈!

今天先来一篇我一位粉丝「MeloDev」投稿的文章,这是他从自学到找到工作的真实经历,其实基本每隔几天我都能收到一些同学发给我的私信也好,留言也好,说是受我的经历以及我的技术分享的影响,让他们找到了一份不错的工作,我真的蛮欣慰的。这位粉丝把他的经历写出来了,我觉得对我的读者们应该非常有启发,故此分享给你们!


以下经历都是我半年多以来真实的自学编程的经历,我对我说的每一个字负责,希望对你有所启发。

带着高考发挥失常的痛苦、失落、遗憾,我还是满怀期待的来到了我这所普通大学。新鲜感随着军训的呐喊声散去,以及东北这块土地大学中特有的官僚主义气息,让我对周遭充满了无助和失望。看到周围同学无尽的堕落,对生活的负能量以及十分糟糕的学风,让当时19岁的我真真切切地意识到:“我已经深陷泥沼。”

我试图去寻找一些出路,做了很多尝试都没有获得好的结果,当时没有一个学长学姐告诉我当时应该做什么,就是感觉:所有人都是凑合过吧,凑合读吧,凑合过吧,包括我也没想过应该怎样去提升自己。我也是个普通人,终究无力对抗环境带给我惰性,蹉跎着大好光阴。

当然我是个喜欢琢磨的人,大二的时候自学了一下制作外挂,然后经营自己的QQ群用户去出售。这条路被游戏公司堵死了之后,去玩梦幻xx,用了两个月时间参透游戏经济规律,然后就倒买倒卖赚钱,当然这不是什么光荣和神奇的经历,但是让我赚到了人生的第一桶金,并且让我明白了一个至今受用的道理:“动脑去做任何事都会有不错的效果。”

今天躺在北京的出租屋里,想想我当时的状态,至今有些后怕。与相恋多年的女友分手,患上轻度抑郁,彻夜失眠。不过这些并不是本文的重点,不去赘述,只是当时那个没有什么退路的我,反而更加勇敢坚决。

这里要由衷的感谢 stormzhang 老哥,偶然间在知乎看到您自学编程的经历,备受鼓舞,从此走上开发道路,尤其您那句“如果我行,那么你也行。”,对啊,每一个看到这篇文章的同学,你们都不笨,为什么不去相信自己可以呢?

时至今日仍然感激 stormzhang 老哥,我们素昧平生,但是您留下的文字对一个要放弃自己的学生带来了巨大的信心。

这里附上 stormzhang 自学编程经历和路线,但是我也是看这篇文章过来的。

下好了视频,买好了书籍,大四上学期我几乎逃掉了所有能逃的课,钻到图书馆去敲代码,晚上9点到图书馆,晚上10点从图书馆出来,周而复始,风雨无阻。自学的过程当然不是一帆风顺的,甚至说是孤独无助的。大家可以看看我前两天写的一个博客,就是教大家怎么去看崩溃日志,没错,当时那个时候我就是连崩溃日志都不会看,哪里出错了都不知道,一旦crash可能就得找一上午错误,一行行的照着书本比对。

这里也要感谢我高中的好兄弟,他大学是学计算机的,通过“自黑”给了我特别多的鼓励,但是我知道你相当厉害了。

事实证明一个孤独、好胜、紧咬后槽牙的男人确实有挺大的能量,互联网时代也有太多的学习资料供我参考。这种高三一般的节奏持续了大概3个月,每天大概10小时面对电脑敲敲打打,晚上独自走在回寝室的路上,疲惫,面无表情,感受着东北寒冷的秋天,虽然难熬,却也成长得非常迅速。

转眼就快过年了。寒假回家,我妈看出我压力很大,就报了一个旅游团让我去散散心,旅游回来抑郁好了很多,当时感觉能睡个安稳觉很开心。过年期间一直回顾Android知识点,我确实对Android很感兴趣,研究源码时常常会感叹谷歌工程师的巧妙智慧,以及站在一定高度上应该如何去设计程序才能更加合理。


不过我的缺点也十分明显:计算机基础薄弱,Java不够扎实,项目经验一般。

投简历之后面的第一份工作是一家做企业订餐o2o刚拿到C轮融资的中型公司,第一次出去面试,忐忑紧张和不知所措,表现得非常一般。面试官问了我非常多Android最新的知识。当时大火的MD设计风格、RxJava、Facebook的React Native等等,这些在我当时自学的过程中无暇参照,不过极大开阔了我的眼界,让真实体会到了编程世界技术日新月异的更代。这也是程序员这个职业与其他职业最大的区别,就是技术经验相对不保值,需要终身学习。

第一次面试不成功并没有特别打击到我,回到家里用了一个月时间去看了看最新的Android技术,继续完善基础知识和项目细节。

等三月份再来北京面试的时候,面了四家公司都拿到了offer,我选择了一个由大牛组成,技术氛围浓厚的新创业公司,公司的产品我也觉得非常酷,智能硬件相关,下面晒一晒我们的产品~


如今实习一个多月了,一切都还都满意,虽然忙,心里却觉得挺充实,对编程的热情也没有衰减,总之,我还在路上。

前面的鸡汤虽然好喝,但是入行真的要谨慎点,一旦决定,风雨兼程。

1.喜欢编程,能冷静面对bug并使复杂问题简单化,逻辑思维出色(最重要)

2.对产品有一些自己的想法看法,不得过且过,喜欢问“这是怎么做到的”

3.好奇心,对新技术有渴求感、危机感。

我觉得以上三点比较重要,如果你都契合,放心吧,找个工作没问题。

现在我也刚刚入门,有幸收获了几百粉丝,写的几篇博客也得到了 stormzhang 大大的认可,并发表在他的公众号上,虽然很初级,但是让我信心大增。

今天我也仅仅是刚刚入门而已,经历过你们学习过程中的那种无助迷茫,和对未来的无力感,也在无数次的失眠中怀疑自己适合不适合当程序员,但是挺过来之后,一切确实没有这么难。

大家有问题可以随时私信我,知无不言,言无不尽。如果着急可以加我的微信,需要的话也可以为大家修改修改简历,也准备长期在简书更新原创Android博客,我们的故事都刚刚开始。

如果我行,那么你也行!


我要回帖

更多关于 学编程需要什么基础 的文章

 

随机推荐