新闻专业学生的五堂编程课
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
和许多程序员一样,在接触编程之前,我曾有过不同的职业目标。我的情况比较特殊,是在攻读新闻学学士学位的中后期才发现编程的。在最后两年的最后一门编辑课上,我写了大量的代码,以至于教授们安排我全天都在编程,而其他同学则专注于文章编辑。
这强烈地表明我的职业目标发生了改变,或者我的教授疯了,或者两者兼而有之。无论我怎么找,学校里都找不到任何装满狗粮的秘密地堡,所以这很可能是前者。
然而,我从这个专业中学到了很多东西,我不想让它们白白浪费!其中五个非常有用的经验是:
- 即使灯灭了,你仍然可以继续交谈。
- 工作时千万不要跳舞,即使你的工作地点就在舞池里或附近。
- 在报社员工聚会上,别和你的漂亮特稿编辑玩啤酒乒乓球。
- 安·库尔特的安保人员阴森森地盯着她的观众。
- 拼错姓氏可判处死刑。
以下是五个对程序员真正有用的经验教训!
1.做好应对恐慌的准备
我的第三次报道任务就出了大问题。倒不是说问题严重到需要紧急清理现场或者抓十几只雪貂——这种事我在高中就学过了。但情况依然很糟糕。
我被安排去报道一个诗歌活动,我原以为是在一周后。但后来回到宿舍楼后才知道,活动就在今晚,而且15分钟后就要开始了。于是我一路狂奔,穿过校园,跑了一英里,一边用手机查资料,一边在几乎晕倒的状态下完成了我的第一次采访。
从意识到错误到事件结束的那段时间,是我人生中最恐慌的时刻之一,甚至可以说是最恐慌的时刻。但从那以后,我很少再感到如此恐慌,而这种抗压能力对我的编程工作帮助极大。最好的例子就是当紧急的生产环境bug被报告时(尤其是我自己造成的bug)。现在我可以更冷静地深呼吸,找到解决方案,然后提交一个pull request,而不会像以前那样焦虑地砸键盘。
并非所有程序员都能通过写报告来培养抗压能力,我不能建议大家故意给自己施加压力来做好准备。但如果保持冷静很困难,那么利用自己喜欢的活动来模拟“恐慌情境”或许能帮助你做好准备。比如,给自己设定一个项目截止日期,让自己习惯在压力之下奋力工作的感觉。
然而,无论是参加活动、采访陌生人,还是用扭扭糖绳进行蹦极,这些经历都能培养抗惊慌能力,这对生产代码出错时至关重要。冷静的头脑能更快、更好、更可靠地解决问题。而焦虑不安的程序员在不知所措的情况下进行修复,可能会导致日后更严重的问题。
虽然这些问题不如当年雪貂找到逃生舱口和学校没收的毒品那么糟糕,但仍然很严重。
2. 独立性高于“客观性”
在我第一堂新闻伦理课上,老师讲了一篇文章,文章描绘了当地住房状况的惨状。由于记者联系到的所有人都拒绝置评,文章中没有任何人解释为何情况会如此糟糕。班上很多同学都认为这篇文章片面,不够客观,不宜发表。
我们的教授告诉我们,这篇文章完全基于公开记录撰写。仔细阅读后,我们发现文章中没有任何个人观点,只有她找到的事实,并配以恰当的背景说明。教授说,这些事实来源独立,不受记者个人观点的影响,正因如此,文章才更真实可信。虽然内容清晰明了,但仍然反映了事实。
那门课告诉我们,人类总是存在一些无法完全识别和消除的偏见。基于独立于自身信念之外的来源进行论证,才是避免这些偏见的更好方法。独立性比“客观性”更重要,因为对人类而言,客观性并不存在。尤其是一些在网上胡说八道、声称自己比别人更“客观”的人,更是如此。
这次经历对我的重大编程决策帮助很大,比如公司组件库的开发。我最初选择Pattern Lab是因为之前使用效果不错,这影响了我客观的判断。但当我查看了公司代码需求和 Pattern Lab 的文档等独立信息来源后,发现它显然不是最合适的工具。虽然很艰难,但我最终还是止损,转而使用了一个更简洁的风格指南。
我发现这种方法几乎适用于所有技术决策,尤其是在工具选择方面。要接受这样一个事实:你的决策总是会受到一些你甚至可能都没意识到的偏见影响,因此要基于独立信息来做决策。这些信息可以是项目需求、工具或框架文档,以及来自无关第三方的建议。无论你个人感觉如何,所有这些信息都能清晰地展现出某种方案是否适合这项工作。这种方法虽然更难,但最终对团队更有利。
3. 用比喻来解释
在报道过程中,用比喻解释事情帮了我无数次。最常见的情况是:
- 需要在字数有限的文章中解释一些复杂的内容
- 在面试问题中解释一些复杂的概念,以便了解应聘者的想法。
- 利用新掌握的知识分散校园警察的注意力,掩盖我第一次吸食大麻的事实。
比喻在所有这些方面都非常有效,因为它们能将新知识与人们已经理解的事物联系起来,形成一种“知识捷径”。到了后来,就像豪斯医生一样,比喻成了我解释几乎所有事情的万能方法。
这也让我形成了理解任何新事物的经验法则——如果我不能用比喻来解释它,说明我对它了解得还不够透彻。
你会用哪些比喻来形容 HTML 和 CSS 之间的关系?JavaScript 函数呢?我听过一些不错的比喻:
- 网页中的HTML和CSS就像穿着华丽衣服的人。HTML标记是人体的基本框架,而CSS样式则是人体所穿的衣服,甚至包括人体的姿态。
- JavaScript 函数就像习惯。我们的大脑会将常用动作保存为“习惯”,以便我们不假思索地重复它们。JavaScript 函数就像程序的习惯,代码会将它们保存下来以备后用,并且几乎无需思考即可重复执行。
这也是为什么我会在网上记笔记,记录所有学到的有用知识,即使有些内容只是复述别人说过或写过的东西。只要我能用自己的话做出合理的解释,就能提供很好的例子或比喻,以防以后忘记。
我曾在家庭聚会上用过类似的比喻来解释我的工作内容,以及它与他们在其他网站上看到的内容有何关联。这让他们很快确信我是一个聪明、能干、能够自食其力的成年人。仅凭这一点,就足以让任何人学习如何有效地运用比喻。
恰当运用比喻可以改善沟通,节省时间,还能赢得家人的广泛认可。新闻从业经历告诉我,这不仅对新闻行业和编程行业有益,对所有职业都大有裨益。
4. 以礼貌的方式表达不同意见
2013年的某一周,纽约州为了应对桑迪胡克小学枪击案通过了一项枪支管制法案。我想听听校园里民主党人和共和党人的看法。不出所料,他们的反应是——民主党人认为力度不够,而共和党人则认为矫枉过正。在两次采访中,我都曾有过想要反驳他们的想法,就像我和朋友们谈论政治时那样。但作为一名记者,这样做行不通,因为我需要和这些群体保持良好的关系。重点在于寻找新的观点,而不是改变他们原有的观点。所以我只是点头、倾听、提出问题,有时在桌子底下屏住呼吸,然后感谢他们抽出时间。
你可能会好奇这跟编程有什么关系。还记得程序员们在推特上关于 CSS、JavaScript 框架或其他技术的“讨论”吗?我经历过无数次类似的场景:同事滔滔不绝地谈论设计或开发偏好,我被问及看法,为了我们俩的饭碗,我不得不礼貌地回应,避免引发争吵。
我发现最重要的是要提醒自己,这些对话的目的不是为了让谁“赢”。作为一名记者,我的目标是理解新的观点,并将自己的感受留到以后再表达;作为一名程序员,我也遵循同样的原则。
除此之外,我还总结了一些面试中很有帮助的经验法则:
- 让他们主导谈话。人们都喜欢谈论自己。为了维系关系,这点付出是值得的。他们说得越多,你就越不容易说出引发争吵的话。
- 保持语气平和,使用中立的语言。否则,无论你怎么说,都会给人留下你不认真对待他们观点的印象。
- 在所有观点之前,请加上诸如“我个人对X的经验是”或“我发现的是”之类的限定词。这样可以清楚地表明你的观点源于不同的经验,避免无意中否定他们的观点。
- 不要打断别人。语言就像交通,所以不要试图插队而导致交通事故。
- 如果在敏感话题上出现巨大分歧不可避免,那就直接坦诚地说明你可能不会同意,这也没关系。
- 任何反对意见都应简洁、中立且合乎逻辑。反驳论点越是出于情绪,风险就越大。如有疑问,切勿提出。
如果我采访的是校园里那些认为女性只能做家庭主妇或者黑人是次等人的白人至上主义者,我还能坚持下去吗?恐怕不行,因为有些话题很难“求同存异”。但愿我和所有读到这篇文章的人都不会遇到这种情况。
只要没人跟我说“CSS 不是一种严肃的编程语言”这种话就行。
5. 有选择地吸收知识
我写过的很多文章里都有很多我喜欢的细节,但不得不删掉。故事中的每一个细节都必须起到重要的作用。总有一些不错的细节需要舍弃,才能为更精彩的内容腾出空间。随着时间的推移,我对文章内容的选择越来越挑剔,总是先写最重要的部分,然后再根据篇幅情况添加其他内容。
这潜移默化地影响了我的日常记忆习惯。很多人都指出我忘记了一些他们认为我应该记住的琐碎细节,比如他们的年龄或者“名字”。我已经习惯了接收信息,快速判断它在我生活中的潜在用途,然后决定保留或丢弃。我把自己的大脑想象成一篇长文:空间有限,我总是在不断删减信息。
我并不是说程序员应该把编程作为终身职业,因为我自己、我的伴侣以及许多我认识但叫不出名字的人都希望我不要这么做。但是,对于程序员所学的知识来说,这样做就更有意义了。答应学习某项技能就意味着默认放弃了许多其他技能。不妨把你的编程知识想象成你职业生涯中的一篇文章——这门语言或工具是否真的值得保留,还是应该删掉?
这就是我学习自己的方法:我舍弃了深入学习 React 和 Ruby 的知识,转而学习那些对我的职业发展更有帮助的 JavaScript 基础和高级知识。我经常会把一些我乐于学习的内容放在一边,优先学习更重要的主题。
如果情况有变,我最终编写的是完全不同的程序,我会立刻打开思路,运用新的知识储备来完善它。知道该学什么和知道不该学什么同样重要。
综上所述
虽然我对目前的程序员职业很满意(至少目前如此),但我仍然不后悔当初选择新闻行业。那些课程和工作帮助我培养了最初的几项真正意义上的职业技能,这些技能虽然简单却非常实用——倾听、学习、写作、总结、保持冷静,以及临场前的高强度有氧运动。即使现在,我仍然怀念那份工作的某些方面——看到自己的作品被他人阅读和引用,接触到各种各样的活动以及人们享受其中的情景,还有为第二天报纸撰稿后倒头就睡的那种纯粹的喜悦。
我努力记住我的新闻学知识,既是为了帮助我现在的职业发展,也是为了提醒自己,尽管我走了一条弯路,但那些年的学习(以及学生贷款)并非完全白费。我现在记住的所有教训都起到了这样的作用,即使记住某篇文章意味着我以后再也不会和陌生人在夜店跳舞了。
撇开治疗费用不谈,这只是很小的代价。
文章来源:https://dev.to/maxwell_dev/ Five-programming-lessons-from-a-journalism-major-190


