彻底转到互联网行业来以后,就一直在读书,内容都是计算机领域的,除了读书还看视频,是关于计算机基础理论课的,应用方面的就不看视频了,太贫太慢,不如文档来得快。看书也尽可能挑进阶一点的,好比书名包含“性能”、“进阶”、“设计模式”、“算法”,其实这些对一个互联网领域的熟练工来讲,应该也是标配了。看这些书的目的就是为了让本身更专业,可以解决更多的问题,写代码写得更明白。前端
换到新公司这几个月以来,除了以为本身要恶补知识以外,有两点让本身很是庆幸,一是原来在大公司的经历让本身已经足够职业了,清楚地知道工做对于本身的意义,原来也是工程师,我发如今软件开发领域,工程化的思惟也很重要。二是原来的基础打的还能够,HTML、CSS、JavaScript、服务器端开发、关系型数据库等,虽然原来是写asp.net、Rails,可是如今写Node.js,以往的经验也能够复用,举个简单的例子:对http的理解。node
回到正题,努力成长为一只全栈工程师。根据个人理解,全栈工程师应该可以解决从后端到用户端的一切问题,其中包括且不只限于开发、产品定位、用户体验,至于商务问题需不须要全栈工程师考虑,那这个须要看实际状况,若是你是本身出来创业,固然须要考虑了(你看扎克伯格)。webpack
针对这个话题写一篇文章,是由于最近看了一本叫作《全栈工程师的自我修养》的书,书里主要讲了全栈工程师须要具有的能力以及职业发展。这本书是一个腾讯的前端工程师写的,5年的工做经验略显单薄,基本上当鸡汤来读,可是也捞到了很多干货。读完这本书以后并无很是强的feel,而后就开始啃一本叫作《构建高性能web站点》的书,才开始体会到全栈工程师是多么重要。毕竟一个互联网产品,前端后端通盘考虑,才能实现最大程度的优化。前端领域的响应式web设计,除了须要具有编程能力还须要有设计能力。写angular程序,除了须要会前端以外,若是能和后端的Restful API一块儿通盘考虑,想必可以更好的协同,若是再将静态资源放在一个单独的CDN上,体验或许能更好一些。c++
以上是全栈开发的好处,可是全栈开发可能会面临一些问题,那就是贪多嚼不烂,并且我本人也不但愿本身成为一个基础薄弱的野生程序员。因此暂时将本身的活动范围稍微限制一下,那就是B/S产品的全栈工程师,克制本身先不去碰触Native APP开发领域。再收拢一点,就是JavaScript B/S产品全栈工程师,也就是后端暂时全用node写,可是不排斥用ngnix发布静态资源。下面给本身列一个知识范围,供本身查阅:程序员
0、基础理论:操做系统、组成原理、计算机网络、数据结构和算法、软件设计模式、敏捷软件开发(TDD)web
一、back-end:UbuntuServer、ngnix(静态资源)、node.js(暴露API)、服务器端性能优化;算法
[按需学习node c++ addon或一门静态后端编程语言]数据库
二、DB:MySQL、Mongodb、Redis、ElasticSearch、一种主流MQ、FireBase、一种大数据分析的工具(hadoop或storm或spark)编程
[DB方面的东西看需求,看时间。越靠前优先级越高。]后端
三、front-end:HTML、CSS、js(dom)、jQuery、BootStrap、AngularJS1.*、hybrid(ionic)、前端工程化的工具(sass、glup、webpack)、移动端适配
[AngularJS2.0、React系列体验过几回,并不喜欢,暂时不列入]
就到这里,留着给本身看。