㈠ 程序員需要學些什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
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,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網站。