A career in computing
1.never stop learning&making yourself more valuable
…问我这样的问题的人可能来自其他行业,或者来自诸如 Web 开发之类的领域。他们知道 HTML 是一种类编程语言,而且想尝试构建某些更大型的应用。但我特别希望,当你在问这个问题时,你已经意识到了想要在计算机领域取得成功,你需要掌握自学能力,而且永不停息。
The person who asks me this question may be coming from another career. Or perhaps they are coming from a field like web development and they’ve figured out that HTML is only kind of like programming, and they’d like to try building something more substantial. But I especially hope that, if you are asking this question, you’ve realized that to be successful in computing, you need to teach yourself how to learn, and never stop learning.
我想说的是:除非你准备活到老学到老,不然的话,不要进入这个行业!编程看起来似乎是一个高收入而又稳定的工作。但要做到这一点,唯一的途径是:始终让自己更有价值。
What I’m trying to say here is that you don’t want to go into this business unless you are ready to commit to lifelong learning. **Sometimes it seems like programming is a well-paying, reliable job – but the only way you can make sure of this is if **you are always making yourself more valuable.
2. choose the hard way and that will keep your options open
当互联网刚刚兴起时,仅仅是花一点时间学习 HTML,你就可以得到一份薪水丰厚的工作。但是当形势惨淡时,对于技能的要求更高了——HTML 程序员(就像搬运工和砖瓦工一样)第一个被抛弃了,而拥有更高技能的程序员则留了下来。
When the Internet was first booming, all you had to do was spend some time learning HTML and you could get a job and earn some pretty good money. When things turned down, however, it rapidly becomes clear that there is a hierarchy of desirable skills, and the HTML programmers (like the laborers and sheet rockers) go first, while the highly-skilled code smiths and carpenters are retained.
-Welling:
<!1.只有当退潮的时候,我们才能看到谁在裸泳;只有当萧条的时候,才能看到谁在摸鱼。技能、语言、文化都是有高下之分的。>
<!2.选择更艰难的道路,攻克更艰难的问题,这样就会拥有更多选择权。人生本来就是一条越走越窄的道路。如果总是避重就轻,会越发被动。选择学数理化的可以去搞政治,但是反过来很难。>
<!3.谁动了我的奶酪?如果从不关心奶酪是怎么来的,也不会弄懂是怎么失去的。>
3.interdisciplinary learning
了解编程之外的领域,将会极大得提高你解决问题的能力(就如同多学几种编程语言将极大地提高你的编程技能)。很多时候,我发现仅仅学习计算机专业的学生,比那些(除了计算机之外)拥有其它背景的学生,在思维上有更多的局限性。因为后者有着更严谨的思维,也不那么容易想当然。
I also think that knowing more than just programming vastly improves your **problem-solving skills **(just as knowing more than one programming language vastly improves your programming skills). On multiple occasions I have encountered people, trained only in computer science, who seem to have more limits in their thinking than those who come from some other background, like math or physics, which requires more rigorous thinking and is less prone to “it works for me” solutions.
Welling:
<!当你有一把锤子的时候,你看所有的问题都是钉子。其实跨学科的学习,就是丰富你思维以及认知的工具包,当你的工具足够多并且组合运用地足够熟练的时候,问题往往会变得简单。同样的,不同的问题用不同的语言处理难度也会大不相同。阅读,不设限地跨领域阅读。>
4.features for the ideal job candidates
有一次我组织了一次会议,其中一个议题是:理想的应聘者有哪些特征:
◇把学习当成生活方式。比如:你应该知道不止一种语言,没有什么比学习一门新语言更能让你开阔眼界了。
◇知道如何获取知识
◇Study prior art
◇善用工具
◇学会把事情简化
◇理解业务
◇为自己的错误负责。“我就是这样的”是不能接受的托词。能找到自己的失误。
◇成为一个领导者,善于沟通和激励。
◇搞清楚你在为谁服务
◇没有绝对正确的答案(更好的方法总是存在的)。展示并讨论你的代码,不要带着感情因素——你的代码并不等于你本人。
◇明白完美是渐进的
In one session a conference that I organized, one of the topics was to come up with a list of features for the ideal job candidate:
- Learning as a lifestyle. For example, you should know more than one language; nothing opens your eyes more to the strengths and limitations of a language than learning another one.
- Know where and how to get new knowledge.
- Study prior art.
- We are tool users.
- Learn to do the simplest thing.
- Understand the business (Read magazines. Start with Fast Company, which has very short and interesting articles. Then you can see if you want to read others)
- You are personally responsible for errors. “It works for me” is not an acceptable strategy. Find your own bugs.
- Become a leader: someone who communicates and inspires.
- Who are you serving?
- There is no right answer … and always a better way. Show and discuss your code, without emotional attachment. You are not your code.
- It’s an asymptotic journey towards perfection.
Welling:
<!-完美是渐进的。看似简单的道理。乔布斯这个偏执狂在开发苹果产品时,也深刻运用了这个道理,而这是他从他的偶像披头士身上学到的。他们的音乐唱片,从灵感获取到demo到十几个版本的改进,直到最后红遍世界的成品,这中间有着质的飞跃。这些伟大而完美的作品,草稿时期基本都平庸无奇甚至是一坨狗屎。这又回到了信心的问题。你要对认知学习的规律以及事物发展的客观规律有信心。>
4.adventure&get out of your comfort zone
适当尝试一些冒险——尤其是能令人感到害怕的冒险。当你尝试之后,将体会到出乎意料的兴奋。(在冒险的过程中)最好不要刻意去计划某个特定的结果。当你过于注重结果,你往往会错过那些真正有价值的问题。我的冒险往往是这样开始的——“我们先做些试验,看看它会把我们带到什么地方”。
Take whatever risks you can – the best risks are the scary ones, but in trying you will feel more alive than you can imagine. **It’s best if you don’t plan for a particular outcome, because you will often miss the true possibilities if you’re too attached to a result. My best adventures have been ones that have started with **“lets do a little experiment and see where it takes us.
我再重复一次:并不是所有的问题都有一个唯一的简单的答案。问题的关键不在于选择某个编程语言,然后掌握之。问题的关键在于:持续学习,并且很多时候,有不止一个选择。相信我所说的,你的生活会更精彩!
I’ll fend these off by repeating here: I know it seems like all the ones and zeroes should make everything deterministic, so that such questions should have a simple answer, but they don’t. It’s not about making one choice and being done with it. It’s about continuous learning and sometimes, bold choices. Trust me, your life will be more exciting this way.
Welling:
<!-1.你坐上过山车,不是想要体验smooth drive。你要的是兴奋、害怕、尖叫和adrenaline rush,然后下来,你觉得好极了。That is the fun of life。–Hrithik Roshan>
<!2.有机体具有反脆弱性-antifragile。所以去冒险,去经历考验。凡是不能杀死你的,都会使你变得更强大。>
<!3.我们所能做的一切,就是尽可能快的犯错。>