一、实力比学位更重要
如果你不是计算机专业科班出身,也别太担心。下面这段话摘抄自吴军的《硅谷来信》。
“今天很多大学毕业生,读完四年大学,学了很多课,其实并没有掌握任何一项得以安身立命的技能。我在腾讯时看了不少校招学生的档案材料以及他们面试的记录,除了极个别的中国名牌大学,大部分学校的毕业生,都没有掌握最基本的工作技能。
比较聪明一点的学生会在上学的最后一年,花钱跑到外面的培训班去进行技能的培养,他们面试时所体现出来的技能要远比那些仅仅在大学里上过一些课的学生强得多。”
可见,想要成为程序员,还得靠硬实力说话。上个培训班,可能比读个大学都管用……我当时看到这个结论也是很震惊的。
二、要当真程序员,先当假程序员
在英文中叫“learning by doing”,通过实际工作来学习。要成为真正的程序员,先想办法找到一份程序员的工作,成为假的程序员。之后每天上班就是干这个,还得996的干……你说学得能不快吗?没多久就成真正的程序员了。问题是怎么找到程序员的工作呢?
如果你已经在相关职位了,例如:产品经理,网页或用户界面设计、数据分析师,运维,测试。那么你只需要去准备好简历和面试就行了。
现在的程序员面试,基本属于标准化考试,网上有无数资料帮你准备,其中最重要的就是上LeetCode刷题。准备到位了,是一定可以通过的。有钱的话,买买网课。
三、没有相关背景就分两步走
如果你的个人经历和程序员这个职业完全不搭边,那么你可能无法直接拿到程序员岗位的面试。所以,只准备面试是不够的。
你需要先跳到一个相关岗位。通常来讲,数据分析师、测试员、运营维护人员的最低门槛要低一些。以这些行业作为跳板是成为程序员的好方法。这里就需要你去做更多功课,研究一下哪个跳板才是最适合你的。
写道这里,我突然想起来一位朋友跟我讲的故事:
“ 技术发展的目的是降低软件开发的用人标准,进而降低软件行业的人力资源成本,更快、更好、更便宜地满足用户的需求。
从公司的角度来看,如果要求所有开发人员都是基础扎实、技能全面的,那么用人成本一定很高,我完全相信经过一定训练和挑选的*鸟毕业生在经理的正确管理下可以很好的开展工作,尽管他可能不懂算法和数据结构,C和C++基本不会,这并不妨碍他为公司创造价值,随着他开发经验的增长,在时间允许的情况下再去补充一些基础知识也是完全可以的。
其次,题主的情况,未必能承担系统而全面学习所带来的成本
几年以前有个“学生”,打引号是因为我并没有真正教过他,中专毕业,专业是钳工,曾经给我展示过胳膊上的长长的疤痕,说是被车床伤到的。
他要求跟我学的时候属于入门阶段,最开始学习的并不是什么三大浪漫,而是C#. 在掌握了一门编程语言后,很快自学了其他语言(甚至Delphi), 在一年后找到了一个小公司做些基本的开发工作,然后涉足安全领域,开发了各种工具,现在在一家安全公司上班,提升很快,收入不菲。前不久跟我聊他配合网监做一些取证和提审的工作经历。
2006年,我在武汉某个夜市的大排档上,凌晨2点多,看到一个服务员在忙里偷闲看一本计算机书籍(扫一眼就知道),仔细一看是一本Java入门书,聊起来才知道这妹子是护校毕业,但是对计算机有兴趣,就想在大排档当服务员攒学费去*鸟。她还拿出一沓油迹斑斑的信签纸,上面全是她写的程序,她说每次去网吧都要装开发环境,太麻烦了,所以干脆在纸上写。哥看不下去了,给一开软件公司的朋友打电话强烈推荐这妹子去实习,朋友一听情况表示拒绝,我说你只要给他管工作餐就好,不用发工资。1个月后这妹子进入试用期,2个月后转正,后来在朋友公司做了近两年,据朋友说开发能力很强,再后来,我就不知道了。
作为教师,感动我的总是这这样的“学生”,而不是那些坐在教室里花着父母的钱虚度光阴的学生。
可能有人会觉得这样的程序员是“野路子”,不登大雅之堂,但这一点都不妨碍他们兢兢业业的工作,为公司创造价值并且改变了自己的生活。”