前端程序员缺口非常大,因为它正式成为一个岗位才几年,国内最早出现前端招聘岗位在2012年左右。随着现代互联网应用的火爆,前端难度加大,导致后台程序员不能完全搞定,所以企业们急切需要真正懂前端技术的“前端人员”。
近十年以来,IT行业发展火热,衍生了很多新职业,例如UI设计师、开发工程师、软件测试工程师等等,在众多备受瞩目的新生职业中,Web前端工程师是其中的一员。
随着互联网的迅猛发展,各种互联网项目也不断兴起,对用户体验提出了更高的要求,前端开发也由此逐渐成为了重要的研发角色。从2012年至今,“Web前端工程师”的需求持续走高,薪酬也是水涨船高,所以,有不少人立志要成为前端开发工程师。
2、就业形势
Web前端可选择的岗位有:前端开发工程师、资深前端开发工程师、网站重构工程师、前端架构师等等。
虽然近两年大数据、人工智能等很火,但Web前端开发依然是十分热门的,特别是随着谷歌、YouTube、FireFox等大型企业纷纷将视线转向HTML5,前端开发已经进入HTML5时代,所以,Web前端在今后十年仍有很大的发展空间。
据统计,我国HTML5前端工程师人员的缺口将达到10多万,因此,Web前端工程师是一个非常有“钱”途的职业,并且薪酬会根据技能的深入而有不同程度的增长,其中北京、上海、广州、深圳等地前端工程师的薪资待遇更是一路飙升。
3、说完了前景状况,接下来就是学习前端了,前端入门虽简单,但也并不是人人都能从事这个行业的,如何鉴定自己适不适合学前端呢?
1 你是否能耐得住性子?学习web前端接触得最多就是各种繁复的字母代码,需要你耐得住性子安安静静地坐下来研究技术。如果你做事经常三分钟热度,容易半途而废、或是性格急躁急于求成,编程可能不太适合你。
2 你是否有持之以恒的毅力?web前端不仅知识点多,而且前端发展得快,新的框架和思想被不断的提出,对于新手来会有不小的心理压力,过快的节奏让新手学起来比较吃力,想要学习web前端就要做好做好长期学习,更新自己知识库的准备,持之以恒的毅力才能让你在长途跋涉的工作过程中坚持下来。
3 是否具备基本的逻辑思维?选择工科专业的人一般逻辑思维能力一般要强于文科生,web前端需要用逻辑思维处理问题的能力。针对甲方用代码实现,首先要自己理解透彻,编写出来的程序才能拒绝bug。
如果以上提到问题,你都能从容攻克,那么你是适合学习web前端的。
4、到这里呢,先恭喜你进入前端行业,接下来就是如何学习前端了,前端的学习路线是什么呢?
零基础学习路线:
1、HTML、CSS基础、JavaScript语法基础。学完基础后,可以仿照电商网站(例如京东、小米)做首页的布局。
2、JavaScript语法进阶。包括:作用域和闭包、this和对象原型等。相信我,JS语法,永远是面试中最重要的部分。
3、jQuery、Ajax等。jQuery没有过时,它仍然是前端基础的一部分。
4、ES6语法。这部分属于JS新增的语法,面试必问。其中,关于 promise、async 等内容要尤其关注。
5、HTML5和CSS3。要熟悉其中的新特性。
6、移动Web开发、Bootstrap等。要注意移动开发中的适配和兼容性问题。
7、前端框架:Vuejs和React。这两个框架至少要会一个。入门时,建议先学Vuejs,上手相对容易。但无论如何,同时掌握 Vue 和 React 才是合格的前端同学。
8、Nodejs。属于加分项,如果时间不够,可以先不学,但至少要知道 node 环境的配置。
9、自动化工具:构建工具 Webpack、构建工具 gulp、CSS 预处理器 Sass 等。注意,Sass 比 Less 用得多,gulp 比 grunt 用得多。
10、前端综合:>这是web前端的所有课程,要是感兴趣的话可以了解一下:
计算机基础
Office办公自动化
Dreamweaver网页设计
SQL server2008
JavaScript
HTML5+CSS3
动态网页设计PHP+MYSQL
大一学习的c++,工作之后也一直用的c++。
1 涵盖c++入门到精通的图书列表
《The C programming language》必读
《C++ Primer》,号称是一本可以让你从C或JAVA程序员转为一个真正的C++程序员的入门参考书,必读。
《The C++ programming language》,C++之父,人称B教主著作,在看过C++ primer后,应该可以跳章选读。
《Think in c++》,网上说此书的中文版翻译质量奇差,推荐看影印版,选读。
《Effective c++》,类似 Effective java,讲的是最佳实践,程序员必读。
《More effective c++》,上书的补充。
《The C++ standard library》,会写C,不会用标准库怎么行。这就跟java程序员不会用javautil包一样,必读。
《Effective STL》,STL库的最佳实践。Effective C++作者又一力作,必读。
《The annotated STL source》,STL源码分析,这本书应该算是深入/精通类了,选读。
《Generic programming and STL》,号称C++编程里,就是跟模板,泛型打交道,那么精通泛型是势在必行。
《C++ Template》,C++模板编程,代码复用的经验之道,必读。
《Exceptional C++》,跟Effective C++类似,属于最佳实践和难题解析,书中列出了许多应用场景和实例代码供读者揣摩,选读。
《More Exceptional C++》,上书的补充。
《Exceptional C++ Style》,上上书的补充
《Inside The C++ Object Model》,有了上面这些书做铺垫,那么终于可以读此神书了。它会带你游览C++对象模型的底层实现机制。读完此书,任何C++代码看起来如同行云流水,必读。
2 优秀的C/C++开源项目(阅读代码)
OS:Linux kernel LVS、Linux应用程序
DB:Mysql、PostgreSQL
Complier:VM、GCC
Framework:OpenSip、SipProxy、
Net:ACE(Java Mina、Netty)、TCP/IP、>
Cache:Memcached、Redis、
Library:STL(java util package)、Boost、Qt(UI)、
balance:Apache、Nginx
GSL
地址:>
Boost文档
地址:>
wxWidgets官网
地址:>
gtkmm
地址:>
CopperSpice
地址:>
Qt
地址:>
地址:>
Plot utils
地址:>
Asio
地址:>
POCO
地址:>
abseil
地址:>
C++开源库汇总列表
地址:>
除了这些开源项目,也可以找一些免费的公开课,那这里也推荐一个ACM金牌大佬讲授的免费C++课程,可以去体验一下:
学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样
已失效
3C++语法讲解
语言基础
详细介绍变量、表达式、语句、指针、数组、流程控制、函数、文件组织等。
抽象机制 - 面向对象编程
深入讲解C++的抽象机制,封装(类)、继承、多态; *** 作符重载、函数对象、异常处理等。
模板 - 泛型编程
详细介绍C++的模板机制,类模板、函数模板、模板特化等方面的内容。
4深入c++面向对象
41、从C到C++
引用和指针:为什么引用很重要
const关键字:为什么const很重要
名字空间 (namespace)
42、深入C++对象
关于C++对象
内置类型的对象,如int、double对象,自定义类型的对象
对象类型的定义
关键字class和struct
类成员:成员函数和数据成员
静态数据成员
成员的访问控制
对象的size
关于this指针
onst成员函数、const究竟修饰什么
mutable数据成员
4种特殊成员函数:constructor、destructor、copy constructor、operator=
对象的构造、初始化列表
对象的析构
对象的复制
什么情况下有必要显式定义4种特殊函数
C++对象生命周
43、 *** 作符重载
关于C++中 *** 作符重载机制
重要 *** 作符重载
算术运算:+, -, , /, %, ++, --,
关系运算:>, <, ==, !=
下标存取:[ ]
函数调用:(),函数对象
类型转换、单参数构造函数与隐式转换、阻止隐式转换 -- explicit关键字
友元与成员
44、面向对象基础 -- 继承
基类与派生类
再谈对象的构造与析构
虚函数、纯虚函数
派生类的内存布局、虚函数表
多态、多态类型、如何体现多态
虚析构、为什么虚析构很重要
45、关于继承更多的话题
多继承
虚继承与虚基类
对基类的访问、public / protected / private继承
Down cast:static_cast<>和dynamic_cast<>
运行期类型识别 (RTTI)
46、C++与面向对象设计
C++语言机制提供了完整的OOP支持
超越继承
OOP若干法则和设计模式
5C++泛型编程与STL
51、C++ 模板机制
52、STL 概要
53、STL容器
54、STL迭代
55、STL算法
56、预与定义STL数对象
57、STL适配器
6 C++进阶
《C++ Primer》
最新版本:第三版(第四版国外已上架, 国内一些网上书店也在预订中)
适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是 好事。
《The C++ Programming Language》/《C++程序设计语言》
最新版本:第三版特别版
简称 TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来)
《Essential C++》
《Accelerated C++》
这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。
以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。
《Effective C++》
最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)
简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》
个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系 列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。
我 的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不 会过时,人们将广为传诵它制定的101条戒律。
还不知道他的简称,也许“101”会成为一个候选者?
提到《Effective C++》,那么另外三本书一一浮出水面:
《More Effective C++》
《Exceptional C++》
《More Exceptional C++》。
新书《Exceptional C++ Style》也是值得一看的好书。
上 述几本书,一本也不应该放过。
个人建议上述书籍按顺序阅读。并且,在将来反复阅读这几本书。
《Thinking in C++》/《C++编程思想》
这本书及其中文版传言好坏都有,没有认真看过,不做评价,如果确有兴趣,不妨尝试 一下该书。
以下几本书基本上涉及的都是语言本身,大体上可以按照以下的顺序阅读。
《C++必知必会》
如果早一年,这本书将是重量级的,然而它被101和《Exceptional C++ Style》盖过一头。
《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序设计陷阱》
这又是一本我未曾读过,而且广受好评的书。
《STL 源码剖析》
这本书我刚到手,就被人"借"走,以至于到现在也没有看过。看过这本书的朋友,可以给一个合适的评价。
7 C++进阶之数据结构基础
这是所有编程语言中最应该学习的部分,程序组成的基础之一。
顺序存储、链式存储、循环链表;
双向链表、栈(顺序和链式)、队列(顺序和链式);
栈的应用、树基本概念及遍历、二叉树;
排序算法、并归算法、选择、插入、快速、希尔。
以上这些内容你知道吗
8 C++进阶之UI界面开发
掌握QT类库构架,图形界面开发模型;
掌握QT开发技巧,消息机制,图形处理;
掌握QT网络编程,UDP,TCP使用方式;
掌握QT文件处理方式,序列化;
掌握QT在windows,linux,ios,android不同平台下的移植技术。
9 C++进阶之Unix/Linux网络服务器
掌握Unix/Linux平台开发方式;
熟练使用系统调用;
熟练Unix/Linux内存管理,进程,线程调度;
熟悉网络服务器开发方式,熟练编写TCP,UCP网络服务程序;
掌握同步/异步IO模型在网络编程中的使用方式。
10C++进阶之数据库开发
掌握SQL语言的实用技巧。Oracle,MySQL数据库的使用方式。
如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能力,而且你能独立开发一些比较复杂的功能模块,那么很荣幸地告诉你,你已经达到中级水平,薪资过万对你来说简直是小菜一碟。
11C++标准参考
C++ reference
地址:>
C++ Coding Standard
地址:>
Standard C++
地址:>
State of C++ Evolution
地址:>
The C++ Resources Network
地址:>
Draft C++ Standard: Contents
地址:>
需要资料私聊我
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)