代码
廖振钦
这个作者很懒,什么都没留下…
展开
-
5星微软比赛题目
题目描述:在微软云计算服务的机房,有很多机器上跑着一个或者多个的虚拟机。在一段时间里,有很多用户会来请求建立虚拟机,或者把虚拟机关闭。这个时候,一个最重要的问题,是如何把用户的请求分配到不同的机器上。这里我们把实际的问题简化成对CPU的申请。假定有M台机器用来服务用户,我们把机器编号成0到M。每台机器有多个CPU核,我们把核编号为0到Cm。当用户在申请资源的时候,会生成一个转载 2014-11-20 18:14:31 · 482 阅读 · 0 评论 -
什么才是程序员的核心竞争力?
学习能力,尤其是自学能力,你啥时看到那些有名的程序高手在论坛上问“学习 XX 该看什么书,如何快速学习 XXX,学习 XXX 有什么代码推荐”之类的问题,他们想学什么很快就能自己找到相关资料。这个行业发展太快,技术淘汰的速度也很快,3 年不学新东西就可能落伍了。动手能力,都是看书看资料,当别人还在纠结看什么书,还在纠结书里的字句是什么意思的时候,有些人的几百上千行代码都已经能运行了。耐心和转载 2014-12-27 16:43:59 · 359 阅读 · 0 评论 -
不要让经验禁锢你的编程思维
最近我正在读Do More Faster这篇文章,虽然此文好像有点是在为TechStars的创建做宣传,但是还是不失为一篇好文。最让我印象深刻的是,有些明明已经有了成功的条件,至少创业资金是不缺的,但是事到临头,却不知道该如何着手去编程。学会编程,他们就能够实现自己的想法,学以致用了。打个比方,这就像心中有一些关于音乐的设想,那么你需要学习如何演奏才能把它表达出来。当然,其中的学习转载 2014-12-12 11:24:49 · 564 阅读 · 0 评论 -
杰出程序员永远都不会说的几句话
作为一名软件工程师和一个有着12年经验的项目组领导人,我有很多机会和那些非常有才华的程序员做交流。通过沟通,我发现了一个很有意思的现象,那就是下面这些话几乎从来没有从这些令人膜拜的程序员嘴中说出来过。“我习惯于使用______,但我不知道它是如何工作”杰出的程序员源于自己的好奇心和不断的探索,这样才掌握了一项项非凡的技能。他们会仔仔细细研究事物运作的原理,即使这些信息可能永转载 2014-12-12 11:28:12 · 519 阅读 · 0 评论 -
为什么程序员的开发项目总是半途而废?
很多程序员的项目常常半途而废。他们有那么多的好点子,但是很多都流于空想。几乎每一个软件开发者都有一个这样的文件夹,里面很多都是些还没完工的项目,而这些程序里有不少在它诞生初期真心是个超棒的点子。和这些人一样,我也有很多好主意,有的甚至就是现在有些企业在用的。比如正决定着在eBay上还是在Amazon上做电子商务获利、做一个以业务为基础的社交网络(水管业、电子行业、软件开发等)、比特币搜索引擎、开发转载 2014-12-12 11:31:35 · 458 阅读 · 0 评论 -
基于八叉树的网格生成算法剖析
基于八叉树的网格生成算法剖析前言 对于网格生成这个主题,之前的网格生成系列的三篇博客文章分别介绍了MC算法,SMC算法以及Cuberille算法三种方法。同时还有一篇介绍网格生成与种子点生长算法高效结合的算法。本篇文章继续这一主题,介绍采用八叉树结构来进行网格生成的算法,这个算法并不是独立于之前介绍的算法,而是基于了SMC算法,同时也采纳了一些MC算法范畴内的思想。换句话说,转载 2014-12-13 23:02:12 · 1399 阅读 · 0 评论 -
鲜为人知的编程真相
当程序员的经历让我知道了一些关于软件编程的事情。下面的这些事情可能会让朋友们对软件开发感到惊讶:一个程序员用在写程序上的时间大概占他的工作时间的10-20%,大部分的程序员每天大约能写出10-12行的能进入最终的产品的代码 — —不管他的技术水平有多高。 好的程序员花去90%的时间在思考、研究和实验,来找出最优方案。差的程序员花去90%的时间在调试问题程序、盲目的修改程序,期望某种写法能可转载 2014-12-14 15:32:53 · 285 阅读 · 0 评论 -
编程能力的四种境界
人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。 弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。 在他这著名的一生的早期,他就指出我们的意识里分“潜意识”,“前意识”,“意识”。如 果我们想能清楚他们分别跟我们的思想、感觉、认知、判断和动机(这这些在我们每天的生活,职业生活中都是关键因素)有什么关联,我们可以把我们自己描述成 一个冰山。 冰山的尖端,唯一能转载 2014-12-14 15:43:13 · 372 阅读 · 0 评论 -
编程能力的四种境界
人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。 弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。 在他这著名的一生的早期,他就指出我们的意识里分“潜意识”,“前意识”,“意识”。如 果我们想能清楚他们分别跟我们的思想、感觉、认知、判断和动机(这这些在我们每天的生活,职业生活中都是关键因素)有什么关联,我们可以把我们自己描述成 一个冰山。 冰山的尖端,唯一能转载 2014-12-14 15:31:57 · 345 阅读 · 0 评论 -
程序员的成长和代码行数的关系
我的朋友Clift Norris发现了一个基本常数,我称之为Norris常数,一个未经培训的程序员在他或她遇到瓶颈之前能写出的平均代码量。Clift估计这个值是1500行。超过这个数以后,代码会变得如此混乱,以至于本人都无法轻而易举的进行调试和修改。我还不了解足够多的初级程序员来验证这一结果,不过我自己认识到,程序员生涯的下一个瓶颈将发生在20,000行。我把Norris常数改成2,0转载 2014-12-14 15:40:40 · 665 阅读 · 0 评论 -
十大编程算法助程序员走上高手之路
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策转载 2014-12-14 15:47:55 · 431 阅读 · 0 评论 -
区间dp模型(石子归并,括号匹配,整数划分)入门经典三道题
区间dp顾名思义就是在一个区间上进行的一系列动态规划。对一些经典的区间dp总结在这里。1) 石子归并问题题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=737描述: 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为转载 2016-09-13 21:03:34 · 540 阅读 · 0 评论 -
程序员怎样才能达到编程的最高境界
程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封。我认为,一个程序员的成长可分为如下六个阶段。 第一阶段此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。 第二阶段此阶段能精通基转载 2014-12-23 22:16:34 · 4396 阅读 · 0 评论 -
5个最优秀的Java和C#代码转换工具
毋庸置疑,Java是一门最受欢迎而且使用最广泛的编程语言,目前有超过9百万的Java开发者从事web服务的开发,Java以“编写一次,可在任何地方运行”而著称,同时这也是其大受欢迎的主要原因。和Java类似,C#也是一门拥有很多现代化特性的编程语言,很多开发者处于其安全性和稳定性,会选择C#这个平台。本文介绍了几个最优秀的Java和C#代码转换工具,希望对开发者有所帮助。1、Java La转载 2014-12-23 20:44:42 · 494 阅读 · 0 评论 -
一个很有借鉴价值的编程故事
一周七天,每天学一点在线课程,哪怕一次只有半小时,只要坚持不懈,你就能感觉到自己今天做出的决定是正确的。请记住:只要有耐心,任何能干的人都能成为绝世coder,当然也包括你。这是一个真实的故事,关于我自己的。一个理智的生命个体是怎么一步步走向疯狂?我穿着西装,坐在办公室里,脑子里有一个模糊的创业想法。然后,我决定学习编程。我曾经无意中听到过几个人在那吹牛说自己怎么使用一种叫Ruby的语转载 2014-11-26 23:01:17 · 421 阅读 · 0 评论 -
Java集合类型详解
这篇文章总结了所有的Java集合(Collection)。主要介绍各个集合的特性和用途,以及在不同的集合类型之间转换的方式。ArraysArray是Java特有的数组。在你知道所要处理数据元素个数的情况下非常好用。java.util.Arrays 包含了许多处理数据的实用方法:Arrays.asList:可以从 Array 转换成 List。可以作为其他集合类型构造器的参数转载 2014-11-22 15:57:20 · 479 阅读 · 0 评论 -
软件工程师应该知道的9件事
三年前,我还在巴塞罗那的神经科学实验室工作,忙着研究脑电波、教授心理学上的认知系统课程。而今天,我以设计和写软件为生。你或许会满头黑线:隔行如隔山,这转变也忒快了吧。其实不然,早在以前我就已经写过很多软件了——比如想理解扫描出来的有40GB那么多的大脑数据,我得捋起袖子、埋头苦干,写个能紧缩这些数据的脚本。所以我一直以来就是一个能干的程序员。但是直到我最终下定决心辞去了这份在学术上能有所建转载 2014-11-22 18:30:13 · 400 阅读 · 0 评论 -
程序员成长道路上必经的几个阶段
阶段一:不知道自己不知道(Unconscious incompetence)大学期间,我和老师做过一些小项目,自认为自己很牛,当时还去过一些公司面试做兼职,但是就是不知道为什么没有回复。那个时期的我,压根不知道自己不知道,还以为自己懂很多,现在想起自己以前就好笑,那个时候还算不上程序员,顶多只能算是个业余编程爱好者。表现:假自信、过度承诺、满口我能行没问题、看不起其他程序员转载 2014-11-22 11:47:43 · 528 阅读 · 0 评论 -
为什么有的程序员不会编程?
Jeff Atwood在Coding Horror博客上这样写道:“这真的很难让人相信,但是通过Twitter和电子邮件的总结报道,我们可以发现:很多面试程序员岗位的应聘人员竟然一点儿也不会编程。”我觉得这作者可能并不了解现今的大学教育情况。大多数程序员不会编程的最根本原因是他们所受的教育让他们盲目地觉得自己已经会编程了。下面的两个案例可以用来说明我的观点。转载 2014-11-22 11:30:18 · 875 阅读 · 0 评论 -
想成为大牛的首要原则:团队第一,请勿单打独斗
我研究过那些名副其实的程序员,他们真的那么厉害吗?他们是怎么变强的呢?或许,他们也只具有一般的水平。若能具有这种“考虑预算、成本、开发周期等因素”的把握全局的本领,才能成为一名优秀的程序员。我最近读过Mark Pearl的一篇博客,标题为“编程,是写作的子集”。我认同文章中的大部分观点,读到如下段落的时候,真正打动了我,并使我震撼:毫无疑问,就像生活中的技能一样,我们要想变得更好,转载 2014-11-22 12:05:17 · 549 阅读 · 0 评论 -
JavaFX构建部署Android应用
本文的剩余部分将介绍如何在Android上部署JavaFX应用程序。关于如何在Android平台上编译、打包和部署JavaFX应用程序的详细说明可以访问JavaFX移植团队的网站。 通常来说,部署JavaFX应用程序的步骤如下: 下载Android SDK和JavaFX-Android SDK 创建一个JavaFX应用 使用JavaFX-Android SDK创建基于上述J翻译 2014-11-25 22:43:44 · 912 阅读 · 0 评论 -
10个程序员必须学会接受的残酷真相
大多数时候,写代码都是挺有意义的一件事,不光能增加经验值,解决难题的时候还特别爽。耐心、毅力、执着,再加上正确的工具——只要有它们的亲密协作,优雅、漂亮的代码就是手到擒来的事儿。但是,紧接着拙劣的资源部署、新增的特性请求、糟糕的文档更新汹涌而来,打破了我们的美梦。但是这并不是说我们的努力就没有价值。只是我们需要面对现实罢了。下面就是编程开发人员必须接受的10个残酷真相。转载 2014-12-01 13:29:40 · 541 阅读 · 0 评论 -
成为程序员前需要做的11件事
想要成为一名伟大的程序员并不是那么容易的一件事,事实上——没有经历过漫长考验的话,这根本就是妄想。想要成为一名堪称优秀的程序员就已经很需要花时间了,而且过程不可谓不艰难——你会不止一次地想要放弃。彻底掌握编程最基本的内容粗粗一算就要一到三年。我开始学的是基本的HTML和CSS,这用了我很长一段时间。后来终于这些概念在我脑子里变得清晰起来,而且理解起来也慢慢变得毫无障碍,接着写一些小程序也难转载 2014-12-02 23:09:10 · 523 阅读 · 0 评论 -
你是码农还是优秀程序员?
普通的程序员仅仅是完成自己的任务,完成任务后不思进取,不再修改自己的代码,不再去想有没有更好的实现方式,而优秀的程序员(geek):素质高、逻辑思维强、注重细节、注重安全开发、效率、耐心、进取心、健康等。现在深深的体会到,不仅仅人与人的差别是巨大的,程序员与程序员之间的差别同样是很明显的。 普通的程序员仅仅是完成自己的任务,完成任务后不思进取,不再修改自己的代码,不再去想有转载 2014-12-04 08:55:42 · 381 阅读 · 0 评论 -
20个最热门的IT技术职位及薪资
失业率在IT行业就像是个笑话。为了争夺顶尖人才,很多公司都会提供更高的薪水来吸引高水准的开发人员。“我们的客户都在普遍加薪。随着工资水平的提高,他们对求职人员的期望也上升了:不但得具备核心技术,还需要在新技术方面有一定的知识和经验,” Tom Cirri,一位猎头总监如是强调。如果你想知道自己的价值,那么下面是当前最热门的20个IT新技术,以及招聘公司愿意给出的薪水。转载 2014-12-07 18:38:52 · 1010 阅读 · 0 评论 -
React Js 与React Native
介绍 1,React Js的目的 是为了使前端的V层更具组件化,能更好的复用,它能够使用简单的html标签创建更多的自定义组件标签,内部绑定事件,同时可以让你从操作dom中解脱出来,只需要操作数据就会改变相应的dom。2,React Native的目的 是希望我们能够使用前端的技术栈就可以创建出能够在不同平台运行的一个框架。可以创建出在移动端运行的app,但是性能可能比原声app差一点转载 2016-08-25 15:52:15 · 1779 阅读 · 0 评论