自学编程到底多难?能不能找到工作?阿里技术专家这样回答……

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

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

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

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

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

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

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

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

谢谢知乎IT大神们~

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

再回到题主的问题:

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

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

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

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

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

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

分享

不可多得的好文章,当年自学的时候若有这篇文章指引,也不会苦逼这么多年。我曾经也在自学的道路上苦苦挣扎,我是培训出身,但在培训机构里几乎没学到什么东西,毕业后去面试,没面试一个公司才知道自己学的都是过时的课程,每面试一个公司就发现一个新的知识技术,简直跟哥伦布发现新大陆一样,所以打定主意工作后一定要全补学回来。

工作后的自学并不简单,找视频,找书籍,找资源异常艰难,也走了很多弯路,所以当初在自学的过程当中自己搜集并组建了一个资源库,里面有java从入门开始到架构师的各种资源,pdf电子书,视频教程,学习路线图,各大厂面试集锦,BAT测试题,架构师视频以及电子书和杂志等等,我会不间断,不时的更新的前沿技术。分享给大家,希望大家免受我学习时所受之苦。

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

 

 

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值