目录

什么样的人适合编程(附个人履历)

逻辑思维是程序员最重要的品质,如果你不喜欢理工科,或者对理工科的逻辑思考不感兴趣,不建议转行程序员,因为即便入职了,未来能走多远靠的还是逻辑能力。愿意钻研,有一定“极客”精神。

一、适合编程的人

逻辑思维是程序员最重要的品质,如果你不喜欢理工科,或者对理工科的逻辑思考不感兴趣,不建议转行程序员,因为即便入职了,未来能走多远靠的还是逻辑能力。

愿意钻研,有一定”极客”精神,当你的代码出现bug的时候,要有钻研精神独立解决问题,当学习了新的技术后,愿意看源码,愿意了解底层的实现原理。

持续学习的能力,正如我说的,转行后,如果想提升自己的基本功,还需要课下看一些计算机的基础课程,如果有持续学习的能力,会大大提升自己的天花板。不至于一直写业务,沦为谁都可以替代的程序员。

回答一下大家感兴趣的几个问题:

如果英语不好,可以写代码么? 英语的水平和编程能力没什么关系,只要你能认识基本的单词,英语就过关了,剩下的学习和英语无关。

如果数学不好,可以写代码么? 数学不好绝大多数情况下不会成为编程的阻碍,除非你想成为较好5%的程序员,那么数学就比较重要。其他时候并不需要过多的数学知识。

作为一个生物学本科,流行病的硕士,从自学java到成为小米架构师,只用了两年时间。

相信我的经历能给大部分想转行的朋友一些启发。所有经历都是客观描述,请大家听我慢慢道来:

10年夏天在听信了”21世纪是生物的世纪”后,毫不犹豫得进入了北京某985学校攻读生物科学。

高中毕业的我对自己的定位非常清晰,我是一个很擅长理科,并不擅长文科的人。

但是就算是理科,学习方式和思维习惯也是前差万别的。

理科中,有特别”文科“的生物学,化学等,也有特别“理科”的数学和物理等。

其实我并不擅长实验科学,现在回头看来,生物,化学,建筑,工程类的都是我不擅长的领域

相反得,物理,数学,计算机这种纯粹的理科才是我的菜。

虽然说生物我提不起一点兴趣,但是最后还是以专业第二名保送在了北大生命科学院的生理系直博。

从大三暑假(2013年)我就痛苦不堪,每天待在实验室看文献就像如坐针毡,整个实验过程就是:1.给小白鼠结扎动脉(研究中风模型)。 2.把小白鼠脑子取出来并且搅碎。 3.最后电泳看各种蛋白质的表达情况。

一个暑假我也不知道我杀了多少只小白鼠 ,我只知道为了找蛋白质之间的表达关系,每天就是不停得把时间花费在杀小白鼠,结扎,和电泳上面。 简单来说,就是不需要太强的逻辑思考,只需要动手即可。

暑假过完,我内心非常抵触,不需要很强逻辑性和脑力的劳动(实验学科的特点),于是我就写邮件给导师。拒绝了北大直博的offer。

转眼来到了大四上,因为之前也一直有准备出国,所以就自己diy申请了美国的学校,因为明确知道自己不想读生物或者其他任何实验科学,于是转专业申请,去了美国排名前五,世界排名前十,常春藤联盟某所学校的公共卫生学院读master。

两年的硕士生涯,我以全A的成绩毕业(流行病相关专业),并且也接触了sas和r语言的编程学习(数据分析)。

16年硕士毕业后,我把自己的博士学习延期了一年,因为之前一直在读书,所以也迫切想进入社会看看。

于是16年的夏天我就来到了北京,和一些朋友折腾了一个叫做”家乐活“的社交app,如果看到我的文章的有宝妈或者宝爸可能会对这款app有些许印象,也因为这个app对公司的运营,管理有了一丢丢经验。

17年初,因为个人原因,我决定放弃国外博士学习的机会,在国内读数学的博士。

于是我离开了”家乐活“团队,从17年3月到18年3月整整一年时间,我都在准备北大数学科学学院的博士考试,幸运的是笔试虽然名列前茅,不幸的是没有通过面试。因为我没有任何纯数背景,也没有在数学方面发表过文章。

18年3月,我从北京去到了成都,做电商了。代理了一个蛋白粉品牌,叫做加乐活。大家如果还能搜到这个牌子,记得一定买,确实是好产品。

18年3月到19年4年在淘宝上面开了天猫店,有一个十人左右的团队,也赚到了人生的名列前茅桶金。

但是毕竟产品不是自己生产的,19年4月因为各种原因和厂家断了合作。

这时候毕业3年的我开始着急了,过多的折腾让我不知道重心在哪。

摆在我面前有两条路:1.去药厂用R和SAS做数据分析,写数据分析报告2.零基础学习计算机,去互联网公司做开发。因为15年我在赛诺菲药厂实习过,知道写数据分析报告还是有点”文科”的感觉,逻辑性不强。

所以最后还是决定零基础学习计算机。

因为我学习能力还不错,所以自学肯定是没问题的。但是从0开始学习,其实有很多讲究:

1.系统的学习体系是名列前茅步

2.学习过程中需要有人纠正我的错误(比答疑更重要)

3.找工作的时候可以给我简历和面试方面的一些指导

很幸运的是,我也在知乎上面遇到了一位朋友,通过私信(还有面基),然后成为了好朋友。他已经做程序员几年了,整个学习过程完美得满足了我上面列出的三点。

19年8月初开始了我的面试生涯,其实整个学习过程是我这几年比较开心的一段时光,因为学习是一件自己就能左右的事。

面试的过程真的是非常考验自我认知,面试的前期是热身的过程,很多知识点我都没有准备,所以前期大概5-10次面试都是在查缺补漏,真正到了面试中期,也就是面试10家以后,才真正开始认真表现,最终在19年9月份拿到小米软件工程师的offer,业务方向是小米商城。

整个过程最“搞笑”的是一个创业公司(可能就10-20人的规模),听声音大概30多岁的姐姐,面试了我大概10分钟,说了一句“你一点也不会写代码“。然后就把我拒绝了。现在回想起来真的很喜感。所以大家一定不要因为拒绝就心灰意冷,保持信心,keep going才真的是必杀技。

到了20年9月,组长让我彻底脱离业务代码,只写框架和梳理架构。然后找了10个技术非常好的人组成架构组,并且让我成为了架构组的组长。每两周给组里的人做架构方面的开发汇报。

这真的是对我一年努力工作最完美的回馈,要知道有多少人在一个组里呆了4-5年,还在写枯燥的业务。

当然,这期间我还利用课余时间自学了编译原理,计算机网络还有操作系统,真正成为了科班的程序员。

”一个程序员的技术天花板在哪“。其实你的地基有多牢,你的天花板就有多高。什么是地基呢,数据结构算法,计算机网络,操作系统,编译原理这些就是地基。 所以如果有可能,大家转行成功后,工作之余一定学习下这些基本知识,否则可能永远都在写业务。

延伸阅读:

二、什么是Python

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。