前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解析篇 | 毕业就拿15K!最全的应届前端入职指南

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

作者头像
腾讯NEXT学位
发布2018-05-14 16:20:22
1.1K0
发布2018-05-14 16:20:22
举报
文章被收录于专栏:腾讯NEXT学位腾讯NEXT学位

工欲善其事,必先利其器

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

你现在收看的是腾讯NEXT学位和拉勾网联合出品的

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

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

以下正文

程序员真的很厉害

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

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

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

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

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

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

那么我们回到最初的问题

程序员是干什么的?

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

写程序就像是说话一样,需要用到所谓的语言,比如C语言,C#语言,Java,Php,Html,Javscript,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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯NEXT学位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档