8
头图

原文地址: https://www.quora.com/Despite-getting-very-high-marks-in-prog...

问:

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),但我的教授却说我不适合编程,他甚至承认我编码水平很不错了。我搞不懂,为什么我做得这么好了他还讲这样的话?

答:

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.

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

我得站出来跟你说实话。因为就我所见,如今在软件开发这块,初学者和学生遇到的最大的问题就是:
你是否适合编程,与你写出来的代码水平无关,也与你的编码能力无关。

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.

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

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 吨的卡车一样砸在你头上!!!

捏造的信仰
2.8k 声望272 粉丝

Java 开发人员