当前搜索:

[置顶] 程序员修炼之路

0.前言:在路上,再上路在前言《程序员修炼之路-(0)前言:在路上, 再上路》中已经对知识体系进行了梳理,主要分为问题定义、算法与数据结构、系统平台API、编程语言实现、代码设计、测试验证等等。目前集中精力编写算法与数据结构部分,这可能也是最艰难的一部分。其他部分之前零零散散有所涉及,之后再慢慢补充。1.计算机数学离散数学与具体数学。2.算法分析设计对于这一部分的内容编排,主要以《算法设计与分析基础...
阅读(5140) 评论(6)

[置顶] 内存计算技术资料整理

先来看一下一张技术的全景图,其中涉及内存计算的技术标成红色。 1)事务处理:主要分为Cache(Memcached, Redis, GemFire)、RDBMS、NewSQL(以VoltDB为首的)三部分,缓存和NewSQL数据库是关注的重点。2)流式处理:Storm本身只是计算的框架,而Spark-Streaming才实现了内存计算式的流处理。3)分析阶段的对比:Ø  通用处理:MapReduc...
阅读(11639) 评论(3)

设计模式沉思录

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

高分编程佳作推荐

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

谈技术资料的阅读方法

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

AWS核心服务概览

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

程序员的八重境界

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

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

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

程序员如何学数学

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

北美CS求学找工指南

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

毕业了,开始新的生活!

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

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

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

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

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

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

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

春夏秋冬又一年

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

当Linux Mint遇上Thinkpad

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

Leetcode分类解析:链表

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

Linux Mint 18升级失败记

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

Leetcode分类解析:组合算法

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

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

操作系统内核的绝佳学习材料——JOS 前言:关于JOS和一些经验之谈 这一学期的操作系统课使用的是MIT用于教学的JOS操作系统,并且StonyBrook在其基础上做了大量改动,最重要的变化就是从32位移植到了64位。因为个人之前曾系统学习过Linux 0.11内核(《操作系统内核Hack:(四)内核雏形》,实现到时钟中断部分停下了),深知自己从零开始实现内核的工作量。即便是如我个人实...
阅读(8775) 评论(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...
阅读(5967) 评论(3)
368条 共19页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:3205233次
    • 积分:23854
    • 等级:
    • 排名:第312名
    • 原创:309篇
    • 转载:56篇
    • 译文:3篇
    • 评论:1561条
    博客专栏
    最新评论