再次打开自己的博客,发现上一次跟新已经是2014年的事。感慨时光飞逝,自己的年龄越来越大。当然伴随着时间的流逝,自己的经验也越来越多。
回顾这些年,我决定将自己摸过的石头,踩过的坑,走过的路总结成文字。将点点滴滴分享给大家。为感兴趣的朋友分享点有限的经验。也为自己之前的时光做一个总结。
年轻时的回忆
回忆起过去,不得不感慨那是一段值得怀念的时光。
94年的时候接触到今生第一个编程语言“LOGO语言”,这是一个“小海龟”通过命令行画图的简单程序,当时父亲和我一起在学习机上学习这个语言。但是这个简单的程序引起了我对编程的兴趣,对我的现在算是有着重大的影响。
96年我接触到了第一个DOS系统,那会还是因为报了学校的兴趣班。还记得当时主要学习DOS系统的命令,DOS版的WPS,当然闲暇时候还有DOS版本的超级玛丽可以消遣一下。偶尔可以在教师机上领略一下图形界面“windows 95”。但是那是真正的让我接触到了到了计算机这种神奇的东西,对我又是一次深远的影响哈哈。。。。。。
99年之后的几年,我基本每周都会有2小时在网吧度过。也是这些年我慢慢接触到了网络。“windows”系统接触到了98,2000,windows me系列。当然还有当时风靡的“红警95,98,2000”,“半条命”,“传奇”,“奇迹”等。(每周父亲会给我10块大洋,让我去网吧上网,这在当时绝对算的上是个好爸爸^v^。想想现在,似乎我也应该为我的娃做点什么^v^)渐渐的我开始懵懂,似乎我喜欢和电脑打交道。
01年中美黑客大战,由于对计算机的关注,这个事件虽然没对我产生什么影响,但却让我记忆犹新。
03年,这对我是一个历史的开始。我遇到了一个对了之后的选择产生了重大影响的人。高中转学后,本来想参加硬件机器人灭火比赛,但由于转学之前没有硬件编程基础,所以带队老师没要我。当时正好我们开设了BV6的课程。一怒之下,怒写200行代码,实现了记事本+调色板功能。恰巧被我的代课老师发现,后来在这位老师的鼓励下,我开始自学VB6。这位老师在我课余任何时间对我开放机房,上机成了我课余的一切。我就这样在接下来的1年多里,写出了2000+行代码,完成了关于高中解析几何(点,线,面,圆,椭圆,三角函数等方程与坐标系图像关系)的软件。PS:没想到,这些解析几何的基础,对我之后的工作还产生的重大影响(后边文章中慢慢聊)。这个软件还参加了全省青年创新科技比赛获得了二等奖,当时那个年代能写几行代码自然获奖不是问题了。之后自然我顺利的进入大学报考了自己喜欢的专业“计算机科学与技术”。这是我第一次自己的选择。
在大学时候,我是一个同学眼中的坏学生,4年加起来的课程可能只上了不到2年。当然逃课的时间中我基本是在带队参加各种比赛。同时我也是老师眼中的好学生。因为这些比赛都是以学校的名义。多次获奖也是顺理成章的事。当然考试也是一路绿灯,有幸成为年级主任带的唯一的一个毕业论文,并获得了全省“优秀毕业论文”。由于参赛错过了个大牛企业的校招。我只能一份简历投往上海一份简历投往杭州,如果再错过,我估计得回家转行了。当然之前的经历让我作为应届生顺利找到工作还是不成问题。最终有幸来到杭州。但是这之前的一切光环,也只是对我之前的总结,对我后来的职业旅程并没太大卵用。一切都需要在自己每天不停的努力中度过。后来没想到,努力成了自己的口头禅,不要停成了自己的逼自己的动力,人是要逼的,不逼不知道能做到什么程度,能走多远。
CA行业的历程
刚毕业,我在支付宝从事“软硬证书”的维护,“软证书”是指浏览器上使用的数字签名证书,基本是解决浏览器端,一些重要操作的数字签名相关问题。“硬证书”是指类似支付盾这种由硬件载体的私钥保护设备。外观类似“U盘”。这种方案当时几乎是数字签名业务的标准产品。个银行支付机构,都采用“XXX盾”这样的字样。
“软证书”通过根CA签发,然后下载到本地,通过浏览器插件导入到本地私钥库。签名的时候同样通过js调用浏览器插件读出软证书,然后进行签名并反馈到页面,再提交到服务端进行验签操作。
证书主要分为“证书链”,“CRL吊销名单”、“私钥”、“公钥”,证书链保证了证书的签发链,每级CA的有效性在证书链中得以体现。"CRL吊销名单"其实是个“黑名单列表”,由各级CA维护各自吊销的证书列表。校验客户端,通过证书链信息下载各个节点的CRL文件进行校验,当然CA公司基本都实现了在线校验接口。使用“私钥”签名,产生公钥,将公钥传输到服务端进行验签。
“硬证书”与“软证书”类似,只是将私钥保存在了硬件容器中。签名过程类似,只是需要通过容器驱动,对私钥进行读写。
国际常用加密算法:“DSA”和"RSA"。由于国家需要对数字签名合法性加以监管,所以由国密局规定了“国产加密算法:SM2”。当然,算法实现不同但同属于“大圆弧算法”,是“大圆弧”上的其中一条曲线,换汤不要药。工信部拥有顶级根名为"ROOT根"。国内30多家CA公司的根证书均由“ROOT根”签发。然后再向下级CA签发。最终签发出用户证书。
2011年底,CSDN暴库,引发了个行业对密码保护的重视。关于数字证书在应用层解决跨域证书互信问题。我曾写过一篇文章,该方案已经被北京天威诚信在项目中实际应用。有兴趣可以查看http://luckymjl2.iteye.com/blog/1335929
在支付宝办公的日子里,我基本是从事着类似技术支持的角色。但又不同于常见的技术支持。我需要从支付宝的客满中心调取关于所有证书使用中遇到的问题的电话录音。从客户模糊的问题描述中发现证书的使用问题。有时候会直接联系遇到问题的客户,通过远程造作帮客户解决问题。有些是关于后台签发问题,这种问题基本是自己改代码改策略,自己上线(现在想想相当的不规范)。有些可能会牵扯到控件问题,需要联系相关部门的同事对控件进行优化。有时候会协调2个部门或公司完成一件工作任务。说实话,这对于当时刚毕业的毛头小子来说着实有些棘手,尤其是需要和别人沟通的时候。但对我之后的工作却起到了重要启蒙,至少让我对非代码类的工作不那么排斥。同时也是种锻炼。开始我跟着市场总监,学到了很多非技术类的东西,对我受用终身:跟对人,做对事;先做人,再做事。后来我跟着技术总监学习,学到了很多非编程类的技术,对方案的设计,问题的定位等方法有了深刻的感受。这些我会在今后的博客中尽量分享。在后来的一段时间里,我终于又重新走回了程序开发的轨道,对程序的设计打下了一定的基础。
海事行业历程
13年底我来到了一家海事公司,从这家公司开始,我开始从事架构师的工作。对架构师慢慢有了新的认识。说来也很有意思,业内有句话:不懂业务的架构师就是耍流氓。可是我却偏偏很少接触具体业务。我记得唯一接触的业务就是刚到这家公司,从事了3个多月的业务开发。之后基本是在为开发人员服务。
架构师的存在,在我看来是为了解决这几类问题:1、解决一般程序猿难以解决的问题。2、开发各种工具,提高业务线上程序猿的开发效率。3、编程规范,规范系统维护的延续性。4、新技术的评估与引入5、技术分享,通过培训提高程序猿的开发效率。
在这里的经历不是太久,虽然也做了一些架构方面的工作,但应为种种原因也没有什么突出贡献。
物联网行业历程
15年经朋友介绍,我来到一家创业公司,也就是我现在的公司。在这里,我从事后端技术负责。除日常管理外,主要是负责架构及带领团队对业务进行开发。接下来的文章,我会重点阐述在这家公司遇到各种有趣的问题,及架构方面的演化及设计思想。
这家公司,是一个智能穿戴设备(智能手表、手环、定位器等)的物联网接入平台。从该平台衍生出很多行业项目,如全国最大的智慧养老平台、智慧养老院管理系统、旅游、社会公益帮扶项目,阿尔兹海默症找寻项目等。
设备请求数据并发每秒6000pps。数据每天产生约40G。
最后的废话
再接下来的文章中,我会介绍再工作遇到的问题及解决方案。由于目前还处于技术保密期,我会重点阐述思路。可能不会堆大量的代码,敬请谅解。可能文章中会有错误,欢迎朋友提出、留言、共同讨论。
最后再说说这些年来的一点点感悟:
1、程序员要凌驾于程序之上。如果胆怯担心搞不定,那最好就不要搞,因为很容易就搞不定。
2、网上可以照搬的叫运用,网上没有的才叫技术。读懂源码不如读懂思想。
3、不要让自己停下来。学习永远不要停。
4、扛住压力。人不逼自己,永远不知道自己能走多远。
ps:第一篇说了这么多废话,后边尽量来点干货。维护博客还是一件很费时的事情。我尽量一周跟新一篇。
相关推荐
这个教程我要分10篇给大家来做分析,这十大常用程序都包括什么呢?下面我给大家列出大纲工参考: 第一节:注册系统 注册几乎是每个网站都要使用的,去论坛要注册,聊天要注册,几乎无处不注册,所以注册是所 ...
谁都想做3D游戏,但是谁都知道3D编程和2D编程是不同的。...第三回:第一个D3D程序 第四回:渲染顶点 第五回:渲染索引顶点 第六回:摄象机 第七回:灯光 第八回:纹理 第九回:3D模型(.x) ...
《程序员》2008.09期有一篇名为《无废话ErLang》的文章,这让我想到了许多的诸如“无废话C”、“无废话书评”这类的文章,也想到了JavaScript可没有一篇“无废话”,所以决定开个篇来写这个。与这个决定相关的,还...
DNA 用更少的点炸弹做更多的事情 缩小规模 喝 Kool Aid DRM 电子商务毛球 吃你自己的狗粮 新兴的同理心使端到端的参与企业 标题为史诗般的福音传道者退出策略 眼球面对时间 失败 快速失败 前进 粉丝最终确定第一个或...
又学校推迟一周在网上开课,无聊中开启我人生中第一篇博客,由于第一次写博客,错误之处多多指教。也以此为第一篇博客来记录自己的学习和加深印象,也当做笔记啦!!!!!! ……半年前的大一暑假协会组织我们留校...
第一步:在浏览器键入了一个地址,比如http://love.kerry.com,点回车后,都发生了什么? 为了把问题简单化,我来这样解释: 第二步:首先,键入的地址被解析,最终来到了一台web服务器.交给IIS处理.在.net的世界中,IIS会把...
摘要:解释了url重写的相关知识.用asp.net实现二级域名重写的方法....第一步:在浏览器键入了一个地址,比如http://love.kerry.com,点回车后,都发生了什么?为了把问题简单化,我来这样解释:第二步:首先,键入的地址
大家好,这篇文章是继微信支付之Native 扫码支付 模式一之后的微信支付系列教程第三篇:扫码支付之模式二 介绍下扫码支付目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程,微信开发...
一些命令行工具的使用能够大大简化代码脚本的维护成本,提升复用性,今天主要是借助于python提供的几种主流的参数解析工具来实现简单的功能,主要是学习实践为主,这是新年伊始开工的第一篇,还是花了一番功夫来完成...
【教育】领域的礼仪自我介绍是人际交往中的重要环节,它涉及到如何有效地介绍自己,以便给他人留下良好的第一印象。以下是一些关键要点: 1. **自我介绍的前提**:自我介绍通常发生在双方地位对等或者一方有求于另...
这个是我在CSDN尝试写的第一篇文章,这个项目来源是大学的大创项目,在制作的过程中,因为自己也是受到了很多来自CSDN平台的大神的支持,同时也总结了类似文章中没有提到的问题,写的有不好的和不专业的地方还希望...
作为2020年的第一篇博文,再不写的话就对不起大家了!!! 好,废话少说,今天这篇文章主要是解决你在做实时计算的时候,将数据sink到redis的种种问题 实时计算流程框架其实比较简单,目前比较流行的也就是kafka+...
趁着这次公司招新人,把之前整理的文档又整理了一次,顺便发一篇博客。好了,废话不多说,正文开始。 虚拟机及CentOS7安装 没接触过linux的朋友,建议还是先从虚拟机安装开始。大多使用VMware。这里,我使用的是...
4.本项目源码见文尾捷文规范第一条,视图源码在view包,分析工具在analyze包 一、贝塞尔三次曲线初体验 1.无网格,不曲线,废话不多说,上网格+坐标系 /** * 作者:张风捷特烈 * 时间:2018/11/16 0016:9:04 *...
在写这篇文章之前首先感谢下CSDN的mynamelj,他写的那个SkinSB开源的时候我就开始使用来美化一般win32窗口的滚动条,很好用,但是最近有想把自己的应用迁移到x64平台的想法,所以必须把全部源码编译成64位的版本,...
我在上一篇文章中也说到,我对于一些基础的java知识是有一些了解的(ps:毕竟放弃了n多次,前面的东西不断重复了N多次,哈哈哈哈哈)。所以对于不同的基础的人来说,可以视情况将进度进行改变。现在已经五点了,计划...
本心得笔记是Redis入门学习的心得分享,介绍了Redis的概念,功能,命令操作,持久化操作和使用Jedis操作Redis数据库并且在文末添加了一个案例进行Redis缓存优化,希望这篇Redis学习...第一篇笔记希望各位大神指教批评。
第一步:准备安装程序。 首先SQL 2008是安装好的 因此只需要下载SQL 2008 R2安装程序,下载地址如下:...
百度地图毕业设计源码 Node.js原生开发入门完全教程 一、关于 本篇文章致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”...好了,“废话”不多说了,马上开始我们第一个Node.js应用:“Hello