Browsed by
标签:Linux

9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路

9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路

閱讀本文約花費: 48 (分鐘)1,简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。  首先说说我拿到的offer情况: 微软,3面->终面,搞定 百度,3面->终面,口头offer 搜狗,2面,悲剧 腾讯,1面,悲剧 布丁移动,3面,搞定 涂鸦游戏,3面,搞定 友盟,3面->CEO面,搞定 雅虎,4面->终面,搞定 微策略,2面,悲剧 人民搜索,3面->终面,搞定 人人,2面+终面+Special面,搞定 Google,7面,搞定 求职经历分为定位、准备、简历、笔试和面试这五个部分,大家挑感兴趣的看就成。 我的求职经历适用但不限于码农,不适用与企事业单位(据说是完全不同的考察标准和流程)。废话比较多,大家耐心忍受,有什么问题可以跟帖提问。 2,定位 教育经历:本科在大连某工科院校,由于GPA比较惨烈+挂科,所以没保成研,毕业后修了一年英语双学位,然后到帝都计算机职业教育学院接受再教育。 技术能力:属于半码农半产品的类型,代码编的过去(搞过compiler),也有一些拿的出手的产品(几十w的用户量),一句话描述:几十w代码+几十w用户的Coder。 专业能力:非ACM出身,算法拙计但基础扎实。由于单身所以看了N多书(CS+心理+经管+历史),扯淡能力强大,碰到非专业的各种秒杀,碰到专业各种拙计。 …

Read More Read More

架构设计-谈谈架构

架构设计-谈谈架构

閱讀本文約花費: 32 (分鐘) 本文首先介绍了架构的概念定义,并介绍如何针对当前需求,选择合适的应用架构,希望对您的学习有所帮助。 1、什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构: 一、系统与子系统 系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。 子系统:也是由一群关联的个体组成的系统,多半是在更大的系统中的一部分。 二、模块与组件 都是系统的组成部分,从不同角度拆分系统而已。模块是逻辑单元,组件是物理单元。 模块就是从逻辑上将系统分解, 即分而治之, 将复杂问题简单化。模块的粒度可大可小, 可以是系统,几个子系统、某个服务,函数, 类,方法、 功能块等等。 组件可以包括应用服务、数据库、网络、物理机、还可以包括MQ、容器、Nginx等技术组件。 三、框架与架构 框架是组件实现的规…

Read More Read More

程序员必读书单 1.0

程序员必读书单 1.0

閱讀本文約花費: 80 (分鐘)本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。 前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力: 良好的 程序设计 能力: 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列); 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络); 熟悉至少两门以上编程语言(例如 C++,Java,C#,和 Python); 专业的 软件开发 素养: 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码; 把握客户需求,按时交付客户所需要的软件产品; 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。 和其它能力一样, 程序设计 能力和 软件开发 素养源自项目经验和书本知识。项目经验因人而异(来自不同领域的程序员,项目差异会很大);但书本知识是相通的…

Read More Read More

这多年来我一直在钻研的技术

这多年来我一直在钻研的技术

閱讀本文約花費: 15 (分鐘)因为我是看到tinyfool 《那些年我赶过的时髦技术趋势》(微博原文链接已失效,现更改为Google搜索的内容),在赞叹的时候,也让我对我有好些回忆,所以想写一篇回忆贴,本来觉得回忆是件挺让人沮喪的事,因为是老了的表现,但我写着写着,就歪了楼。看来,我还不老,还在拼博。下面是很多我的唠叨,你喜欢就读读,不喜欢就TLDR – Too Long, Don’t Read! 自从98年毕业,到今天,参加工作有18个年头了,加上在大三的时候就为两个在外面接活的老师程序,到今天,写的程序被用到生产线也有18个年头了。 背景经历 要说明我技术上的“性取向”,还得我说说的我的一些背景和经历。 我这18年,大约分三个阶段: 1996年-2000年:入门乱来期,大三大四加在银行工作的两年。 用Powerbuilder/Delphi在WindowsNT/SQL Server上做了好多个MIS管理软件,有酒店的,有送水的,有OA的。  用Java的Applet做了一个Web的教学课件,用于在Win95/IE3.0中演示操作系统中的各种调度和算法的动画,得了个全国大学生挑战者杯的鼓励奖。  用Delphi的ISAPI技术以及PHP/ASP给一些公司和大学做过几个网站。 2000年-2010年:技术学习期,这十年,我主要的编程语言是C/C++。 前两年在银…

Read More Read More

怎样花两年时间去面试一个人

怎样花两年时间去面试一个人

閱讀本文約花費: 41 (分鐘)Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:))。他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他们不赖的待遇,所以他们也不想挪窝。(刚刚去世的Dennis Ritchie就是这样一个人)而“人才”市场上能找到的大多都不是什么人才。招到这帮人轻则费钱重则把你公司搞挂。 (当我把这篇文章给邹欣老师review的时候,他说了另外两点:1. 最好的人也许不投简历,就决定去哪里了。所以要在他们做决定前找到他们。2. 比较差的会投很多次简历,找不到工作的时间越多,投的简历越多,给整个pool 带来很多噪音,top10%的简历也许根本不算全部人的top10%。) 诚然,也许没有哪个行业像IT行业这样,无形资产占据公司的绝大多数资产。拒坊间传言比尔·盖茨就曾经说过类似这样的话:只要允许我带走100个人我可以再造一个微软。这话没搜到原版出处,但是从一个侧面反映了IT公司当中智力资产所占的比例之重。 所以一个自然的推论就是,招聘也许是一个公司决策当中最最重要的一个环节。Joel Spolsky把他在这方面的观察,体会和洞见集结成了一本小册子《Smart and Gets Things Done》,开篇就挑战“产品是公司成败的关键”这个传统观念,他认为创造最适合工程师生…

Read More Read More

负载均衡基础知识

负载均衡基础知识

閱讀本文約花費: 18 (分鐘)一、什么是负载均衡?  互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显了出来,因此需要多台机器来进行性能的水平扩展以及避免单点故障。但是要如何将不同的用户的流量分发到不同的服务器上面呢?  早期的方法是使用DNS做负载,通过给客户端解析不同的IP地址,让客户端的流量直接到达各个服务器。但是这种方法有一个很大的缺点就是延时性问题,在做出调度策略改变以后,由于DNS各级节点的缓存并不会及时的在客户端生效,而且DNS负载的调度策略比较简单,无法满足业务需求,因此就出现了负载均衡。  客户端的流量首先会到达负载均衡服务器,由负载均衡服务器通过一定的调度算法将流量分发到不同的应用服务器上面,同时负载均衡服务器也会对应用服务器做周期性的健康检查,当发现故障节点时便动态的将节点从应用服务器集群中剔除,以此来保证应用的高可用。  负载均衡又分为四层负载均衡和七层负载均衡。四层负载均衡工作在OSI模型的传输层,主要工作是转发,它在接收到客户端的流量以后通过修改数据包的地址信息将流量转发到应用服务器。  七层负载均衡工作在OSI模型的应用层,因为它需要解析应用层流量,所以七层负载均衡在接到客户端的流量以后,还需要一个完整的TCP/IP协议栈。…

Read More Read More

HAProxy Nginx LVS Apache总结篇

HAProxy Nginx LVS Apache总结篇

閱讀本文約花費: 8 (分鐘)一、今天花点时间总结分享一下HAProxy、Nginx、LVS、Apache: 比较 HAProxy Nginx LVS Apache   简介 高可用、负载均衡且基于TCP和HTTP应用的代理,支持高并发,多集群反代。 高性能http和反向代理服务器、邮件代理服务器,支持高并发,轻量级Web,低系统资源消耗。 Linux虚拟服务器,常用VS/NAT、VS/TUN和VS/DR,三种模式负载均衡。 高性能Web服务器,支持代理,市场份额很高。   优点缺点 1、抗负载能力强,负载均衡速度高。2、支持session保持,Cookie引导,可通过url检测后端服务器健康状态。3、也可做MySQL、Email等负载均衡。4、一般不做Web服务器的Cache。 1、抗负载能力强。2、http、https、Emai协议功能较好,处理相应请求快。3、Web能力强,配置简单,支持缓存功能、适用动静分离,低内存消耗。4、不支持session直接保持,但可通过ip_hash解决,通过端口对后端服务器健康检查。 1、抗负载能力强。2、通过vrrp转发(仅分发)效率高,流量通过内核处理,没有流量产生。(理论)3、相当稳定可靠。4、不支持正则,不能做动静分离,配置略复杂,需要IP略多。 1、Web处理能力强,市场份额很高。(不过后期Ngi…

Read More Read More

Java 常见的几种 OOM

Java 常见的几种 OOM

閱讀本文約花費: 6 (分鐘)1、StackOverflowError(栈空间溢出) public class StackOverflowErrorDemo { public static void main(String[] args) { main(args); // Exception in thread “main” java.lang.StackOverflowError }} 上面这种 OOM 比较好理解,在 main 方法中循环调用 main 方法,循环产生的大量形参都会在栈空间进行创建,当超过栈空间的大小,就会导致栈空间溢出,发生 OOM。 2、Java Heap Space(堆空间溢出) public class JavaHeapSpaceDemo { public static void main(String[] args) { // 我配置了虚拟机参数 -Xms10m -Xmx10m 初始化堆内存和最大堆内存都是 10m byte[] b = new byte[20 * 1024 * 1024]; // 这里 new 了 20m 的字节数组 // Exception in thread “main” java.lang.OutOfMemoryError: Java heap space }} 上面的这个 OOM 也比较好理解,我给 JVM 设置的初始化堆内存…

Read More Read More

十五张图带你彻底搞懂从 URL 到页面展示发生的故事

十五张图带你彻底搞懂从 URL 到页面展示发生的故事

閱讀本文約花費: 2 (分鐘) 某一天小林去面试,面试官说问你一道经典面试题吧,从“输入一个URL到页面展示中间发生了什么?”,小林一听激动了,心里暗自高兴说这道题我背过呀,然后哗啦哗啦开启了背书模式。背完之后面试官不是很满意,思路并不是很清晰呀!!!(纯属个人杜撰的小故事,切勿当真。) 下面就让我们来唠一唠这个小问题,有不准确的地方还望各位大佬指正。对于这个问题将从浏览器包含的进程着手,然后用用一张图来展示整体流程,最后分别从导航阶段和*渲染阶段*两个方面详细阐述从输入一个URL到页面展示中间发生的过程。 一、浏览器进程 在聊上述话题之前要意识到目前浏览器处在多进程时代,包含浏览器进程、渲染进程、GPU进程、网络进程、插件进程 二、整体流程 用一张图来表示整个流程,整个流程包含导航阶段和*渲染阶段*两大部分,其中每个具体细节所需要的进程如下图所示。 三、导航阶段 导航阶段主要包含用户输入、URL请求、准备渲染进程、提交文档四个部分 3.1 用户输入 3.2 URL请求过程 3.3 准备渲染进程 3.4 提交文档 四、渲染阶段 当文档数据传输完成后将进入渲染阶段,渲染阶段主要包含构建DOM树、样式计算、布局阶段、分层、图层绘制、分块、栅格化操作、合成和显示。其整个渲染阶段流程如下图所示。 4.1 构建DOM树 4.2 样式计算 4.3 布局阶段 4.4 分层 4.5 图层绘制 4….

Read More Read More

Linux下如何高效切换目录?

Linux下如何高效切换目录?

閱讀本文約花費: 6 (分鐘)Linux 下对于目录的切换,大家肯定会想到一个命令:cd 命令。这个是 Linux 下再基本不过的命令,如果这个命令都不知道的话,赶紧剖腹自尽去吧。 cd 命令确实很方便,但如果需要频繁在下面的目录切换,你可能要怀疑人生了: 如果只会 cd 命令的话,那么就需要不停地 cd ,直到你发疯。 在这种情况下,我们如何高效进行目录切换呢?良许给大家介绍三个命令:pushd 、 popd 、 dirs 。 这三个命令其实都是对 目录栈 进行操作,而 目录栈 就是一个保存目录的栈结构,该栈结构的顶端永远都存放着当前目录(敲黑板了,重点!!)。 有编程基础的同学都知道,栈 都是遵循着 后进先出 的原则。也就是说,在栈结构里,后面进栈的元素,将先出栈。 复习完基本概念,我们再来详细这三个命令。 显示目录栈内容:dirs 首先是 dirs 。这个命令很简单,就是显示目录栈的内容。它有以下三个常用选项: 选项 含义 -p 每行显示一条记录 -v 每行显示一条记录,同时展示该记录在栈中的index -c 清空目录栈 其中,-p 与 -v 选项的区别是,-v 选项将显示每条记录在栈中的…

Read More Read More

消息疯狂堆积!RocketMQ 出 Bug 了?

消息疯狂堆积!RocketMQ 出 Bug 了?

閱讀本文約花費: 21 (分鐘)前言 用过 MQ 的同学,可能会遇到过消息堆积的问题。而肥壕最近也踩上了这个坑,但是发现结果竟然是这么一个意料之外的原因而导致的。 正文 那一晚月黑风高,肥壕正准备踏上回家的路,突然收到告警短信轰炸!“MQ 消息堆积告警 [TOPIC: XXX] ” 肥壕心里“万只草泥马崩腾~” 第一反应是:“怎么肥事?刚下班就来搞事情???” 于是乎赶回公司赶紧打开电脑,登上 RocketMQ 后台查看(公司自己搭建的开源版RocketMQ) 握草 (キ`゚Д゚´)!!! 竟然堆积了3亿多条消息了??? 要知道出现消息堆积无在乎这个问题: 生产者的生产速度 >> 消费者的处理速度  1. 生产者的生产速度骤增,比如生产者的流量突然骤增 2. 消费速度变慢,比如消费者实例 IO 阻塞严重或者宕机 擦了一下头上的冷汗😓…赶紧登上消费者服务器瞧瞧。 应用运行正常!服务器磁盘IO 正常!网络正常! 再去上去生产者的服务器,咦…流量也很正常! 什么???佛了😨 …生产者和消费者的应用都很正常,但是为什么消息会堆积怎么多呢?看着这堆积的数量越堆越多(要是这是我头发的数量那该多好啊),越发着急。 虽然说 RocketMQ 版能支持 10 亿级别的消息堆积,不会因为消息堆积导致性能明显下降,&#x1…

Read More Read More

Kubernetes 网络通讯模型解析

Kubernetes 网络通讯模型解析

閱讀本文約花費: 7 (分鐘)Kubernetes 基础架构 架构图 从架构图看到,一次外部访问请求,并不会直接请求到kubernetes中具体的某个集群或者某一个资源模块,是需要经过各模块资源间的调度来完成的。网络 继续剖析Kubernetes的网络,如上图我们可以发现Kubernetes存在3种网络:节点网络,Pod网络,Service网络,最后再加上Internet与Service之间的网络总共4种。 于是我们可以总结Kubernetes需要解决4种通信模式:     1.容器和容器之间的通信     2.Pod和Pod之间的通信     3.Pod和Service之间的通信     4.Internet和Service之间的通信 容器和容器之间的网络 每一个Pod管理着一个或多个container,而对于同一个Pod之间的容器之间共享一个网络命名空间,它们之间可以直接通过localhost进行访问通信,这里以docker作为容器为例,容器间正好采用了container模式,额外创建启动一个容器,而这个容器不会有自己的网卡以及配置IP地址,而是和一个指定的容器共享IP和端口; 在Kubernetes里面每一个Pod都有…

Read More Read More

炸裂!40+ 图万字长文拿下 HTTP

炸裂!40+ 图万字长文拿下 HTTP

閱讀本文約花費: 38 (分鐘)>本文将从以下几个方面进行分享。其中包括HTTP发展史,HTTP缓存代理机制,常用的web攻击,HTTP和HTTPS的流量识别,网络协议学习的工具推荐以及高频HTTP与HTTPS的高频面试题题解等,开工。 @ 1989年,蒂姆·伯纳斯 – 李(Tim Berners-Lee)在论文中提出可以在互联网上构建超链接文档,并提出了三点. URI:统一资源标识符。互联网的唯一ID HTML:超文本文档 HTTP:传输超文本的文本传输协议 1 HTTP应用在哪儿 学习一门知识,采用五分钟时间看看这个知识是干啥的可能会更加有目的性。HTTP可谓无处不在,这里例举出几个。 2 HTTP是什么 HTTP(hypertext transport protocol)翻译过来为”超文本传输协议”,文本可以理解为简单的字符文字组合,也可以理解为更为复杂的音频或者图像等。那么将这个词语拆分为三个部分。 “超文本”和”文本”相比多了一个字”超”,这样看来比文本丰富,因为它可以将多种文本/图像等进行混合,更重要的是可以从一个文本跳转到另一个文本(文本连接)。 “传输”,传输的过程中需要沟通,沟通即可能一对一沟通也可能一对多沟通(进行内容协商),…

Read More Read More

非科班学习编程一定得知道这几个网站!

非科班学习编程一定得知道这几个网站!

閱讀本文約花費: 2 (分鐘) 有些才开始学习计算机的小伙伴,不知道哪里去哪些网站学习课程,其实最开始通过视频的学习可以了解技术的整体架构,然后再去阅读经典书籍并实战就好了,下面盘点一下曾经留下过脚印的国内网站。原文已经收录开源项目LinuxGuide 1 B站 这不是二次元网站么,嗯,对。但是很多”大佬”的良心课程很多都放在这里了,白嫖军,我们随便看几个 计算机速成 c++百万高并发 这个视频,当时秋招的时候很多小伙伴就拿来学习修改,收获真的很大 2 学堂在线 学堂在线是清华大学于发起建立的慕课平台,曾经看过Linux内核分析与应用,这门课结合《Linux内核设计与实现》书籍而出,有时间可以去看看。 3 visualgo 这一个是可视化各种数据结构,可以去看一波,效果如下 4 github 通过关键词搜索的方法去定位自己需要的项目,并跑起来调试修改。 5 牛客网 牛客网有大量的笔试面试题,公司内推等,准备面试的小伙伴可以多多关注,多多练习相关的题,找找感觉 6 51自学网 为什么不是慕课网,腾讯课堂等,这个有一定的私心,当初高中的时候学习ps就是在上面学习的,现在已经完全改版了。但是平面设计等还是不错的网站 7 leetcode 面试大厂必看的网站,上面将算法进行了分类,建议上手就刷二叉树 8 Stack Overflow Stack Overflow是I…

Read More Read More

云上 ARM 实例应用优化之我见

云上 ARM 实例应用优化之我见

閱讀本文約花費: 22 (分鐘) 亚马逊AWS官方博客 发布于:2020 年 8 月 10 日 10:00 ARM 处理器的崛起 过去两个月的科技媒体上关于 ARM 芯片的新闻可谓是高潮迭起,不断的引起人们的关注。 首先是在 5 月 11 日,AWS 宣布了基于自研的 Graviton 2 处理器(使用了 ARM Neoverse N1 核心)的第六代 EC2 实例 – M6g 正式发布。这似乎揭开了云计算市场上 ARM 处理器大规模应用的的序幕。 紧接着,在今年 6 月 23 日的 WWDC 大会上,Apple 公司宣布了一个影响深远的决定: 计划从 2020 年年底开始,Mac 计算机将会从 Intel 芯片过渡到使用基于 ARM 的自研芯片。也许我们要问,ARM 处理器将将会在桌面设备上复制移动设备的成功吗? 第三则新闻是关于高性能计算。6 月 22 日发表的最新的一期 TOP500 榜单上,日本的 Fugaku 系统以 415.5 千万亿次浮点运算的高性能 LINPAC 成绩成为 TOP500 的第一名。而令人惊讶的是这是第一个使用 ARM 处理器的高性能处理系统。 林林总总,即使我们是半导体行业的门外汉也不难得出一个结论 – ARM 处理器不仅仅统治了手机、嵌入式应用这些传统的优势领域,或将在桌面系统、高性能计算尤其是云计算领域扮演越来越重要的角色。 EC2 上的 ARM…

Read More Read More

Nacos 企业级落地实践

Nacos 企业级落地实践

閱讀本文約花費: 16 (分鐘)前言 在高速发展的时候,公司规模越来越大,老师人数越来越多,这时候公司不能铺太多人去做运营与服务,必须提高每个人效,这就需要技术驱动。因此掌门教育转变成一家技术驱动型的公司,如果被迫成为一家靠资金驱动的公司就活不下去了。 ——张翼(掌门教育创始人兼 CEO) 掌门教育自 2014 年正式转型在线教育以来,秉承“让教育共享智能,让学习高效快乐”的宗旨和愿景,经历云计算、大数据、人工智能、 AR / VR / MR 以及现今最火的 5G ,一直坚持用科技赋能教育。掌门教育的业务近几年得到了快速发展,特别是今年的疫情,使在线教育成为了新的风口,也给掌门教育新的机遇。 随着业务规模进一步扩大,流量进一步暴增,微服务数目进一步增长,使老的微服务体系所采用的注册中心 Eureka 不堪重负,同时 Spring Cloud 体系已经演进到第二代,第一代的 Eureka 注册中心已经不大适合现在的业务逻辑和规模,同时它目前被 Spring Cloud 官方置于维护模式,将不再向前发展。如何选择一个更为优秀和适用的注册中心,这个课题就摆在了掌门人的面前。经过对 Alibaba Nacos 、HashiCorp Consul 等开源注册中心做了深入的调研和比较,最终选定 Alibaba Nacos 做微服务体系 Solar 中的新注册中心。 背景故事 掌门教育微服务面临…

Read More Read More

Scroll Up