【譯】Quora 問答:爲何老師說我不適合編程?

原文地址: https://www.quora.com/Despite...git

問:

Despite getting very high marks in programming (85 - 100), my professor told me that programming is not for me. He has even commented that I am a great coder. Why would he say this if I have done so well?編程

雖然我在編程課程裏能拿到很高的分數(85-100),但個人教授卻說我不適合編程,儘管他都認可我編碼水平很不錯了。我搞不懂,爲何我作得這麼好了他卻說這樣的話?sass

答:

I’m gonna be up front and honest here, because this is the biggest problem I see with beginners/students coming into software development these days.dom

IT’S NOT ABOUT THE CODE, OR YOUR ABILITY TO WRITE IT.ide

我得站出來跟你說實話。由於就我所見,現在在軟件開發這塊,初學者和學生遇到的最大的問題就是這個問題:
你是否適合編程,這個事情跟你寫出來的代碼水平無關,也跟你能寫代碼的能力無關。

It’s very likely that while you might be very good at writing code, your professor spotted traits in your performance that would have meant you where no good at the soft skills.工具

A good software developer needs way more than just the ability to write good code. Here are some examples, of the skills you’ll need, in no particular order:學習

我以爲頗有可能,你的編碼能力強,在教授眼裏這是你的一個很突出的特色,但這剛好說明你在其餘的軟性技能方面很是欠缺。
一個好的開發者,光擅長寫代碼是不夠的。我這裏給出一些例子,這都是你之後還要學會的技能(順序無關):
  1. The ability to disassemble a given problem domain down into it’s individual parts.
  2. The ability to communicate very technical subjects, in simple English like terminology to non technical people.
  3. The ability to think in an insanely and focused logical way.
  4. The ability to look at any given scenario for a 1000ft view point and understand a bigger picture as a whole.
  5. The ability to understand communications principles, not just digital ones but human ones too.
  6. The ability to think in parallel while still keeping track on a given single solution point.
  7. The ability to look at the many tools (Not just code) you have and decide what’s better to use to build a solution.
  8. An innate ability to problem solve, on your feet, and in a very short space of time.
  9. The ability to judge how long it will take to reach a conclusion, based on any given premise.
  10. The ability to use multiple tools, in multiple places, along side each other, and in teams with multiple people.
  1. 將問題分解,分而治之的能力;
  2. 以淺顯易懂的方式,同非專業人士討論技術話題的能力;
  3. 以常人所不能的、極端專一的邏輯思惟方式進行思考的能力;
  4. 總攬全局、全盤思考、站在 1000 英尺高度理解問題的能力;
  5. 不但知道如何跟機器打交道,也要了解如何跟人打交道的能力;
  6. 在保持跟進單個解決方案的同時,時刻保持發散思惟的能力;
  7. 審視衆多可用的工具(不只僅是代碼)、並得出更好的解決方案的能力;
  8. 像有天賦通常的,馬上、快速的解決問題的能力;
  9. 在任何前提下都能判斷、花多長時間能達成結論的能力;
  10. 在不一樣的地方、使用多種工具、同多我的一塊兒,在團隊中彼此協做的能力。

I could go on for another 10. Heck, I could go on for another 50 if I needed to.ui

The point is, a software developers life is about far more than just slinging out some code.this

Many beginners fail to realize this.編碼

Software development is a very hard career, and you never truly stop learning.

What you’ve learned so far, is ONLY the BEGINNING.

這還遠遠不夠,我還能再列十條、再列五十條都行。
比起光寫代碼來,開發者的生涯所包含的內涵要多太多太多。這就是問題所在。
而不少初學者都是沒辦法意識到這個問題的。
軟件開發是一條艱難的路,你走上這條路,就不會中止學習。
你如今學到的,僅僅是萬里長征第一步。

You’ll spend the rest of your life, learning on the job, making new discoveries as you go along.

You’ll have very, very long periods where you have to concentrate and focus on what your doing, so hard that it almost hurts.

Burnout from this intense study & concentration is an all too real problem with beginners, and many don’t make it more than a couple of years before they give up.

A good professor knows ALL OF THIS, especially if he’s been in the industry and on the front lines himself.

He’ll know what makes a good developer, and what doesn’t.

當你走上這條路,你的餘生都要花在不斷的學習和發現上。
不少時候,你都必須在當前的問題上極其專一,哪怕讓你痛苦不堪你也不能放棄。
初學者的熱情很快就會被這種現實的困難消耗殆盡,不少人堅持不了幾年就會放棄。
好的教授徹底理解問題的所在,特別是有過從業經驗,從事過一線開發的教授。
他懂得好的開發者須要哪些特質,以及不須要哪些特質。

I routinely have to dish out similar advises to the students I teach, but I don’t do it with Malice, I do it because they need to hear the truth, and know what there going to walk into.

What you NEED TO DO, is ask your professor why he thinks you won’t make a good software developer, ask him to be 100% honest.

What he tells you might hurt, but the only way your going to know where you need to spend time improving is if he tells you.

我對個人學生也是常常給出相似告誡。我這麼作絕無惡意,我只想告訴他們真相,讓他們看清本身要面對的是什麼。
你要作的,就是向教授問清楚,他爲何以爲你不適合作開發。你要誠心誠意的去問。
他的回答可能會傷你自尊,但只有這樣你才能知道本身哪些地方須要改進。

I see amazing coders all the time, but a great many of them simply do not have the mental discipline to sit for 18 hours and chew through solving a problem presented to them, from start to finish.

I see loads of silly students, who come to do 「computers」 cause they think it’s a laugh, many of them couldn’t code to save their life, but give them something that interests them, and let them get stuck in, and their ability to hammer down on the task and see it through, is incredible.

No one is trying to belittle you or destroy your self confidence, their just trying to prepare you for what’s about to come, and mark my words, when you get out there into the real world, it’ll hit you head on, like a 20 ton truck!!!

我見過很多很棒的開發者,可是他們當中太多人也沒有足夠的毅力坐着花 18 個小時從頭至尾來把問題嚼爛解決。 我也見過很笨的學生,由於以爲好玩就來「學電腦」。很多人沒辦法靠寫代碼爲生,但他們只要對某事有興趣,而且有機會鑽進去,那麼他們在問題面前,能展示出使人難以置信的執行力。 沒人要貶低你或傷你的自尊,他們是幫你爲面對未來的困難作準備。記住個人話:當你完成學業真正進入軟件行業時,這些困難會像 20 噸的卡車同樣砸在你頭上!!!
相關文章
相關標籤/搜索