从事软件开发多年,上机写代码这种考查模式在国外用的比较多,很多国内的公司也在学习这种方式,这种方式能直接看出写代码的能力,但对上机做编程题目这种事情很多成熟的程序员觉得是一种侮辱,有一些程序员看到有笔试直接就选择走人了,这些东西在面试之前应该有沟通,事情不会变得这么被动,因为对于很多有能力的程序员,能够请到面试已经非常不容易了,能力越强脾气越大。
直接上机做编程测试能力的公司不是很多,从事软件开发十几年主要经历了四家公司,面试的时候主要靠面谈为主,因为编程行业能力的高低通过交谈就能了解差不多,只需要根据简历上写的项目进行细节沟通,如果真的做过几句话就能看出大概的水平,所以很多公司压根不搞什么笔试或者上机写代码的事情,编程这个职业主要靠时间的积累,并且在积累中不断完善自己的知识体系,慢慢提高自己的认知。
一个程序员如何提升自己的能力水平,对于初学者来讲首先是学习好一门编程语言,开始学习阶段觉得编程语言就是天了,好像是学会了编程语言就能做任何的东西了,随着编程语法的学习完毕就开始尝试做一些题目,结果发现距离语法真的非常遥远,所以有很多的初学者有一种感概明明在课堂什么都明白了,结果到真正自己实践的时候什么都想不起来,这是初学者必然的经历,编程本身就是一种不断磨练编程思想的过程,编程语言属于在辅助类基础技能,没有辅助就不会写代码,编程设计思想再牛也不可能实现,两者是相辅相成的作用,编程思想里面包含着仙姑经验的积累。
很多人觉得很奇怪有些公司也不进行面试也不让上机写代码,就是通过不到一个小时的闲聊就能把一个人的水平能力和工资水平给定位下来,通过面试就能检测出编程思想以及编程基础,编程基础类的考察只需要问几个简单的语法问题就能做个大概的检测,编程思想就是完全的编程意识以及编程经验的积累,所以一些企业在招聘的时候明确写着就相关开发经验的人优先,企业招聘的目的就是希望要的人在短时间内能够上岗直接切入到项目开发中去,整体来看是不是需要上机写代码测试完全看每个公司的技术文化了。
有些技术类的公司对于程序员的基本功要求特别严格,有个同事在第一家技术公司的时候,部门技术经理特别关注程序员的基本语法,只要是简单的代码语法错误,就能到部门的黑板通报,开始实施阶段很多人上了黑板,后来随着时间的推移上去的人越来越少了,同事说到自己上了两次黑板都是因为在使用指针的时候没有初始化导致,到今天还是记忆尤新,如果在技术生涯的初期能够经历过这种企业是一个技术人的幸运了,越是严格要求的领导或者公司越是有利于技术人员 的成长,至于在面试的时候要不要上机这个就看每个公司的技术文化了,一般注重代码基础的领导会引领这个事情,希望能帮到你。
这是一个正常的流程,我觉得有时候还是有必要的考验一下面试者的。
以前这种面试实际上是很平常的,但是发展到现在越来越多的人对这样的面试很反感,大概率的原因是因为很多人更多的是在搬代码,并且搬的很成功,而真正注意写代码的人反而越来越少。
笔试和上机编程好不好?
我觉得挺好的,这样可以刷下去很多划水的人,有的人,写代码的能力并不强,但是搬代码的技术一流,随着技术越来越晚上,一些解决各种bug的网站越来越流行,现在更多的毕业生为了高工资,变成了搬代码的人,他们能解决问题吗?能,但是是他们自己的解决的吗?不是,更多的是他们通过搜索的手段,问度娘,问谷歌,渐渐的形成了一个可以解决问题的方案,虽然问题解决了,但是等遇到一个需要创新开发的时候,他们就完了,基本上没有了自我的思维。
笔试和上机可以有效的防止这类人进入公司,实际上也是一种不错的手段。
这样的公司多不多?
据我所致,目前来讲上机编程的公司不是很多,毕竟,每个公司所使用的编程软件不同,有的公司制作的软件也比较具有保密性,没办法直接考程序员的实际能力,只能通过一些算法测试,或者是什么测试,来简单的排除掉那些搬运的人。
所以上机测试的效果并不是特别好,一般的公司都会选择用笔试的方式。
我遇到过不少笔试的,上机的从来没有遇到过。
我一个同事之前换工作的时候倒是遇到过,按他所说,这样的测试并没有什么效果,毕竟测试题出得很浅,太难的问题,基本上短时间内很难解决,也不会有那么长的面试时间。
其实,在我看来,这个上机面试并没有那么大的用途,毕竟测试不到太多的东西,还不如看他自己写过的代码来的更快。至于这样的公司多不多,真没办法说,毕竟没有统计过,根据我的经验,我觉得不会太多。
笔试的我见过,但是上机的没有过。
1.笔试可以有
这么说嘛,其实简单的笔试的话肯定是可以的。因为笔试的话可以让招聘者知道你大概的能力定位在什么位置?一些逻辑编程可以测试你的逻辑能力。尤其是在it这个行业,逻辑能力是非常重要的。
如果说你是一个已经有工作经验的人。其实笔试就没有那么重要了。这时候看中的一般差不多就是你曾经的项目经历。
如果说让你做一些项目上的,比如说项目架构了这种的,你可以拒绝回答。因为我之前就有听到过说招聘产品经理,让他去设计一个产品的。结果这个公司就是通过一直招聘产品经理。然后让产品经理去设计产品相关的功能,最后再把这些所有求职者的产品相关的思维组合到一起。
虽然说这总公司是很少的,但是也不排除是有只通过这种方式来满足产品需要的。
所以解释的时候可以大概的写一个思路代码的流程,但是可以不用全部都写。
2.上机测试
我觉得这个确切的来说是有一点过分的。像这种上机考试的话,肯定他是需要一个比较完整的项目。但是这种项目谁都不知道是他们公司需要,还是让他仅仅是为了做测试。所以像这种事情完全可以直接拒绝。
在这里大概说明一下。 找工作是一个双向的过程 ,如果说是你无法接受这个公司相关的制度,或者说是相关的流程。其实你可以趁早放弃这种公司的,不然的话即使是你笔试面试都过啦,你到公司之后也会因为你自己的价值观跟企业的文化匹配不到一起。迟早还是要辞职的,所以你要慎重考虑。
其实面试的时候笔试和机试都是it的正常流程,但是在国内被玩烂了,面试和机试过程中,会有公司内遇到的问题做为面试内容的,也许是个人也许是公司,让你解决这样那样的问题,这样子的都是垃圾
作为一个老程序员,关于程序员面试的话题,非常有意思,特别有的聊。其实在 IT 界面,有两个不算公开的秘密,也就是两个不成文的习惯或者规定吧,关于面试的。
让老程序员做笔试题是一种侮辱
很多程序员,尤其是有经验的程序员,去面试的时候,尤其是去小公司面试的时候,如果对方给你出了一套笔试题,很多程序员会说: 我转头就走,这是对我经验水平的侮辱 。
你们是不是感觉很吃惊,还有这种道理?确实是,我有一次去一个创业公司面试,对方给我出了一套笔试题,我做完了,面试完回去跟一些同事聊笔试题的事,他们会惊讶的说:你竟然把笔试题做了?你是有经验的程序员,不应该经过笔试的,直接面试就行,笔试是一种侮辱。那是我才发现,好多程序员都这么认为的。
但是,我感觉这是一种病态思维,你既然去面试,其实笔试也是面试的一种,你去大公司比如 BAT 这样的公司的时候,也会有笔试,而且层层面试好几轮,你都能忍,一些小公司给你出笔试题,你竟然受不了?公司用什么方式来面试你,是公司的选择和考量,当然了,面试是一种双向选择,如果你感觉是侮辱,当然可以选择不面了,这是双方面试的权利。
但是,我感觉笔试是一种正常的流程,跟有没有经验没有关系。有经验了,你笔试你确定能过么?
很多程序员都不会选择上机测试
还有一种就是面对上机做题的面试,很多程序员都不喜欢,其实我也不喜欢的,大部分程序员好像遇到上机面试的情况,也是选择扭头就走。
其实,我感觉上机测试是可以接受的,但是是有条件的,那就是上机做题,可以做算法题,这种方式我能接受。
有一次我去面试,他让我上机做题,竟然跟我说用 Android 写个什么功能,什么模块,简直了,这种题怎么做?直接去实现功能模块,写其中的一个点,我都不熟悉需求,也不熟悉功能模块,上来就写,怎么做?没法弄。我直接就走了。
算法题属于比较明确的东西,上机做两道应该是可以接受的。
你问上机做题的这样面试的公司多吗?可以明确地告诉你,不多,我工作这么多年,面试了很多公司,只遇到过两家。
我是负责我们公司技术面试的,机试环节必不可少。题目不会很难主要是考核程序员的感觉,只有有感觉的程序员才能写好大程序,这很关键。
这主要看做什么了,我最头疼的是拿一个构架来靠你函数命令。我都是自己写数学模型和函数。我哪知道这个构架的函数名?
务实啊,说明人要的是能实干的程序猿,没什么奇怪。面试需求很明确,要会干的。找领导才找会说的。刚毕业面试的时候遇见过这种机试,程序猿这行算是工科,靠技术吃饭,面试动手实战是正常的。
支持,不然很多水逼,划水货太多了
这样的公司会存在
基于以下4个原因:
1 面试的人很多,不想花过多的时间去筛选。这样做题,可以快速过滤一些滥竽充数的人
2 通过合理的上机操作,有针对性地找合适的人,匹配的人也能快速完成上机操作
3 标准,对面试者统一对待,以免主观原因造成误判
4 面试者的配合度,一般看到机试,有人就会直接退出。(我遇到这种情况,就会直接走)
以上4个原因,都是较为正式的原因,还有一个主要原因就是能力不行,面试官无法正确筛选简历,面试官无法从面试中获取想要的信息并加以判断。
基于最后一个原因就是我会选择直接走的原因,面试官能力不行,表示公司对此招聘的用功不足,该公司没有能力或没有意愿重视此次招聘。即使入职,收到的待遇不会重视,没有必要把自己的前景压在一个不会重视你成果的公司上。
B. 你怎么看待程序员这个职业
说到程序员
大家的第一印象就是
木讷
不怎么说话
比较理性
不解风情
有的看起来还傻呼呼的
最重要的一点都是单身狗
然而。我作为一名程序员
我看待程序员的角度就不痛了
在我的眼里。。
程序员。是聪明的
至少有逻辑有条理
虽然经常和产品干假
但不代表我们是蛮不讲理的
因为改一次需求我们要付出的不仅仅是时间还有精力。
我接触过的程序员基本都是内骚。有的是风骚,还有的是内外兼骚
不认识的时候感觉都很正经
但是认识后
一个比一个风趣
一个比一个幽默
程序员不会说话
一般都是一些特定场合
一般也都是指对女的
因为程序员比较少和女的接触
所以感觉不知道怎么和女的交流
就造成了不说话的印象
哎。。
这可不能怪我们
实在是工作中接触的女性实在不多
程序员单身。。
不知道是不是工作久了
感觉身边都是结婚的
要不然也都是也对象呃呃呃无论新老员工。无论应届还是非应届
只能说相对单身的会多一点。但是这个现象在慢慢的减少
毕竟程序员的队伍在慢慢壮大
好了其他不多说。。
来几段段子,该上班了。
段子集锦
程序猿问科比:“你为什么这么成功?”科比:“你知道洛杉矶凌晨四点是什么样子吗?”程序猿:“知道,一般那个时候我还在写代码,怎么了?”科比:“额…….”
【程序员被提bug之后的反应】1.怎么可能;2.在我这是好的,不信你来看看;3.真是奇怪,刚刚还好好的;4.肯定是数据问题;5.你清下缓存试试;6.重启下电脑试试;7.你装的什么版本的类库(jdk)8.这谁写的代码;9.尼玛怎么还在用360安全浏览器; 10.用户不会像你这么操作的。
一女同学在食堂吃饭时,一程序猿凑到旁边,“同学,我能和你说话不,我已经一个月没和女生说话了。
一程序员去面试,面试官问:“你毕业才两年,这三年工作经验是怎么来的?!”程序员答:“加班。”
程序员的读书历程:x 语言入门—> x 语言应用实践—> x 语言高阶编程—> x 语言的科学与艺术—>编程之美—>编程之道—>编程之禅—>颈椎病康复指南。
人艰不催。。
C. C语言编程题没有思路怎么办
C语言编程题没有思路:先对问题进行分析,心里大体有个算法来解决,然后再开始一步步编写程序,如果想不好,可以先画画结构图,当然这是对编程题。对填空题就得先了解程序的用途,然后看代码中缺少的内容了。
程序就是读取文件到数组,再将数组进行排序,最后写入文件。读写文件流程:fopen获取文件流(根据读写需求,选择参数,使用完必须调用fclose函数关闭),fscanf读取文件内容,fseek控制文件流指针,fprintf写入文件。选择排序:每个循环周期选出一个最值,交换一次。
主要特点
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。
D. 怎样看待程序员这份工作
你印象中的程序员是什么样子?
谈起程序员大家最直观的印象是穿着格子衫,就会对着电脑,常常几个小时,经常熬夜工作敲代码!而且程序员在大多数人的心里都是非常好的职业,工资非常高,敲代码的样子也非常酷。其实,很多人都不清楚程序员具体是做什么的,就连程序员的家人也不一定能理解,网上经常有人调侃评价程序员一点乐趣都没有,急的人头发都掉了。你会给父母讲讲你目前的工作吗?他们是否了解你的工作?
新兴行业里很多工作大家都不是特别的理解,有些人觉得程序员跟一些宅男的标签挂钩,父母理解程序员到底是一个也有说你是修电脑的,可能家人们会最担心他们的对象问题,也许家人看不懂程序员的工作究竟是在做什么,为什么还有那么多人来从事这个行业呢?你眼中的好工作,家人眼中的好工作,我眼中的好工作,各有不同。一行行代码是虚拟世界的基础语言,尽管家人读不懂,那些字符就是他们的快乐所在了。
“每天除了修改bug,就是在修改bug的路上”“写不完的代码和吃不完的泡面”老一辈儿的人根本就不懂这是怎样一个职业,在他们眼中,这就是一个高薪,这就是一个文化程度很高的工作,只不过是他们不太懂程序员每天都要干啥。经常打电话询问永远离不开那一句“有没有下班”,毕竟在家人的心中,孩子的健康永远是第一位的。 只希望他们能按时下班吧,按时吃饭,不要太熬夜,薪水多少不重要,自己的身体才是最重要的。
对于程序员我的了解也不是特别多,因为编程语言看起来太复杂了。以前感觉他们真的是好神秘,是一个赚钱特别多的岗位,特别是大厂的程序员们特别的不好进。每一项外表光鲜亮丽工作,离不开他们背后付出的努力,程序员也不例外,而且比我们想象的还辛苦。其实,每一份工作都值得被尊重,他们保持着一份对工作的热爱,我觉得作为家人应该支持他们工作才对。对此你怎么看待程序员这份职业呢?在我看来,东方的程序员如何看待西方同行是一个有趣并且重要的问题。
通常认为东方国家(印度/中国/菲律宾)是为西方国家提供外包服务(美国和欧洲)的。
即使IT的领军企业也是如此。他们从学院里招聘毕业生并把他们训练成机器人。最悲哀的莫过于,他们的薪资相对其他行业而言相对较高,因此没有人愿意从这些公司离开。在印度,几乎没有IT公司会招聘真正有才能的人。
E. java程序员面试时被问到:如何在j2ee项目中处理高并发量访问 该怎么回答 请仔细看题干再回答
尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
F. 编程究竟难在哪
1. 难在思路的构建
你学了很多语法,很多 API,但是当给你一个实际问题,让你通过编程实现,不是简单地罗列 API 即可完成,而是需要你对问题进行分析,理清解决问题的逻辑,然后再通过各种算法、数据结构和 API 等进行编程实现。
2. 做出来容易,做好难
当你解决了思路构建的难点,解决了一个问题,但是你是否使用的最好的方法,这就是所谓的做出来容易,做好难。
写的程序能够解决问题且没有 bug 是基本要求。这里的做好不是指功能正确,而是写的程序容易理解,能够很容易让其他接手的程序员(水平不差)看懂为什么这么写。
正确是现在怎么写不会挖坑害将来的人,现在怎么写能让别人1年后看你代码时候不可能理解错你现在的意图,现在怎么写能在别人将来犯错的时候提示他你错了。
编程是给未来的未知人讲故事,你无法知道将来这个人是谁,他都懂什么,他经历过什么,这个系统将来已经是什么样子了。我们需要在这种无知,缺乏信息的情况下做决定,从千万种把这件事做出来的方法里,选出你觉得最能把这个故事给讲好的那种方式,把故事写下来。
编程是一种沟通,用程序跨越时空之沟通则是一门属于程序员的特有的艺术 —— 阿莱克西斯
3. 规范性好,有良好的可扩展性
并且程序的可扩展性,规范性高,后期维护难度小。整体功能实现的过程中,各种情况考虑规范。其实学习编程和学习其他内容一样,没有什么太大差别。心态放好,用对方法,你就能够学好。重要的是学知识的人是什么样子,而不是学的是什么。
在这给你一些学习编程的建议,希望对你有用。
1. 让编程成为一个习惯
想要培养一项技能的最好的办法,就是将他融入到我们的生活并成为我们的爱好。其实说白了,就是让这个爱好成为一个习惯,一天不去做这件事情,都会觉得少了什么。在不知不觉中,这个习惯会像滚雪球一样积累起来。
对我来说,养成这种习惯首先就是要对“拖延症”说不。比如,你想锻炼下自己的写作能力时,但是没有好看的本子,没有好的灵感,没有安静的环境....总之就是找各种理由一拖再拖,最后就不了了之了。
为自己设定一下,每周拿出几天,每天拿出几个小时,编程学习就这样慢慢步入正轨。
2. 将每天的学习过程拆分成小块
对待编程学习,我们没必要像健身狂人那样一口气做到筋疲力尽。与其直接编程2小时,我们完全可以先做40分钟、然后休息5分钟,整个过程重复4次。很明显。
G. 什么是程序员编程中的老大难问题
上周,我发起了一个“程序员编程中的老大难问题”的投票,主要是基于最近Quora上的跟帖讨论。根据大家的反响和投票结果,有一项投票遥遥领先,稳居第一——对于软件开发人员来说,最大的难题是:如何命名(例如:给变量,类,函数和过程命名等等)。
对于这个结果,我多少有点意外,因为作为一个多年的开发人员,我不会投给这一项(我想我会投给“修改或维护别人的代码”)。但是真正让我惊讶的是,看起来好像不怎么重要的命名居然排列第一,跟期待的结果实在差太远了。下面是投票结果的分布图。
该结果是来自Quora问答网站和更早的Ubuntu论坛跟帖的4500个开发者的投票。“如何命名”一项的选票几乎是其它八项的投票结果的总和,哇!
的确,这些基于自我筛选的群体的投票结果是完全不科学的。但是我认为这个结果还是有一定意义的,换句话说,如何命名的确是个很棘手的问题,许多非编程人员可能会意识不到。
几年前在StackExchange社区里对于这个话题刚好有个跟帖,为了强调这一点,我引用了一些内容是关于程序员在编程中对于命名的的痛苦和纠结。
“我确实在编程的时候花了很多时间在考虑如何命名。”
“我不得不同意命名是一门艺术。”
“如果你想要提高代码的可读性,命名的确很重要。”
我认为最后一条抓住了部分核心,解释了命名为什么会这么难,因为它太重要了。准确的命名可以提高代码的可读性,让人容易理解,方便调试,也给以后修改和维护你的代码的人带来方便。一旦开始做了,很快你会发现要想出一个简洁又准确的名字没那么容易。就像Jeff Atwood 所写的:
“想出好的命名的确很难,但是有难的道理,因为好的命名需要只用一两个单词出表达你的根本意思。”
而且,许多人认为,正确的命名能帮你写出好的代码。如果不能为一个变量或者函数想出一个清晰又简洁的名字,那可能是你的代码有问题。那样的话,你就得考虑重写或者进行代码重构了。
H. 你怎么看待满嘴高并发,编码能力却稀松平常的程序员
我是搬砖哥我来回答。
高并发的核心原理,是网络io的事件处理机制,就细节来说,一些重要环节,比如协议的断包组包处理,还是比较复杂的,但就大部分的面试和日常工作来说,做到切实理解reactor机制的核心,就差不多了。关于高并发,可以多看下陈硕的那本书。
关键问题在于如果编程能力很稀松,那么问题很大,简单说交给一个任务,或者解决一个问题,动手能力弱的话,可能会久搞不定,还容易出错。对于开发岗位来说,现在公司不论大小,日常工作不会有特大难度或规模的开发,换句话说谁的基本功更过硬,谁的任务往往完成的又快又好。
动手能力弱有个特别简单直接的改进方法,就是刷leetcode之类,把代码先写起来。不论什么语言,先多写,写的多了自然不会稀松。
然后从简单面向对象到最基础的两三个设计模式,串行到并行,结合自己的编程语言,把语言的特性逐渐吃透,过程也是和刷题一样,写代码不断加深印象。包括学一门新的编程语言也是如此。
对大多数人来说,达到编程高手都不容易,但达到合格员工完全可以的,付出够的努力即可,好脑子不如烂笔头。
满嘴高并发的前提是真的要接触过高并发系统,或者目前正在负责的就是高并发系统。
如果压根就没有接触过高并发系统,或者连百万级用户的系统都没负责过,就不要谈高并发。因为,99%的程序员都接触不到高并发系统。
高并发这个词语对于我,或者说对于我的项目组一点不陌生,因为我们做的是真正的高并发系统,当 然不是那么的“高”,算是一般高并发吧!集群的QPS在15万左右。
高并发系统面临的另外一个问题就是“高”的倾斜性。 根据“二八”原则,80%的请求都发生在20%的时间内 。也就是说,系统只有在20%的时间面临高并发请求,其余时间并非高并发请求。而这种情况下,我们就要做好系统的弹性扩容伸缩。我们可以根据前置负载均衡器的QPS(SLB)、CPU等指标弹性的扩容或者收缩机器。这样,当请求量大的时候,我们就自动扩容更多的机器来处理请求,当请求少的时候,我们就收缩机器,降低成本。
总之,高并发系统所涉及到技术是非常复杂的。 如果想侃侃而谈高并发概念,必须要亲身实战过高并发业务 。通过高并发业务的实操,我们能更深的理解高并发的精髓。至于,编码...我觉得是最底层的工作,只要思路清楚,写代码就是个体力活。
面试造航母,工作拧螺丝
给我第一感觉是这人可能培训班出来的,因为培训班天天拿这些来忽悠人,90%以上的的公司都没什么高并发,说这些无非显得自己很牛逼,我对这种人都笑笑而已,同行之间都知根知底,忽悠外行吧!
高并发怎么做?把别人写好的框架,多配置几个线程,内部代码基本还是单线程处理逻辑,最多做个互斥锁,遇到高并发就选择非并发的服务器或者组件来避开,然后数据分发给多线程。
现在有多少人自己写并发的?很少了
不会高并发。
自己写了个框架,2000一年的入门服务器。可能也就只能顶几百并发吧。然后拿去做了个项目,后来法律出来了,停了不做了。
不过如果从技术角度看,要15万的并发,快速的做法就是上硬件负载均衡。然后堆服务器,数据直接进内存数据库,后台慢慢进关系数据库。
毕竟我这边就一个人,短时间要上大并发,还是用设备顶省事。
背的面试题呗。
现在招聘,尤其是互联网公司招聘,一看学历是否符合,二看面试题背的是不是6。
至于写普通代码的能力,who cares ,反正进去是上螺丝。
张嘴就来高并发,一开始是由培训班带来的风气,他们这样做主要是为了吸引生源,后来慢慢的就转变成面试内容,90%的应用开发都没有高并发
我很少会说高并发,但是我会经常说并发编程,两个概念。高并发涉及到的知识点太多了,不光是并发编程这一块。而且一般公司也用不到高并发。不过并发编程就不一样了,并发编程还是很多项目会用到的。所以,切合实际,可以从并发编程入手。
都是为了找工作,没啥好说啊!只能说成年人的世界没有容易二字。