自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西代零零发

既然选择远方,便只顾风雨兼程

  • 博客(424)
  • 收藏
  • 关注

原创 编程这件小事(续)

经常听人(大部分时候是领导:)说的一句话就是写代码简单,业务/设计才是最重要、最值钱的。个人一直不以为然,这种思想的存在当然肯定是有道理。本文的目的也不是要说代码才是最重要的,那无异于走入了另一个极端。这里只是想说:除非把设计做的非常细致,甚至达到了“能运行”的伪代码的级别,否则我们真的没有资格说码代码很简单,因为它确实不简单。随着能力和级别的提升,我们经常被告知要着眼于更大的方面、更高的层次,这...

2018-05-23 02:24:42 1945 4

原创 软件开发复杂度分析

1.软件开发的本质软件开发的首要难题是什么?需求的收集?技术的选型?项目管理?都没错,但用一个词来总结那就是:复杂度!《Code Complete》中引用了Brooks(没错,就是写出了著名的《人月神话》的那位)论文《No Silver Bullets: Essence and Accidents of Software Engi- neering》里对软件开发复杂度的阐述,按照亚里士多德的哲

2018-02-01 05:00:58 4609 4

原创 编程这件小事

大家都知道编程很复杂,工作流程包含需求分析、架构设计、代码实现、测试发布等。每一步又都包含了很多学问,比如架构设计要考虑正确性、扩展性、安全、性能等,如果是分布式系统则还要考虑伸缩性、健壮性等等。这样大的一个主题,那本文为什么说编程是一件小事呢?因为要想一下说清楚一个学科是不可能的,大的方面我们暂且不提。凡事都是从一点一滴做起来的,本文就说说编程中最最微小的细节。只谈谈编程中最小的三个方面:编辑、

2018-01-18 06:14:50 1611

原创 Vim终极指南:所思即所得

关于开发工具方面的书,有两本获得了超高的评价,一本是《Pro Git》,另一本就是本文的主要参考《Practical Vim》,副标题Edit Text at the Speed of Thought更为形象生动——以思考的速度去编辑。这本书中包含了一百多个非常实用的Vim使用技巧,不管你是已经使用Vim多少年的专家,相信都能从中获取新的养分。推荐大家在读完本文后进一步去读一下这本书进行深入学习。

2018-01-05 15:20:35 3055 2

原创 对2018的展望

之前写过一篇《我的2015技术学习流水账》,最近两年因为读研的缘故导致职场的空白期,所以就不做总结(关于读研所学的总结可以参考之前的文章《北美CS求学找工指南》),而是展望一下即将到来的2018年。本文提到的资料书籍都可在《高分编程佳作推荐》中找到,都是高分好书。1.两条战线如果从实习的那年算起,2018年将是进入职场的第十个年头。从二十二岁入行到已经三十有二,可谓感慨良多。为此,分两条主线进行展望

2018-01-03 06:01:02 1618 12

原创 Python+Vim:天作之合

1.与Vim的缘分7年的Java开发生涯,一年半Java和Python混合的研究生学习,到现在最近全职Python开发,不知不觉已经半年没碰Java了。从2013年开始从Eclipse转到Intellij,完全习惯了用JetBrain的产品做各种语言的IDE。现在Python开发也不例外,依旧沿用Intellij IDEA外加Python插件。虽然一直用Intellij这种“重型”IDE,但文本编辑

2017-12-29 03:33:48 21664 2

原创 设计模式沉思录

最近在读一本超高分的编程语言书《Fluent Python》,网评的高分绝对实至名归。这本书引起了两方面的反思:其一是语言学习方面,Fluent用得非常恰当,流利二字反映出我们在学习任何一门新语言时(不管是编程语言还是自然语言),都试图用旧的(母语的)思维去“扭曲”它而没有做到真正的地道和流利,关于这一方面会单独写一篇关于Python学习的文章;其二就是关于设计模式方面的反思,为什么会有设计模式,设

2017-10-02 02:16:14 1877 2

原创 高分编程佳作推荐

编程方面书籍的Top 10榜单大家可能都已经烂熟于心,TAOCP、GoF、CLRS、SICP、《The C Programming Language》、《Clean Code》、《Refactoring》、《Code Complete》、人月神话、龙书等等,这些都是经过了时间考验、需要反复阅读的经典。本文不谈这些人人皆知的经典著作,而是给大家推荐一下比较新的、网评非常好的“新经典”,如果前面那些都已

2017-09-25 09:09:32 2796 2

原创 谈技术资料的阅读方法

作为一名程序员,有几种获取知识的渠道,比如本文将要讨论的技术书籍、开源代码、学术论文。这些可能都不是什么秘密,但每个人都有不同的方式和习惯,也就对应有不同的效果和效率。本文就分享下自己这些年来的一些经验,不一定适用每个人,但也许每个人能有些小的触动和收获。1.技术书籍可能程序员都很少读书,因为这个时代就是这样的特点,读书的人在减少。大家更多地从工作日常获得知识,对于程序员来说比如CSDN、Stack

2017-09-06 07:59:11 1972 4

原创 AWS核心服务概览

1.Amazon Web Service应该可以说,Amazon Web Service目前是云计算领域的领头羊,其业务规模、开发水平和盈利能力在业界内都是首屈一指的。从本科毕业离开学校就一直做Java后端,后来又接触到大型的SOA组件和中间件,现在读研毕业后有幸加入到了AWS开发团队,真是做梦都没想到。在异常复杂的系统、大量资料面前,不敢懈怠,抓住这个学习的好机会学习一下AWS。当然,一来因为刚入

2017-09-02 06:56:52 9693 6

翻译 程序员的八重境界

看到一篇有趣的文章The Eight Levels of Programmers。以前似乎看过不少这种程序员的多少个级别、境界,但这篇语言很风趣,而且分类比较细化,让人觉得挺合情合理、无法反驳的。绝大部分人想成为一名优秀程序员的人,通过努力可以避免1,因为在编程上的追求避开了2,最终可能都停留在4或5。但努力追寻是没有错的,不然没有梦想和咸鱼有什么分别:)。注意一点,作者并没有无脑地批判谁,并没有说

2017-08-31 04:58:50 32830 36

原创 当你编码时你在做什么:谈编程的本质(二)可爱的树

憋了好久的一篇,主题有点大一直没有写完,中间隔了很长时间现在已经有点捡不起来了,索性先发出来吧。至少个人觉得,完成的部分还是总结了一些有用的东西。关于Tree之上的属性、递归算法等,只能等状态回来了再补充了。 I think that I shall never see A poem lovely as a tree. Poems are made by fools like me

2017-08-26 06:22:55 2436

翻译 程序员如何学数学

最近在找一些传统离散数学以外的数学书,想从其他角度补习一下计算机科学相关的数学知识,偶然间就看到一些人都推荐了这篇文章Math For Programmers,通读了一遍果然不错。但文章有点长,所以没逐字逐句地翻译,只是对每个部分做一下总结,并标注了一些写得很不错的地方。非常难能可贵地是,作者并没有像老师或者大牛一样说教或者“炫技”,而是一直在强调两点:兴趣热情和解决问题的直觉。不管通篇作者说了多少

2017-08-22 04:22:22 10236 8

原创 北美CS求学找工指南

这篇文章主要谈谈来美求学工作这一路的点点滴滴,因为之前留言中不少同学对这方面内容比较感兴趣,有些已经在准备,有些还在犹豫,希望本文能对大家有些许帮助。因为来美的途径也有不少,有上学、有投资、有通过国内公司transfer过来,所以这里只能谈谈最了解的求学工作这条路吧。下面是之前写过的一些留学生活方面的文章,按照时间顺序排列:而立之年说离别入学一月谈春夏秋冬又一年毕业了,开始新的生活!关于课

2017-07-28 04:56:58 9688 24

原创 毕业了,开始新的生活!

转眼间就毕业了,短短的18个月过得真快!因为一直忙于上课找工作,所以好久没发文章了。现在已经重新开始上班一个月了,渐渐安稳了下来。开始适应新生活,也重新开始走自己的学习节奏。希望渐渐能多写一些技术文章,继续学习进步!这篇“回归”的文章就先简要总结一下这一年半的经历吧,也算是给过去的生活画上个句号。1.研究生学习总结读研期间最骄傲的三件事儿就是:读了一所不算很有名但是性价比很高的学校,选了很多很好的课

2017-07-25 07:48:07 26032 103

原创 当你编码时你在做什么:谈编程的本质(一)状态机

当你编码时你在做什么:谈编程的本质(一)状态机1.State Machine这学期学习了两门有意思的课,Theory of Computation和Distributed System,一低一高完全两个层次上的分支,却意外地发现两者在理论方面的重叠——那就是状态机。在Theory of Computation中,DFA、NFA、Turing Machine都是非常经典的State Machine,而

2017-01-18 22:22:47 7378 8

原创 当你编码时你在做什么:谈编程的本质(零)

当你编码时你在做什么:谈编程的本质(零)编码时间也不算短了,一直想写这么一篇文章,但苦于知识面和功力不够。经过了一年的读研学习,终于对什么是计算、什么是编程的本质有了些领悟。于是断断续续花了几天时间,斗胆提笔来谈一谈自己的理解。写着写着就越写越多,于是干脆就写成一个系列吧。还没搞懂的就先放下,等搞懂了写好了再发,用这个系列先占个位置,督促自己不断地深入学习,不要停歇。目前已经想到的比较重要的内容有:

2017-01-03 22:07:18 5467 3

原创 如何突破编程学习的瓶颈期

如何突破编程学习的瓶颈期1.谁未曾彷徨对于每个学习编程的工程师来说,肯定都会遇到或长或短的瓶颈期。基本症状就是:不知道该学什么、该怎样继续提高。看什么都能上手弄一弄,但好像又什么都不精通。本文谈谈笔者在不到十年的整个职业生涯中碰到的三次瓶颈期,以及是如何克服的。方法因人而异,本文只供大家参考借鉴。2.真实的项目是什么样这是本人在本科学习时还未实习前最好奇的一点。因为学了C++/JAVA等专业课,尤其

2016-12-31 10:43:12 7948 4

原创 春夏秋冬又一年

春夏秋冬又一年春夏秋冬,一年又一年。可总有那些岁月,可能是几个月,几天甚至一瞬间,让人刻骨铭心难以忘怀的。2016就是我生命中最难忘的一年,不是几个月、几天或者一瞬间,而是满满的一年。到国外求学,学到自己想要的东西,还度过了三十岁的生日,辛苦忙碌却又非常充实而欣慰的一年。1.春:飘洋过海去求学2016最重要的一件事就是:工作了六七年后,又重新回到了校园。本科学习时的种种遗憾,终于有了机会弥补。一整年

2016-12-25 21:34:26 7801 39

原创 当Linux Mint遇上Thinkpad

当Linux Mint遇上Thinkpad1.再谈好工具的重要性大概两年前开始使用Linux Mint,从此无法自拔,真的太方便了!但真正进入Linux世界之前,笔者也是经历了小心翼翼在虚拟机里用Ubuntu、安装Cygwin模拟等一系列的过程,大概也有个两三年的适应之后,才真正在真机上安装Linux Mint的。安装过程出奇的简单,真后悔没早点弄个双系统。以下便是之前整理关于Linux系统安装、开

2016-12-19 03:19:24 8261 5

原创 Leetcode分类解析:二分查找

Leetcode分类解析:二分查找1.原始二分查找1.1 典型例题35-Search Insert Position (Medium): Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it w

2016-08-14 09:04:25 5163 4

原创 Leetcode分类解析:链表

Leetcode分类解析:链表1.分类地图按照惯例,首先来看一下链表在本系列所处的位置:基础结构(Fundamentals) 1.1 数组和链表(Array&List):插入、删除、旋转等操作。 1.2 栈和队列(Stack&Queue):栈的典型应用。 1.3 树(Tree):构建、验证、遍历、转换。 1.4 字符串(String):转换、搜索、运算。积木块(Building Bloc

2016-08-13 08:28:14 4133 2

原创 Linux Mint 18升级失败记

Linux Mint 18升级失败记上月末看到Linux Mint 18发布的消息,非常期待,但官方迟迟没有给出具体的升级办法,于是就没敢轻举妄动。今天看到官方终于发布升级手册了,于是简单备份了一下系统(大部分重要资料都保存在DropBox了)就开始动手升级了。结果不出所料,失败了,千小心万小心,还是没躲开这一劫……1.升级失败满心欢喜按照升级Instruction一步步来,结果在最后一步升级各种包

2016-07-15 09:37:23 8271 1

原创 Leetcode分类解析:组合算法

Leetcode分类解析:组合算法所谓组合算法就是指:在解决一些算法问题时,需要产生输入数据的各种组合、排列、子集、分区等等,然后逐一确认每种是不是我们要的解。从广义上来说,组合算法可以包罗万象,甚至排序、各种搜索算法都可以算进去。最近读《The Algorithm Design Manual》时了解到这种归类,上网一查,甚至有专门的书籍讲解,而且Knuth的巨著TAOCP的第四卷就叫组合算法,看来

2016-07-04 23:47:17 8020 4

原创 操作系统内核的绝佳学习材料——JOS

操作系统内核的绝佳学习材料——JOS前言:关于JOS和一些经验之谈这一学期的操作系统课使用的是MIT用于教学的JOS操作系统,并且StonyBrook在其基础上做了大量改动,最重要的变化就是从32位移植到了64位。因为个人之前曾系统学习过Linux 0.11内核(《操作系统内核Hack:(四)内核雏形》,实现到时钟中断部分停下了),深知自己从零开始实现内核的工作量。即便是如我个人实

2016-06-23 07:20:14 14385 3

原创 深入数据库理论:查询语言

深入数据库理论:查询语言“Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. In our lab, theory and practice are combined: nothing works and no one knows w

2016-06-22 22:52:16 7959 2

原创 关于算法,那些你不知道的事

关于算法,那些你不知道的事1.算法,不止于刷题提到算法,不管是科班出身还是半路出家的程序员可能都会说上几句,算法谁没学过谁不知道啊?对于走工业界路线而非学术路线的同学来说,算法学习的最大作用也许是找工作…… 毕竟工作后,绝大多数时候都用各种成熟的类库,少有自己实现高级数据结构和算法的时候。但刚结束一学期修的算法课,上得我还真跟没学过算法似的,让我大开眼界,虽然每次课上我都听的不是很懂,但每节都期盼着

2016-06-20 23:41:44 11603 6

原创 Leetcode算法题分类解析:(一)总览

Leetcode算法题分类解析:(一)总览1.为何/如何刷题1.1 必要性刷题刷题,从“刷”字就能看出其中的机械性和应试性,但这就是几乎所有IT公司面试中的一环。尽管面试者可能也对这种考察方式不是很满意,可在没有更好的方式之前,这个现状会一直保持下去。我们改变不了这个现状,那就适应它吧。1.2 分类攻破为什么要这么麻烦地分类呢?照着Leetcode的题目顺序做不就好了?个人觉得分类有几个动机:一是

2016-06-17 23:01:03 12523 3

原创 十年之后重学C语言

十年之后重学C语言1.每个程序员都该有本翻烂的K&R1.1 多次自学,不得其法距离大学时学习C语言已有十个年头了。印象里最深的就是当时一位海归老师,在讲课时流露出对K&R的崇敬之情,以及用Hanoi塔的例子讲解递归。但当时的我还无法体会,也只是不走心的听听。那时的我还不知道K&R有多牛,递归有多重要。十年间经历了很多项目,也业余时间自学了很多东西。温习过C、自学过汇编、尝试操作系统内核。看过不少推荐

2016-06-11 02:30:58 13581 10

原创 CS研究生学习阶段必读书籍

CS研究生学习阶段必读书籍书单、书单、还是书单现在各种大牛推荐的书单已经太多太多了,大多包含如《Code Complete》、SICP、龙书等等经典之作,但后果就是十分雷同。因为特别经典的书的数量有限吧,多少年也出不了一本吧。所以,为了能有些新意,笔者决定推荐书单时针对特别群体或特别话题,让推荐的东西更多样性、有趣,也更有价值一些。本文就针对计算机科学专业的研究生群体,推荐一些教材和必读书籍。特别说

2016-06-05 10:52:37 12696 4

原创 留美CS学习的第一学期总结

留美CS学习的第一学期总结来美学习的第一学期就这么结束了!总体来说,在StonyBrook的这一学期没有辜负我的期望,有些方面甚至远超出我的预期。用受益匪浅四个字都不足以形容收获之大,夸张一点说:可能学到了许多自己可能一辈子都不会想到的东西。下面简单整理一下自己的心得和收获,有些东西也许对大家开阔思路能有些帮助。1.专业与课程特点CS专业可能是研究生专业里属得上的“累”专业了,学习压力是很大的!几乎

2016-05-21 07:06:32 9725 8

原创 算法学习的新阶段

算法学习的新阶段最近忙得一塌糊涂,所以根本没时间总结整理学习成果了。之前刚开学不太忙时写了几篇都没写完,因为发现面前开启了一道道大门,想系统整理的东西太多了。于是时隔快两个月,先发一篇以作记录,系统整理只能等到暑假开始时了……1.基本数据结构一开始接触到算法是在大学,具体有什么用也不清楚。但老师一般都说:算法+数据结构=程序。当时听起来觉得太重要了(确实重要,但现在知道了,程序的世界何止算法和数据结

2016-04-10 06:48:55 4917 2

原创 入学一月谈

不觉间已经来美国快一个月了,感觉还像一场梦。从以前熟悉的生活圈子,每天起来朝九晚五地上班下班,回家吃饭看电视看书,到现在每天一睁眼从陌生的环境醒来,点点滴滴,要学习的很多。来了之后的第一大问题就是时差了。在飞机上凌晨三点多才睡到,早上七点又醒了。然后下午四点多下飞机,其实正是纽约的凌晨。等到了宿舍,收拾行李,然后打起精神出去找吃的。最后,坚持到纽约时间的晚上九、十点再睡。实际上就相当于快两天只睡了飞

2016-02-08 06:32:20 4979 23

原创 Git幕后的“故事”

实验要求必读《Understanding git conceptually》,觉得确实不错,于是就简单地记录一下。作者开篇说到:仅仅记住在什么时候用什么命令是不够的,出问题只是早晚的事。只有理解了Git的工作原理,才算真正学会Git。遗憾的是大部分网上的教程都只是教你在何时使用哪个命令,然后让你去模仿。说得这么好,那就看看作者这篇教程是否把Git的工作原理讲清楚了。注意:以下1.2.1到1.2.3都

2016-02-06 05:09:49 5344 2

原创 而立之年说离别

明天就要正式开课了!从大四实习离开校园,到今天重返,阔别了七年半。而立之年飘扬过海,远离故乡,远离亲朋,心中五味杂陈、百感交集……本以为会热泪盈眶、心潮澎湃、脑中浮现各种英雄人物事迹,事实却是当我经过十五个小时的飞行,清晨六点走出肯尼迪机场,在冷风中看着还未苏醒的纽约时,我的内心异常平静。如果你很想要一样东西,你立刻就得到了,你可能会激动万分。如果你非常想做一件事,经过几年的付出和等待,时间被这样拉

2016-01-25 11:58:38 6269 32

原创 我的2015技术学习流水账

我的2015技术学习流水账2015年马上就要过去了,匆匆忙忙地又是一年。回头总结整理,发现这一年还挺充实的。在正常上班工作之余,学习到了不少新东西,不禁感到很欣慰!一个多月前就开始写,终于赶在2016年来临之前写完了这篇文章…… 关于本文,尽管叫做流水账,但是出于程序员条理性的“强迫症”,还是进行系统分类,分类方法参照Thoughtworks技术雷达的Tecniques、Languages & Fr

2015-12-30 21:30:28 5415 15

原创 Java程序员的现代RPC指南

Java程序员的现代RPC指南1.前言1.1 RPC框架简介最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦。于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大作业里凡是涉及到分布式通信的都用RMI,真是方便。后来用上了Spring,发现Spring提供了好多Exporter,可以无侵入地将一个POJO暴露为RPC服务。接触了这么多RPC框架后,发现当时公司内部自己

2015-12-05 11:37:55 5618

转载 我对读计算机软件专业硕士的几点看法

分析得比较深刻的一篇好文,原文出处找不到了...就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。  如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计划上就没有把你往这方面带。当然能不能更上一层楼最终还是完全取决于你自己。需要特别说明的是,工作经验并不一定等于

2015-11-30 22:26:37 3220

原创 Hadoop加速器GridGain

GridGain的Hadoop加速器像GridGain等内存网格产品(IMDG)不仅可以作为简单的缓存,加速Hadoop中MapReduce计算也是IMDG的一个亮点。这样内存计算领域又多了一种思路和选择,而不只是Spark独霸一方的局面。关于GridGain的功能介绍请参考《开源IMDG之GridGain》。1.安装Hadoop 2.7.1很早之前写过一篇《Hadoop入门(一):Hadoop伪分

2015-11-14 19:40:00 3623

原创 BDD敏捷开发入门与实战

BDD敏捷开发入门与实战1.BDD的来由2003年,Dan North首先提出了BDD的概念,并在随后开发出了JBehave框架。在Dan North博客上介绍BDD的文章中,说到了BDD的想法是从何而来。简略了解一下BDD的历史和背景,有助于我们更好地理解。1.1 TDD的困惑Dan在使用TDD敏捷实践时,时常会有很多同样的困惑萦绕脑海,这也是很多程序员敏捷实践都想知道的:where to st

2015-11-06 22:11:20 8352

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除