Browsed by
标签: 程序员

面试官:啥是请求重放呀?

面试官:啥是请求重放呀?

閱讀本文約花費: 16 (分鐘)重放攻击,这题我真的在面试的时候遇到过,两次。 印象比较深的是第一次遇到这个面试题的时候,也是第一次听到“重放攻击”这个词的时候,一脸蒙蔽,于是我就连蒙带猜的,朝着接口幂等性的方向去答了。 结果就凉了。 要回答怎么防止重放攻击,那么我们得知道啥是重放攻击。 学术上的解释是这样的: 重放攻击(英语:replay attack,或称为回放攻击)是一种恶意或欺诈的重复或延迟有效数据的网络攻击形式。 这可以由发起者或由拦截数据并重新传输数据的对手来执行,这可能是通过IP数据包替换进行的欺骗攻击的一部分。 这是“中间人攻击”的一个较低级别版本。这种攻击的另一种描述是: “从不同上下文将消息重播到安全协议的预期(或原始和预期)上下文,从而欺骗其他参与者,致使他们误以为已经成功完成了协议运行。” 举个简单的例子: 我们程序员日夜操劳的,在按摩店里面办个卡,偶尔去洗个脚放松一下不过分吧。 有一天,我去洗脚的时候对着店员说:给我安排一个 168 价位的,要小伙子啊,按着比较带劲儿,我的卡号是 88888888。 然后我在前台签上了自己的名字,店员就安排了一个精壮的小伙子给我按摩。 没想到我们的对话被其他人听到了,于是他也给店员说:给我安排一个 168 价位的,要小伙子啊,按着比较带劲儿,我的卡号是 88888888。 还模仿了我的签名,在前台签字。 把之前的、正常的请…

Read More Read More

详谈高级程序员、架构师、技术总监、CTO从薪资到技能的区别

详谈高级程序员、架构师、技术总监、CTO从薪资到技能的区别

閱讀本文約花費: 9 (分鐘) 我希望用一篇文章完全让大家正确的理解从程序员到架构师、技术经理、技术总监、CTO的完整区别以及进阶要领。只有客观去认识,才会更加合理的找到自己的擅长点,从而更好的发展自己。 上图是典型的薪资结构图,我们先从高级程序员谈起。 高级程序员 一般是至少三年以上的工作经验,有些地方是五年以上,很多小公司或者创业公司,高级程序员覆盖工作职责比较广,基本包含部分产品经理、项目经理的工作职责以外,最主要负责核心代码编程,基本技术难点都自己解决为主。 在公司大一点的都有非常明确的职责和级别定义,以阿里外代表,P5-P6代表高级软件工程师这个级别,基本能独立负责设计和编码阶段。 其实,在国外例如google、facebook等公司,很多牛人的title都是Senior Level engineer,这一点不像在中国。 在国内,一般一个高级程序员的准确定义: 负责核心复杂功能的实现方案设计、编码实现。详细描述:能独立设计一个业务模块的能力,并且独立设计数据库表以及UML画图,利用部分设计模式以及懂得算法和效率的高质量代码。 架构师 一般能做到架构师这个称谓,工作年限至少都在5年-8年以上,具体还看每个人的学习能力和领悟能力,也有时间短的,但大部分都是个例。 之所以有架构师这个称谓,主要还是公司发展以及大了的需要,需要专注于技术的人,你也可以理解为技术专家,攻克公司技术难…

Read More Read More

技术总监7年经验——论程序员的职业发展路线

技术总监7年经验——论程序员的职业发展路线

閱讀本文約花費: 10 (分鐘)作为程序员,在开发岗位上做了几年,特别是到了30岁,这个而立之年,我们会来到一个重要的人生岔路口。就是管理和技术两个选择,一边专业路线,一边是管理路线。 在互联网的头部企业,对管理和技术是平等对待的,所以晋升会存在管理和技两个通道的 既然有了选择,就会有人纠结,不知道是选择专业路线,还是选择技术团队的管理路线。 这个选择是程序员人生中第一个大的选择,也是第一个障碍,倒不是说这个障碍是到底要不要选择管理,而更多的是对做管理的迟疑,怀疑到底能不能做好管理,做了管理之后,技术是不是就荒废了。 这种状态犹豫不决、摇摆不定的状态保持时间长了,最终会导致技术和管理都没做好,这是得不偿失的。 为了解决这个问题,有必要分析程序员职业发展的路线到底有几条,分别需要具备怎样的能力,从而做到”手中有粮,心中不慌“ 01技术 技术类上,是有两个方向:架构师和技术专家 架构师他的侧重点是在“广”上,他主要负责技术的整体和架构,在业务上,需要有很深的理解,有丰富的经验,甚至能做到“走的桥比你吃的盐还多”。在技术上,能够广泛涉略,掌握的技术知识越多,内力就越加深厚。 我觉得架构师还需要三点必备能力,其一需要有极强的执行力,能够快速的给出合理的方案,推动技术落地。其二需要有极强的判断力,能够准确的找到复杂系统的疑难问题所在,就像武林高手,一眼就看出对方的破绽。最后还需要有极强的创新…

Read More Read More

程序员、技术主管和架构师

程序员、技术主管和架构师

閱讀本文約花費: 17 (分鐘)程序员、技术主管和架构师 最近在进一步思考程序员的成长,曾经写过一篇《如何快速的成为架构师》,里面写了我对程序员主要成长阶段的定义,但在程序员从初级走向资深的过程中,会面临两个支路,一个叫「技术主管」,另一个则是「架构师」。为什么这是两条支路?因为现在回过来看,这两条路从来都不是程序员的自然成长路径,下面我们先从「技术主管」开始吧。 技术主管 技术主管,有些公司可能又叫「技术经理」,英文一般是 Tech Leader 或简称 TL。在拉姆·查兰 (Ram Charan) 那本《领导梯队》中提到一个人的工作角色中至少有百分之五十以上的时间是花费在管理事务上,那么他的角色才算是一个经理(Manager)。所以技术主管(经理)类似产品经理属于以经理命名却是非经理的角色。 「技术主管」是开发团队中的某位程序员需要对一起创建系统的整个开发团队负责时所承担的角色。通常他既要对最终交付的软件系统负责,另外也会像一个程序员一样去开发实现系统。一个技术主管的 60% ~ 70% 的时间可能花在了开发任务分解分配、开发实践、代码审核和风险识别上,而余下的 30% ~ 40% 的时间则花在为了保障系统按时交付所需的各种计划、协作、沟通、管理上。和团队管理者不同的是,技术主管的大部分管理工作都是针对具体研发任务和技术事务的。 例如:在一个开发团队中经常会碰到因为技术方案和实…

Read More Read More

程序员、架构师、技术经理、技术总监和CTO都是干什么的?

程序员、架构师、技术经理、技术总监和CTO都是干什么的?

閱讀本文約花費: 11 (分鐘)程序员   程序员,英文名coder/programmer,大家常自嘲叫码农的阶段。这个角色职责是把需求或产品实现为用户可用的软件产品。   此职位为执行级别。另外因为经验较少,一般需要求助别人,或与别人一起完(ban)成(zhuan)一个任务。   此阶段大概要经历3年,程序员的职责如下:   1、负责公司运营系统的设计与开发工作   2、运营数据处理和分析 高级程序员   高级程序员学名工程师。到了这个level,英文名可改叫做engineer或developer。此时你的功力开始增强,这与你平时的积累努力是分不开的,祝贺你~   此时的你不仅可以完成任务,开始注重代码的质量,能够写出工业级的代码。   你的经验可胜任模块级的系统设计,承担完成较为复杂的技术,能有效的自我管理,有帮助别人快速解决问题(trouble shooting)的能力。   此阶段你需要经历到7、8年左右的体验,中间要经历一段深刻自我历练的过程。   有时给人致命一击其实是心里的小蟊贼。一般人在5年前后遇到一个门槛,碰到天花板+彷徨期,或者你打心眼里不在喜欢编程,可尝试转为其它角色,如产品经理,售前售后支持等岗位,也不失为好选择。   当我们熬过这段儿,就会“山随平野尽,江入大荒流“,渐入佳境矣。   高级程序员定义软件功能、做开发计划推进和管理。可以带几个个帮手把产品规划…

Read More Read More

假如易立竞吐槽程序员。。。

假如易立竞吐槽程序员。。。

閱讀本文約花費: 4 (分鐘)该文可能杀伤力较强,请谨慎服用。 你的发际线那么高,你的技术水平有那么高吗? 你没事就刷数据结构和算法,是真的喜欢,还是面试会考呢? 如果面试不考算法,你还会学吗? 就好像学了B树,但是每天的增删改查能不能用到B树你心里应该也有逼数吧。 你当初入行,是真的喜欢代码,还是觉得这行收入高呢? 现在入行了,收入真的高吗? 听说你喜欢开源项目,你有自己的开源项目吗? 还是说喜欢开源项目是为了方便抄开源项目的代码呢? 当用的第三方包有问题,你会看源码解决还是直接换个轮子用呢? 你当然不会看源码解决,因为你看不懂。 就算看得懂,老板会给你时间看吗? 产品第二天得上线不是吗? 说到产品,你们技术觉得一个产品经理的需求好不好实现,真的和提这个需求的产品经理颜值没有关系吗? 另外,这个需求真的实现不了吗?还是网上没有现成的代码让你抄呢? 离开百度、谷歌、stackoverflow,你还能完整实现一个需求的代码吗? 你用的IDE是正版的吗?还是从某宝某鱼上买的序列号呢? 你们程序员,是不是也只能接到使用盗版软件的律师函警告呢? 你写公众号吗?就是那种定位技术分享,但是除了技术啥都分享的公众号。 你写公众号,真的是为了总结自己的技术吗? 有专门记笔记的软件你知道吗? 你知道现在相同类型公众号的数量远远大于你的粉丝量吗? 文章推送出去,不发朋友圈,不分享到群里还会有人看吗? …

Read More Read More

Scroll Up