㈠ 程序员需要学些什么
程序员的岗位需求很多,例如大型网络公司、软件开发公司等等都需要程序员。
程序员需要学习:
1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
2、理解计算机的组成以及各主要部件的性能指标;
3、掌握操作系统、程序设计语言的基础知识;
4、熟练掌握计算机常用办公软件的基本操作方法;
5、熟练掌握基本数据结构和常用算法;
6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
7、熟悉数据库、网络和多媒体的基础知识;
8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
10、了解信息化、计算机应用的基础知识;
11、正确阅读和理解计算机领域的简单英文资料。
程序员必备技能:
1、熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。
其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。
另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
2、熟知数据库
作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。
虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
3、了解操作系统
当前主流的操作系统是Windows,linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。
要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。
Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式。
从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。
至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
4、明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
5、不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员。
一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能。
如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
6、需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。
要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
7、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
就业方向:
1、网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。
2、企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。
3、系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。
但所以在刚入门的时候,建议先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
会编程、会计算机语言就能加入互联网发展大潮中,享受数字经济发展的红利,一时间社会上的程序员培训机构都变得格外火爆。
但是现在,专家的数据分析结果告诉你:若想跟上数字经济发展的步伐,光会编程可不行,这个行业现在紧缺高端的、综合型人才。
11月22日下午,清华大学经管学院互联网发展与治理研究中心与领英联合发布《中国经济的数字化转型:人才与就业》,揭示我国数字人才现状与趋势。
报告显示我国数字经济发展面临人才短缺的挑战,但这种短缺主要体现在拥有中高级专业技能数字人才的比例不高,拥有人工智能、智能制造等前沿技术的人才更是少之又少。
与美国、英国、加拿大等国家相比,中国的数字人才储备尚有很大差距。
此外,报告根据对人才需求的数据分析,结果显示我国数字人才的技能需求不再强调单一编程技能,更加看重技术、管理和领导力等综合技能。
2015年,我国从事信息传输、软件和信息技术服务相关工作的人数约350万,但其中中高端人才,特别是前沿技术的数字人才并不多。根据领英中国智库的研究,在人工智能领域,美国的从业者数量在85万人以上,印度15万,英国14万,中国只有5万多人。
报告负责人、清华大学经济管理学院副院长陈煜波教授表示,我国目前在大数据与人工智能领域人才缺口明显。
他解释说,目前中国85%以上的数字人才分布在产品研发类,而深度分析、先进制造、数字营销等职能的人才加起来只有不到5%,存在较大缺口,新兴技术人才和创新型人才培养方面存在滞后和不足。
这份研究报告的基础数据来自领英在中国的3600万个人用户,这些用户毕业于1.5万多所国内外院校,分布在36.4万家企业,拥有超过2.3万项技能。
陈煜波研究团队从中筛选了72万数字人才,多维度提取用户画像并跟踪其职业轨迹,以此预测不同地区的人才流向、雇佣率、受雇主欢迎的技能等人才趋势层面的信息。
陈煜波说,根据数据分析结果,整体来看,虽然编程技能和数据分析技能需求占据主导,然而随着数字产业走向成熟,企业除了强调编程技能,也逐步更加看重人才的技术、管理和领导力等综合技能。
近年间,项目管理、产品运营等“技术+管理”类技能的需求呈现出明显的上升趋势,懂技术、懂管理的人才被认为是“一将难求”。
领英中国代理总裁曾志恒也提醒,如果你有兴趣向数字职能转型,不能仅仅专注于自己的技术能力,沟通和领导力等软性技能将成为你脱颖而出的关键。
陈煜波希望这些研究结果能为教育行业和政府部门提供借鉴。他说,教育行业可根据职位的供需趋势更好地规划人才培养的方向,政府也可更好地了解人才流动方向、技术缺口等,以此制定有针对性的引才策略。
程序员岗位职责:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
相关书籍:
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 9的书。
其实除了前9本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。
下面就按照各本书的推荐数排列。
1、《代码大全》 史蒂夫·迈克康奈尔
2、《程序员修炼之道》
3、《计算机程序的构造和解释》
4、《算法导论》
5、《重构:改善既有代码的设计》
6、《设计模式》
7、《人月神话》
8、《计算机程序设计艺术》
9、《编译原理》(龙书)
10、《活着》
㈡ 程序员的逻辑思维可以从哪些方面学习呢
细心感知,多思考,学习逻辑框架
编程思维说白了就是高效解决问题,问题从哪儿来?来自我们细心观察和感知。解决方法哪儿找?来自我们的思考。大多数人在感到有问题时,只是简单的表达一下感受,然后就没有了...
意识到问题后,我们要多感知自己的感受,对于不便的地方当作问题记下来,这样就能发现更多的问题。接下来就要思考:如果是我来解决这个问题的话,都有哪些解决方法?不用管是否实际可行,多思考就好。
多去技术网站学习,学习一门编程语言(任意一门)
技术网站推荐:国外:Github、StackOverFlow 国内:infoq、CSDN、博客园、51cto、思否、云加社区、掘金,学习一门编程语言即可与能力无限的计算机对话,站在另一广阔的空间去看待问题。即使不从事编程工作,但编程基础语言中的 "if ... else ... then" 、选择、循环、继承、面向对象等 底层逻辑思想,也能更强锻炼你的逻辑思维能力,为未来蓄力!
㈢ 逻辑思维对程序员重要吗可以怎样培养呢
逻辑思维对程序员来说非常重要,我们可以从一下几个方面来进行培养,第一:查看一些逻辑思维书籍,第二:多多练习算法之类的编程,第三:写程序时候尽量把程序和显示生活链接起来想问题。
㈣ 3道有意思的逻辑思维面试题
从小到大做了无数道智力题,工作之后接触到程序员逻辑思维面试题,也曾经饶有兴致的研究过。这些智力题,表面上是考智力水平,实际上是考察逻辑思维能力,而从更一般的意义而言,是在考察解决问题的能力。
一个人学习、研究、工作,其实无时无刻不是在训练或使用解决问题的能力。解决问题的能力,在我看来,有很多方面,其中很重要的一方面就是逻辑思维能力。很多人对于逻辑思维的理解是存在误区的,总以为逻辑思维只是理科生和工程师用的东西,与文科生甚至普通人没有什么关系。而实际上, 逻辑思维所涉及的范围远远不止以数学为基础的理工科,而是一种涵盖各种学科、各种工作的通识能力 。
比如说,大学学文科专业的罗振宇,几年前开了一个节目叫“罗辑思维”,强调用逻辑思维来理解世界,节目的内容涉及社会、历史、经济、人文、理工等各方面,俘获了几百万乃至上千万的粉丝。后来罗打造得到APP成为最知名的知识付费应用,就是以罗辑思维这个品牌栏目为底子做的。
最近看了一些大的科技公司(比如谷歌、微软等)等招聘员工的面试题,很有意思,在这里与大家分享,并共同探讨。
这是微软非常知名的一道面试题,曾经难倒无数学霸才子:不是说好的考程序题或者智力题吗,怎么来了一个社会基础建设问题?
为什么是圆的?方的不行吗?圆的究竟优势在哪里?
这就是在考察面试者的逻辑思维了。其实认真思考之后,不难得出“标准答案”:
如果面试者能够这样回答,说明他的逻辑思维不错,或者至少生活经验比较丰富。
那么这是唯一的正确答案吗?没有这么简单。我从一些优秀者的回答中,还发现了其它也很有道理的答案:
如果面试者能够在所谓“标准答案”的基础上,多给出几个原因,那么说明不仅逻辑思维很好,工程思维也非常棒,善于运用生活中的知识。这道题基本上给考官的印象应该是满分了。
但是,关于这道题的讨论并非到此为止。 下水道井盖一定是圆的吗?有没有可能是方的或者其它形状的?
传说有一位面试者,在被问到该问题的时候,坚持说也可以用方的井盖,并给出了合理的理由,最终成功说服了考官。下面是传说的面试过程:
这位面试者不仅逻辑思维和工程经验丰富,说服人的能力也非常强,让考官觉得他是不可多得的人才,被推荐到更需要综合技能的销售部门工作。
其实,像这样的逻辑思维面试题并没有所谓的标准答案,考官的真实目的是 考察面试者的逻辑思维能力 ,更一般的讲,是 解决问题的能力 。下水道盖也可以是方的,只要你能给出合理的理由,自圆其说。
这是Google的一道面试题:
有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?
最笨的办法谁都能想到:
可是这个办法,最坏的情况下要试99次,平均意义上要试49次。而且只用了一个球,另一个球没利用上。显然不是最优的策略。
计算机专业的学生很容易想到更高级的办法——二分法。具体是:
用这种方法,需要log100,也就是大约7次,能够找到答案。
面试者如果能这样回答,说明对计算机专业基本算法是有了解的。但是,仔细想想,这个方法对吗?
这个方法显然是有毛病的。比如说我举一个反例,第10层是临界层的情况。按照二分法来执行,第一次试验第50层将摔碎,第二次试验第25层又将摔碎,此时两个玻璃球都摔碎了,将没有办法继续进行试验!
注意最多有两个球,也就是最多可以摔碎两次。尽管上述二分法不可行,我们是否可以借鉴其思路,先大致确定一个小的范围,然后逐个试验呢?根据这样的思路,可以提出下面的方法:
这种方法最坏的情况出现在临界层为100时,将需要试验10+10=20次;最好的情况出现在临界层为2时,只需要试验2次。而平均意义上大约需要试验10次。怎么样,是不是有效的利用了两个球呢?
按照吴军老师的说法,这种解题方法其实体现了 一种典型的工程思维:粗调和精调 。其中第一个球用于粗调,确定一个大致的范围;第二个球用于精调,在大致的范围内确定精确的值。
其实,粗调和精调的工程思维在生活和工程中都很常见:
从这几个例子,我们可以对粗调和精调的优点及注意事项进行简单的总结:
了解了粗调和精调的概念之后,我们回过头来,再次考察这道玻璃球题目。如果有3个玻璃球呢,是否有更好的方法?
当然是有的,标准的答案是采取三步试验:
细心的读者会发现,这三步试验分别把答案的可能范围缩小了4、4、5倍,最终确定了答案。
为什么是这几个数呢?而且,回过头来想想,为什么两个小球的情况下,两步试验缩小的范围分别是10、10呢?
这几个数的选择,当然绝非巧合。实际上,2个和3个玻璃球的情况下,缩小倍数分别是按照根号下100(也就是10)、3次根号下100(大约是5)来选择的。 推广到n个玻璃球的情况下,每步试验的范围缩小倍数应该是n次根号下100。 具体证明,我们在这里不做讨论。
这绝不仅仅是一个小小的逻辑题, 考官想考察的是面试者的逻辑思维,包括工程思想、分析能力以及举一反三的归纳概括能力 。知道标准答案不算什么,吃透这道题并弄清背后的深刻原理,才是本事。
这道题相对前两道来说要简单一些。据说Google过去面试产品经理的时候会问到这个问题。什么数据都不给,直接就这么问。
有些中国面试者可能不乐意了:你又不告诉我高尔夫球多大,也不告诉我这个房间的尺寸,什么数据都没有,我怎么算啊?
但是这个题没错,考官考察的就是不给数据你怎么计算!要不然小学生都能算出来了。
有些人一看没给数据,可能就会胡猜:一间普通办公室,又不是很大,高尔夫球直径大概几厘米,直观感觉应该能装几千个或者几万个吧?
然而答案恰恰违反我们的直觉:至少能装几十万个,甚至能装上百万个。
我们来算算:
一个房间竟然能装这么多高尔夫球?是不是大的出乎我们的意料呢?
有人可能会怀疑,这道题如此简单,小学生都能做,侮辱人智商吗?然而这道题实际考察的,是我们解决问题的方式。Google对产品经理的要求是:
有的面试者在没给数据的情况下可能会根据直觉乱猜,这是做事的大忌,因为很多东西其实是反直觉的,乱猜可能导致完全错误的结论,这是很危险的。最准确的做法是拿工具量一下会议室的长宽高以及高尔夫球的直径,然后进行计算。不过,在没有准确数据的情况下,合理的估算也是可行的,甚至也是必要的,估算能够帮助我们大致知道答案的范围,这在很多情况下已经足够支持决策!
㈤ 逻辑思维对程序员重要吗
很重要,在项目实际开发中逻辑思维是我们的引路人,他的灵活性直接影响我们开发的效率,对我们来说非常重要。
㈥ 高IQ的请:最不简单的逻辑思维题——能做出来的就是智力高的,越快你IQ越高!
确实可以三次完成。
羽扇仙的答案(不管是自己写的还是从哪里抄的)的确是对的。我在草稿纸上画了一个树形图从头到尾仔细分析了过了。
要我在半小时之内验证一个答案是否正确这没什么问题。但是要我自己想出这样一个解答,我自认为在一个小时内难以完成。至于要想出一个比之更好的解答,我对此不作奢望。
所以我只是谈谈感想,简单评论一下。
最初一秒钟确实会想把12分成两个6,但是马上就意识到是不行的(居然还有那么多人提交了这种答案,有点小小的吃惊);然后就想按照分3组的方式进行下去,仔细一做才发现三次不行;接着猛然想到虽然一开始不知道这个次品的轻重,但是可以记录每一次的结果,利用这个,说不定就可以控制正在三次以内呢?做了一下,做成了,高兴了不到一分钟,发现弄错了——我做成的其实是9个砖头的情况。(回想一下,大概是受到了简单的迭代递归的思维习惯的影响)
于是又要重新做,发现按照通常的做法,12个砖头,第一称如果相等,接下来的各种分支都很容易,而且也都在3次以内;但是倘若第一称不相等,就不好办了。头脑清楚,并且说必须要四次才行的人,估计都是在这里卡住了。但是许多时候,即使我们至今为止没有找到任何可行的方法,也并不就因此证明了不存在任何可行的方法。关于一件事的可行性或者不可行性的证明当然也是有的;但是可惜的是,在这里那些说三次不可行的人并没有真的证明不存在任何可行的方法。
于是我把羽扇仙的答案认真地看了一下,我想既然写得这么详细(虽然繁琐),此人肯定是花费了一番心思验证过的,不要无视人家的劳动成果(我看的时候并不清楚这是不是抄的)。确实,这个答案比较繁琐,但是比起那些只有一两句没头没脑的答案来说,这实在好得太多了。对那些自己随随便便就写出一个想当然的答案、也没有耐心看完其他解答的人,我想说的是:这种工作是来不得半点浮夸的;真要是能证明,就应该能够把详细过程写出来,同时也要有耐心看这样的详细工作。(当然,如果不在乎这些,没有耐心也没关系,那就把这些当过眼烟云吧,以玩票的态度来对待吧,反正也不是自己本职工作,也不是当什么论文审核人。)
再回到羽扇仙的答案。一批人望而却步是因为没有耐心。另一些人可能看到了中间就看不下去,大概由于排版上的某些问题影响了阅读吧。而且通篇这种刻板的“如果...则...否则...”的方式看起来恐怕也相当倒胃口(对这些东西已经习以为常到麻木的程序员们就不会觉得倒胃口,这也许是因为有更深层次的审美,也许是因为已经没有胃口可倒了)。题目本身的难度和解答本身的繁琐也许是更大的原因:在第一称不相等的这个分支,其解法固然是对的,但是很不直观,需要看的人自己去慢慢理顺(最好是画个树形图来分析)。这里我就不写出来了。既然楼主已经知道三次是可能的,必定是验证过的,我也不用多费笔墨唇舌。对于其他看官来说,我要是写得不够详细,那还不如看原来的解答;写得太详细又嫌罗嗦。正确答案其实早就在那里。要是有心的话,与其花时间看我写的,不如自己去花时间理顺一遍,这并不需要什么过人的创造力,需要只是细致和耐心(我相信能从开头看到这里的人已经非常有耐心了)。
真正有些原创性的可能还是xiaozhu36955的解答。虽然我第一眼也对其不屑一顾,第二眼就知道其解答不符合“题意”,就像pjw258所说,对跷跷板的次数进行了“非法”的使用(如果按照“正确”的使用方式,也就是我们解这道题时所默认的那种使用方式,xiaozhu36955的解答当然是无法保证在3次以内的,只能保证在6次以内(运气好的话只要2次,运气差就要6次))。然而这个解答成功地跳出了我们默认的框框,进行了创造性地发挥。虽然要想到羽扇仙那个答案也需要突破许多束缚,但是二者不是在同一个层面上的突破。其实如果真要在现实场景中去找那块重量异常的砖头,我还宁愿用xiaozhu36955的方法,简单易行;而羽扇仙的方法固然称的次数少,但是在称之前和称之后脑子里都要绕好多弯弯,还要记录称的结果,不断回顾与比较,有这闲工夫,早就用xiaozhu36955的方法(或者其他笨办法)找到那块砖头了。(但是假如任务不是称砖头,而是称成吨的钢材,花点时间思考怎样尽量减少称的次数以降低成本还是很有实际用途的;又比如还是称砖头,但是不是一次性的,而是每一批货都要检查重量异常的砖头,那么第一次花点时间想出最少称重次数的方法,将之程序化,以后就方便了。)
给我两天时间,我会给出解答。如果两天后我没有提供任何解答,或者给出的解答是错误的,那就把分数给pjw258吧。
在给出我的解答之前,先简要评论一下这些天来新出现的四种解答。
新出现的解答有:
1、QQ850912617(以下简称QQ同学)——第一次5:5
2、姜胖大人——第一次4:4;不相等的话,第二次称就把其中一边的4个平均分成两份分别放在跷跷板两边,另一边的4个取两个分别放在跷跷板两边
3、278102649(以下简称27同学)——第一次4:4;不相等的话,第二次称就把左右各拿走一个,并把左右各取一个对调
4、1645425——力矩平衡大法
最后这一种虽不是标准解法,但是正因如此,才显得很有意思。我忍不住要把1645425称作物理小王子了,希望你再接再厉,发明出更多更新奇的物理称法。
第一种和第三种称法都是称不出来的。实际上,在掌握了下面我给出的一般方法之后(是的,我给出的是一般方法,这个方法适用于所有使用天平在n个砖头中找出唯一那个次品的问题),就很容易看出,在12个砖头中寻找1个次品,如果限定三次之内完成,那么第一次称只能是4:4,每一边的个数既不能大于4,也不能小于4。所以QQ同学在第一次称重的时候就注定了不可能三次完成。而27同学的失误则发生在第二次称重,不是“好像还差一点”的问题,如果你不改变第二次称重方案的话,永远也不可能在三次以内完成。这些都可以按照我给出的方法得到证明。
姜胖大人的方法是可以做出来的,不过存在细节上失误。大人原话是这样说的:“假设第一次左边,即1234重,那么第二次称127和348。如果平衡,那么异常球在56里且轻;如果还是左边重,那么异常球在128里且为重;如果右边重,那么异常球在347里且为轻”。仔细分析就会发现,如果左边(或右边)重,那么只能说异常球在128里(或在347里);加上“且为重(且为轻)”不仅是画蛇添足,而且是错的。(当然,平衡的情况下说“异常球在56里且轻”是正确的。)如果抛开这些失误,那么姜胖大人的方法是唯一一种这样的方法,即:在第一次称重不平衡的情况下,第二次称重不需要借助这8个砖头之外的任何砖头(即第一次称之后已被证明为正常的那4个砖头)。
当然,楼主见过的2种不同方法,其中一种大概是和姜胖大人一样的。
以下是我的解答:
先别急着动手。在做之前,先分析一下称重的作用。每一次称重的作用无非是令我们排除一些可能,缩小搜索范围,判断出重量异常的那个次品在哪个范围内,并确定下一步该如何称。而做到这一点,仅仅是通过观察称重的结果。每一次称重的结果最多有三种可能:左>右;左=右;左<右。可是,由于不知道次品和正品孰轻孰重,因此左和右孰轻孰重对于我们下判断做决定便不能构成任何区分,我们只能说两边相等或者不相等。但是,倘若之前有一次称重的结果也是不相等,那么本次称重的结果相对于之前那一次称重的结果就可以区分出三种可能了,也就是说,这时候的左大于右还是右大于左,在之前那一次不相等的称重背景下就有了区分的意义。
所以每一次称重,也许能区分出三种可能,也许能区分出两种可能。能够区分出多少种可能,接下来就会有多少个分支。当然仅有一种可能结果的称重也是有的:所谓只有一种可能结果的称重,就是说,我们在这次称重之前就能推断出是哪一种结果。这样的称重当然是毫无作用的,所以不要把称重次数浪费在只有一种可能结果的称重上。
排除了这种无用的称重,那么每一次称重接下来的分支可能有两条或三条。更准确的说,如果之前从来没有出现过不相等的称重,那么当前这次称重最多只能有两条分支——相等或者不相等;如果之前出现过不相等的称重,那么此次称重最多可以有三条分支——相等、和前面那次不相等的称重方向一致或者相反。
现在要确定一下使用的记号。A和B是两个集合,其元素都是砖头,A:B表示把A中所有砖头放在跷跷板左边,B中所有砖头放在跷跷板右边,来称重。我们用g(A)表示A的重量,g(A)=g(B)表示跷跷板平衡。现在我们要考虑:不平衡的时候采用什么记号?我们可以用g(A)≠g(B)表示跷跷板不平衡,但是为了和以后称重中可能出现的不平衡相比较(方向一致或者不一致),我们采用这种记法:A∧B,表示g(A)>g(B)(或g(A)<g(B));相应的我们引入A∨B,表示g(A)<g(B)(或g(A)>g(B))。也就是说∧表示大于或者小于,但究竟是大于还是小于并不确定,也不重要。关键是,当∧表示“大于”的时候,∨表示“小于”;当∧表示“小于”的时候,∨表示“大于”。当然,我们也可以采用其他记法:
1、直接在每次不平衡的时候说“大于(或者小于)”以及“小于(或者大于)”;
2、用类似∧∨这样一对符号来表示1中的意思;
3、只使用一个符号(比如∧),但是在说A和B不平衡的时候,详细说出究竟是A∧B,还是B∧A,以示区别。
要注意两点:
第一,以上2和3中的符号都应该表示反对称关系。([R是反对称的]当且仅当[对于任何xy,若xRy为真则yRx为假]),上面出现的<>∧∨都是这样的关系。而=和≠都是对称关系([R是对称的]当且仅当[对于任何xy,若xRy则yRx]。)
第二,2中的两个记号所表示的两个反对称关系应该互为镜像。(设S和R都是反对称关系。[S和R互为镜像]当且仅当[对于所有xy,xSy当且仅当yRx]。)
当使用表示一对互为镜像关系的符号,并且在比较的双方已知的情况下,我们采用下面的简写:在比较A:B的时候,“A∧B”简写为“∧”,“A∨B”简写为“∨”(同时,“A=B”也简写为“=”)。我们可以采用自己喜欢的记号,只要不引起歧义就行。比如我最初在草稿纸上写的时候就只用一个向上的箭头↑,写的时候就“A↑B”“B↑A”这样写;后来也上下两种箭头一起用(↑↓),写的时候就只写“↑”或“↓”。或者,用0代替=,1代替∧,-1代替∨,也是可以的。
下面我要引入树形图来帮助解题,它将贯穿下面所有的证明。
一个树形图由有限个点和有限条线构成,每条线都自上而下联结两个点,其中上面的点称为下面的点的父结点,下面的点称为上面的点的子结点。一个点如果没有任何父结点,就称之为根。一个树有且仅有一个根结点。除了根结点,其他每个点都有且仅有一个父结点。每个点都可以有若干个子结点,子结点之间没有线相连。一个点如果没有任何子结点,就称之为叶子。如果从根节点出发到达某个结点需要经过n条线,那么这个结点就在第n层(注意:根结点在第0层)。组成这棵树各个结点的最大层次就是这棵树的深度。
我们要用到的树就是这样,但是为了满足这道题的具体需要,还需做一些细化。
假设我们要从砖头集合U中找出那个异常元素。我们让一棵树除了叶结点以外的每个结点都对应一个二元组<X,Y>。其中X是U的子集,表示经由前面所有步骤判断出那个异常元素所属的范围;Y则表示A:B这样一个称重操作,其中A、B都是U的子集,且A与B没有交集,而且A和B的元素个数要相等(我们不知道正常与异常砖块的重量比,也不使用力矩称法,所以只能在跷跷板两边放置同等数量的砖块)。而每个叶结点对应U的一个子集,并且是单元集(即只含有一个元素的集合),叶结点上不再需要称重操作,因为已经确定异常元素是哪一个了。以后,在不会引起歧义的地方,我们直接把某个结点对应的判断和操作简称为判断和操作。我们还要给每条线都标上=∧∨这些记号。它们表示这条线上端那次操作的结果,如果上端那个操作是A:B,那么=∧∨分别表示g(A)=g(B),A∧B,A∨B。标注着不同记号的线导向相应的下端判断或操作。从现在起,我们有时也称一棵树为一个策略。
我们在前面说过,如果一次称重之前不存在至少一次不相等的称重结果,那么此次称重最多只能分出两种可能;否则,最多能分出三种可能。也就说,如果在一个结点之前,还不曾有过某条线(这条线不一定是紧接着这个结点的,但是必须能够经由这个结点向上通达到)被标记为∧或∨,那么这个结点的分支数最多两条;否则分支数最多三条。现在我们按照这一规则,从一个根结点开始向下分叉,并且使得深度不超过3。将每个结点下面的分支数目以及树的深度最大化,就得到下面的树形图。
这棵树的叶结点一共14个,但是从14个砖头里找到一个重量异常砖头的任务是不可能确保在三次内完成的,因为还需考虑以下限制。
如果只关注每个结点处的判断集合,即判断异常砖块所属的那个集合,那么下面几项条件限制着每个结点上集合(但没有穷尽所有限制)。
首先,一个策略的叶结点必须都是单元集,否则这个策略还是未完成的;
其次,一个结点上的集合恰好分割成它的子结点上的集合,即:一个结点的子结点上的集合互不相交,并且这些子结点对应集合的并集就等于该结点上的集合;
第三,一个结点下方所有叶结点的个数必须等于该结点对应集合的基数(即它的元素个数)。
(第三点可由前两点推出)
我们看到图中这棵树的根结点向下分为两棵子树,左边的子树有5个叶结点,右边的子树有9个叶结点。根结点上的集合就是U(就是任务开始时所给砖头的集合),而根结点上的操作则是A:B,其中A和B都是U的子集,且互不相交。根结点向下分出两支,分别对应着A=B时的操作和A∧B时的操作。若A=B,则异常砖块一定不在A或B当中;因此,在A=B这一分支下的子结点上的集合等于U-(A∪B)。若A∧B,则异常砖块一定在A或B当中;因此,在A∧B这一分支下的子结点上的集合等于A∪B。由于A和B的基数相等,假设A的基数为a(a为正整数),则A∪B的基数就等于2a。因此,右边子树下的叶结点数目必须是偶数。有了这个限制条件,且又知道深度为3的树的右边子树的叶结点最多有9个,于是我们知道右边子树的叶结点最多有8个。8和左边子树的叶结点数目5相加就是13。这就证明了不存在三步以内的策略,能够将大于等于14个砖块中的异常砖块找出来。
由上面的设定还可以知道,若U的基数为w,则U-(A∪B)的基数为(w-2a)(因A的基数是a,且A和B基数相同),也就是左侧子树的叶结点数要等于w-2a,且由于深度不大于3的树左侧叶结点数最多是5,于是w-2a≤5;类似的,右侧子树的叶结点数要等于2a,且由于深度不大于3的树左侧叶结点数最多是9,于是2a≤9。解出来就是(w-5)/2≤a≤9/2。若w=12,则a只能为4(若w=13,a也只能为4)。
(未完待续。抱歉,今天拉肚子,不然现在就写完了。上面已经证明的结论:在n块砖里找出一块异常砖头,且能够保证在三次以内完成的,n不能大于13;当n=12,第一次称重必须为4:4。明天将证明:n=12时,有10种方案可以3次完成;n=13时,有12种方案可以3次完成。我相信根据我上面给出的线索,已经有很多人知道该怎么做了。)
㈦ 为什么程序员的思维很难理解
1、程序员的思维比普通人要严谨。
对编程有一定了解的人都能理解这一点,一是一二是二,电脑不认模棱两可的回答,因为“模棱两可意味着更多的可能答案”,所以你跟程序员交谈的时候,如果你问他“为什么要这样问”或“你为什么听不懂”,你就会知道你自己的描述有多么的不严谨了。
最简单的例子,你妈妈让你去市场买水果,如果看到有苹果就买一个苹果,看到梨就买两个。你看到市场有苹果和梨,你会买什么回家?
首先给出一个大前提,在程序上不存在“潜台词”或者“潜规则”这种东西,唯一起作用的只有“字面意思”。
一般人肯定是买一个苹果和两个梨。当然程序员也不是脑子有坑,以一个正常人的思维考虑也会买一个苹果和两个梨,但是看到这问题的第一个瞬间的直觉反应,却是“如果看到梨就买两个苹果”。这个问题不存在潜台词,所以所有人都会直接从字面理解老妈的意图。
按照程序的逻辑分析,这句话共分为两个部分,代表两个程序任务。“如果看到有苹果就买两个苹果”为任务一,条件是“看到有苹果”,目标对象“买苹果”,数量“一个”;“如果看到有梨就买两个”为任务二,条件是“看到有梨”,数量“两个”,没有给出新的目标对象。
因此按照程序逻辑来讲,第二句话将继承上一个目标对象,也就是“买苹果”,所以这句话被看起来像职业病一样的思维直接翻译成了“如果看到有苹果就买一个苹果,如果看到有梨就买两个苹果。”
————————————————————
2、程序员看问题比一般人透彻。
这是职业特性导致的,因为电脑编程的严谨性,因此程序员面对一个问题、一个需要实现的目标或者一个bug时,他会思考更底层的问题,并且会习惯性采用归纳法来尽量避免以后可能遇到同样的问题。
比如用输入法输入中文的词句,有的时候打出了一串拼音,然后按下数字2选取发现不是自己想要的词,然后发觉数字1对应的才是自己想要的,删掉,重新输入拼音,这次按下数字1的瞬间却发现两个词的位置调换了,于是又删掉重新键入,这次认真地看了看,终于选对了想要的词的序号。
这个时候你会说,啊,我下次应该更小心一点,不要马虎大意想当然,看清楚了再点。
程序员不这么想,他会想,导致这个问题的看来是输入法的“词语顺序自动调整”功能,他会自动监测使用者输入的各种词语的频率,来自动调整词语的顺序,底层代码实现的逻辑很简单,每个不同的词对应一个从输入法安装到现在的输入次数的计数器,直接按计数器排列顺序就好了;也有的输入法会监测你输入后是否会将其删掉,那么这时候会被智能识别为打错字,计数器不会加一。
然后再一思考,这种功能一般都是可以开关的,如果我想要靠记忆记住顺序使用而不用输入法自动调整的话,比如对汉字输入的速度有一定要求需要考记忆记住汉字序号,我只需要进入输入法设置将其关掉即可;如果我想要它帮助我调整词句位置,但是又不需要频繁地调整,那么在我有工作需要的时候我会提前关掉,平时开启即可;而如果我想单纯依赖这一功能,那就不用管它,下次看清楚再选就好了。
㈧ 面试难题的样板回答
面试难题的样板回答
面试难题的样板回答,面试在求职过程中是一个很重要的环节,其中在面试的时候回答问题是很正常的,但是有些面试官问的问题是很刁钻的,下面我给大家分享面试难题的样板回答,希望能帮到大家。
1、为什么不谈谈你自己?
分析:这是个开放性问题。从哪里谈起都行,但是滔滔不绝地讲上一两个小时可不是雇主所希望的。这样的问题是测验你是否能选择重点并且把它清楚、流畅地表达出来。显然,提问者想让你把你的背景和想要得到的位置联系起来。
回答对策:有几个基本的方法。一个是直接简要回答所问的问题,另一个是在回答前要求把问题问得更明确。在上述两种情况下,你都要很快地把你的答案转到你的技能、经验和你为得到目前这份工作接受的培训上来。
回答样板:“我来自一个小家庭,有一个弟弟,父母都还在工作。中学毕业后,我攻读市场营销学士。日间在一家商业机构担任行销执行员,学了不少管理方面的知识。例如,我全权负责的一个批发销售公司的业务,销售总额一年为200万美元。在那里我学习到怎么管理人事,在压力下解决问题。我希望能更好的运用我的技能。我相信我的经验和学历将让我迎向未来更大的挑战。”
评语:只简单的介绍了个人历史,很快的将重点话题转到与工作有关的技能和经验上来。你也可请面谈者把他确实想了解的东西集中到一点,如你可问:“你是不是想知道我受过的教育,或者与工作有关的技术和经验?”等,大多雇主都会乐意告诉你他们感兴趣的是什么?
2、我为什么要雇用你?
分析:这是个直接、正面的问题,尽管这个问题不会问得这样明确,但是会在其它问题之后被提出来,这个问题没有隐含的意思。
回答对策:直接的问题需要直接了当回答,为什么他们要雇用你呢?最巧妙的回答对他们而不是对你有利。这个问题会使你向他们提供证据以证实你可以帮助他们改进工作效率,降低成本、增加销售、解决问题(如准时上班,改进对顾客的服务、组织一个或多个管理工作等)。
回答样板:“我是个经验丰富的经理,在员工队伍建设方面,从组织项目的实施到鼓励员工合作,我得心应手。多年来,我已经掌握了一套雇人和留人的技巧。此外,我还擅长帮助公司顺利实现技术改造和员工培训。我经常对主要客户进行示范讲解,我们的销售额在过去两年平均增加了87%。”
评语:在回答中,以实例提供有力的证据,直接而自信地推销自己。
3、你有哪些主要的优点?
分析:像前面问题一样,这个问题问得相当直接,但是有一点隐含。
回答对策:你的回答应当首先强调你适应的或已具有的技能。雇用你的决定在很大程度上取决于这些技能,你可以在后面详细介绍你与工作有关的技能。回答时,一定要简单扼要。
回答样板:“我具有朝着目标努力工作的能力。一旦我下定决心做某事,我就要把它做好,例如,我的志愿是成为一个出色的公关经理,我喜欢接触不同的人,服务人群,为了实现这个目标。我目前正在修读有关课程。”
评语:如“我的学习能力、适应能力很强。”“人际关系很好”等都是可提出的优点,但尽可能要提供与工作相关的证据,这会使你与众不同。
4、你有哪些主要的缺点?
分析:这是个棘手的问题。若照实的回答,你会毁了工作,雇主试图使你处于不利的境地,观察你在类似的工作困境中将作出什么反应。
回答对策:回答这样的问题应诚实。完满地回答应该是用简洁正面的介绍抵消反面的问题。
回答样板1:“工人们指责我对工作太投入。我经常提前一点上班安排好我的工作,晚上晚一点下班,使要干的事得以完成。”
回答样板2:“我需要学会更耐心一点。我的性子比较急,我总要我的工作赶在第一时间完成。我不能容忍工作怠慢。”
评语:回答的虽是自身的缺点,但却表现了正面的效果,对工作的积极抵消了反面。
5、你想得到的薪水是多少?
分析:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位定下开支预算,因而他们第一次提出的价钱往往是他们所能给予的最高价钱。他们问你只不过想证实一下这笔钱是否足以引起你对该工作的兴趣。
回答对策:在商谈薪酬之前,你已经调查了解了自己所从事工作的合理的市场价值。在与对方商谈时,不妨尽可能插入“合理的和市场价值”语汇。记得,商谈时降低原来的开价轻而易举,但一旦开出低价后想再提上去就难乎其难。
回答样板1:如果你尚未彻底表现自我价值,面试者就提此问题考你,你不妨参考以下答案:
“钱不是我唯一关心的事。我想先谈谈我对贵公司所能做的贡献--如果您允许的话。”
“我对工资没有硬性要求。我相信贵公司在处理我的问题上会友善合理。我注重的`是找对工作机会,所以只要条件公平,我则不会计较太多。”
回答样板2:如果你已经阐明该职位的重要性,可是对方仍旧告诉你给你的报酬已是最好的。您不妨指出它的工作性质实际上值得你获得更高的报酬;阐明你将如何通过努力缩减公司的开支;说明在工作中你得自我承担哪些费用等,以证明你对公司的价值,和表明你要求更高报酬是以你的工作表现为前提的。
但是如果对方不愿妥协,在你未得到肯定的工作答复之前,不要使雇主排除对你的考虑。你可以问:‘你们决定雇用我了吗?”如果答案是肯定的,报酬却使你不愿接受,你可以这样拒绝:
“谢谢你给我提供工作机会。这个职位我很想的到,但是,工资比我想要的低,这是我无法接受这份工作的原因之一。也许你会重新考虑,或者以后能有使我对你们更有价值的工作时再考虑我。”
评语:即使拒绝对方,也要为协商留有余地。如果雇主需要你,他会乐于满足你的要求。一旦你对他们提出的标准说“不”,交易就做不成了
6、你以前的经验和我们现在的工作有哪些联系?
分析:这个提问要求你在与其它求职者进行比较时,你要克服你背景中显示出来的任何弱点。
回答对策:首先要介绍你的优势。假如其它求职者明显地比你受的教育多,工作经验多或知识多,那么你就要介绍你的优势。
回答样板1:“如你所知,我刚刚结束电脑编程方面的加强培训。另外,我在企业方面有三年多的工作经验,其中包括在老板不在时管理小型企业。我在那学会了处理财务及基本的会计工作。我还盘算和管理过价值30万美元的产品。这些经历帮我认识企业使用电脑编程的作用。虽然我刚接触编程工作,我对电脑语言是熟悉的。我受的教育是全面的,我有300多个小时的电脑操作时间,这是我课程的一部分。因为我是新手,我决心比别人更努力地工作,以便及时完成任务。”
评语:这种回答强调了可转换性的技能(会计工作知识)和适应性技能(按时完成任务,更努力工作)。这对缺乏工作经验的程序员来说是必要的。在这种情况下,在学校学的知识也非常重要,也要像“正式”工作那样予以强调。
回答样板2:“在以前的工作中,我使用过很多与做好这项工作所需要的相同的技术。尽管是不同的企业,但管理企业都需要有我具有的组织和监督能力。在过去的七年里,我使我的部门成为我们公司最赢利的部门之一。在我工作期间,每年销售额平均上升30%,利润也提高30%。由于这是个老公司,这样的业绩是很不一般的,七年中我得到两次晋升,并很快地荣升到管理层。我想在你们这样小的、发展型公司接受挑战,我感到我的经验为我走向这一步做好了准备。”
评语:回答者明白以前的工作领域与现在考虑的不同,但是,他强调了成绩和以前的成功。为完成这项工作,各种管理技术都会用到。回答中还谈到继续接受小公司工作挑战的动力。
7、你对以后有什么打算?
分析:这个问题是在考察你的工作动机。它是在探究是否可以信赖你把工作长久地干下去,而且干得努力。
回答对策:你最好的对策就是诚实。这是一贯强调的。我并非是要你把负面的信息也摆出来,你应该准备坦率地、正面地回答雇主关心的问题。而哪些是雇主关心的问题取决于你介绍个人背景的具体情况。
例如:
-你对工作满意吗? (如果不满意你会离开公司吗?)
-你想成家吗? (如果成家,你会停职去照料小孩吗?)
-你是否有过短期工作后离开的历史?(如果有,你会不会也放弃这份工作呢?)
-你是否刚搬到此地,是临时的或暂住人口?(如果是,你也不会在此地久居,对吗?)
-你是否有比本工作要求更好的条件?(如果是,是什么使你不去高就呢?)
-你有什么优势和承诺在工作中发展吗?(如果不是,谁需要一个没有优势和动力的人呢?)
-有什么原因使你感到不满吗?(如果有,雇主自然会设法搞清楚。)
回答样板1:对于一个刚刚参加工作的人,他可以这样回答:
“我认识到要在这一领域造就自己,我很愿意从此开始。我想过我要做什么,而且肯定我的技能正是做好这项工作所需要的。例如,我善于与人打交道。在我过去的一项工作中,我每周向1000多名不同的人提供服务。在我18个月的工作中,我曾为72000多名顾客提供服务,从未得到一次正式的投诉。事实上,他们常因我的周到服务表扬我。我认识到我喜欢与公众接触,想到我能得到这份工作感到非常愉快。我想在工作中更好地学习,并与之共同进步。由于我对公司的贡献和价值不断提高,我希望能考虑使我得到更有责任的职务。”
评语:雇主想了解你会长期工作下去并努力工作。这样的回答使对此表示关注的雇主感到安慰。(注意,这样的回答可以在快餐店工作获得的经验为背景。)
回答样板2:对没有工作经验和只有各种短期工作经验的人,他们可以这样回答:
“我做过几种工作(一种或失业),我认识到应该珍视体面的、稳定的工作。我的各种经验是一种财富,我学到很多东西,我可以把它们用于这项工作中去。我正在寻找一份可以安定下来,努力工作并持久下去的工作。”
评语:这是一种可以接受的回答,只是回答太短,也没有提供证据。介绍自己的实例最好放在最后一句话之前。有些职务,如销售方面的工作,要求你有勃勃雄心,或者说是咄咄勇气。其它工作有对工作领域或专门机构的要求。你不会总能预料到雇主想要什么。如果你能正确地做,你就会具有任何工作要求的条件,而这一切只需要你用嘴讲出来,就是这么简单。
8、你以前的雇主(教师、介绍人、管理员等)对你的评价如何?
分析:这个问题与雇主的第二种期望有关。雇主想知道你的适应性技能--你是否容易相处,你是否是个好工人等等。你以前的雇主可能会谈到你存在的问题,当然,也可能不谈。你知道,许多雇主会在雇用你之前查阅你的证明信,如果你在面谈时谈的与你以前的雇主说的不一样,你就要倒霉了。
回答对策:一定要与你以前的雇主讨论你的求职计划,也要征求你介绍人的意见。要明确地告诉他们你想找的工作种类以及你准备做好新工作的理由。假如以前的雇主会说一些不利于你的话,你要和他开诚布公地谈谈,看他会说写什么。
如果你是被解雇或被迫辞职的,你可以向未来的雇主进行辩解。有很多成功的人与前雇主发生过冲突,如果能把这些冲突尽可能地讲出来,许多面谈者是会理解的。对和你关系不好的旧雇主,明智的办法是请他写一份文字证明材料,在这种情况下,他们不会给你极为不利的信。大的公司一般不接受电话提供证明材料,这可以使你大大地松一口气,只要给公司打个电话就清楚了。
如果可能的话,使用那些说你好话的证明信。要是你的前任老板不愿这么做,找个愿意帮忙你的人便行了。如果你被解雇了,最好的对策是实话实说。但是对你的前任老板不要太苛刻,这样会让人觉得你是个好抱怨而无责任感的人。再者,你也不是一点错也没有。要先承认有这么回事,接着要趁机谈谈你从中得到的教训。
回答样板:“我的三个前雇主都会说我工作努力,可靠、忠实,我离开那里是因为个人冲突。为此我深深地感到烦恼,只有放弃那里的工作。你可以给他们打电话,他们对我的评价是肯定。我认为还是向你们谈谈为好,我仍然尊敬他。我在那得到了几次晋升的机会,但是,随着我权力的增加,冲突也越发地多起来。我们主要是不同类型的人。我不知道问题会有那么严重,因为我一心只想工作。这是我的错,我认识到我应该更加注意人际关系的处理。”
评语:回答中介绍了一些正面的技能,并用具体事例加以说明,因而是有力的。
9、你为什么要找这样的职位?为什么是在这里?
分析:雇主想了解是否你是那种无论什么公司有活就行的人。果真如此,他或她就不会对你感兴趣。雇主想找那种想解决工作中问题的人。他们有理由认为这样的人工作起来更努力,更有效率,而那些想去特别的公司工作的人也是如此。
回答对策:事先了解哪些工作适合你的技能和兴趣非常重要。要回答这个问题,就要谈到你选择工作目标的动机,那项工作要求的而你又具备的技能,各种专门培训,或与职务有关的教育证书。
这个问题实际上有两方面的含意。一是为什么选择这个职位,二是为什么选择这个公司。如果你有选择这个公司的理由,或选择这个公司是你最大愿望,你就要准备回答为什么。如果可能的话,在面谈前,你要事先尽可能地对它进行了解。与别人联系得到详细的情报,或到图书馆查阅,看公司的年度报告,或任何能使你了解情况的方法都是必要的。
回答样板:“我花费了很多时间考虑各种职业的可能性,我认为这方面的工作最适合我,原因是这项工作要求的许多技能都是我擅长的。举例来说,分析问题和解决问题是我的强项,在以前的工作中我能比别人更早发现和解决问题。有一次,我提出一项计划使得租借设备的退货率减少了15%,这听起来不算高,但是取得了年增长25000美元的好效益。而成本仅为100美元。目前你们公司似乎是能让我施展解决问题能力的地方。这个公司工作运行良好,发展迅速,善于接受新思想。你们的销售去年上涨了30%,而且你们准备引进几项大型新产品。如果我在这里努力工作,证实我自身的价值,我感到我有机会与公司共同发展。
评语:这种回答巧妙地运用了“提供证据”技巧,这样的话符合一个出色的经理或优秀的秘书的身份。
10、为什么不讲一讲你个人的情况?
分析:一个好的面谈者很少这样直接地提出这个问题,通过随意的、友好的谈话也可以得到想了解的情况。在大多数情况下,面谈者会竭力地打探证明你不稳定或不可靠的信息。
回答对策:还有其它一些可能使某个雇主关注的问题,以上问题只是对某些性格的人的推测。这都是些不相关的问题,但是,如果雇主想以此来了解你可否可靠,你就得全力以赴地去应付了。要记住即使是随意地闲谈也要避免提及隐晦的问题。在回答个人情况时,要态度友好而且自信。
回答样板:
有小孩子的家:“我有两个小孩,都在上学。他们和我的一个好朋友在一起,照料孩子不成问题。”
一人主家:“我没有结婚,但是我有两个孩子。对我来说有一份稳定的收入很重要,照料孩子不成为问题。”
年轻、单身:“我没有结婚,即使结婚,我也不会改变做专职工作的打算,我可以把全部精力用在工作上。”
新搬来的:“我决定在Depression Culch 长期居住下来,我租了一套公寓,搬家公司的六辆车正在卸家俱。”
抚养人:“我有个愉快的童年,我父母住的地方离我只需一小时飞机的路程,我一年去看他们几次。”
闲暇时间:“在我不去上班时,我主要呆在家里。我爱参加社区组织的活动,我每周都要在教堂参加活动。”
怎样应对面试难题
积极面对“怪题偏题”
“居然问‘为什么下水道井盖是圆的’这种问题,这和专业岗位根本没有关系,考官为什么要这样问呢?”小张一脸困惑地说。面试时,小张被这个问题考“倒”了,他沉默了半天,然后说了句“我不知道”。之后,小张的情绪明显受到影响,越来越没有信心。
一位专业人士分析, “为什么下水道井盖是圆的?”,这是一道非常经典的面试题,很多职业指导的书籍都援引过它。这道题目之所以经典,就是因为它的答案是开放式的。比如,有应聘者回答“圆形的物体容易搬运,因为可以滚动”。出题者的目的是用这道题来考察应聘者的逻辑思维和创造性思维,同时也考察应聘者的临场反应能力。
职业心理学专家王一敏老师指出,在面试中,面对考官的问题,应聘者最好表现出“很想回答、很愿意回答”的态度,这样会给人一种积极向上的感觉。反之,回答“我不知道”,有时会让人觉得你没有努力尝试去找解决问题的方案。如果应聘者真的一时想不出,可以用“让我想想”等话来暂缓一下。
面对“被否定”的局面
“你认为你刚才的回答正确吗”、 “这就是你的简历吗?明显没有经过很好的准备”、 “我对你今天的面试表现非常失望”。有时,考官会否定应聘者的成绩和观点,然后看应聘者在被否定的情况下,会如何表现。这种面试被称为“压力面试”,是指在面试过程中,考官提出一些具有困难性、挑战性、非常规性的问题或设计类似的场景,通过追问或者质问的方式,有意制造出紧张而有压力的气氛,从而观察应聘者的反应,探测其素质和个性。压力面试通常用于那些应聘者,他们谋求的职位需要较高的心理承受力。
有心理学专家提醒,遇到这种情况,应聘者首先要保持镇定,不要被突如其来的质问吓住,要对自己的判断和回答有信心;还有,应聘者可以提出反问,比如“您觉得我的简历有什么地方需要修改”等。王一敏老师认为,当被考官否定时,最关键的是,应聘者要对自己有一个贴切的自我认知。
小杨经历了一场面试。考官向小杨提出要求: “请你在30分钟内,叫到你的20位朋友到达我们面试现场。”这时,小杨从口袋中掏出手机。考官接着说: “你认为自己是个自私的人吗?你为了自己面试,让那么多朋友为你奔波?”小杨回答: “所谓朋友,就是在对方需要的时候伸出援手。今天我来贵公司谋职,对我来说是件大事,而当我的朋友有类似重要的事情找我,我也会答应。”小杨的回答得到了认可。有专家指出,在面对这些问题时,考官主要是看应聘者的反应方式,而具体的反应内容则居于其次。
珍惜展示自己的机会
一家电器大卖场通知小林参加面试。小林到了现场后,却不见通常的场景,人力资源部经理将十来个应聘者一起领到卖场大门口的马路上,要求他们对来往行人说“您好”。当小林面对路人时,他觉得十分难为情,表现得十分不自然。几天过后,小林打电话去询问面试情况,用人单位告诉他,他对人不够热情,不适合做这份工作。
有专家分析,小林经历的这次面试,是通过一种场景的模拟,来测试应聘者的心理状况。这类压力测试的针对性非常强。以小林经历的这次面试为例,其实是企业想给员工一种心理暗示:每一位路人都是潜在的顾客,员工要知道“顾客至上”。
王一敏老师提醒,应聘者事先要对自己应聘的职位要有充分的了解。如果应聘销售、教师等工作,应聘者可以事先做一些准备,要知道有些心理压力是自己必须要承受的。在进行模拟测试时,应聘者要珍惜这次展示自己的机会。
另外,王一敏老师谈到,企业可以通过心理测试、性格测试来全面了解应聘者的心理素质。还有,当压力面试结束后,企业应该向应聘者解释用意。
㈨ 如何程序员提高自己的逻辑思维
1、 学习一门脚本语言
可以让你摆脱对底层语言的恐惧感,脚本语言可以让你很快开发出能用得上的小程序。实践项目:
处理文本文件,或者csv (关键词 python csv, python open, python sys) 读一个本地文件,逐行处理(例如 word count,或者处理log)
遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果
跟数据库打交道 (python sqlite),写一个小脚本统计数据库里条目数量
学会用各种print之类简单粗暴的方式进行调试
学会用Google (phrase, domain, use reader to follow tech blogs)
为什么要学脚本语言,因为他们实在是太方便了,很多时候我们需要写点小工具或是脚本来帮我们解决问题,你就会发现正规的编程语言太难用了。
2、 用熟一种程序员的编辑器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,学会如何配置代码补全,外观,外部命令等。
Source Insight (或 ctag)
使用这些东西不是为了Cool,而是这些编辑器在查看、修改代码/配置文章/日志会更快更有效率。
3、 熟悉Unix/Linux Shell和常见的命令行
如果你用windows,至少学会用虚拟机里的linux, vmware player是免费的,装个Ubuntu吧
一定要少用少用图形界面。
学会使用man来查看帮助
文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
学会使用一些文本操作命令 sed/awk/grep/tail/less/more …
学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…<</p>
了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息
了解正则表达式,使用正则表达式来查找文件。
对于程序员来说Unix/Linux比Windows简单多了,学会使用Unix/Linux你会发现图形界面在某些时候实在是太难用了,相当地相当地降低工作效率。
4、 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)
未来必然是Web的世界,学习WEB基础的最佳网站是W3School。
学习HTML基本语法
学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的网页结构,并动态修改。
学习使用Javascript操纵HTML元件。理解DOM和动态网页,网上有免费的章节,足够用了。或参看 DOM 。
学会用 Firefox + Firebug 或 chrome 调试<</p>
在一台机器上配置Apache 或 Nginx
学习PHP,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。
把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
跟完一个名校的网络编程课程,不要觉得需要多于一学期时间,大学生是全职一学期选3-5门课,你业余时间一定可以跟上
学习一个+ Ajax (异步读入一个服务器端图片或者数据库内容)+JSON数据格式。
HTTP: The Definitive Guide 读完前4章你就明白你每天上网用浏览器的时候发生的事情了(proxy, gateway, browsers)
做个小网站(例如:一个小的留言板,支持用户登录,Cookie/Session,增、删、改、查,上传图片附件,分页显示)
买个域名,租个空间,做个自己的网站。