您没有来错地!为了更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 资讯 职场族 查看内容

大三学生仅学了一年编程就拿腾讯offer!不是大牛这也不是鸡汤文

2018-8-23 01:45| 投稿: xiaotiger |来自: 互联网

摘要: 我是一所普通大学的本科生,大学录取时的专业是电子系的,大一的时候意识到自己喜欢敲代码后,就提交了转专业申请。大二起开始在计算机系学习。大三(2014年4月)时拿到了腾讯暑期实习的offer,实习过程中获得留用of ...

我是一所普通大学的本科生,大学录取时的专业是电子系的,大一的时候意识到自己喜欢敲代码后,就提交了转专业申请。大二起开始在计算机系学习。大三(2014年4月)时拿到了腾讯暑期实习的offer,实习过程中获得留用offer,大四就不跑秋招了。

我不是大牛,不是来传播鸡汤或成功学的,并不是仅仅写给计算机专业的学生,而是喜欢编程的人!

人一生要面临很多选择,但是真正能决定你命运的只有几个!

很多选择本身并没有对错或优劣,只有适合不适合

不要滥用勤能补拙,这个词语一度被很多人奉为圭臬,但同时也成了枷锁。我相信这个词语,但是要考虑现状,要考虑投资回报率。你在自己并不擅长或不感兴趣的领域深耕了四年,最后不一定能获得多少成绩。当然如果你能在毕业后继续深耕几年或许是可以的,但是我希望每一位大学生在毕业的时候都能有一份好的工作,并且如果你并不喜欢某一领域的话,那么我相信你也不会长久坚持下去。所以我们一定要找到适合自己的方向!

那么如何发现自己对什么感兴趣呢?我也不知道很好的办法,我只知道一个朴素的方法——尝试。趁着年轻,就要多尝试。千万不要大三了都还不知道自己兴趣在哪,想做什么,适合什么。所以大一大二努力去碰钉子吧。

算法还是开发

数据结构和算法很重要,无论是面试还是工作,无论你从事哪方面的技术。不过算法虽然重要,但并不适合每个人都花费大学全部的精力去钻研

相信很多学校都有ACM竞赛相关的社团或组织。很不幸,我们学校没有,我大一的时候也花了很多精力刷题,但是硬件条件不太允许,氛围太缺乏,遂放弃。如果你觉得自己能够在ACM比赛中游刃有余,那么恭喜你,你可以一心一意搞算法。如果你觉得自己在这个过程中十分吃力,挫败感频生,那么也不要气馁,或许有另一条路是属于你的。选择开发,有深厚算法功底是很棒的事,但是仅仅只有算法同样是不够的,计算机海洋还有很多未知等着你探索。

算法岗包括数据挖掘、机器学习之类的。要说明的是想做算法的同学最好选择读研继续深造,因为大企业在算法岗的招聘上对本科生是很不友好的。还是要声明一句,你做开发也不能忽视算法和数据结构,起码面试还是经常考的。

对于本科生而言做开发还是相对容易的一条道路,不过开发的技术路线也是不胜枚举:前端(web前端)、后台(PHP后台、Java后台等等)、移动端(安卓和IOS)、游戏开发、数据库(比如做DBA)……。这里我肯定不会去推荐你去学哪一种,我没有能力也不适合。只有你自己才能发现自己的兴趣以及好奇心之所在。

目前自己是个高级前端工程师,工作三年时间,自己在学习的时候整理出一些学习资料,还有学习视频,私信【前端】,可以把资料免费送给大家,希望能帮助更多想学习编程的人。这不仅仅是面对学生,只要你想学习编程,学习前端,新手小白,还是想转行,都可以来私信我。

认识技术

关于技术,很多本科生都存在诸多误区。初学者总喜欢追随牛逼的技术,实在过于盲目,找准自己的定位最重要。

误区1: 图形化的东西比非图形化东西更牛逼

多见于初学者,尤其是计算机专业新生(我大一的时候就是)。当时学校教了点C语言,一直都是控制台程序,面对黑窗口,我就各种百度看看怎么弄出图形化的东西,那时候才知道GUI这个缩写是啥意思(当初知道这个缩写的全称还小激动了一下下,果然我还是太年轻了),然后知道了WIN32、MFC这些名词。确实只能说是知道名词。当时对着视频教程做了计算器,就是用VC++拖拖控件,视频里的人敲一句代码,我就敲一句。后面虽然弄出来了,但是感觉自己什么都不懂,只是依样画葫芦。这时我才意识到,还有很多基础没有打劳。

误区2:非图形化的东西比图形化的东西更牛逼

具体而言就比如说:后台技术比前端技术、客户端(Android、IOS)更牛逼。多见于有Linux背景的人(没错,说的就是我=_=|||)。

我也一度这样认为,其实不然。这里和上一个误区一起澄清一下:技术本身没有高低优劣之分,只是程序员对其有好恶之别

另外要说明一下,不能说前端就简单,后台就更难,同样反过来说也不对。我只能说这完全是不同层面的东西,不能量化的去比较。

前后端都自有其痛点、难点以及G点

不能说你能处理后端复杂的并发、同步、高可用,那么你就能轻松地完成美观的网页及特效、处理麻烦的浏览器兼容、极尽所能地降低页面的加载速度。举个不恰当的比喻:同样是一双按在键盘上的手,那么钢琴家演奏优美的乐曲和程序员开发高性能的软件,哪个更困难?

误区3:XXX是最美的语言/框架/平台/……

多见于PHP程序员。哈哈,开个玩笑。这里不是在谈论谁是最好的语言,而是告诉大学生朋友们不要迷信论断。不要盲目跟风,追新,找到适合自己的最重要。

关于逃课

相信每一个大学生都逃过课,我也不例外,而且很多。我在谈逃课,其实也是从某个侧面来谈自学。之前有个网友和我咨询如何面试,如何准备之类的。他已经大三了,学校的课程完成的不错。但我感觉他还欠缺很多。要想找到好工作只靠老师教你那些东西是不够的,跟着学校的进度走,其实只会让你落后。我并非一味的鼓励大学生逃课,我的观点是要选择性的逃课(如果是好课那么即使不开课也要去蹭课的)。哪些课要逃呢?

无聊的课程。比如思修、毛概、马原统统要逃。别急着反驳我,只是谈逃课而已,不要形而上。数学相关的课程,我只想说量力而行,数学确实对于程序员来说还算重要,但是不同岗位对数学的要求又不尽相同,你能应付就好好听,不能应付就。。

与你的技术方向无关。这个就要看你是不是计算机专业了,如果你是其他专业学生,但是对计算机感兴趣,相信很多课都是可以逃的了。或者比如你的技术栈是建立在Linux基础上的,但是学校有一门MFC编程的课,你有兴趣又有时间可以听听,没时间就逃,OK的。这个也是有个前提的,就是你能清楚的明白哪些课程是对你有帮助的。

你已经掌握了的。相信会自学的孩子,都有这种情况:在学校开课前,你就自学过了某门课程。那么等到开课以后你就可以逃了,我就是这样逃了Linux编程的课。当然你要清楚的了解自己到底掌握了多少,不要一知半解,还自以为懂了,就不听课了。其实要逃这种课,你也不需要懂得太多,你只需要保证你比老师讲课的水平高就行了。我们有的老师,水平真心烂,不逃课对不起他。

但是很多学生总是走极端,说到自学就一点课都不上了,看不起学校的课程安排。自己在寝室学个把月就能轻轻松松地做出网站或者APP。但是我想告诉你,你能做到的,别人同样能做到。有一句话说的很好:

你的工资不是和你的工作时间成正比,而是和你的不可替代性成正比。

你和培训机构几个月量产出来的程序员差别在哪?仅仅是你没有给培训机构交学费吗?但你的技能和他们是差不多的啊。所以说学校教的基础课是很重要的,最直接的好处就是笔试,笔试考的就是基础。然后这对你长期的职业发展也是很有帮助的。你工作几年之后(可能就是一两年),发展肯定会遇到瓶颈。

打造自己的技术栈

技术栈,或者叫技术体系、知识体系,起于编程语言而又不止于编程语言。你可以多尝试,然后找到自己喜爱的技术方向开发深挖、发散。然而很多学生通常会在起步的时候就陷入迷茫。在网上看到过一个人,想学web开发,各种调研,然后向别人征求意见该学哪门语言比较好,哪个框架更有优势。后面大概过了半年,他还在纠结该选哪一个。

我只想说:先跑起来。语言很重要但并没有那么重要。无论语言还是框架本质上都是工具,在这些工具的使用过程中提炼出的思想、方法、认知才是你要追求的能力。有了能力,即使你换了语言,换了框架照样能快速上手。我觉得大公司一般不会计较你对某一框架的API熟悉不熟悉,他更看重的是你对框架背后的设计哲学和原理是否了解。

简单谈一下学生阶段应该积累的一些通用技能:熟练掌握一门编程语言、熟悉一个数据库、熟悉一个版本控制系统(SVN、Git)还有就是老生常谈的计算机专业的基础了。

技术栈就像一棵大树,树根可能是操作系统、网络、算法、数据库。再靠上一点是编程语言。接着树干就是你的职业方向,可以是安卓、IOS、前端、后台等等。别忘了还有树枝和树叶。技术没有孤岛。把自己封闭在闭塞的圈子内十分危险。你应该是具备了深度的同时再拥有广度,请注意拥有深度是前提

没有什么东西绝对该学或者绝对不该学的,切忌盲从,照搬照抄别人的学习经历,强迫自己跟着别人的步子走。谁说你是后台的就不能看前端的东西?在你后台技术成熟之后是可以的,这样也能加深你对整体架构的理解。不仅前后端知识不再是孤岛,甚至开发、测试、运维之间的边界都在模糊。

另外这些树枝和树叶上悬挂着的也可能NoSQL、Git或者Docker等,你不需要在每个方面都是专家,但你应该对新技术抱有好奇心。

深度思考和提炼

不管是前端还是后台,框架都是层出不穷的。每个都学,谁都会疲于学习。但实际上你并没有必要这么做,对于一个框架,记忆它的API永远是最低的技能,你要从中提炼出一些共性的知识点。比如后台框架,你学了之后你要记住的应该是URL路由、模板、权限控制、MVC的设计等等。那么你换一个框架,即使有不同,你也能快速上手,思维上只是换一套API,接着补一下个别差异、新特征而已。

对于编程语言的学习也是如此。C++的STL里面有各种算法,很多算法的参数中都包含一个函数对象(实际为重载运算符()),这就是函数式编程啊。学了javascript,你会感觉到很多时候其实也都是在进行函数式编程,并且比C++更甚,尤其是jQuery这个库的用法。提炼出不同语言之中的相似处及不同点,不仅能帮助你学习新语言,并且能帮助你巩固旧语言,加深你对旧语言的理解。

另外呢,计算机专业的很多课程其实也不是完全孤立的(虽然看起来可能如此)。比如说操作系统这门课:讲链接和装载,这肯定和C语言编译的可执行文件有莫大关联啦。讲内存管理,分段是啥?你不知道C语言里面数据段、代码段、XX段吗?内存的分配策略和分配算法,其实C语言里面malloc就在使用这些策略啊。大家一定要学会在不同课程之间建立联系,这是一件很有趣的事。

解决问题的能力

看似简单的能力,实际上很多学生都缺乏。解决问题的能力包罗万象。从初学者角度来说,你学习C语言编程,那么你一定要尽快学会调试的技巧,比如加断点,追踪栈信息之类的,其实并不难。但是不知道为什么很多人不会调试,我之前就给几个学妹调试过程序,烦死。

自己调试解决不了的问题,或者读书过程中产生的疑惑,其实绝大部分都是可以通过搜索引擎或者阅读更多的书籍来解决的。同样有很多人,一有一问题就问别人,我也遇到过,很多时候我也没能力直接回答他的,我需要去搜索,找到答案,再告诉他。我就想说你不会用搜索引擎的吗?最后浪费的是两个人的时间。

你想问别人的问题基本上网上都有人提问过了,你要做的就是耐心检索。其实使用搜索引擎也是有技巧的。比如:

  • 搜索的内容尽量精炼。不要既啰嗦又没有重点
  • 不停的修正你的问题。一次搜索结果通常不会解决问题,你需要的就是利用每一次搜索结果提供的信息来不停的修正你的问题,使之逐步精确到问题的核心
  • 某度解决不了的,用谷歌

别做伸手党,很多问题都是可以自己解决的,解决的方式有很多,不一一列举了。接着如果仍然不能解决问题,这时你就可以去各大问答类网站提问了。请注意,过于基础的问题,是没人愿意理你的。所以请确保你在提问之前已经做足了前面的工作。

早做规划

关于求职,一定要早做规划,最起码在大三开始就应该定下求职的规划。举个例子:

我意识到自己直接参加大四的秋招可能有很多不足,但是如果我找一个大三的暑期实习相比秋招应该要来的容易,并且实习留用的概率也比直接秋招通过的概率高。退一步讲,即便我实习不能留用,但我已经有了实习经历,那么我再去参加其他公司的秋招胜算也会大很多。

自己的短板一定要早点发现,然后及时找到弥补方案。比如你项目经验匮乏,那么你就应该在其他地方找到填补,例如:把基础打牢(从上层应用到底层原理),深入了解数据结构和算法,阅读开源项目源码等等。

俗话说“知己知彼,百战不殆”,你应该找个时间(不需要太早)去看一看你所关注的公司往年的笔试题以及面试题。网上有很多笔经面经可供参考。

其他的规划还有很多,比如你大概什么时候开始就应该频繁关注各大公司的招聘信息,什么时候开始海投。如果你准备去外地面试,那么提前给自己准备好足够的钱,不仅是车票,面试过程可能会持续几天,需要住宿之类的。

关于刷题

这是个见仁见智的问题,如果你基础足够好,那么大可以不要花太多时间在刷题上,但是我也建议你读一读《编程之美》、《剑指Offer》、《程序员面试宝典》、《程序员面试金典》之类的书来熟悉一下题型。

吐槽一下,我当时看的《程序员面试宝典》是第4版,不知道为啥出到第4版了,错误还很多。前半部分还好,值得一读,后面就不敢恭维了。大家读书一定要警惕。

如果你基础不太好,那么刷题就尤为重要了,虽然有点取巧,但也不失为一个办法。

鼓起勇气

之前我们学校本科生进BAT的很少,可能要隔一年才有一个。但是其实并不是我们学校学生真的这么差,虽然我们学校教育不怎么样,但不代表我们学生的素质就是如此。原因很简单就是缺乏勇气。我曾和一些学长学姐共事过一段时间,他们对于BAT以及其他的互联网大厂,都是想都不敢想。我也曾经羞于说出自己的梦想“进入BAT”。

所有互联网大厂都是不会来我们学校所在城市(南昌)招聘的,我们要想面试这些企业都要去省外城市(比如武汉)。异地面试也是给很多人心中造成了无形的压力,觉得跑这么远,要是面试失败咋办,觉得不仅丢了钱还会丢面子。其实很幼稚,每个人都应该尽自己所能找到最好的工作,没必要想这么多,你丢掉的钱,迟早会得到更丰厚的回报。你丢掉的面子,迟早也会获得欣羡的目光,最差的情况你也能告诉自己“努力过了,争取过了,失败了也不后悔”。

还有一点就是不要害怕自己学校差(普通一本甚至二本),不要嫌弃自己学历低(本科)。首先研究生们在算法岗方面确实你本科生有优势,但是在开发岗上并没太大差别。然后大公司招聘虽然喜欢招聘名校的毕业生,但这仅仅是因为通过半个小时到一个小时的面试,面试官真的很难了解到你的全貌。而如果你是名校的学生,那么无形之中就在证明自己的能力,首先你能考上这个学校就证明了你的学习能力,然后这个学校师资力量,办学条件十分优厚,确实能助力学生的成长。如果你学校一般,那么面试官可能觉得你学习能力有欠缺,或者觉得这样一个学校并没有好的条件去培养你。

但是这绝对不是全部。你是普通学校的学生,并不代表你没有足够的学习能力,没有掌握足够的专业技能。你需要做的仅仅是努力向面试官展示出你的学习能力,你所掌握的技能就好了。

加油!

最后。目前自己是个高级前端工程师,工作三年时间,自己在学习的时候整理出一些学习资料,还有学习视频,私信【前端】,可以把资料免费送给大家,想帮助更多想学习编程的人。这不仅仅是面对学生,只要你想学习编程,学习前端,新手小白,还是想转行,可以来私信我。


小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6592441774243840526/

免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手
1

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

相关阅读

最新评论

最新

返回顶部