非科班出身，如何成为程序员？
老回答给大家放一下，大家就看个乐呵。 作为大龄转码选手，而且本科还不是985，211的我，来扯上两句吧。 说句实话，非科班的小伙伴想走的远，该学的知识还得学，该补的基础还是错不开的。而且既然选择转行，那肯定得有吃一番苦的准备。 其实转码最难的在于入门，很多人想转，但不知道从哪里学起。 我也特别有感触，我自己是因为出国的时候读了计算机化学，需要用python处理数据，导师强行要求的。于是当年（2013年秋），跟着当时免费的Learn Python the Hard Way，一个字母一个字母敲了几十节课吧。慢慢就知道一些Python基础，之后慢慢能读数据，处理数据，才对编程有了初步的认识。  之后当时的室友在CS系跟着本科生学算法课。我好奇问他为啥要学，他说他想转码。我当时因为确实没钱，不敢贸然行动，但还是心动了的。室友给我说了一句金句，他说，你可以选个算法课试试呗。能学的话，继续选别的，不能学就好好搞化学科研了。搞科研也挺好的，没准文章发得多，还能先解决身份呀。 于是我觉得这个方案可行，选了算法，那个时候是2014年。当时算法确实学得也不是特别的懂，但好歹考试还是拿了A。那个学期编程作业要求用Java，跟着thenewboston的Java课学了基础，慢慢的也能把作业写下来了。 因为感觉算法都还能学，于是就继续选了数据结构。再之后是操作系统，跟着是计算机网络，数据库系统。 为啥选这几门课？因为这几门是计算机的核心课。 我怎么知道的，我其实当时看了很多帖子之后，才定夺下来的。加上我想申请CS的硕士，很多学校的硕士申请要求也是类似上面的这几门课。 所以转码的选手，不管你用多少时间，你想从事计算机行业的话，上面的课，one way or another，你都需要掌握的。无非是有些人先工作，再去补，有的人先学了再找到工作的。 @北南 大佬的很多计算机学习的回答也值得大家去读一读，比如这个：  转码第二点，就是要能放下身段。 身段包括你的背景，专业，和年龄。我转码的时候，最爱被追问的问题是，你觉得你这样转了计算机，之前学了那么多年化学，可惜吗？ 其实一开始我也有类似的遗憾，后面慢慢明白了。以前的训练，让我能快速学习，完全没必要后悔。做着感兴趣的事情，才是更重要的。 我觉得很多人可能会觉得，我转码的话，会和很多小自己很多的人一起学习，一起共事，会觉得不好意思干嘛干嘛的。其实duck不必，没人在意你那么多小心思，每个人都在为自己的生活而奔波努力，没人在意你从哪里来，要到哪里去，身上背负了多少负担。 你要做的就是，哪里不会，我补哪里。一点点把需要的知识补起来，把自信心建立起来。去不断学习，不断拓宽视野，去真正能做起项目来就好了。 没必要计较那么多，想多了散劲。  学习的过程中也别只顾着埋头苦学，多去了解了解就业市场需要什么样的人，有针对性去准备也很重要。千万别觉得等学好了再去找工作，多参加面试，知道找工作的深浅也很重要。 多学一些技能，多学习一些知识，找一个合适自己的方向。  说一下培训班的事儿。 其实在美国，你会发现，这种培训班很多。五花八门的都有，针对美国人，中国人的都有。他们共同的特点都是比较贵，一个项目少说几千，甚至上万。而且去学的人还挺多。 针对国人的培训，知乎上就好几个。我就不一一例举了，他们有的几百美金，有的几千美金一个课程或是一期。不少人也通过这些项目刷题上岸了。 我觉得咱们咱们在准备面试的过程中，交流能力确实是最容易疏忽的点。所以平时一定要多练习英文表达。别题目都会，却表达不出来就尴尬了。 在美国转码的话，其实相对单纯很多，要过面试最主要的就是算法和数据结构过硬。过了面试再去补基础，去做项目。基础还是逃不掉的，要不然PIP了解一下？ 每年转码的人不要太多，通过这种方式上岸的不要太多，拿到的包裹不要太香。这些培训一般几周到几个月不等。经过几个月的努力，过面试还是很有机会的。 不过，过面试之后，就需要接受工作的考验了。那个时候，基础的重要性就会显现。在工作中还得继续学习了吧。 我自己摸索的路子大家也可以借鉴一下：  最最后再啰嗦一句，想学好计算机还是要多看原版书，多看源码，不管你是科班还是转码，学好英语特别重要！毕竟你遇到的很多问题，都需要去Stack Overflow等等网站看看是不是别人也遇到过类似的问题，到时候看不懂英文就尴尬了。