关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 程序人生 »全栈工程师的思考

    全栈工程师的思考

    2015-05-23 00:00:00 出处:ITJS
    分享

    在我把博客的标语修改了以后,当然只是一个某方面的测试。生活是一个有趣的循环,当我们试着往围城外走的时候,我们又被拉到围城里。

    什么是全栈工程师

    在现在这一个时代来说,不会有人掌握所有的编程语言、技能,以后应该会有,但是掌握这些全部技术的不是人类了。所以,其实我们需要的是懂得多种技术的,并能借些独立完成产品的人。

    当我们需要做一个移动 CMS 的时候,我们就会在不同的技术栈之前选择,或是 RequireJS + Backbone + jQuery + Mustache,又或者是 ReactJS + Backbone,当然也有可能是 AngularJS 等等。我们所需要做的是,从中选出一个最好的方案,然后实施之。

    这也就意味着,我们需要有更好的知识面,也会导致对于某些技术的不够深入。两者就是一个很好的对立面,在这两之间很好地平衡可能就意味着平庸。有时也并非如此,但是多数时间这这样的。要么成为专家,要么成为全栈,要么就平衡他们。

    全栈工程师 VS 专家

    > 人的大脑如同一间空空的阁楼,要有选择地把一些家具装进去。

    柯南道尔说的话还是很有道理的。由于这个阁楼的大小是有限的,假定他是一个书架。那么全栈工程师的书架就会充满各种各样的技术栈从 MySQL、SQLite、MongoDB、Redis 等等各种各样的书籍;而专家的书籍则是 MySQL 优化、MySQL 重构、MySQL 权威指南、DBMS 等等的专业书籍合集。

    > 要是他们都是一本书,那么全栈工程师的书是一个索引。专家的书则更多的是内容本身。

    所以,每个人都会去选择不同的存储方式、不同的数据库。

    对于我们大脑这个数据库来时,平时我们存储的是 Key-Value (ps: 我们只有 key,value 是 Google 和书本),对于专家来说,存储的是 Documents。在同样的容量大小的情况下,我们可以了解到更多的知识。如下图所示,左边的关系数据模型即为全栈工程师,右边则为专家。

    Key

    曾经迷惑了很久: 为什么对于一些知识点,我需要去 Google,而别人可以独立地完成的时候。我就意识到我更适合于互联网企业,据说在一些电信设备制造商里是没网的办公环境。可是在多数的时候,这并非一种劣势。

    我们会更快地方式来解决问题,因为我们有一些这方面的经验。不足则是,有时候我们没有办法深入问题去分析。

    如何成为全栈工程师

    这是一个有趣的问题,在知乎也有这样的讨论。而我觉得,最重要的是好奇与创造。

    创造

    记得在上大学之前已经有一个明确的目标,尽可能地做到能做到的程序——想到的都应该能做到。于是,顺着这个目标构建了一个知识体系,又或者说是索引。

    当我们心里有一个想法的时候,我就开始从一个 key 中进行头脑风暴,如之前做的地图搜索。大家要做的功能便是: 持久化 GEO 信息,在地图上显示坐标。

    1. 首先会在头脑中列出所有我用过的框架,选择后台框架:

    Django (Python)、Flask (Python)、Ruby On Rails (Ruby)、Sinatra (Ruby)、NodeJS、Laravel (PHP)、Spring (Java)

    排除过后就只剩下 Django、Flask、NodeJS,接着因为 Django 内置 Geo 支持,果断选择了 Django。

    2. 接着,对于持久化方案的选择:

    由于 Django 内置 ORM,所以这一步可以轻轻松松地过去。不过,我选的是 SQLite3,本地调试方便,还可以将数据复制到服务器上。

    3. 然后,对于空间搜索的支持:

    就这么有了两个搜索引擎和一个数据库: ElasticSearch、Solr 以及 MongoDB。因为 Django 对于 MongoDB 支持的原因,想到使用搜索引擎会更容易搜索到结果。接着找到了 Haystack,看到 Solr 需要手动更新索引就选择了 ElastiSearch。

    4. 到了,移动开发:

    要跨平台支持自然是 Cordova,用 Hybird 还是 Ionic 好用。

    5. 实战

    这一步自然也不是问题,向来是以实战出真知的。

    在不断创造地过程中会学到更多的知识,有更多的方案可以选择。下一次,将会想着用不同的技术栈再实现一遍。有了之前的体系,再横向深入也是一个很好的突破点。如,我们用 Python 构建一个原型,然后我们用 Java 来实现。

    好奇

    与专家不同的是,全栈工程师更容易被新的技术吸引。至于,是好是坏我想大家都懂的。

    当 ReactJS 出来的时候,就会试着去玩。

    当 Ionic 还在测试版的时候,就会做一个个 Demo。

    而有意思的是,同我们在《技术的本质》中看到的一样,新的技术都是基于旧的技术产生的。没有一种技术可以无中生有。所以要学习一种新的技术必然不难,只是有时候会难以深入。

    全栈程序员进阶

    在思考过一些日子后,我明白了更多的东西。也似乎找到了两条更有意思的成长路线:

    构架设计

    在我打算试着写一个名为 Echoes 的 CMS 的时候,找到了书架上的几本书:

    《架构之美》 《面向模式的软件架构》 《领域驱动设计》 《实现领域驱动设计》 《软件框架设计的艺术》

    发现书中提及到的一些模式似乎已经很常见了,要理解起来已经变得很简单,看上去那些更像是一个又一个的项目的缩影。

    更主要的点还有:

    > 架构师并不是最好的程序员,但是知识面一定要广。

    只有有着更多的知识才能决定好方案,要是我们只深入一部分知识,那么我们无法总做出正确地决定。所以,也必须也是一个好的成长方向。

    成为专家

    我一直不认同木桶理论的一点是,我们会被最低的木板限制。但是有一天我们会被最高的那一块限制到,毕竟我们都会意识到我们的短片,我们会尽量把所有的木板提到同样的高度,以保证水的容量。但是,要是最高的那块木板不是那么高呢 那么,为什么不在一开始的时候,让它尽可能的高

    于是,我想说的是我们需要在某一部分成为专家。当我们在某一领域成为专家,要在另外一领域成为专家,也是很容易的一件事。

    当我向 Senior 程序员咨询一些成长意见的时候(ps: 毕业不到一年),那么就是往专家发展。对于一个 Java Web 程序员来说,成长意见可能就是深入 Spring、探索 Tomcat 底层、深入 JVM。问题是,他们都写得复杂,但是我们又不能放弃这样的成长机会。我们还能做的事,从一个更简单的语言中学会这些原理,再回头去补充。

    对应于 Spring,会有 Flask、Tornado;对应于 Tomcat,我们是不是可以深入 Gunicorn;对应于 JVM 是不是也会有 Python VM,不过还是 JVM 的书比较多。等我们在一个更简单的层级上了解到这些,那么对于一个臃肿的语言来说不会是难题。

    总结

    我们总在成长,至于成长的方向是我们能决定的~~。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    苹果将发布第三财季财报,很可能会超预期

    25 年第三季度 NAND Flash 合约价格预计将上涨 5-10%

    亚马逊网络服务 (AWS) 已裁员数百人

    邦彦邦彦云PC”新一代云上真机解决方案重磅亮相

    苹果Mac book产品线未来两年大升级:M5、M6系列芯片来袭

    净网—2025|代抢?录入?小心 “票圈陷阱”!

    脱下皮衣,英伟达 CEO 黄仁勋穿唐装亮相中国国际供应链促进博览会

    ATTO360 Storage 软件通过单一智能平台重新定义存储管理

    DigitalOcean 推出 DigitalOcean Gradient AI 平台

    网传华为盘古大模型疑似抄袭通义千问,盘古团队否认

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术分享

    SQL汉字转换为拼音的函数

    windows 7系统无法运行Photoshop CS3的解决方法

    巧用MySQL加密函数对Web网站敏感数据进行保护

    MySQL基础知识简介

    Windows7和WinXP下如何实现不输密码自动登录系统的设置方法介绍

    windows 7系统ip地址冲突怎么办?windows 7系统IP地址冲突问题的

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。