Everybody in this country should learn how to program a computer... because it teaches you how to think.
在这个国家,每个人都应该学会如何编程…因为这会教你如何思考。
——史蒂夫·乔布斯
============ 编程,从入门到放弃 ============
本人计算机慧根极高
小学会打CS
初中泡网吧打网游
高中因会修电脑而得到了广大同(nv)学(sheng)们的喜爱
大学致力于当一名牛逼的黑客开始学习编程,结果不出意料的入门到放弃
毕业之后又曾数次开始学习编程,结果都是以放弃为结局。最近复盘了一下为什么每次都会失败的原因:
- 当年的英语太差,看到英文字母就头疼,满屏的蝌蚪什么鬼!
- 虽然不能怪老师,但是当年的教学真的是太枯燥,根本是听天书!
- 知道学习编程的必要性,但依然没有足够的驱动力!
============ 为什么数次放弃的我依然还是想学编程?============
先来看看大佬们怎么说:硅谷大佬们告诉你为什么要学编程
再来看看美国小学生们的教育:美国小学生都学编程了,你的孩子还在应付考试吗?
看完之后是不是危机感爆棚?光有危机感还不够,还得来点诱惑。
在我当了2年围观群众,看到很多身价翻了百倍千倍的例子后,我在今年年初终于抑制不住人类贪婪的天性,踏入了币圈!踏入了币圈!踏入了币圈!
在圈里的这几个月中看了很多文章,包括技术的、非技术的。我认同区块链是继网络之后又一将会颠覆各个行业游戏规则的新技术,其他同样重要的技术包括AI、AR、VR、人工智能、无人驾驶等。
当我想要转行进入的时候,发现这些将会再次颠覆人类文明的技术里,除了资本家,最先移民进去的就是程序猿。换个角度,也就是说,在智能时代,最容易跃迁且最不容易淘汰的职业中,程序猿就是之一。
目前,与计算机相关的工作岗位增长迅速,到2020年,全美将有100万个电脑科学领域的职位缺口,全欧洲有80万个。此外,其他领域,如金融、医疗、新闻、娱乐产业等,也需要大量能写程序的人。美国布鲁金斯智库公司研究显示,同样是大学毕业生,电脑科学领域的毕业生薪水要高40%。
未来的社会生活,一切工具都将由网络驱动。懂得编程语言,可以让我们从重复枯燥的工作中解脱出来,就像洗衣机让我们不用手洗衣服一样,让我们有更多的时间去做有意义的事情。
当然,学习编程不一定成为职业程序员,就像学习写作不一定成为职业作家一样。但我们可以更加自如的生活。如果你会多门外语,那么你应该知道多会一门语言,就可以多打开一个世界的大门。
============ 这么多编程语言该从何学起?============
如果想学习编程,你决定选择的第一门编程语言与你想要学什么、想要用这个技能做些什么以及最终要达到什么目的有很大关系。
首先来看一下编程语言的流行趋势:编程语言流行度总结
根据IEEE Spectrum 的记者挖掘的数据,由10 个在线来源组合了 12 种指标给 48 种语言进行排名,结果评出了2017 年十大流行编程语言,如下图所示:
根据个人情况,再来看看这张图:
综合个人的工作背景和个人喜好,再加上使用场景和发展趋势,我个人会先学习Python,之后再学C、C++、Ruby和Go。
当人们讨论第一门编程语言以及哪一门语言更加容易快速上手时,必然会提到Python。Python于上个世纪80年代由Guido van Rossum研发,后来被转交给了非营利性组织Python软件基金会,充当该语言的管理者,并且这门语言是开源和免费的(甚至包括商业应用)。Python通常被当做一种脚本语言使用和提及,允许程序员在短时间内开发出大量的易于阅读的函数式代码,但它同时也是动态的,支持面向对象,过程型和函数型编程风格。由于其灵活性,Python是今天使用最为广泛的高级编程语言之一。
Python不会教你非常基础的知识,但它的确可以教给你一些有用的东西,比如代码缩进、模块化,以及命名规范的重要性,可以在你学习或者使用其它编程语言时帮到你。Python的提名者也强调Python的开发者社区非常乐于将Python作为一门教学语言,因此他们有无数的工具与文档来帮助初学者,官方教程非常易学而实用。
python语法更加简单简洁易学,而且有各种强大的库,扩展库,可过程可对象,如果是为了通过编程这一手段来迅速的做出有用、实用的程序和界面可以学python。
Ruby是一种动态、开源、面向对象的编程语言,由计算机科学家松本行弘(MatsumotoYukihiro)于上个世纪90年代研发,这使得它成为广泛使用的最年轻的语言之一。它的语法容易阅读、仅仅由人类编写,不需要学习一大堆基本的命令和特殊的“单词表”就可起步。尽管这个语言本身是面向对象的,它也支持过程化、函数式和命令式编程,这也是造就了其非凡灵活性的因素之一。
Ruby有一个比较易学的好名声,通过官网上的20分钟快速入门指引,你可以很快了解和熟悉Ruby的基础知识。Perl和Python等语言的粉丝会从Ruby中发现一些相似之处。提名Ruby的开发者将Ruby的成功归功于其易懂、易学、易读,并且拥有一个大型、活跃和充满着热情开发者的社区。
C和C++它们都是计算机科学与编程最基础的语言。如果你学习它们,它们会使你获益,即使你之后并不去使用这两种语言。它们会使你洞察计算机科学和计算机编程的起源和基础,并且尽管许多人指出学习这两门语言就像学习车辆驾驶之前先学车辆组装一样,每一门语言都有其利与弊。将这两门语言作为初学语言的提名者认为从C/C++学起会使你对编程有一个充分的理解,其中一位在写了一篇很好的博文《C/C++如何轻而易举地区分优秀的程序员》。如果你不旨在专业的编程,这对你来说不是什么问题,但仍旧值得考虑。毕竟,一些提名者列举了C和C++的不同风格和变形,例如标准C,用来编程Arduino微处理器,Robot C,专门用于机器人。
============ 我又一次准备上路了,你呢? ============
编程是可以学的。我知道编程令人望而生畏,很多事情都这样。但是,又有什么不是如此呢?
-- NBA全明星:克里斯·波什