最近逛知乎,看到一个问题,有感而发,原问题如下:

想自学编程恳请大神推荐app网站!?

数学不好,再从小学数学开始重修

想学习编程,请问各位大神

1、编程要求哪方面数学知识?

2、有编程英语学习推荐吗?

3、请大神推荐锻炼逻辑思维尤其是编程思维的app和网站、书籍,学习群。

最后恳请大神推荐自学编程的app、网站、交流群等资源渠道。

谢谢知乎IT大神们~

于是我想到上大学时候的我,那时候如果有知乎,我也许会问同样的问题!

现在一路走来,我就向10年前的我来分享一下这十年的一些感悟吧!

计算机里面有一个非常经典的问题,叫boot,也就是启动,这里的boot(靴子)其实是bootstrap(鞋带)的缩写,它来自一句谚语:“pull oneself up by one's bootstraps“,意思是“拽着鞋带把自己拉起来”,当然,这是不可能的事情。最早的时候,工程师们用它来比喻计算机启动这一矛盾过程:必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序!

当然,我们这里不去讲最后工程师们是怎么解决这一问题的(如果你感兴趣并能自己去寻找答案,那么你很可能是一位编程高手)。这里说这个问题,是想说我们在自学编程的过程中会遇到很多很多像boot这样的矛盾问题。

这里不多说,我举一个最简单的例子:自学编程,你要先选择一门语言吧?你得对各个语言都有一些了解才能知道哪个语言适合自己吧?但是还没开始学,怎么对各个语言有了解呢?

当然,最直接的方式就是去问别人,应该学什么语言?但是这无异于你让别人拽你的鞋带把你拉起来。

我当时没有那样去做,我是真的自己去百度,去图书馆找书,去了解每一个语言,甚至我把一些感兴趣的语言都在本地安装了运行环境,并跑起来,那时候我记得我了解了cc++javadelphivbvc等等。是的,每门语言都只是运行了一下helloworld,然后了解了一下大概能干什么,光这个过程,大概持续一个月。后来我决定先从vc开始学,因为那个能做出界面,事实证明我错了,应该先学c、再学c++、再学vc

可能有人会问,你直接去问一个有经验的大佬,让他告诉你不就行了,何必自己瞎折腾一个月还搞错呢?

没错,这次这个问题,你可以问大佬,但是如果你选择编程这条路,以后的事业中到处都是这样的问题,迟早有一天,你要独自面对。

举一个我现在工作中的场景:老板要做大数据+流计算,让你选型,你怎么办?又是去问大佬?大佬的业务和你不一样,他的方案不一定适合你。跟大佬讲清楚自己的业务,让大佬帮你选型?不好意思,你可能找不到这样的大佬,因为是你在上班,而不是他在替你上班。很多时候你只能自己调研,而这调研的能力从哪里来?就是从我之前一次又一次的瞎折腾中总结出来的经验里来。

很多人说,选择编程这条路,你就注定一辈子学习,因为技术永远在更新换代。我觉得这句话没有说到重点,其实选择编程这条路,你注定一辈子面对未知,你必须能够快速把未知的问题变得越来越清晰,你才有可能在这条路上走得远!

举一个我工作中的场景:我曾经做一个很紧急的项目,但是一直没有好的解决方案,偶然找到一个开源项目可以解决我们的问题,十分欣喜。但是开源项目使用nodejs+angular写的,我做的是java,之前只接触过一点nodejsangular更是听都没听过,但是第二天,我就可以给开源项目动刀子了,开始在它的基础上增加我们的功能。

我做的无非这么几点,第一、快速了解一下angular;第二、粗略看一下源码,看看用到哪些关键技术,针对这些技术快速浏览博客了解;第三、找一些资料系统性地了解一下angular;第四、根据源码和网上的资料快速理清楚代码逻辑。这些内容我在一天内可以完成。

因为我之前自学的时候实在是走过太多弯路,以至于现在我只要看到岔路口,基本就能判断哪些路是大概正确的方向。也许是之前瞎折腾实在太多,以至于把它们垫在脚下,我竟然可以站得比别人更高。

我想这才是我们这些自学编程的人真正的核心竞争力吧?不然,你如何能够比得过那些科班计算机出身的人呢?

再回到题主的问题:

1、数学知识要求真的不高,主要是基本的逻辑和代数吧,高中数学够用了。如果你数学不好的话,重修建议注重逻辑和代数方面的东西,注重一些公式的推理,这方面能力在编程用得到。

2、编程英语最好的就是看官方文档,然后哪几个不懂的名词,自行google一下,你只要懂基本的语法就没问题,我们自己学英语的时候,不也是哪个词不懂就去查一下么?多看几次就记住了。

3、锻炼逻辑思维,我想数学题和算法题是最好的,数学题的话,找一些数学练习册就好,算法题去leetcode,也欢迎关注我的公众号【互联网侦察】,里面有经典面试场景还原的漫画文章,深入浅出,对逻辑很有帮助。

4、自学app的网站推荐慕课网,慕课网上的很多初级视频都是免费的,而且有很多实践案例,跟着视频做,你会学得很快。

最后还想强调一下,自学的道路上,你一定会碰到很多问题,甚至很多时候你会怀疑人生,但是每一次你自己找到问题的答案,你就会觉得原来也不过如此,或者你会发现其实之前被思维定势给困住了,这时候你就成长了。

这条路很难,若一去不回?便一去不回!


欢迎玩知乎的朋友关注我的知乎号:channingbreeze

更多推荐

致自学编程者们:我是如何通过自学一路走到阿里技术专家的?