72

我从药学转 IT 编程的历程,搞编程要学什么

 5 years ago
source link: https://mp.weixin.qq.com/s/jI5LFhnd9CY8KMeKeYiahQ?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

BFBVZ3N.jpg!web

1. 机缘巧合我学了药学专业

我是90后,并不聪明,08年高考失败后去浙江打工,但我不甘心当时那样的工作,我想复读,父母其实是反对的(他们可能认为,不读了家里有三个人打工,在农村也能过得还不错)。农村人想改变自己的命运只能通过高考, 所以毅然决然地回去复读

09年第二次高考,通过努力我比上一年多考了120多分,在河南人口大省,刚刚过一本线10多分,所以我志愿填写了排名一般般的211学校(延边大学,当然我觉得我在延大读过书而骄傲)。

当时填报志愿的时候出了一些小小的失误,我大概记得我报了以下几个:

自动化,药学,移动通讯,IT

平行志愿,记得很清楚的是我将药学填写在了第二个位置,当时以为没有顺序关系。

班主任知道后说你最好去改下吧,那里当天已经有些晚了,我想算了,不改了吧,如果真是药学就学吧,不也挺好的么。结果我真的被药学录取了。

f2mIZ3V.jpg!web

但我现在想想,也不后悔吧, 但如果我一开始就学的计算机,我会少走很多弯路。

2. 没有消失的IT梦

2.1 本科期间

在大学期间我依然表现出了对编程的热爱,记得是 09年底, 当时玩的是Nokia的6120c,经常逛塞班论坛,有一个贴子说能用Python写手机软件,我赶紧下载教程来看,一看,编程这么简单啊,从开始学,我用了7天就写出了第一个手机软件(这个软件是教新手在手机上编程的,通过菜单点击自动就帮你写简单的代码),接下来的一两年里,又写了背单词的,Discuz!论坛发帖子工具等(都是运行在塞班系统上的,该系统已亡)。

qyyIVrz.jpg!web

现在由于运营问题(应该是这个原因),塞班论坛已经关闭了(怀念当时刚玩智能手机论坛的时光,逛论坛,找各种软件玩)。

大学期间,我也报考了C语言二级考试,看的是内网分享的吉林大学的计算机视频课程。(考试结果上机100,笔试87 两个都是90分以上是优秀 IfiUBfN.png!web

2.2 准备考研

2012年的时候,很多同学都在准备考研,我也不例外,我在报考计算机专业研究生和药学之间犹豫,我药学学的也还不错,当时和车通,靳晓勇,黎孝全等同学,每天都去自习室学习,保险起见,我报考的 计算机辅助药物设计(CADD) ,最终我考上了武汉大学。

在准备考研这一年里,为了专心考研,我并没有学习太多关于计算机的知识。

2013年6月毕业后那段时间,我又系统地重新学习了html, css, js, Python等。

32A7Fvq.jpg!web

2.3 研究生期间

研究生做的事情是 生物合成反应 相关的,返回代谢通路计算,数据收集,或者通过各种技术手段来搜索化合物,反应等,比如通过相似性找最相近的反应,同时考虑酶的底物特异性。

真正水平的提高应该是从这个时候的,加上课题组有和武大合作的,计算机学院的三位同学:江超,杨骁,张浩然。

我每天7点多到实验室,晚上10点多回去,几乎每天如此,周末无休,天天coding。 研究生coding了三年,做了非常多的项目,以致于现在发文章还会带我的名字。

这三年我的能力也有了很大的提升, 毕业后通过校招进了阿里

u2mAfuR.jpg!web uQvEvmb.jpg!web

3. 我为什么要转行

兴趣真的是最好的老师,因为我是真的喜欢coding,你 有兴趣,才能坚持,才能不断投入

我对编程的爱好就是这样,我自认为真的不聪明,但我坚持每天学习, 现在在阿里高德两年多了,我还是坚持每天学习2个小时。

2E7FBjv.jpg!web

4. 从非计算机转业转行做编程要做好那些准备, 难么

E73qQfE.jpg!weba67BZr2.jpg!web

说实话, 转行是非常辛苦的 ,“隔行如隔山”,如果不是真的感兴趣,真的有毅力,一般人不建议转,要想清楚。

RbaEFzz.jpg!web

不能“眼红”说IT行业薪水高,你知道别人加班有多严重不,你知道别人付出了多少不,算一下时薪,IT行业也不高的。也会遇到各种问题,说不定你也毛了

UZ3EruM.jpg!web

如果你真是感兴趣,是下图这种心态,就完全没问题。

vuANZr2.jpg!web

发自内心的喜欢,加上常人没有的毅力,那你就具备转行的条件了。

只要你努力,你坚持,你会发现这个社会根本轮不到拼天赋。

5. 转行做编程要学什么?

IT行业也分的非常细(前端,后端,数据库DBA,运维,算法,大数据分析,架构师等),首先你要了解,决定自己要选择哪个方向。

如果你学习了一门编程语言,也能写一些代码了,有很多时间你发现,编程语言的语法你都懂,看别人写的代码完全看不懂,这时候你就要修炼你的内功了,可能是实现思路你看不懂(算法),可能是用到的协议的细节你不知道,可能是底层的原理你不懂。

很多时候我也很困惑,觉得发生的现象很奇怪,觉得很神奇,但当有一天,你找到原因的时候,你会感叹“原来是这样啊”,豁然开朗的感觉。

学习的时候,不能死记硬背,要理解当初为什么是这么设计,多思考为什么。

越往后,越想深入,你就发现这些 基础知识的 重要性。因此我建议想转行的同学要不断学习,不断努力去掌握以下的内容:

1) 学习至少一门编程语言,你以后靠它吃饭的

2) 代码版本控制工具,比如现在流行的git

3) 字符串编码相关的 (UTF8,GBK,UNICODE是怎么回事?)

4) 前端相关知识(看个人兴趣,后端同学可以简单了解)

5) Linux 基础命令 (常见的文件操作,问题分析工具netstat, lsof, strace, ps等)

6) 数据库,缓存等相关知识 (数据库的增删改查,索引的使用,原理等)

7) 缓存技术,常见了redis,memcache特点等

8) HTTP/HTTPS 协议相关内容 (需要理解协议的很多细节)

9) 网络相关知识(TCP/IP协议)

10) 算法,数据结构等知识(基本的数据结构和算法要会)

11) 操作系统原理等(多线程,多进程,CPU调度机制,内存管理机制,内核调用等)

12) 编译原理(程序是如何运行起来的)

说实话,有很多计算机本专业的同学很多都掌握的不好,这也会制约后续的发展, 上面内容的学习会惯穿整个你的整个职业生涯, 越深入你发现基础越重要

推荐视频:

【计算机科学速成课】[40集全/精校] - Crash Course Computer Science

https://www.bilibili.com/video/av21376839?from=search&seid=13746224688943762763

说了这么多,希望作为一个“过来人”,能给想转行的同学一些建议, 愿想转行的同学能少走一些弯路 如果想要得到我的帮助,可以在此文下面回复。

qMjmmur.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK