全栈学徒(软件工程师)

【分布式与虚拟化技术入门】分布式架构、分布式计算、分布式数据库、分布式存储、虚拟化技术课程- http://geek.csdn.net/news/detail/209709

2017 Web开发者学习路线图(前端和后端)- https://zhuanlan.zhihu.com/p/25936930

各种语言/平台 de编程之路- http://blog.csdn.net/banketree/article/details/39995209

关于移动端架构和全栈开发(全栈)- http://blog.csdn.net/offbye

> 1.全栈学徒至少要掌握以下几种技能:(纵向)

   Web 前端开发,至少掌握一种前端框架;
   Server 后端开发,至少掌握一种后端框架;
   Server 运维,掌握 Linux Server 的搭建与维护;
   客户端开发,iOS 和 Android 至少掌握一种;

   数据库,掌握 SQL 和 NoSQL 数据库等。

   2.横向:如Android,应用层-->框架层-->库和运行时-->核心层

  Linux Kernel、Android Runtime、Libraries、Application Framework、Applications

> 一种技术轨迹:
先聊聊我的技术轨迹吧,从初中开始使用 Linux,以 Ubuntu 作为自己主力系统,而后切换到 ArchLinux,再回到 Ubuntu,一直使用到大一,这几年的 Linux 使用经验奠定了 Server 架构的基础,大一开始尝试自己做一款产品。
  那时候就琢磨,我应该先写一个网页版,然后再写个客户端。
  所以从后端开始,我使用 Django 作为起步,不过很快我转移到了 Rails 阵营,Rails 的敏捷开发极大的降低了开发成本,而其的约定习惯,也使得菜鸟能够平安飞过很多危险区域。
  开始写网页前端的时候,并不知道有前端框架这个东西,直到用 Rails 写完了后才发现原来有东西叫 Ember.js,于是开始用 Ember.js 来重写,一开始的理解还是如何用 Rails 来渲染前端,后来发现其实在引入了前端框架后 Rails 的角色已经变成了个 API Server 了。
  于是由此开始从新的角度去考虑如何设计 Rails 的 API,阅读了大量的 API 设计的资料,怎么样设计前端才好用,怎么样降低查询时间,服务器缓存,redis,安全等等。
  Rails 的自动化帮了不少忙,很多自己并不知道的地方它已经帮忙做好,而当你想了解的时候,又会发现其实现是如此精妙。更别说 Rails 对新技术的接受程度,使得你总是有新东西可以玩,CoffeeScript 和 Sass 最早就是 Rails 吸收作为自己框架的默认前端技术。。
  随后由 Ember.js 又切换到 Angular.js,用 Angular 重写一遍,期间又接触了前端工具 Grunt (前端的变化一日千里,现在用的东西已经不是这个了)
  最后到了 iOS 客户端,此时 iOS 的界面实现又与网页的 HTML 和 CSS 有着很多不同,也因此又花费了不少时间去理解 iOS 的 UI 概念,把思维从网页转换成 iOS 的界面开发思想。
  数据库也在这个期间从 MySQL 换成了 MongoDB,因为那几年的潮流也正好是这个转变。

    项目上线后,随着运维的复杂程度逐渐提升,也因此接触了 chef 和 Ansible 这种自动化运维方式,再往后 NewRelic 这类的监控服务也上了,为了一个稳定的开发环境,继而使用了 Vagrant。
  而这一切都只发生在一年的时间里,不过很有趣的事情是,很多时候我写着 iOS 突然想明白了 HTML 和 CSS 的实现原理,做着 Rails 突然想出了更好的 iOS 架构方式,不同的技术之间触类旁通的感觉在每天都发生着。
  在后来的时间里,这段经历使得我和不同的技术人沟通都非常轻松,因为去年“秒视”做滤镜的原因,我开始研究起 openGL,在重拾了Blender 之后,很多以前似懂非懂的地方,实现突然变的像 Hello World 一样简单,因此也干脆玩起 Unity 来,在这一切的积累之后,Unity 的学习变的非常轻松,成为了我晚上的休闲项目,或许不久之后,你会看到一款我做的游戏(可能会是 RPG)。

  我并不觉得全栈会使得你全面平庸,每种技术在做的时候都可以为其他的技术提供思路,而在你了解各种技术的前提下,深入其中的某个技术,时常能够带来对其他技术的反哺。相反,了解的技术如果非常狭隘,很可能才是限制自己潜能的原因。

--------------------------

我眼中的全栈工程师- http://www.offbye.com/2016/11/19/%E6%88%91%E7%90%86%E8%A7%A3%E7%9A%84%E5%85%A8%E6%A0%88%E5%B7%A5%E7%A8%8B%E5%B8%88%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84/
  全栈工程师,架构师,Android和HTML5专家。熟悉Java、Android、JavaScript、Python、Swift等技术。2014年开始关注Swift iOS开发,最近在业余研究无人机和地面站。
  全栈工程师是下能玩硬件和驱动,上能写网页和js,中间能玩转服务器和数据库,没事还能自己做个安卓或iOS App, 对IT系统有着全面深刻的理解,熟悉所负责项目的整体技术栈。全栈工程师的特质应该有以下几个:强大的解决问题能力;广博的知识面,快速学习能力,不给自己设限,主动学习新技术;熟悉多种编程语言,熟悉整个系统从上到下的技术实现。
  在软件开发过程中所遇到的问题,真正的技术问题只占一部分,很多问题可能是工程或管理方面的问题。全栈工程师善于用全领域的知识积累从更本质的层面上找到解决问题的办法,而不是局限于某一种技术上寻求解决方案。例如前段时间遇到的HTML5 Hybrid App在某些安卓手机上兼容问题,最终的解决方案就是修改js代码,而是直接把Cordova的webview内核换成了腾讯X5内核,这个如果没有全栈技术能力是不可能做到的。
  做Java Web应用的全栈工程师,应该熟悉Java,Javascipt,CSS,HTML,SQL,XML等常用语言,并且熟悉常用的前后端技术框架,例如Spring,JPA,Mybatis,Jquery,AngularJs,React等。用PHP,Python,Ruby,微软.net等技术栈做Web应用的应该也类似。
做移动互联网应用的全栈工程师,应该熟悉Android,iOS开发或微信开发,以及服务器端接口的开发,这样才能做到沟通无障碍。

---------------------------

程序员获取新编程技能的5个技巧?- http://www.codeceo.com/article/5-tips-get-new-programming.html
怎么学会所有这些框架和语言的,用你想学的东西去创建一个合适又值得的项目就行了.还有要向合适的人征求意见。聪明的人通常都很乐于教导和帮助别人。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值