写在前面

技术之路没有最高点,没有尽头,学海无涯,我们需要的是会当凌绝顶的勇气。

研发

前端开发

前端开发很广泛,这里可以称为大前端。

H5/web

  • 包括手机端,pc端的开发,公众号也属于这个范畴,早期使用无框架的原生js+css+html,这个时候由于浏览器大战,相互间的属性很多不通用,所以这个时候的前端开发很苦的,因为同样的一段代码,不同浏览器效果可能不同,甚至相反,很多要求什么兼容到IE8之类的说法就是因为这个。
  • 后来比较火的jquery框架是封装了一下常用的方法,相当于将不同浏览器的方法做了一些包装,不用再针对不同浏览器写不同的方法了,zepto框架类似jquery的手机端版本,后来很火的bootstrap其实就是一个纯UI框架,也有种说法是bootstrap包装了jquery,同时增加了一些UI样式,因为jquery是完全不涉及css样式的。
  • 到现在的mvvm框架的vue和react等等,mvvm和mvc、mvp一样都是前端数据和UI交互的处理模型,主要区别在于数据从来源到页面的流向问题。
  • 当前的前端已经往工程化发展,即通过webpack,glup(grunt),做一些编译工作,将新版本的js(es6,es7)编译成浏览器完全兼容的es5。而且由于css不好维护,社区也有css预处理语言,主要有less,sass,stylus,各有特点,但大部分都能保持一致。

移动端开发

iOS,Android,Hybrid App,Facebook推的RN,vue作者搞的Weex,以及谷歌爸爸在推的flutter等等。

  • iOS使用object c(简称OC)或者swift(新的)开发。Android一般使用Java(也有使用c#的),Google因为和甲骨文公司的Java语言版权问题,开始推Kotlin。
  • 关于HybirdAPP可以称为混合开发,就是利用Android和iOS提供的访问网页的接口各自实现一套类似浏览器的底层代码,业务代码运行在嵌入的网页中。
  • RN和Weex以及flutter都是具有跨操作系统特性的,就是说源码可以编译成各种安装版本,只需要维护一套源码就可以了。
    如何评价 Google 的 Fuchsia、Android、iOS 跨平台应用框架 Flutter?

小程序

支付宝,微信小程序开发,其实和前端开发已经很接近了

电脑客户端开发(了解不多)

使用electron结合前端框架可以开发,使用java也可以做客户端,用c++(MFC,QT),或者什么框架都不用,直接用windows api编程,用gdi绘图,自己处理消息,还有就是.net的只(WPF,是微软推出的基于Windows 的用户界面框架,属于. NET Framework 3.0的一部分。)。

后端开发

对于后端开发有些理解应该还不是很到位,主要还是结合Java后端,看看一个微服务的架构需要什么,了解一个后端码农到一个后端分布式式系统架构师都需要哪些知识。

架构演进

当网站规模达到了一定的量级的时候,普通的MVC框架已经不能满足我们的需求,于是分布式的服务框架和流动式的架构就凸显出来了。

  • 单一应用架构:网站流量小,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM) 是关键。
  • 垂直应用架构:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC) 是关键。
  • 分布式服务架构:当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,也就是微服务架构,此时,用于提高业务复用及整合的分布式服务框架(RPC) 是关键。
  • 流动计算架构:当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA) 是关键。

语言

Java:Java的类加载机制,Jvm调优,Java集合,IO,多线程,Servlet等
c++:内存对齐、大小端、指针、作用域、STL中常用容器的用法
Shell/python/Perl等脚本语言:此类脚本语言的意义在于辅助后端开发,包括系统运维,文本处理,数据计算等工作,提升后端工作效率
SQL 语言:要精通mysql的sql语法;大数据场景主要掌握Hive SQL(Impala和Spark SQL等均在兼容Hive SQL)

工程构建

  • 开发工具(IDE): Intellij/Eclipse
  • 工程构建:后端目前一般使用maven 通过配置pom.xml文件来配置工程中的各种依赖项,配置maven多级工程结构
  • 版本管理 GIT

开发/测试框架

  • Spring框架体系: Spring MVC/Spring Boot
  • orm框架 mybatis/hibernate,持久层框,让开发者开始更方便的操作数据库,而不是直接使用使用sql语句,
  • 测试框架 Junit/TestNG:写单元测试,集合maven简称测试覆盖率

服务端中间件

服务端中间件

  • 缓存key-value存储系统(redis/memcache):适用于分布式session存储,数据缓存。
  • 消息队列:典型有rabbitmq/kafka,消息中间件一般适用于系统之间需要高度解耦的场景,解决生产端和消费端能力不一致的问题,可以通过队列保持消息排队被处理。rabbitmq主要适用数据可靠性,一致性要求比较高的场景;kafka主要适用数据吞吐量比较的场景,如日志数据的实时传输等
  • 分布式文件存储:网易nos/阿里云oss,存储需要在分布式架构下共享的文件对象:如前端静态文件,图片资源,大文件资源等
  • 服务治理/RPC框架:阿里dubbo,
  • Java Web容器:tomcat/jetty等,本质上是一个servlet容器,即可以在其上运行Java Web的应用程序
  • Nginx:nginx本质上是一个的HTTP和反向代理服务器,换句话说就是将不同的IP或者域名指向不同的机器或者端口
  • 关系型数据库:免费的mysql数据库,收费的oracle,索引,事物等

其他

  • 权限相关:权限相关涉及到:身份认证,鉴权,权限管理等,主要是RBAC(基于角色的权限控制)模型,需要理解OAuth 2.0的设计思想和运行流程。
  • 安全相关:水平权限和垂直权限漏洞,SQL注入攻击(mybatis预编译可以避免),常用的限流策略,CSRF 攻击(前端),XSS 攻击(前端)
  • 日志相关:Log4j、Logback、SLF4J之间的关系,日志的等级(error/warn/info/debug),日志的保留时间。
  • 网络相关:TCP、UDP、HTTP(S)、三次握手、四次分手、状态转换图、协议设计
  • 设计原则和设计模式:单例模式等23种设计模式
  • 分布式系统设计相关

算法工程师

一文掌握机器学习算法工程师技术栈
机器学习算法工程师技术栈

大数据工程师

如何成为一个大数据开发工程师?

测试

8年软件测试工程师感悟——写给还在迷茫中的朋友
基础篇:如何做一名专业的软件测试工程师

运维

一个好的运维工程师还是有许多点需要的,和后端有一部分是重合的,而且毫无例外的要求精通Linux。
运维工程师必须掌握的基础技能有哪些?

小结

应某猎头大佬之邀,斗胆开了这个系列,本也是码渣一枚,其中会有各种错误,也请不吝赐教,后续逐渐会给出各个方向的知识图谱。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容

  • 写在前面——给读者的话   你一定看过前两篇文章:《Photoshop的“缔造者”:Adobe的前世今生》和《擅长...
    7e1928c398e2阅读 765评论 0 0
  • Linux 是现在互联网行业一定会接触到一种重要的操作系统,而作为服务器的Linux操作系统呢又通常是不安装用户图...
    CosPotato阅读 105评论 0 0
  • 未来 这是和一群刚刚开始阅读的孩子,一起探索“通往自由阅读之路”的记录。 2018年年初,在李子老师组队之下,周末...
    丹娜Danna_Z阅读 442评论 1 0
  • 汕尾的薄饼,是当地的一种传统小吃,更是人们喜爱的一种小吃。在清明节前后这段期间,汕尾的人们总是习惯在家包咸的薄饼。...
    七月风阅读 754评论 13 15
  • 我想捡起一片落叶送你 却发现小蚂蚁正将它慢慢驮起 秋来了,用它做棉被吗 这是它自己的小秘密 是要送给它的爱人吗 毕...
    叮咚的你阅读 261评论 1 1