每个程序员1小时内必须解决的5个编程问题

每次我发布软件工程师的岗位工作要求,各种求职申请就会纷至沓来,接踵而至。但每每让我困惑的是,似乎总有那么几位应聘者完全不明白所谓“编程”的意思。

当然,他们另有想法。

而我认为,如果你应聘的是“Web前端开发”岗位,那么你只懂jQuery也可以胜任,那么,“软件工程师”是不是就意味着会HTML、JavaScript和CSS这些必备技能就行了呢?

(我觉得那些聊起XML、JSON、XSLT、SOAP、HTTP、REST、SSL和200多个首字母缩写词来头头是道,但却不会区分整型和浮点型数据类型的家伙很有意思。呵呵)

你真的会写代码吗?

对于应聘程序员的求职人员,我,作为用人单位,首先希望的是你会写代码。我指的是真正的代码:我给你一个问题,你使用任何你觉得舒适的编程语言给出它的解决方案。

你真的能做到这一点吗?

策略:如果你不能在1小时以内解决以下5个问题,那么你首先要做的是重新审视自己。的确,或许你各方面的工作都干的不错,但是我依然觉得你现在还不配“软件工程师(或程序员,计算机科学专家,甚至是“开发人员”)”这个头衔。不要自欺欺人,先花点时间来调整你的重点吧。

5个问题

问题1

使用for循环、while循环和递归写出3个函数来计算给定数列的总和。

问题2

编写一个交错合并列表元素的函数。例如:给定的两个列表为[a,B,C]和[1,2,3],函数返回[a,1,B,2,C,3]。

问题3

编写一个计算前100位斐波那契数的函数。根据定义,斐波那契序列的前两位数字是0和1,随后的每个数字是前两个数字的和。例如,前10位斐波那契数为:0,1,1,2,3,5,8,13,21,34。

问题4

编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。

Ps:点击这里,阅读我的解决方案。

问题5

编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。

Ps:如果你不知道的话,点击这里,阅读我的解决方案。

如果你能力超群,上面这些问题对你而言只是小菜一碟,1小时之内解决完全绰绰有余的话,请将我的慷慨陈词当作是在放屁。

不过,如果你觉得本文对你很有帮助的话,欢迎分享,并留下您宝贵的见解。Thank for reading。

作者:小峰

来源:51CTO

时间: 2024-11-10 07:06:29

每个程序员1小时内必须解决的5个编程问题的相关文章

每个程序员1小时内必须解决的5个编程问题(转)

  英文原文:Five programming problems every Software Engineer should be able to solve in less than 1 hour 每次我发布软件工程师的岗位工作要求,各种求职申请就会纷至沓来,接踵而至.但每每让我困惑的是,似乎总有那么几位应聘者完全不明白所谓"编程"的意思. 当然,他们另有想法. 而我认为,如果你应聘的是"Web 前端开发"岗位,那么你只懂 jQuery 也可以胜任,那么,&qu

JAVA程序员必读:基础篇(2)面向对象编程概念

编程|程序|程序员|对象|概念 如果你以前从来没有使用面向对象语言,你需要在开始编写JAVA代码之前先理解这个概念.你需要理解什么是对象.什么是类.对象和类的关系怎样以及使用消息怎样在对象之间进行通讯.本教程的前面部分将描述面向对象编程的概念,而后面的教程将教你怎样将这个概念编成代码. 2.1什么是对象 对象是一些相关的变量和方法的软件集.软件对象经常用于模仿现实世界中我们身边的一些对象.对象是理解面向对象技术的关键.你在学习之前可以看看现实生活中的对象,比如狗.桌子.电视.自行车等等.你可以发

《C和C++程序员面试秘笈》——1.5 选择编程风格良好的条件比较语句

1.5 选择编程风格良好的条件比较语句 C和C++程序员面试秘笈考点: 良好的编程风格 出现频率: A.假设布尔变量名字为flag,它与零值比较的标准if语句如下. 第一种: if (flag == TRUE) if (flag == FALSE)``` 第二种: if (flag) if (!flag)`B.假设整型变量的名字为value,它与零值比较的标准if语句如下. 第一种: if (value == 0) if (value != 0)``` 第二种: if (value) if (!

《Java程序员面试秘笈》—— 第1章 Java编程基础

第1章 Java编程基础 通过考察Java编程基础,用人单位可以了解求职者对Java语言的理解程度和熟练程度,一个熟练.具备开发经验的程序员,可以轻松地解答相关问题.而对于刚刚准备步入职场的新人,由于基础不扎实,准备不充分,Java基础编程方面的面试题往往会给他们造成一定的困扰.值得注意的是,企业和学校对Java基础考察的方向有很大的不同,往往求职者对哪些编程基础必须掌握没有一个清醒的认识,不知道企业需要考察哪方面的知识,这样会失去很多可贵的机会. 本章通过真实的试题,从多个角度讲解Java编程

《高效能程序员的修炼》一第3章 高效编程之原则

第3章 高效编程之原则 高效能程序员的修炼本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.

《写给程序员的数据挖掘实践指南》——5.4一个编程的例子

5.4一个编程的例子 回到上一章当中提到的来自卡内基梅隆大学的汽车MPG数据集,该数据集的格式如下: 下面试图基于气缸的数目.排水量(立方英寸).功率.重量和加速时间预测汽车的MPG.我将所有392个实例放到mpgData.txt文件中,然后编写了如下的短Python程序,该程序利用分层采样方法将数据分到10个桶中(数据集及Python代码都可以从网站guidetodatamining.com下载). import random def buckets(filename, bucketName,

腾讯官方微博出题,半小时写出程序可当初级程序员

问题描述 某一游戏中有一把武器有1到9个等级,每次升级成功的概率为30%,失败的概率为70%,成功升1级,失败降1级,降到一级不能再降,升到9级不能再升,问1000次内升到9级的概率. 解决方案 解决方案二:做不出来的人是不是还算不上程序员撒解决方案三:半小时做出来.就可以去腾讯做初级程序员了..解决方案四:感觉跟概率论的做公交停站次数有些相似,只不过这个会降级,降到1不能降...求初级程序员以上的人解答解决方案五:0.3的8次方乘以9/1000对吗...解决方案六:30%解决方案七:错了,0.

程序员成长规划

引言 我的程序员成长之路 程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远.总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快:或许更好一些,能让大家从中得到一些启发,早日进入优秀程序员的阶段,实现梦想,释放激情. 第一阶段,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序.这个过程可以说是对计算机和程序设计的入门阶段.这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机基础知识. 第二阶段,而后参加工作

浅谈程序员的数学修养

可能有很多朋友在网上看过Google公司早几年的招聘广告,它的第一题如下了:{first 10-digit prime found in consecutive digits e}.com,e中出现的连续的第一个10个数字组成的质数.据说当时这个试题在美国很多地铁的出站口都有大幅广告,只要正确解答了这道题,在浏览器的地址栏中输入这个答案,就可以进入下一轮的测试,整个测试过程如同一个数学迷宫,直到你成为Google的一员.又如Intel某年的一道面试题目:巴拿赫病故于1945年8月31日.他的出生