練習解決問題技巧的最好方法是什么(一)
What is the best way to practice problem solving skills?譯文簡介
網友:我在高中為國際物理奧林匹克競賽做準備時,解決了數千個物理問題,在劍橋大學也解決了幾百個。去年夏天,我開始準備軟件工程實習申請。我在競賽算法練習方面解決了幾百個問題,在幾周內,我已經達到了在面試中取得好成績所必需的水平......
正文翻譯
What is the best way to practice problem solving skills?
練習解決問題技巧的最好方法是什么?
原創(chuàng)翻譯:龍騰網 http://www.top-shui.cn 轉載請注明出處
評論翻譯
很贊 ( 0 )
收藏
I have solved thousands of problems in physics during my high school when I was preparing for International Physics Olympiads and a few hundred at University of Cambridge.
Last summer, I started preparing for Software Engineering internship applications. I solved a few hundred questions on HackerRank and, in a few weeks, I managed to get to a level necessary for good performance in interviews.
(I am telling you these so you would know that I am not BSing and actually know what I am talking about.)
When I first started problem-solving, I was bad. I was nowhere close to even a regional-Olympiads, let alone International!
I started solving problems during my physics club. It took me dozens of problems before I could up my level. I remember one day how I happily approached my teacher and told her: “I solved a National Olympiad question yesterday!”
Fast forward, two years and I was solving international Olympiad problems in ease!
How? What did I do? What’s the secret?
我在高中為國際物理奧林匹克競賽做準備時,解決了數千個物理問題,在劍橋大學也解決了幾百個。
去年夏天,我開始準備軟件工程實習申請。我在競賽算法練習方面解決了幾百個問題,在幾周內,我已經達到了在面試中取得好成績所必需的水平。
(我告訴你這些,是為了讓你知道我不是在說謊,也知道我在說什么。)
當我第一次開始解決問題時,我很差勁。我甚至連地區(qū)奧運會都沒參加過,更別提國際奧運會了!
我在我參加物理俱樂部期間開始解決問題。我做了幾十道題才提高了水平。我記得有一天,我高興地走近我的老師,告訴她:“我昨天解決了一個全國奧林匹克運動會的問題!”
很快,兩年過去了,我輕松地解決了國際奧林匹克競賽的問題!
怎么做到了?我做了什么?有什么秘密嗎?
原創(chuàng)翻譯:龍騰網 http://www.top-shui.cn 轉載請注明出處
JUST KEEP GOING.
Honestly, just keep solving problems and I guarantee that you would get better in this.
But DON’T just look up the solutions, and think that you solved the problem without understanding it and move on.
You need to think about the problems but most importantly you have to get value from it. When you look up the solution, do not just read it, say “yeah, whatever” in your mind and skip.
Instead, ask yourself, “why couldn’t I solve it? How could I have solved this?”
秘密是:堅持就好
老實說,只要繼續(xù)解決問題,我保證你會做得更好。
但是,不要只是查找解決方案,在沒有理解問題的情況下認為你就解決了問題,然后繼續(xù)前進。
你需要思考問題,但最重要的是,你必須從中獲得價值。當你查找解決方案時,不要只是閱讀,在你的腦海里說“是啊,隨便吧”,然后跳過。
相反,問問自己,“為什么我不能解決它?我怎么能解決這個問題?”
原創(chuàng)翻譯:龍騰網 http://www.top-shui.cn 轉載請注明出處
Maybe you had to think out of the box. Learn from this experience. Note this down in your mind.
On and on, you do this, and your problem solving would increase. And not only it would be good in physics, but in math, in computer science, and in life.
The key point, however, is this:
EVERYONE STARTS FROM THE BOTTOM.
Nobody is born solving complex problems. Like any skill, problem-solving is developed.
Just keep doing it and you WILL get there. Believe me.
也許是因為缺乏知識(例如,你不了解力學定律是如何工作的)。如果是知識,不要去解決問題,而是先學習理論。
也許你需要打破常規(guī)。從這次經歷中學習后把這些記在腦子里。
不斷地重復做,你解決問題的能力就會提高。它不僅在物理方面會很好,在數學、計算機科學和生活方面也會很好。
然而,關鍵是:
每個人都從底層開始。
沒有人天生就是解決復雜問題的。像任何技能一樣,解決問題的能力也在發(fā)展。
相信我,只要堅持下去,你就會成功。
Problem solving requires deep or new thinking and it’s a hard job because brain has to deal with complexity.
Problem solving is as old skill as human themselves. Computers are just tools used in the process of problem solving.
Now focus following quotes of Einstein:
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.”
and
“We can not solve our problems with the same level of thinking that created them”
How new thinking comes to mind?
Again Einstein answers it.
“If I had an hour to solve a problem I'd spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.”
The key to solving problem is understanding the problem better.
Simple problems are easy to solve but dealing with complex problems may be mind boggling.
Then how to solve complex problems?
There is set of techniques for it.
解決問題需要深入思考或采用新的思考方向,這是一項艱巨的工作,因為如此一來大腦必須處理復雜性。
解決問題的技能和人類自身一樣古老。電腦只是解決問題過程中使用的工具。
下面是愛因斯坦的名言:
“我們創(chuàng)造的世界是我們思考的過程。如果不改變我們的思維,它就無法改變?!焙汀拔覀儾荒苡脛?chuàng)造問題的思維水平來解決問題”
新思維是如何浮現在腦海中的?
愛因斯坦再次回答了這個問題。
“如果我有一個小時來解決問題,我會花55分鐘思考問題,5分鐘思考解決方案?!?br /> 解決問題的關鍵是更好地理解問題。
簡單的問題很容易解決,但處理復雜的問題(過程)可能令人難以置信。
那么如何解決復雜的問題呢?
這有一套技能。
Now solve each smaller problem one by one so that the solution to complex problem becomes visible.
When solving problems, often patterns are looked for. It’s same as “One size fits all”. You won’t write a program to add 1 + 2, rather you would program a pattern so that any two integers x and y could be added. Otherwise, the solution would be too rigid and fail to solve a similar problem like 1 + 3 (without making change to the code)
Abstraction is an important concept in problem solving that most people understand hardly. Let me explain it.
當你面對一個復雜的問題時,把它分解成更小的問題。換言之,這與“分而治之”或“一次咬一口就吃掉一頭大象”的理念是一樣的。
現在一個接一個地解決每個小問題,這樣復雜問題的解決方案就變得可見了。
在解決問題時,通常會尋找模式。這和“一刀切”是一樣的。你不會編寫一個程序來加“1+2”,而是編寫一個模式,以便可以將任意兩個整數x和y相加。否則,解決方案將過于僵化,無法解決類似的問題,如“1+3”在不修改代碼的情況下就無法解決。
抽象化是解決問題中的一個重要概念,大多數人都很難理解。讓我解釋一下。
原創(chuàng)翻譯:龍騰網 http://www.top-shui.cn 轉載請注明出處
Let’s explore the abstraction from another angle. Suppose you want to represent a river in computer, how would you do it? Fill water in your computer? No. Computer is just an information representation, information manipulation, information storing and or information exchange machine. All information in computer has to be represented as text, image, sound, video or in some hybrid format. We can abstract river either with text (number, letter or symbol), an image or a sound or a video with some other hybrid format of these four. In this context abstraction works as a code.
在給朋友寫郵件時,你是關注字母表,還是關注單詞或句子,更重要的是關注發(fā)送的信息?也許你關注的是信息,因為當你還是個小學生時,字母表、單詞和句子是問題所在,現在不是了?,F在,你可以在解決其他問題(如發(fā)送有意義的消息)的同時對它們進行抽象化。
讓我們從另一個角度探討抽象化。假設你想在計算機中表示一條河,你會怎么做?給你的電腦注水?不,計算機只是一個信息表示、信息處理、信息存儲和/或信息交換的機器。計算機中的所有信息都必須以文本、圖像、聲音、視頻或某種混合格式表示。我們可以用文本(數字、字母或符號)、圖像或聲音或視頻等四種混合格式來抽象化河流。在這種情況下,抽象化就像代碼一樣工作。
If you understand this answer and someone asks you, “Can you grow a tree in computer?”
Just answer that computers can only deal with information and inside a computer you can make a computational model of information of a tree which renders and give you the abstraction of a real tree planted in ground.
You can write a graphical program where you may represent tree with a vector image and change its co-ordinates to show growth of tree and rate of growth could be set the same at which real tree on ground grows.
You can write a command line program where you may represent tree with a number and then change that number to show growth of tree and rate of growth could be set the same at which real tree on ground grows.
It all depends how you abstract things.
In short, you can solve any problem by better understanding it, decomposing it to smaller problems (to deal with complexity), make it as generic as possible through pattern recognition and off course abstracting things at each stage of problem solving.
To solve riddles is a good practice for stretching thinking capabilities of your mind.
一旦我們分解了問題,識別了模式并完成了必要的抽象化,我們就可以編寫算法了。算法是解決問題的通用步驟。
如果你理解了這個答案,有人問你:“你能在電腦里種一棵樹嗎?”
你只需回答,計算機只能處理信息,在計算機中,你可以為樹的信息建立一個計算模型,從而呈現并給你一棵種植在地下的真正的樹的抽象概念。
你可以編寫一個圖形程序,在該程序中,你可以用矢量圖像表示樹,并更改其坐標以顯示樹在生長,并且可以將生長速率設置為地面上真實樹的生長速率。
你可以編寫一個命令行程序,在該程序中,你可以用一個數字表示樹,然后更改該數字以顯示樹的生長,并且可以將生長速率設置為地面上真實樹的生長速率。
這完全取決于你如何抽象化事物。
簡而言之,你可以通過更好地理解問題,將其分解為更小的問題(以處理復雜性),通過模式識別和在問題解決的每個階段對事物進行抽象化,使其盡可能一般化。
解謎是拓展思維能力的好方法。
Honestly, I will tell you something very simple which always helps me a lot.
Go back to your basics.
Instead of directly jumping to a conclusion, read it when you look at a problem. Reread it once you are done reading it, with a mindset that this problem is made for you to solve.
Now look at all the concepts in your head, visualize those and then try to apply those.
Believe me, you are already more than halfway there, even if you think you are not.
You start to read that problem, trying to solve it, remembering all the steps; that’s the most challenging part. Other than that, just that one step varies from problem to problem. You will start realizing those tricks as you practice them more.
老實說,我要告訴你一件非常簡單的方法,它對我一直很有幫助。
回去學習基礎。
與其直接得出結論,不如在看問題時閱讀(基礎知識)。一旦你讀完了,就重讀一遍,抱著這樣一種心態(tài):這個問題就是為你而設的。
現在看看你頭腦中的所有概念,將它們形象化,然后嘗試應用它們。
相信我,即使你認為自己還沒有完成,你已經完成了一半以上。
你開始閱讀這個問題,試圖解決它,記住所有步驟;這是最具挑戰(zhàn)性的部分。除此之外,這一步就因問題而異。隨著你的練習,你會開始意識到這些技巧。
Problem solving is a learned life skill. It’s a process. The ability to make choices, large and small is also a learned skill and one most parents teach their children from a young age. Making choices is part and parcel problem solving. The more confident and sure you are about the choices you make, the better you success overall. However, there is a another group……
There’s an old saying, “Not to decide is to decide.” Unfortunately, I’ve met more than one young person this applies to. There is a disturbing trend in some places, including right here in America, in which young people enter the world alone for the first time through college, traveling, out of state/country job opportunities, etc.. and the second they hit a bump in the road, they freeze. Literally. Because they have no idea how to make a choice beyond the underwear and socks they put on each morning. Seriously. These kids reach the age of consent and have yet to make any personal choices of consequence at all. Throw a complex algebra problem of a complicated physics question at them and they’re good. But ask them to make choices concerning anything more complicated and don’t know how to handle it.
解決問題是一種后天的生活技能,這是一個過程。做出大大小小的選擇的能力也是一種后天習得的技能,也是大多數父母在孩子很小的時候就教給他們的技能。做選擇是解決問題的一部分。你對自己所做的選擇越自信、越確定,你就越容易成功。然而,還有另一個群體。
有句老話,“不做決定就是做決定”。不幸的是,我遇到了不止一個這樣的年輕人。在一些地方有一種令人不安的趨勢,包括在美國,年輕人第一次獨自進入世界是通過大學、旅行、州外/國家的工作機會等。一旦他們遇到困境,他們就會呆住。因為除了每天早上穿的內衣和襪子,他們不知道如何做出選擇。認真來說,這些孩子到了法定年齡,根本不會做出任何重大的個人選擇。把復雜的代數問題和復雜的物理問題扔給他們,他們能很好擺平。但是讓他們對更復雜的事情做出選擇,他們就不知道如何處理。
直到他們擺脫這種影響,他們才意識到這一點。我特別想到了兩位年輕女性,她們都是我通過工作/大學的關系認識的。很快就發(fā)現,在和我一起工作的頭幾天,他們都無法做出最簡單的選擇。盡管我在多個項目上都給了他們明確的指導方針,他們的智力水平也明顯是夠的,但在沒有先問我決定這是否是正確的做法之前,他們連最微小的行動都做不出來。(比如“你想讓我把這個有顏色變化的便利貼添加到XX文件中嗎?”?)然后是“輪到誰來買早上的咖啡呢?”困境每一個僅有一個的那天…我被要求選擇一個或另一個。有一天,我有點,有點失控了。好吧,我當時很生氣。我告訴他們,如果要我處理每個客戶和他們的文件的話,那就不在需要她們呢。至于咖啡,我根本不在乎誰去了隔壁的商店,就像昨天直接挑一杯就行了。
I told them I was 56(at the time), was quite certain I still wasn’t “grown up” and was currently considering options for my next careerAnd BTW, exactly what does “grown up” or “mature enough” look like? I wanted tangible examples or else these were yet two more ridiculous, disparaging cliches I was kicking to the curb. And that rocked their world because questioning their parent’s attitudes wasn’t in their wheelhouse.
他們越敞開心扉,我就越了解他們的家庭生活。一切都是為他們準備和選擇的。從他們的臥室如何裝飾,到他們穿的衣服,他們上的學校,他們被允許交往的人,他們沒有發(fā)言權,事實上,直到他們離開家,他們才意識到他們曾經有過發(fā)言權。在大學和職業(yè)選擇方面,他們都被告知自己還不夠成熟,無法做出這樣的決定。他們表達的任何想法都被認為是幼稚的幻想。關于自己的未來....
我告訴他們我當時56歲,很確定自己還沒有“長大”,目前正在考慮下一個職業(yè)選擇,順便問一句,“長大”或“足夠成熟”到底是什么樣子的?我想要的是具體的例子,否則這只是我被我踢到路邊的兩個更荒謬的、貶低性的陳詞濫調。這震驚了他們的世界,因為質疑父母的態(tài)度不是他們的專長。
I did the same with them. Sometimes our conversations were much like a Mad Hatter’s merry-go-round. Round and round we went. Her: what would you do? Me: I’d make the choice best for me, personally, but what would YOU do and WHY? And then, why would you NOT do this or that, if that’s your dream/passion? It was a process, but over time, they both started growing more confident in making choices, expressing their beliefs. Eventually, they went from becoming confident enough to express their personalities through fashion to making BIG choices about their futures. One’s father had his own law firm and had told her since she could toddle, someday it would all be hers. Except, she HATED law and had been interested in medicine for years. Her announcement to switch majors didn’t go over well.
我們在辦公室的小規(guī)模“討論”比他們想象的更讓我心煩。我開始花時間和他們在一起或單獨相處。我介紹了獨立思考的理念,批判性思維技能和做出自己選擇的價值。(私下里,我都想哭了)我之前提到過我的父親,以及他從小教我的那些令人驚嘆的事情,比如獨立思考的價值和做事的技巧。關于每一個陳述或故事都會遇到“如何”和/或“為什么”。通常兩者都有。當我問他對某件事的選擇時,他回答說:“你會如何選擇?”他用最好的方式向我挑戰(zhàn)。這永遠是最好的禮物。
我也對他們做了同樣的事。有時我們的談話就像瘋帽匠的旋轉木馬。我們轉了一圈又一圈。她:你會怎么做?我:就我個人而言,我會做出最適合自己的選擇,但你會怎么做?為什么?然后,如果這是你的夢想/激情,你為什么不做這個或那個?這是一個過程,但隨著時間的推移,他們都開始在做選擇、表達自己的信仰方面變得更加自信。最終,他們從足夠自信地通過做事的方式表達自己的個性,到對自己的未來做出重大選擇。有一個人的父親有自己的律師事務所,從她會走路起,他就告訴她,總有一天這一切都會是她的。除此之外,她討厭法律,多年來一直對醫(yī)學感興趣。她宣布轉學專業(yè),結果并不順利。
原創(chuàng)翻譯:龍騰網 http://www.top-shui.cn 轉載請注明出處
I’ve seen games and puzzles mentioned quite a bit and yep, I enjoy them too. They challenge and intrigue me. But I’ve also learned there’s no one set of rules for problem solving, sometime situations and the people involved are fluid and while I my basic process is simple, after that, it’s sometimes fitting the method of problem solving specifically to the situation that gets the best results.
另一個女孩決定從一所古老、保守的常春藤盟校(她父母的母校)和一個商科專業(yè)轉為文科學校學夢想中的建筑工程專業(yè)。除了她的父母為她的本科學位支付基本學費外,她的待遇與其他人非常相似。其他的一切,兩個女人都是自己付的。第一名學生獲得了護理學位,即將進入醫(yī)學院學習,另一名學生正在完成碩士學位,并計劃盡快開始攻讀博士學位。她們是令人驚嘆的年輕女性,今天她們變得堅強和自主,不是因為我,而是因為她們每個人都做了一個控制自己生活的選擇,首先成為自己最好的朋友,做出的選擇既認證了她們,也讓她們變得更強大。
我看過很多提到的游戲和拼圖,是的,我也很喜歡。她們對我提出了挑戰(zhàn),也激發(fā)了我的興趣。但我也認識到,解決問題沒有一套規(guī)則,有時情況和所涉及的人都是不固定的,雖然我的基本過程很簡單,但在此之后,有時需要將解決問題的方法專門用于獲得最佳結果的情況。
在我們能夠解決任何問題之前,我們必須首先確定它。其他人都這么說了詳細方面,我真的同意其他人所說的,我就是這么做的。當我面臨業(yè)務問題時,我接下來會收集所有事實、數據并考慮所有變量。我隨身攜帶著一本筆記本,我一邊走一邊不斷地做筆記,因為有時最好的想法會在最意想不到的時候冒出來,比如和我曾祖母共進午餐的時候(冒出那些想法)。有時我會列出本·富蘭克林的名單,把優(yōu)缺點分開。這個方法和其本人一樣古老,在一些人看來已經過時了,它很簡單,但通過把優(yōu)點和缺點區(qū)分開來,列一個清單,讓人有清晰的認識。清晰,就像選擇的能力一樣,是有效解決問題的關鍵?!皠?chuàng)可貼”或“快速修復方案”可能很有吸引力,但它們幾乎總是未來災難的導火索。相信我,我知道。甚至有證明書 來證明它。有時是數字,有時是元素分解,有時是我第一次摒棄的最瘋狂、最古怪的想法但我的大腦會把它知道的一切都集中在對我最好的解決方案上,當我找到最佳解決方式的時候,它就會起作用,就好像我聽到了腦子里的咔嚓聲。這即使不是所有問題,也是大多數問題的答案,我知道這是正確的答案,包括我不喜歡的問題。并不是所有的解決方案都是如此來的!這個時間可不一定。這只是因為我對自己的直覺有信心,我有能力做出最好的選擇,至少大多數時候是這樣。