查看原文
其他

非科班出身的程序员,该如何进阶?

努力进阶的 腾讯技术 2022-11-05

你是非科班出身的程序员吗?在转行「程序员」的过程中,是否有过迷茫的时刻?
我们请来了几位鹅厂同学,一起来听听他们的故事和建议:

01  
“只要有时间,肯定是在看书”

@Run.

我本科五年,学了四年的临床课程,实习上过手术,跑过急救车,但我现在在写代码...... 我认为我还是很纯粹的一个码农,搞过算法写个前端,做过纯后端,写过业务系统,搞过大数据,现在跟着大佬搞搞容器......
所以我应该算「非科班」转行努力进鹅厂的典型了。
实习到工作的今天,我买了两百多本书(持续更新完),有些看过几页,也有看过好几遍的。当然了,相比很多大佬,我依然很菜......
按我对以前学校计算机相关专业的同学朋友的观察,一个还算合格的毕业生,花在学习计算机这个事情上大概花这么多时间:
一学年,两学期,40周,一周30节课,每节课40分钟,刨开翘课打瞌睡的时间,每节课有效时间算30分钟吧,那么一周下来花的时间是900分钟,算上作业和复习时间,一周给够1000分钟,那么一学年4w分钟,4年本科下来16w分钟,约2700小时,给够3000小时,也就是培养完一个985大学计算机专业的大学毕业生大概需要3000小时。
当然了,还不保证他一定能进BAT。其实这么算一个人能不能进鹅厂,可能不太科学,因为有些人1000小时就够了,有些人5000小时都未必够。
你在学的同时,有比你更勤奋上进的在学,如果你的智商和天分不能压制别人,那只能比别人花更多的时间了。只要有时间,无论“公交地铁动车高铁飞机邮轮”,肯定是在看书(我的书都被我按章节撕开了,所以很方便带),手机上各种笔记和学习用的 APP 和小视频(正经的小视频)。
说实话,计算机的知识体系,真不比医学的小,有时候我甚至觉得更庞大......靠刷题刷进来,不可取,因为后面还有考核,关于学习还是要学扎实的,虽然我看了那么多书,自学了这么多,但也有记不住的时候,毕竟不是科班,有时候底层的原理什么的理解起来会比较费劲,但底层的书是最难啃的,消化起来也会最难的。
但是搞了几年下来,我至少还是有点信心,有些东西搞出来只是时间问题。
当然,你的价值也部分体现在你要花多少时间才能解决这个问题。

02  
如果学习有捷径,那一定是假的”
@Luke.
我不知道我算不算科班出身,我专业是信息管理与信息系统,计算机的一些专业课我们开了一些但是不多。刚毕业时在北京一家传统软件公司工作,给联通和电信做乙方,工作还算稳定,但工资一般般。
我本人对这个行业还挺热爱的。“刚毕业时我觉得我太挫了,公司很一般,个人技术水平也一般,我当时就想进入大厂看一看,但是我知道自己水平不够。” 我第一份工作是做.net开发,这个技术就算到现在国内也是个小众的技术,我当时也并没有明晰的方向。
不过我当时的想法是:既然做.net开发,那就在这个方向深入钻研一下。当时京东和当当竞争正激烈,疯狂打价格战,那段时间我基本上把市面上关于.net开发的书都买回家了。
其实没有什么好办法,就是干,当时我早上起床上厕所都要看书,地铁上由于太拥挤就不看,第一份工作好在比较清闲每天能够六点钟准时下班,到家吃完饭就是看书,基本上看到十点半睡觉。就这样不知不觉一年多的时间买的书就全看完了,凭着这些知识我换到了一家小互联网公司。
比较幸运的是我第二份工作也比较清闲,我当时对顶尖互联网公司是十分憧憬的,在市面上.net书已经被我看的差不多的情况下,在一个前辈的指导下我看了一个开源项目的源码,这个项目名字叫做nopcommerce,并且我们三四个人基于这个开源项目上线了公司的一个网上商城。
看书全是理论,代码才是实操,我在.net方面的一些最佳实践就是从这个开源项目学来的,当时也不懂的找些文档加个qq群讨论,这个开源项目的源码我一行一行看了三个月,在那个时期还接触了些其他的技术,看过jquery 1.7版本的全部源码,也写过nodejs,虽然现在很久都没用忘的差不多了,不过却开阔了技术视野。
再后来我有一次面试的机会进入了鹅厂,进入鹅厂后反而有些懈怠了,刚毕业看书学习的狠劲都没有了。如果说学习方面有捷径的话,那一定是假的,就算在当时来看,我也依然觉得学习的过程大多是痛苦的,但是我这个人的一个特点是比较能坚持,或者说喜欢一条路走到黑。某些情况下这个特点不是好事。如果说有什么建议之类的,我自己信奉两句话:只要路正不怕路远。咬牙死撑。
@Frank.
因为工作的原因在性格测评方面有一些积累,持续观察过不少典型样本的发展轨迹,从非程序员的角度贡献一些想法:
非科班出身30岁能不能来鹅厂搞代码?能!好多活生生的例子。下个问题就是他们为什么能?简单来说,分两种情况:一种是潜力高,一种是努力多,如果两者结合的不用说一定是极品。
用大白话说,怎么判断自己是不是这两种类型,潜力高就是做起来容易,别人这个代码要10行,我只用3行,别人要搞一天,我只要半小时,或者我以前没写过代码,学了之后不久就发现我比好多人都厉害。这种情况很容易就发现自己在这方面比别人潜力高。
努力多,要稍微解释一下。从目前主流的心理研究来说,性格是很难改变的, 比如成就动机、责任、坚强、自信,但不是说一定就不能做自己性格决定了不擅长的东西,前提是得从价值观入手,让自己由衷地认识到这样做是必要的,一般来说就能够压制性格中的一些制约因素来完成目标。

03  
明确适合自己的选择,不要轻易放弃
@Keivin.
本科硕士都是机械相关专业,大学念了7年机械,凭借着硕士期间做的几个设备的附属软件(C++ ,.net),去了华为,然后被随机分配搞java和web开发。
在华为干了3年多,很忙很被动,没有太多自己的思考,就是遇到啥不懂的就看啥,待遇也涨的慢,于是开始投简历,面了几家之后暴露了自己不少问题:知识面窄且零碎、基础不扎实、不懂原理浮于表面。
于是停投大厂,改投小厂,一边面试发现自己的不足一边学习,持续了3个月左右(基本都是周末或者晚上跑出来面试),基本补足短板,然后重新开始投大厂,后面就比较顺利,收了不少offer。
所以我觉得,何不出去试试呢?看看别人要什么,自己缺什么。

@Taio.

我大概是【非科班出身】的典型案例,从准备到达成,累计耗时1年多。以下是我的故事:
1、目标+路径
初步考虑:做一个懂技术的PM,小公司锻炼半年,选择风口类项目积攒经验,跳槽心仪公司。
分析公司需求:去关注大厂公司招聘信息,分析大厂对于特定岗位的诉求。
分析自己的兴趣点和优劣势:经济学出身,喜欢技术研发、语言。懂技术、管理相关专业背景、善于和人打交道、情商不错。
2、工作经历
2.1 做一个懂技术的PM,要先懂技术
怎么办?报个班吧?
当时找了个机构,第一批人员研发课程已开课几周,安排我等待或者试课ui,闲着也是闲着我选择了试课ui试了一周头疼果断放弃。
第二批人员招收完后,开始了开发的课程,一周后感觉自己很喜欢开发的事情,尤其是代码跑顺,发布后的那种成就感,就确定了按照之前的规划走,继续课程。
过程很艰辛,明确好适合自己的选择,就不要轻易放弃。事情的成功,除了目标、过程的管理,有时候还需要信念感。
2.2 第一份研发工作
机构推荐方式有两种:一是向所有合作公司发送同期毕业学员的简历,由简历做第一次筛选,非专业出身很吃亏。二是邀请公司来机构进行笔试、筛选面试。
当时我更多关注的是第二种,重心也放在第二种公司,这种机会不多,所以做了很多提前的准备,了解公司、公司规模、当前的管理模式、岗位背后的深层次需求。
所以当时有一家自己有意向公司来面试时:经过笔试、一面、二面、hr、临时增加的现场上机操作,最终从50多个人里面脱颖而出3位(成为其中之一)。
笔记:当时了解到公司发展规模处于小型到中型过渡,会有pm的诉求。面试时表示自己更倾向于PM的岗位,但是公司当时为设置,后续如果公司向中型发展,自己希望从事项目管理的岗位,做一个懂研发的pm,对方反而很对我很感兴趣。
2.3 项目选择和第二次机会
当时公司接一些大型公司的外包项目:14年底-15年初爬虫项目(内容抓取到分发),当时感觉处于内容的高迸发期,选择将重心放在内容域产品上面,做了爬虫相关的工作(抓取门户网站:标题、内容等)。当时市面上还未有app,是内容域产品由pc端向移动端发展的初期。
15年年初,考虑去北京发展,第一个月反复找机会和面试中,最后鹅厂当时在孵化新产品,正好爬虫类研发人员急缺,机会来临,后来就进入了鹅厂,16年转为项目管理,直到今天。
3、想跟大家聊的
  • 结果=目标+达成,so要树立明确的目标、路径,一定尽量明确,不要“哥伦布”发现新大陆式的管理,现在不是需要你走到哪儿算哪儿,而是需要你自己知道你需要去哪儿。

  • 选择很重要,自己感兴趣、同时市场对你的兴趣岗位和能力有诉求,你和公司之间可寻求一种match路径,而不是完全随心选择。

  • 坚持:什么样的人生都是人生,不需要太在乎别人眼里、嘴里对你人生的“教育”,在不伤害别人的情况下,你只需为自己的人生负责即可。

  • 大多情况是:尽人事,听天命。凡事尽量做到自己心安,不要留下遗憾。


#有料程序员 直播#
对谈中年鹅厂工程师
工作20年依然保持少年般的热情
点击预约,观看直播

往期回顾:

计算机会进化成与人脑一样 吗?

你的前端进阶之路是怎样的?

如何高效阅读技术书籍?

如何做一个靠谱的技术运营人

点个关注,我们下期再见👋

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存