解析篇 | 毕业就拿15K!最全的应届前端入职指南

工欲善其事,必先利其器

(。・∀・)ノ゙嗨,小伙伴们

你现在收看的是腾讯NEXT学位出品的

互联网5大职业解析 — 程序员篇

希望能帮你了解未来的职场全貌~

以下正文

程序员真的很厉害

如果你要找到小米创始人雷军,微信创始人张小龙,以及作家王小波的一些共同点的话,除了他们都很厉害,之前他们都做过程!序!员!

而且,程序员已经成为未来丈母娘物色的首要目标,朝阳公园里经常会听到阿姨们念叨:“你说这程序员都是干啥的呢?”

那为什么程序员这么厉害呢?

首先,多金。收入是和供需有关的。会写程序的人,据说全国也只有200万(占人口0.14%),相当少。另外,印度270万程序员(最多的),也只占人口0.2%的。底子扎实的苗子每年都会收到BAT的重金诱惑,毕业月薪15K实在太常见。

其次,稳定。在所有职业当中,程序员是增长得最快的,很多传统工作已经渐渐被取代了。正是因为程序员把这些工作自动化了,这个趋势肯定会继续下去。

最后,专注。程序员是最靠能力说话的职位了。没有所谓的办公室政治和按资排辈,代码写的好就是好,写的不好就是不好,高下立判。而且技术越强,别人就越替代不了,1个优秀的程序员能解决的问题,往往10个普通程序员加起来都解决不了,是一个让个人英雄主义发挥到爆棚的职业。

那么我们回到最初的问题

程序员是干什么的?

这里统一答复:把解决问题的方法,以计算机可理解的方式告诉计算机,并让之执行,以解决问题的工程师。而计算机可以理解的方式,就是代码(code)。所以程序员的英文名称更为形象 — Coder。

写程序就像是说话一样,需要用到所谓的语言,比如C语言,Java,Php,Html,Javascript,Sql等等。

程序员的发展细分

程序员可以分为前端和后端,怎么区分呢?

最生动的例子就是网站的登陆界面,在一个网站登陆页面:

你的鼠标移入输入框、移出输入框的颜色变化,以及输入框长什么样子,这部分就是前端完成的。在你输入用户名、密码,点击登录按钮后,你的用户名和密码就会发送到服务器,后端做验校,那么你登录是否成功。

总而言之

前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。

后端则负责功能(下载、上传、评论...)的可用,区别于前端开发工程师,重点是对业务逻辑及数据的处理。

如果你前端和后端都精通,那么全栈工程师你就当之无愧了。

对于前端和后端的区别,你还可以看下图来借鉴

前端的必备技能&素质

对于以后的毕业求职,我们应该掌握什么样的能力才能胜任前端的工作需要呢?以下帮你梳理了前端必备的软实力和硬实力。

硬实力(前端方向)

1.HTML 

网站制作的基础,浏览器打开任意一个网页,查看其源码都是看到的HTML。因为HTML是网站页面最终的表现形式。网站页面所有的内容都需要通过HTML展现,而且HTML很简单,它甚至都不能算做一门编程语言,而是一个标记语言。HTML就是一些标签,页面的内容就放在一个个标签里面。

2.CSS 

学习了HTML,知道页面的内容是怎么展现的了。那么我们是不是可以把页面展现得更漂亮呢(毕竟这是一个看脸的时代~),平时我们看到的那些漂亮的网站页面,大多数都是通过CSS来美化的。CSS代码都是些样式属性,这些样式属性添加到HTML元素上面,对应的HTML元素的样式就会被CSS改变,学起来会很快,因为编写HTML和CSS可以直接在浏览器上面看到效果,非常有意思!

3.Javascript

JavaScript会比HTML和CSS难一点,主要的作用是页面交互,不过入门很简单,跟着教程练习学起来会更加顺利。如今JavaScript被炒得比较火(库和框架满天飞,用得最多的还是jQuery),不过学习好基础才是最重要的,正所谓万变不离其宗。学习建网站,当然就要勤动手,巩固好基础。

4.数据结构

程序 = 数据结构 + 算法  

数据结构的本质就在于:如何将现实世界中各种各样的数据放入到内存中,并且如何在内存中操作这些数据,如何评价这些存储方案和操作方法。

软实力

学习能力。尤其是自学能力,你啥时看到那些有名的程序高手在论坛上问“学习XX该看什么书,如何快速学习XXX,学习XXX有什么代码推荐”之类的问题,他们想学什么很快就能自己找到相关资料。这个行业发展太快,技术淘汰的速度也很快,3年不学新东西就可能落伍了。

动手能力。都是看书看资料,当别人还在纠结看什么书,还在纠结书里的字句是什么意思的时候,有些人的几百上千行代码都已经能运行了。

耐心和毅力。做程序员兴趣固然重要,写自己喜欢的代码那是相当愉快的事情,但是程序开发中无论如何还有大量乏味无趣的事情,要能坚持,咬牙把这些做完。

表达能力。能在大庭广众下,把自己的想法逻辑清晰流畅地讲出来,让人听懂。

前端的晋升路径

只要选对了方向,全世界都在发光。其实大多数前端工程师的晋升路径并不复杂,无非以下几种:

  1. 技术型: 初级工程师->中级工程师->高级工程师->架构师(技术专家)->技术总监->CTO
  2. 管理型: 工程师->项目组长->项目经理->项目总监->技术总监->CTO
  3. 交叉型: 初级工程师->中级工程师->项目经理->技术总监->CTO(此路线技术和管理交叉进行,每个阶段做的事情不固定)
  4. 转行型: 初级工程师->转行产品、设计、销售、运营等

总的来说,可以分为技术大牛路线和项目管理路线。这两条路并没有孰优孰劣,在互联网公司里这两者的地位和薪资都处在同一水平线。

走技术路

对于选择这条路的人来说,需要根据自己所在的行业以及技术范围训练自己。程序开发有很多方向,有做web开发的,有做网页游戏的,有做视频直播的,有做数据库的,有做网络安全的......我们不可能每个领域都做得很好,所以根据你自己的爱好,选择一个自己努力的方向。

等你在某个技术领域达到一定的级别,你就可以往架构方向发展。你可以独挡一面,给你一些研发人员,你可以带领大家高效地完成公司的任务。这个时候公司员工提到某些技术难点就自然而然地想到你。我相信升职肯定是没有问题的。

走管理路

选择这条路,并不意味着你程序开发能力可以不强。实际上做技术管理,首先你要在曾经的程序开发岗位上做得不错。但是你自己更看重带领团队带来的满足感。所以你希望走管理这条路。程序开发的知识你不能丢,并且最好能够保持一定的技术敏锐能力。

在保持技术敏感度的同时,你需要将侧重点转移到人上。这需要你提高自己的沟通能力。对于外企的员工来说,提高英语能力是首当其冲的。除了沟通能力,你还要制定如何提高员工技术能力的计划,帮助团队成长,团队成长了,他们才能帮助公司提高生产效率,或者拿到更多的项目。

沟通和制定计划之外,还必须培养自己的演讲能力。怎么为你的团队获得更多的公司资源,这都需要对上你有很好的口才,把你做的东西表现出来。这些都需要很多的软技能。

程序员薪资水平的变化

薪资一直都是大家最关心的问题,我们调取了最专业的互联网招聘网站 — 拉勾网15、16年北上广深四地的薪资数据。

北京地区

广州地区

上海地区

深圳地区

北京因为互联网企业集中,高校密集,给应届生开的OFFER最高,16年平均薪资为7.3K,北京依然是技术爱好者的最好去处。深圳上海次之。

如何入门程序员

不管是在线下还是线上的书店,满目都是《21天学通 X》这种速成书目,它们都承诺在很短一段时间内就让你能够学会相关技术。Matthias Felleisen 在他的著作 How to Design Programs一书中明确指出了这种「速成」的趋势并予了讽刺。

所谓的「捷径」是不存在的,智者说过,精通某个东西需要10年或10000个小时,也就是汉语中的「十年磨一剑」,所以不用着急,功不唐捐。

如果想入门程序员行业,那么第一步我们要如何走呢?

首先,我们先要走出两个困扰无数人的误区。

1.我是不是现在开始太晚了

2.我不是计算机相关专业的

首先,大牛之所以是大牛,不是因为“他们开始得早”,而是他们“学得已经够久”。如果你现在开始几年之后成了大牛,你会发现编程并不是一项需要极高天赋的神技,而是一项基本的技能。

其次,美国的程序员交流网站Stack Overflow在去年的开发者调查中想要了解,码农们是否都有大学的计算机专业学位。有26086名程序员参与了这项调查,其中有近一半受访者的答案是,没有学位。

从启蒙到入门

结束启蒙阶段后,初学者积累了一定的代码量,对编程也有了一定的了解。这时你可能想去学一门具体的技术,诸如 Web 开发, Android 开发,iOS 开发什么的,你可以去尝试做一些尽可能简单的东西,给自己一些正反馈,补充自己的推动力。

但记住别深入,这些技术有无数的细节,将来会有时间去学习;同样的,这时候也别过于深入特定的框架和语言,现在是学习计算机科学通用基础知识的时候,不要试图去抄近路直接学你现在想学的东西,这是注定会失败的。

那么入门阶段具体该做些什么呢?这时候你需要做的是反思自己曾经写过的程序,去思考程序为什么 (Why) 要这样设计?,思考怎样 (How) 写出更好的程序?试图去探寻理解编程的本质:利用计算机解决问题。

以下推荐

《Web前端开发最佳实践》,这本书是前端开发领域的经典之作,是一本扎实前端基本功,规范我们前端代码的实践性书籍。本书主要讲解了HTML、CSS、Javascript以及移动端开发的最佳实践方案,能够对缺乏良好指导的开发者产生很大的帮助。通过阅读本书我们可以掌握如何编写高可读性、高维护性、高性能的HTML、CSS以及Javascript。

《操作系统》,了解了操作系统的原理以后,才能更好的操作我们正在使用的系统。属于中级的课程吧。

《编译原理》, 如果说计算机语言是魔法咒语的话,编译原理就是告诉你,这些魔法咒语是怎么生效的。

《计算机组成原理》 哦,这个非常有趣,和操作系统有很大关系,但是这个是从硬件的层次上面(大部分来说)来解释计算机的组成

《软件工程》 估计题主暂时看不到这里的了,什么是软件工程呢?我的理解就是,把写软件规范化。形成一种规范以后好处就不言而喻了。

如果你能设法完成以上的所有任务,恭喜你,你已经真正实现了编程入门。

计算机应届毕业生要有怎样的能力?

其实对本科生的要求其实很简单,认真学过专业课就行!

所谓认真学过专业课的程度是:

  • 熟练掌握数门语言
  • 熟练掌握一个平台
  • 熟练掌握、理解算法和数据结构
  • 掌握编译原理、操作系统、网络、图形、数据库等专业课程知识
  • 认可《软件工程》

能达到这个程度的本科生,可以随便秒大部分水硕,同学们可自行对照。

可以从哪儿获取知识/信息?

免费IT学习社区

腾讯课堂

慕课网

极客学院

麦子学院

FreeCodeCamp中文

汇智网

实验楼

伯乐在线

博学谷

CSDN知识库

GitBook

看云文档

博客园

CSDN

菜鸟教程

简书程序员专题

开发者头条

稀土掘金

各大名校的公开课

腾讯课堂的公开课

网易云课堂大学计算机课程

学堂在线计算机课程

哈佛大学公开课-计算机科学_全20集

麻省理工学院公开课-计算机科学及编程导论

微信公众号/订阅号

腾讯NEXT学位

菜鸟教程: runoob

程序人生: coder_life

前端大全: FrontDev

前端早读课: FeZaoDuKe

算法爱好者: AlgorithmFans

算法与数学之美: MathAndAlgorithm

InfoQ: infoqchina

Node地下铁: Node-Subway

SegmentFault

数据库开发: DBDevs

我是架构师: Architect-msup

云计算头条: chinacloudnj

W3cplus: w3cplus_12

架构师: JiaGouX

Docker: dockerone

Web前端

W3cplus

W3cfuns

DIV.io

CNode社区

前端乱炖

极客标签

前端观察

前端里

前端教程文档

ES5: Annotated ES5

ES5中文: ES5 - HTML5 Chinese  Interest Group Wiki

Web 技术文档

MDN ES5: https://people.mozilla.org/~jorendorff/es5.1-final.html

颜海镜ES5: http://yanhaijing.com/es5/#book

阮一峰Javascript教程: http://javascript.ruanyifeng.com/

阮一峰ES6: http://es6.ruanyifeng.com

HTML当前标准:https://html.spec.whatwg.org/multipage/

Html5标准:http://w3c.github.io/html/

css标准: https://www.w3.org/Style/CSS/

W3CHelp: http://w3help.org/zh-cn/kb/

GitHub - sunyuanSoftware/itshare

大牛们有哪些要对准程序员说的?

贺嘉

腾讯面试官

1.趁着在校期间,多做完整项目,多写代码。哪怕没有老师给你项目做,你可以自己创造需求也可以编程实现这个项目。

exp:作为鹅厂面试官一员, 我们会更多基于STAR面试法,主通过你的行为看你的编程能力,除了让你做算法题外,更重要的是你实际写过的代码和项目,效率如何?有没有考虑过异常处理?实际的访问性能如何?有没有开过自己的github项目,或者是给知名项目贡献过源码,其次才是你的编码风格如何,学习成绩啥的。 

2.当你踩过的技术的坑多了,自然你就成为大牛了...

exp:之前我在知乎发了一篇小程序的教程,得到了800多个赞和知乎编辑的推荐,背后是花了3个晚上每晚干到12点,来填小程序的一些坑。 

3.学技术要学主流框架,学Node要学Express,学Java就不要忘了SSH,学Ruby首学Rails。

exp:非主流技术比如Action Script,你会也没人招这个专业的。 

蓝色

知乎编程领域优秀回答者

不要担心自己没有计算机基础,也不要羡慕高中有计算机基础的同学,其实你们都还是在一个水平线上。

很多课程不是没用,不要太抱怨,只是教学的方式没有办法引起你的兴趣。

对于一门课程,选一本经典的教材,认真研读,并且善于Google,看看国外名校这门课程的教材与讲义,并且做做他们的作业。

数学很重要,也许你只有这一次机会有大把的时间来好好学习数学。

编程语言不需要会太多,C,C++,Java,Python,汇编远远足够。增长见识可以看看函数式语言,如OCaml,Haskell。学会一门语言,就去用这门语言刷刷题,如HackerRank | Technical Recruiting,About - Project Euler。

勿好高骛远。经常去造造轮子,如标准库,OS,编译器,网络库,这个时候都是青春年少容易被诱惑的时候,但是切记不要被周围所谓华丽的界面与技术迷惑,那些其实都是浮云。


本文参考了很多大神的精彩回答

以下是直达电梯

知乎蓝色

https://www.zhihu.com/question/50312449/answer/120653369

知乎贺嘉 

https://www.zhihu.com/question/50312449/answer/129539843

知乎笑笑 

https://www.zhihu.com/question/46939006/answer/108635330

知乎WenRou 

https://www.zhihu.com/question/20194473/answer/25163794

知乎蔡如海 

https://www.zhihu.com/question/20259295/answer/125520061

知乎姚冬:

https://www.zhihu.com/question/27180582/answer/35573520

简书劳卜:

http://www.jianshu.com/p/3cf51d3dbb73

原文发布于微信公众号 - 腾讯NEXT学位(NextDegree)

原文发表时间:2018-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏挖坑填坑

【读书笔记】坚持,一种可以养成的习惯03-反抗期

连续写了两篇读此书的读书笔记了,发现都是摘抄,并没有多大的意义。于是想着今后只列出作者的观点,然后结合自身经历谈谈想法。没有经历的就按照作者的案例简单写写。

992
来自专栏程序员叨叨叨

【2】大学里刚入坑的新生码农们注意了(上)

上一篇章,咖啡君给各位介绍了程序猿必备的基本装备。这一篇,我们来聊聊大学里刚入坑的新生码农们需要注意哪些?

1123
来自专栏程序工场

10年IT编程经验的老司机,和你唠唠前端的发展

2204
来自专栏程序员互动联盟

一个程序员的奋斗历程

也许,你还为你的未来感到迷茫,也许,你还对程序员的历程感到神奇.就让我们来看看这位程序员的奋斗历程好了. 这些日子我一直在写一个实时操作系统内核,已有小成了,...

4138
来自专栏知晓程序

这款小程序,帮你捡回「失散多年」的英语

懒癌患者们,是时候改过自新好好学英语了!知晓程序(微信号 zxcx0101 )本期推荐的这款小程序,就能做你英语学习路上的好帮手。

591
来自专栏ThoughtWorks

技术雷达是如何建立的?

ThoughtWorks一年发布两次技术雷达,在每次雷达的准备期,TAB(ThoughtWorks技术顾问委员会)成员都会全力以赴的投入其中,以至连睡觉都会变成...

2877
来自专栏码神联盟

千万不要和程序员说这些

这篇文章的初衷是想要澄清跟程序员打交道的错误方式和禁忌。 1不要“一遇到问题就去找程序员” 通常,技术问题通过阅读使用说明就可以解决。比如你刚买了一个新的播放器...

3405
来自专栏大数据挖掘DT机器学习

推荐系统和搜索引擎的关系

作者:陈运文,博士,达观数据CEO;中国知名大数据技术专家,国际计算机学会(ACM)会员,中国计算机学会(CCF)高级会员,复旦大学计算机博士和杰出毕业生;在国...

3484
来自专栏星流全栈

可以免费自学编程的12个网站

3314
来自专栏大数据文摘

经济学人:Python为什么是编程语言中最skr的?

Python的出现让计算机编程语言不再是生僻的专业技能,而是常人都能学习和使用的万金油。

1980

扫码关注云+社区

领取腾讯云代金券