当前位置: 首页 > 实用文档 > 实习报告 > 实习感悟:我心目中的全栈工程师

实习感悟:我心目中的全栈工程师

2015-10-24 20:18:12 编辑:lin13459411179 来源:http://www.chinazhaokao.com 成考报名 浏览:

导读: 已经有快三个月的时间没有更新十一城了,不过倒是顺利地度过了今年最忙碌的几个月。在这个暑假里,我完成一个十周的实习工作,明年起应该就正式从学校踏入职场了。这次的...

实习感悟:我心目中的全栈工程师

  已经有快三个月的时间没有更新十一城了,不过倒是顺利地度过了今年最忙碌的几个月。在这个暑假里,我完成一个十周的实习工作,明年起应该就正式从学校踏入职场了。这次的实习让我收获很多,不仅仅是在技术方面,更在于商业领域的全新视角。在我的实习总结报告上,我大声告诉自己和所有同事,我要继续努力的三个方面:

  成为一名全栈工程师(be a full-stack engineer);

  开放心智,敢于挑战 (be open-minded);

  学会问正确的问题 (ask the right questions).

  从全栈工程师谈起。这个新名词在2012年就出现了(可追溯到的最早期文章《What is a Full Stack developer》),一般指的是掌握了从前端开发到后端开发所需的多种技能,并能利用多种技能独立完成产品的工程师。

  To me, a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology.

  这个词语初看上去是违反最基本的经济学原理的,即合理的劳动分工可以提高生产效率。这一点在大公司里面尤为明显,前端工程师和后端工程师有着清晰的角色区别。不过,对于小公司或者创业公司而言,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。除此之外,全栈工程师的优势还体现在:

  全局性思维

  现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。

  Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。

  所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。

  沟通成本

  项目越大,沟通成本越高,做过项目管理的都知道,项目中的人力是1+1<2的,人越多效率越低。因为沟通是需要成本的,不同技术的人各说各话,前端和后端是一定会掐架的。每个人都会为自己的利益而战,毫不为已的人是不存在的。

  而全栈工程师的成本几乎为零,因为各种技术都懂,胸有成竹,自己就全做了。即使是在团队协作中,与不同技术人员的沟通也会容易得多,让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。

  全栈工程师-大公司的标配

  我并不认为全栈工程师仅仅适用于小公司或者创业公司,更应该是未来出色科技大公司的标配。一直以来,工程师往往被大众贴上技术狂的标签,而忽略了他们在商业决策上面的能力。我心目中的全栈工程师,除了技术栈的精通,还需要对商业战略了如指掌。因为只有被运用在正确的商业模式,技术才能真正做强做大做精。

  在实习刚开始的时候,就碰到一个很大的项目。我需要从头开始,产品设计,交互设计,页面设计,到后端数据库,服务器,测试集成,然后收集用户反馈进行产品迭代,几乎把应该走的软件开发流程都过了一遍。这过程中接触到不少新的编程语言、技术,着实让我技术栈丰富了不少,同时也学习到了很多平时感受的不到的开发方式。但最令我欣喜的是,这个项目还牵涉到公司层面很长远的决策,因此借助这个机会,也对公司商业上面的发展有了更加清楚的认识。这也间接帮助我在另外两个项目中取得更好的表现,获得更多人的认可。对于每个工程师而言,每一个经过自己手的产品就像自己的孩子,非常希望它能茁壮成长,得到更多人的关注和喜欢。但对孩子的成长,我们不能仅仅是溺爱,给他最好的条件(工程上而言,就是用最潮最尖端的技术来做产品)。而应该从家长本身出发,去了解社会的变化和需求,了解商业世界的法则,这样培养出来的“孩子”才能更接地气。

  如何成为一名合格的全栈工程师呢?

  技术层面

  服务器,网络以及宿主环境

  需要理解哪些模块可能失效以及为什么,而不能理所当然地认为,只要不断增加资源就能解决所有问题。

  知道如何运用操作系统、云存储、网络资源,并能理解数据冗余以及可用性是必需的。

  了解应用的规模是如何对硬件造成限制的。

  还有多线程和竞态条件,这些概念在开发机上往往不会遇到,但是他们在现实的部署环境中却无处不在。

  全栈工程师还必须要能够与DevOps很好地协作。他们所设计的系统应该提供有用的错误消息和日 志能力,这样DevOps就能够及时获得这些信息,并采取有价值的行动。

  数据建模

  如果数据模型存在缺陷,那么就常常需要在业务逻辑和更高的层面上使用丑陋的代码来弥补那些数据模型没办法覆盖的死角。

  知道如何建立合理的范式关系模型,具备完善的外键、索引、视图、查询表等等。

  还要熟悉非关系型数据的存储,知道非关系型数据库在哪些方面超越关系型数据库。

  业务逻辑

  这是系统应用价值的关键所在。

  掌握SOLID设计能力(单一职责,开放且封闭,Liskov替代性,接口分离,依赖注入)。

  熟悉一些常用的框架。

  API/Action/MVC

  这些关乎外部世界如何与业务逻辑及数据模型交互。

  会使用到大量的框架。

  有能力写出清晰、一致、使用简单的接口。

  用户界面

  全栈工程师需要:a)懂得如何构建易读的布局;b)能意识到艺术家和图形设计师的作用。总之,实现一套好的视觉设计方案尤为关键。

  熟练掌握HTML5/CSS。

  从目前的趋势来看,JavaScript将会是明日之星,最近这一领域硕果累累(NodeJs, backbone, knockout, Angular(自己的加的, 原文没有))。因此,掌握JavaScript必不可少。

  用户体验

  全栈工程师应该意识到:用户仅仅是希望一切运转良好。

  一个好的系统是不会让用户得腕管综合征或产生眼疲劳的。全栈工程师能审视全局,可以将一个需要8次点击+3个步骤的过程,简化为仅需要一次点击。

  知道如何向用户提示错误信息。如果出现故障,真诚道歉。有时一些无意的错误信息,会让用户感到莫名奇妙。

  理解用户和市场需求

  这层关系到系统架构,但也绝不是一个不能碰的角色。

  全栈工程师要领悟客户使用软件过程中会需要些什么以及整个市场需要些什么。

  商业层面

  多问多学多参与。在商业社会里,一个好的科技公司,拥有一个好的工程师文化并不意味着一定能做出好的产品。而擅长做产品的人,在技术领域却不一定能独当一面。所以工程师一定要积极参与到商业决策中来,带着一个创业者和主人翁的心态参与到公司战略的设计中去。

  思维方式不受限。工程师一般喜欢在自己的一亩三分里面不断钻研,而忽略了市场的大方向。作为一名全栈工程师的要求,要明白以技术是服务于商业,这样就能更快地拥抱时代潮流的变化,用科技的力量真正来提高每个人的生活质素。

  掌握表达和说服的技巧。工程师们常常为了一门语言而争得面红耳赤,但往往在商业场合,却无法用比较容易理解的语言让平常人听懂他们到底在干什么。所以工程师要经常地写作和演讲,这是职业发展道路上最宝贵的锻炼和成长机会。


实习感悟:我心目中的全栈工程师 相关热词搜索:心目 工程师

1、欢迎来到招生考试网http: www chinazhaokao com ,本文为大家带来电子工程师实习心得体会报告范文,希望能帮助到你。电子工程师实习心得体 电子工程师实习心得体会报告(2015-07-07)

最新推荐成考报名

更多
1、“实习感悟:我心目中的全栈工程师 ”由中国招生考试网网友提供,版权所有,转载请注明出处。
2、欢迎参与中国招生考试网投稿,获积分奖励,兑换精美礼品。
3、"实习感悟:我心目中的全栈工程师 " 地址:http://www.chinazhaokao.com/wendang/shixibaogao/53777.html,复制分享给你身边的朋友!
4、文章来源互联网,如有侵权,请及时联系我们,我们将在24小时内处理!