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