暂无个人介绍
技术更迭是有加速度的,一个又一个风口,一波又一波浪潮,昨天火了人工智能,今天已经大谈区块链。普通程序员们在这个进程里,应该怎样找准自己的位置,获得持续的个人成长呢? 技术更迭是有加速度的 从 2010 年开始,被定义为移动互联网的元年,移动开发也是从这一年开始逐渐开始火爆的。笔者也是从毕业之后加入这个浪潮的。据说移动开发火爆之时,理发师通过几个月培训以后也可以拿到月薪 1,2W 的薪水,可见那个时候对移动人才的饥渴程度。但是到了 2014 年底开始,移动开发的入职要求回归理性,要求逐渐提高,到现在基本大公司社招也不再招高级以下的移动开发了。
先看看作者吧,Jon Kleinberg是美国国家科学院(NAS)、美国国家工程院(NAE)、美国人文与科学院(AAAS)三料院士,在计算机科学领域是“传说级”的人物。而且他还获得过国际数学家大会颁发“奈望林纳奖”,这个奖是数学家大会为了表彰信息科学方面的重要数学贡献而设的。——来自豆瓣
也许你早已决定做一名管理者,又或者你刚刚有这个打算,不管哪种情况,你是否已经和你的上级交流过这个问题呢? 在我调研过的几百位新经理中,只有15%左右和上级表达过管理意愿,我自己培养的几十位新经理中,明确表示自己想做管理的,也只有大约20%左右,这个比例很低。所以,如果我猜你没有跟上级表达过你的意愿,大概率能猜对。 你可能会说,如果上级觉得我能干,肯定会给我机会的;如果觉得我不行,表达也没用。而事实上,这个问题往往不会这么绝对。对于明确表达自己意愿的工程师,即便不能立刻满足他们的期待,但在有合适岗位的时候,他们的确会被优先考虑。因为对于做管理来说,个人意愿很重要,没有意愿就没有主
今年刚好 40 岁,在一家著名外企做到技术专家的位置,在亲戚朋友眼中,俨然已算半个“成功人士”,但内心深处,却无一刻不战战兢兢。我知道,自己就像一个风雨中的高跷人,哪怕一阵风,一个闪失,都会重重跌倒,甚至于再也爬不起来。 我有一个习惯,每年定期更新简历,一则看是否有更好的机会,二则了解市场行情与技术动向,也作为自己下一年努力的方向。 从 30 岁到 40,整整 10 年,年年如斯,这种形式一直有效的鞭策我努力学习和工作。因为我相信只要我保持努力,就会永远站在技术的前沿,就会永远保有强劲竞争力,所谓的“中年危机”永远也不会落在我的头上。
如果说有什么事物能够使男程序员心中的父爱完全觉醒,那我想一定是投身于自己创建的开源项目中去了。在和熊谱翔、黄东旭等储多开源大神的接触中,我可以明显感到他们对于自身开源项目的那份执着与热爱。虽然说贝佐斯、盖茨等IT巨头创始人都能在公司走上正轨后卸任CEO,完成华丽转身,但是为了维护自己的开源项目,程序员们往往都是从一而终,从不始乱终弃。
今天故事的主人公,是CSDN的博客专家,他在文中讲述了,自己从月薪三千五的开发小白,到入职大厂、买币狂赚狂赔、数次创业浮沉,到最终实现月薪百万的故事。 以下为正文: 2009年7月毕业,校招进入杭州的一家环保上市公司,在滨江杭阿里边上,月薪是3500元,职位是Java工程师,初入职场同事和领导都挺好的,不过每天工作的内容都是重复的Extjs写界面工作,技术得不到提升,工作几个月就开始迷茫了。
本文作者为读秒 CEO 周静。近 20 年跨国银行风险管理经验,全面负责个人及中小企业金融产品设计及风险控制;曾在美国第一资本(Capital One)就职 8 年,历任产品、市场、风控高级经理。2006 年回到中国,在渣打银行就职 9 年,创立渣打银行零售风险管理团队,任渣打中国零售银行首席风险官,管理超过 50 亿美元的信贷资产。2014 年底加入 PINTEC 集团,创立读秒。
过去的盲点给我们提供了另一种思考未来的方式。 技术变革的步伐并没有放缓。 在一两年之内,我们大多数人仍然会思考世界。 我们期待着很多变化,并且我们花了大量时间想象它们。 但是在雷达之下发生了什么? 我们期望哪些发展永远不会实现? 我们今天很少有人期望发生什么革命? 软件开发改变了世界。 我们只看到其中一些即将到来。关于当今软件开发的四件会让过去的程序员大吃一惊的事
这可真的是“世上无难事,只怕有心人”啊! Chris McKinlay 窝在加州大学洛杉矶分校数学系楼上的小隔间里,头顶的灯泡和显示器照亮了他年轻的脸庞。凌晨三点,这是他使用校内超级计算机的最佳时间。趁老师同学们已经沉沉睡去,他得尽快赶完自己的博士论文(内容为大规模数据处理与并行数值方法)。在计算机全速运转的同时,他打开了另一个窗口,打算看看自己的 OkCupid 收件箱。 McKinlay 身材瘦削、高高的个子,头发总是凌乱不堪。与 4 千万美国用户一样,他也在通过 Match.com、J-Date 以及 e-Harmony 等网站寻找自己的爱人。自九个月前与女朋友分手之后,
破解凯撒密码可以用到一项密码分析技术,叫作暴力算法(brute-force),它的攻击是通过尝试每一种可能解密密文的密钥实现的。没有什么能够阻挡密码分析人员猜测密钥、用密钥解密密文、观察输出,并在没能破解出密文的情况下寻找下一把密钥。正因为这样的暴力算法对凯撒密码来说过于有效,所以在实际应用中根本不应该使用凯撒密码去加密一段秘密信息。 在理想的情况下,一段密文不会落入任何人的手中,然而Kerckhoffs原则(以19世纪密码学家Auguste Kerckhoffs命名)表明,一段密文即使在所有人都知道来源且某些人可能得到的情况下,也应该保持其安全性。20世纪时,数学家Claude S
我列出的这些有用的Python代码片段,为我节省了大量的时间,并且我希望他们也能为你节省一些时间。大多数的这些片段出自寻找解决方案,查找博客和StackOverflow解决类似问题的答案。下面所有的代码片段已经在Python 3中测试。 在Python中调用一个外部命令 有时你需要通过shell或命令提示符调用一个外部命令,这在Python中通过使用subprocess模块很容易实现。
国内我们对架构师,项目经理,开发经理或者是技术总监这类职业定位普遍不都不清晰,很多的情况是“能者多劳”,一人身兼数职。达尔文的理论在我们的行业是绝对适用的,我从进入这个行业开始我就不甘于成为淘汰者,而我也由心地热爱着这个行业很年前我就立志要成为架构师(当年流行叫:系统分析员 )这目标进发。回首这10几年的磨练,我总结了一下一名合格的架构师应该具备哪一些方面的能力以及怎么才能得到这些能力
在计算机科学中,数据结构是一门进阶性课程,概念抽象,难度较大。Python语言的语法简单,交互性强。用Python来讲解数据结构等主题,比C语言等实现起来更为容易,更为清晰。 而对于自学Python的朋友往往会遇到数据结构的问题,和所有的现代编程语言一样,Python也有大量的功能和构造。然而,Python是少数的几种基本程序要素相当简单的语言之一。本文将开始介绍使用Python编程的一些基础知识。 Python程序包含一个或多个模块(module)。模块只不过是Python代码的一个文件,其中可以包含语句、函数定义和类定义。简短的Python程序也称为脚本(script),可
这一条路其实就是:算法工程师 互联网火爆,算法行业也一样火爆,动辄年薪30万以上比比皆是,优秀的算法工程师年薪百万不是梦。以至于让无数人开始学习算法知识,无论自学还是参加培训班,都想要转行到算法行业。 尽管如此,算法工程师仍然面临100万的人才缺口。缺人、急需,算法工程师成为众多企业猎头争抢的对象。 计算机的终极是人工智能,而人工智能的核心是算法,算法已经渗透到了包括互联网、商业、金融业、航空、军事等各个社会领域。可以说,算法正在改变着这个世界。 @程序员,90 后程序员想要“年薪百万”,那么你最好走这一条路
如果您是软件开发人员,那你的大部分工作时间都花在与人打交道上。 当您开始一天的工作时,您可能会立即查看电子邮件,Skype或Slack,因为您有兴趣查看工作同事是否有重要的事情要告诉您。 然后,当您编写答复时,您的单词的目的地是另一个人,而不仅仅是另一台计算机。 工作的主要重点是解决问题,这是在与项目进行协作,并作为软件开发团队的一部分与其他人闲逛时完成的。 您白天参加会议,并从其他人那里获得实施要求。
一个远程办公的团队比坐在一个办公室里的团队需要更强的纪律。首先,我指的是沟通的纪律。在teamed.io, 我们已经远程开发软件有五年之久。我们通过问题清单系统(原文为ticketingsystem如Github, JIRA, Trac,Basecamp 等)来严格地管理任务,并且不鼓励任何不正式的沟通方式,如Skype, HipChat, 邮件或者电话。每一个ticket对我们来说都是一个有自己生命周期、参与者和目标的独立任务。这些年,我们有一些教训想分享给大家。如果你的团队也是远程办公,你会发现这些内容很有用。
前文《理解 Paxos》只包含伪代码,帮助了理解但又不够爽,既然现在都讲究 Talk is cheap. Show me the code.这次就把文章中的伪代码用 Go 语言实现出来,希望能帮助各位朋友更直观的感受 Paxos 论文中的细节。 但我们需要对算法做一些简化,有多简单呢?我们不持久化存储任何变量,并且用 chan直接代替 RPC 调用。
(被调)函数内的局部变量在函数返回时被释放,不应被外部引用。虽然并非真正的释放,通过内存地址仍可能访问该栈区变量,但其安全性不被保证。后续若还有其他函数调用,则其局部变量可能覆盖该栈区内容。常见情况有两种:前次调用影响当前调用的局部变量取值(函数的"遗产");被调函数返回指向栈内存的指针,主调函数通过该指针访问被调函数已释放的栈区内容(召唤亡灵)。 【示例1】先后连续调用Ancestor和Sibling函数,注意函数内的dwLegacy整型变量。
在未来,我们会怎样构建 Web 应用程序呢?如果行业正常发展下去的话,那么今天我们认为很难、做起来很有价值的事情在明天都会变得很轻松普遍。我想我们会发现很多新的抽象,让Google Docs写起来也能像今天的普通 Web 应用一样简单。 这就引出来一个问题——这些抽象会是什么样子?我们今天能发现它们吗?想要找出答案,一种方法是审视我们在构建 Web 应用程序时必须经历的所有问题,然后看看我们能做些什么。 亲爱的读者,这篇文章就是我对上述方法的一次实践尝试。我们会走过一段旅程,看看今天我们是如何构建 Web 应用程序的:我们将回顾行业面临的各种问题,评估Firebase、Supa
架构设计到底是做什么?每个人都有不同的答案,毕竟在不同的时间,不同的系统层级,不同的需求背景上,架构设计的任务都有所不同。那么换另外一个问题,如何成为顶尖的架构师? 先使用程序员的拆分技能:成就优秀需要划分两个阶段,先成为普通的架构师,然后再想办法成就优秀。 虽然 2022 年已经过了六分之一,但我们的新年也就刚开始,常言道种树最好的时间是十年前,其次是现在,学习架构也是一样,希望以下的学习小结可以给你帮助。
最近我尝试了多种框架,想要制作出既易用又容易安装的应用程序,但是都以失败告终;最后我决定转向 Rust 和 GTK,开始拥抱原生软件开发。 虽说以前我也短暂尝试过 GTK,但它对我来说还是很陌生的。在此之前,我在用户界面上的大部分经验都来自于 React 应用程序的构建。从 React 到 GTK 的过渡带来了一些挑战,其中多数是小部件原理上的差异造成的。用 Rust 写 GTK 是尤其困难的事情,因为 Rust 强制执行一些额外的规则来防止内存管理错误,并避免在线程上下文中执行不安全的操作。
如今,在软件开发领域,除了现在比较热门的人工智能技术和大数据技术之外,移动开发依然是受到大家关注的领域分支,而移动开发中非常重要的一门技术就是Android开发。Java作为Android开发的官方标准语言,其语法的设计思想还停留在纯命令式语言时代,在函数式语言的大背景下,Java显得有点落伍。虽然随着Java 8和Java 9版本的发布,Java也在向函数式语言靠近,但是Java 8和Java 9的市场份额并不高,很多项目还停留在Java 6的时代。特别是对于Android开发者来说,想体验函数式编程的优势似乎太过遥远。所以,使用Kotlin成为一个不错的选择。
与其他领域一样,软件开发领域也有一些非常经典的定律。这些定律包括了一些法则或软件开发大神的名言。 也就是所谓的“按照组织架构来交付软件”: “任何一个组织在设计一个系统时,这个系统的结构与这个组织的沟通结构是一致的”。 你或许认为可以通过一些方式来避免这个定律,比如跨功能团队的站会、进度更新和决策矩阵,但最终都不可避免地会发生冲突和分歧,而这些将导致冲突和分歧的过程和结果。 这个定律来自《人月神话》:
太久没看代码了,最近打算复习一下java,又突然想到了排序算法,就把几种常见的排序算法用java敲了一遍,这里统一将无序的序列从小到大排列。 选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小元素,继续放在下一个位置,直到待排序元素个数为0。
随着国内人口红利优势逐渐褪去,To B 市场的万亿空间优势显露,作为仍有机会的蓝海生意,企业服务市场吸引了大厂以及 To B 从业者的目光。由于单个企业不可能满足企业客户的所有需求,因此,把其他优秀企业当伙伴,发挥各自优势分工协作,合力创造更强大的产品和服务,共同打造“To B 开放生态”尤为重要。 近几年,To B 成为互联网下半场的风口,开放生态也成为热议话题,虽然业内一直提倡开放,近年来开放的程度也有所提升,但其深度和广度远远不够,平台和伙伴之间的合作模式也尚未成熟,如何开放、开放能带来哪些价值又会有什么风险,对于很多从业者来说还不明晰。 近期,InfoQ 联合钉钉聚焦“
PHP现在名声很糟糕,因为它曾经是“可怕”的。本文试着回答一些常见的关于 PHP 的断言,目的是向非技术人员解释,PHP 并不像许多人所说的那么糟糕。 不再是了。过去,许多开发者被书本教授非常糟糕的实践,因此 PHP 代码的质量非常差。PHP 曾经还允许你做一些非常奇怪的事情,使得它非常容易构建,但维护起来却是一场噩梦。 这些不再是常见的问题。随着高质量学习材料的引入,这些材料易学且易获取,一名新的开发人员可以以正确的方式学习 PHP。这样就可以避免初级开发者因为不知道构建事物的正确方法而编写一些维护起来非常痛苦的代码。 随着框架的引入,导致许多糟糕体验的大部分通用代码现
本文要点: Mono 项目始于 2001 年,是首个面向.NET 应用程序的多平台、开源框架的项目。Xamarin 和 Blazor 分别代表了微软在移动和 Web 应用程序方面的努力,它们都是基于 Mono 并由 Mono 提供支持的。.NET 5 为用户提供了两种运行时选项:高性能的 CoreCLR(用于服务器和桌面应用程序)和轻量级的 Mono(用于移动设备和 WebAssembly)。尽管 Mono 已经是.NET 的一部分了,但仍有一些开发工作要致力于改善 Mono 的运行时性能和垃圾回收器。现在.NET Core 可以与 Mono 并行安装了,因此可以一起演进语言和运行时
本篇内容选自 Gitee 发起,邀请全体开源爱好者共同参与的开源百科编写项目《开源指北》。 什么是开源,相信前面的章节已经说的非常清楚了。开源作为一种贡献技术的方式,对整个技术界和开源社区的正向回馈是巨大的。近 10 年来,越来越多的项目加入了开源界。其中有许许多多的知名开源项目被人所认可和追捧。 操作系统:Linux,Android编辑器:Vim,Emacs,Atom,VSCode版本管理:SVN,Git,Fossil数据库:MySQL,MongoDB,Redis大数据平台:Hadoop,ElasticSearch,HBase容器:Apache,Nginx虚拟化软件:Dock
既然我们要探讨“技术人如何做管理”这个话题,那么对“什么是管理”以及“管理是干什么的”这个问题就无法回避。虽然“管理”这个概念很模糊,但是我们依然可以通过界定管理者的核心职责,来刻画出管理的含义。 在管理学的发展史上,有很多彪炳史册的管理大师,我们不妨看看,管理界这几位泰斗级人物是怎么说的。 古典管理理论的代表亨利·法约尔认为,“管理是由五个要素组成的一种普遍的人类活动,这五个要素是:计划、组织、指挥、协调和控制”。不难看出,他特别关注管理的过程性,强调“做事”的可控性,不愧为“管理过程学派”的创始人。“科学管理之父”弗雷德里克·泰勒认为,“管理就是确切地知道你要别人干什么,
HTTP与WebSocket响应方式区别 WebSocket存在的理由 我们已经有了 HTTP 协议,为什么还需要另一个协议?因为只靠Http通信有一个缺陷:通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息。这种单向请求的特点,注定了如果服务器有连续的状态变化,服务端想主动通知客户端,就难以实现。因此,工程师们一直在思考,有没有更好的方法,而 WebSocket 就是这样诞生的。
近年来,互联网在中国的发展势头迅猛并呈现出广阔前景。根据中国互联网络信息中心报告显示,截至2020年3月,我国网民规模已经达到9.04亿,互联网普及率增至67.0%,超全球平均水平。 互联网强劲发展的背后是整个IT行业的蓬勃。国家统计局发布的2019平均工资数据表明,工资最高的行业是信息传输、软件和信息技术服务业,IT行业从业人员平均年薪已超16万元。
对企业而言,发布和维护开源项目都是需要耗费大量心力的。在为 React 工作四年后我对此深有体会。我最开始只是一名外部贡献者,加入 React 团队后,又从工程师做起,最终升为团队管理。和大多数的 Facebook 开源项目一样,React 起初只是为内部使用而开发的,见识到它在简化 UI 代码的开发和维护上的作用后,我们决定将它与全世界分享。 事实证明,React 是 Facebook 的一次令人难以置信的成功,而这成功背后也隐藏了巨大的挑战。举例来说,尽管 React 非常受欢迎,但它仍处于一个竞争激烈的领域,这使得我们在开发新版本时需要小心再小心。
正走在这条路上的你或许也曾想过这些问题。这一次,力扣邀请到了《高效制胜——程序员面试典型题解》作者吴江(迈克老师),分享他 35 岁跳槽,并拿到了技术负责人 Offer,实现收入增长的故事和面试准备经验。 — 01 — “35 岁危机”真有那么可怕吗? 在 2018 年快过春节的时候,我们部门突然被通知要开一个会,会上通知我们部门要在明年的这个时候被整体裁掉。我在这家五百强外企已经待了五年,当时虽然有这个预感,但是真的听到正式通知时,不免还是感觉有点震惊。
日前,亚信数据发布旗下多款PaaS产品,包括亚信分布式数据库ADB、容器云计算平台HPS、大数据云平台DCP。这三款产品在亚信内部历经了3年的研发投入和攻关,并在客户项目中得到了实践部署。随着这些系列产品的正式亮相,它们共同构建了亚信完整的PaaS平台解决方案,将亚信拥有的大数据、CRM(客户关系管理系统)、BOSS(业务运营支撑系统)以及众多核心能力逐渐服务化、组件化,由该平台统一承载。
近日,网络安全公司 Intezer 发布了 2022 年基于 Go 语言恶意软件的报告。报告指出:恶意软件的开发者已经从 C 和 C++ 逐渐转向 Go 语言,自 2017 年以来,基于 Go 语言的恶意软件数量呈现爆发式增长,增幅超过了 2000%。 自从 2012 年发现了第一个使用 Go 语言编写的恶意软件之后,Go 语言就在恶意软件领域渐渐流行起来了。2019 年 7 月,Palo Alto Networks 发布了一份使用 Go 语言编写的恶意软件分析报告。报告发现,2019 年以前使用 Go 语言编写恶意软件是一件罕见的事情,但到了 2019 年,这种情况每天都会发生,2
关键要点 当今的分布式系统环境必须采用弹性软件设计。关键挑战不在于编码,而在于“外围”。做好分布式其实很难,大多数人都严重低估了它的难度。恰当的功能设计是构建健壮的分布式系统的关键,但人们却知之甚少。在公司中引入弹性软件设计的主要挑战是如何建立意识和可持续性。 写这篇文章的起因是我在 2018 年GOTO 柏林大会上所做的演讲,我在演讲中分享了在进行弹性软件设计时会面临哪些挑战。我将简要地介绍弹性软件设计的“why”和“what”,中间部分是我近年来经常遇到的挑战,最后,我添加了一些关于如何在组织中实现弹性软件设计的最佳实践。阅读完本文之后,希望你能够更好地了解弹性软件设计所面
个人隐私安全已经成为这个时代最重要的话题之一。如今,我们生活在数字化社会,上网已经成为生活和工作的必备。如果说智能手机是我们上网的“大路”,那 App 则是这“路”上跑的车。然而,随着 App 的快速发展,这条“路”上危机四伏,充满危险,作为驾驶员的我们随时可能“翻车”,轻则“伤筋动骨”,重则“车毁人亡”。 近几年,App 侵犯个人隐私安全的行为愈演愈烈。这不仅招来广大网民的不满和投诉,而且引起政府监管部门的重视。毫无疑问,它已经成为亟待解决的社会问题。
在过去的几年里,我有机会尝试了多种不同的编程语言。 我非常喜欢学习不同的语言、方法和范式。我是一个充满好奇心的人,一直对编程语言十分着迷。每种编程语言都是不同的,在本文中,我们来讨论一下以下五大编程语言的优点以及缺点。
近年来,机器学习技术的发展归因于我们有极其庞大的数据用来训练算法。当企业需要落地大规模机器学习时,往往会面临很多难题,如何解决这些问题?如何系统了解大规模机器学习落地的技巧?其适用场景是什么?InfoQ 希望通过该选题解决这些问题,并推动企业在大规模机器学习方面的实践。本文,InfoQ 有幸采访了阿里云机器学习研究员林伟,听他分享自己的经验和见解。
本文最初发表在 Towards Data Science 博客,经原作者 Alexandros Zenonos 授权,InfoQ 中文站翻译并分享。 隐私不仅是与人工智能有关的问题,也是任何与数据相关的领域普遍关注的问题。隐私是关于人们对其个人数据和基于这些数据所做的决定的控制。
要吃掉一头大象,每次吃一口。 ——克雷顿·艾布拉姆斯(Creighton Abrams) 造成拖延的首要原因之一,同时也是造成生产力低下的祸根,就是总是在感慨一个问题:好忙啊,问题好大啊……实际上,你并没有真正试着去解决问题。当我们从任务的全貌来审视任务的时候,它们看起来比真实情况都要大,并且更吓人。 在本文中,我会谈及一个能够帮助你克服拖延的提高生产力的窍门:分解任务。通过将大任务分解为小任务,你会发现自己更有动力去完成它们,也更加稳妥地向着目标前进。
代码是一种交流方式,Keras 之父 Fran?ois Chollet 在本文中为我们总结了在开发过程中、API 设计中及软件职业生涯中应该关注哪些要点。原则是形式化的直觉,比原始模式识别适用于更广泛的情况,Fran?ois Chollet 的这份原则清单将带你领略大师的品味。
凯尔·布?朗(Kyle Brown)和金·克拉克(Kim Clark) 注意:这是部分5的五部分组成的系列。对于本系列的第一篇文章,请从这里开始或跳至第2部分,第3部分,第4部分 在过去的文章中,我们建立了“原生”指的是什么,甚至“原生”指的是“原生”的工作方式。但是,还有一个更大,更基本的问题我们尚未解决。为什么有人要关心?根据前两篇文章的背景,我们现在可以探讨“为什么”并查看云原生的好处,从高层次上对业务意味着什么,然后深入到实际意义上。 为什么要云原生:目标和收益
本文4589字,建议阅读12分钟。 本文论述了生物技术、小型卫星、量子计算机和认知增强的安全问题。 本文节选自专著《Technology and National Security: Maintaining America's Edge》,The Aspen Institute ,2022年1月31日。文章题目《Four Emerging Technologies and National Security》。本文讨论了四种新兴技术:生物技术、小型卫星、量子计算机和认知增强,并简要介绍这四种技术及其对美国国家安全的影响,最后提出应对建议。 作者:Jason Mathen
最近读了《我编程,我快乐》,里面有一些观点给我了不少启发,特别是一些职业规划的方面的内容。 我编程,我快乐,献给所有的程序员 如果生活的大部分时间都被工作占据着,那么热爱工作就是热爱生活。 比起那些枯燥的简单任务,充满挑战、有驱动力、有回报的工作更能让你有动力在清晨从温暖的被窝里爬起来。工作做得好意味着你在充分发挥着才能。相反,如果工作做得不好,就证明你大部分时间都只能在懊悔,懊悔自己碌碌无为。
破解凯撒密码可以用到一项密码分析技术,叫作暴力算法(brute-force),它的攻击是通过尝试每一种可能解密密文的密钥实现的。没有什么能够阻挡密码分析人员猜测密钥、用密钥解密密文、观察输出,并在没能破解出密文的情况下寻找下一把密钥。正因为这样的暴力算法对凯撒密码来说过于有效,所以在实际应用中根本不应该使用凯撒密码去加密一段秘密信息。 在理想的情况下,一段密文不会落入任何人的手中,然而Kerckhoffs原则(以19世纪密码学家Auguste Kerckhoffs命名)表明,一段密文即使在所有人都知道来源且某些人可能得到的情况下,也应该保持其安全性。20世纪时,数学家Claude S
很早很早之前,我对于架构的概念一点都不理解,依稀记得,架构( architecture)这个词,来自于建筑领域。 这对于我这个没写过几行代码的人来说,瞬间就有了一种“不明觉厉”的崇拜感。 架构,感觉好厉害的样子,从名称上来说,好像是设计根骨,设计底层,设计最核心的东西的人。 架构师,一定很NB,我什么时候能成为架构师呢? 后来懂了一点点代码,去写增删改查,更是体会不出来架构的概念,不就是Sql语句吗?明明DBA更厉害啊,做各种的慢Sql优化,所有的Sql都要让DBA审核,DBA对于Mysql,或者是Oracle的各种性能调忧很厉害,而熟悉业务的开发人员又常常能写出几
空杯、好奇、实践...想当架构师的你应该读读这篇文章什么是架构师? 随便打开某招聘网站:系统架构师、搜索架构师、前端架构师、iOS/Android架构师、平台架构师、(大)数据架构师、JAVA/PHP/.NET架构师、高级架构师、资深架构师、BI架构师,这些是大家常见的,君不见还有后台架构师、MIS/ERP/OA系统架构师、金融系统架构师、搜索架构师、总线架构师、运维架构师,安全架构师......林林总总,不一而足。 仅仅是上面这些岗位名称,就能看到架构师岗位的差异之大,方向不同、技术栈不同、行业不同,即便同一个岗位,水平差距也是天壤之别,如果仅以架构师一个称谓来描述,显然是不
这是一个有关Paxos算法非常形象的讲解与示范。Paxos是能够基于一大堆完全不可靠的网络条件下却能可靠确定地实现共识一致性的算法。也就是说:它允许一组不一定可靠的处理器(服务器)在某些条件得到满足情况下就能达成确定的安全的共识,如果条件不能满足也确保这组处理器(服务器)保持一致。 什么是共识? 具体来说是这样:分布式系统中由于网络之间通讯可能会中断,虽然概率很低,但是没有100%完美的网络因此,依靠网络通讯的计算机之间要达成共识就比较困难,假设有X, Y和Z三台计算机谋划在周一攻击人类世界,它们的攻击计划是只要所有计算机可用于战斗时就一起进行攻击,不落下任何一台机器,但是当他
什么样的企业可以称得上是大数据企业呢?恐怕没有人能够给出一个完美的答案。但是,直观地,我们可能觉得Google更像是一个大数据的企业,阿里巴巴也像是一个大数据的企业,而中国银行似乎不太像一个大数据的企业,尽管它每天也一样浸泡在海量的数据中。 除了具有处理大量数据的能力外,之所以Google和阿里巴巴更像大数据的企业,是因为他们有深入的数据分析工具,利用数据分析的结果直接指导决策,而且经常推出基于数据分析的创新型应用,这还不包括类似于AlphaGo这样的奇葩。(来源:经济日报)