我希望在我开始编程之前就知道的30件事(翻译)

原作者: Jun Wu

原文地址: 30 Things I Wish I Knew When I Started Programming

译者: 高行行

如果你想成为一名程序员,此列表可以帮你走在正确的道路上

编程并非易事。每年都有许多人从美国顶尖的计算机科学专业毕业,这是任何人都可以从事的最具竞争力的职业之一。同时,编程生涯令人兴奋。随着技术的进步,行业每天都有创新。对于喜欢它的人来说,编程成为了他们热爱的工作。

当我在15年前开始担任程序员时,我希望有人让我坐下来,并告诉我这份名单上的所有内容。此列表可以为任何新程序员节省很多精力。此列表是你随着编程职业发展可能遇到事情的列表。即使这些观点中的某些观点可能与你现在无关,但有一天你会看到其中的智慧。

1. 你不需要学位来编程,但是你需要知识

我曾与许多没有获得计算机科学硕士学位或计算机科学学士学位的程序员一起工作。编程是不依赖学位的少数职业之一。但是,编程是知识密集型的职业。如果要开始从事编程职业,则必须 阅读这十本必不可少的书。这十本书将涵盖计算机科学的基本概念以及如何在项目团队中工作。在编写功能代码的基础上,对基本概念有扎实的了解,为你的技术技能打下坚实的基础,将使你能够进行技术面试并与你的同事进行交流。

2. 解决问题的技巧使编程更具创造力

大多数人都以为编程就是解析和解决问题的技能。这是部分正确的。编程还涉及很多创造力。通常,有很多方法可以编写给定的代码。当你设计出最简单有效的编码方法时,便会产生创意。

3. 你无法学到一切

有数百种编程语言。某些编程领域为特定的职业铺平了道路:Web开发人员,前端开发人员,后端开发人员,软件工程师,数据库开发人员等。确定要成为什么样的开发人员,然后学习这个特定职位的所有技术和技能。

4. 你不需要成为机器人。如果你是人类会更好

记住,首先你是人类,其次你才是程序员。刚开始编程时,很容易迷失在代码中。有时候,在完成项目的所有里程碑之前,我不会离开计算机。但是你是一个人。你需要大笑、哭泣,减轻压力并与他人交谈。通过管理自己的生活以最大程度地增加工作之外的乐趣和激情,你将为你程序员工作带来更多的创造力。

5. 编程全部与应用知识有关。与记忆无关

与研究不同,在研究中你要发明和创造新的知识领域,而编程则只不过是应用现有知识。书籍、研究论文、在线文章和学习视频会成为你经常使用的资源。无需记住任何内容。你总是可以获取资源来找到答案。在你从事项目越多时,记忆会自然而然地出现。

6. 你每天都会处理冒名顶替综合症

注:冒名顶替症候群(英语:Impostor syndrome),亦称为冒名顶替现象(英语:impostor phenomenon)、骗子症候群(英语:fraud syndrome)。这个名称是在1978年由临床心理学家克兰斯博士(英语:Pauline R. Clance)与因墨斯(英语:Suzanne A. Imes)所提出,用以指称出现在成功人士身上的一种现象。患有冒名顶替症候群的人无法将自己的成功归因于自己的能力,并总是担心有朝一日会被他人识破自己其实是骗子这件事。他们坚信自己的成功并非源于自己的努力或能力,而是凭借著运气、良好的时机,或别人误以为他们能力很强、很聪明,才导致他们的成功。即使现实环境中的证据指明,他们确实具备优秀才能,他们还是认为自己只是骗子,不值得获得成功。有研究显示,冒名顶替症候群在高成就女性当中较为常见;同时也有研究指出男性与女性的盛行率没有差异

编程是所有“聪明”的人似乎都倾向于的职业。除非你是天才,否则你将像我一样每天都遭受冒名顶替综合症。当你每天体验它时,你往往会想出一种应对它的方法。对我而言,我一直将它作为学习新事物的动力。我已经学会了客观看待,并且乐于每天改进一点。

7. 你必须拥有成为程序员之外的生活。否则,你将沉迷于编程

有时你会宅在家里。但是,要成为一个快乐的程序员,你必须主动寻求计算机屏幕之外的生活。通常,你事业的成功取决于你遇到的人。当你是程序员时,人际网至关重要。要成为程序员,除了要成为一名程序员以外,还要有个性。当你可以尽情享受自己的激情时,你最好的工作就会来到。

8. 如果你与某人结对编程,你将更快地学习编程

在你职业生涯的开始,你将很容易向世界敞开大门,并阅读那十本有关编程的书,以建立你的计算机科学基础。你猜怎么了?如果找到一个好友,你的学习就会更快。我花了一半的时间阅读编程书籍,和一个伙伴一起从事一个项目。当你与某人结对编程时,程序的所有“缺陷”就会显现出来。你的代码将受到批评。你将学习编写高效的代码,因为有人在看。你将想找出最好的做事方式,因为你的好友也在学习。当你作为程序员工作时,总是有人在检查你的代码。你永远不会一个人编程。现在该习惯了。

9. 你不需要擅长数学和科学

在技术行业中,你会遇到各种各样的超级巨星程序员,他们在毕生的通识教育之后发现程序设计的逻辑思维方面很有吸引力。有很多画家和作家在一边追求艺术一边进行生动的编程。要成为一名优秀的程序员,你所需要的就是持久性。编程是艰苦的工作。但是一旦有了这些,任何人都可以阅读编程书籍并掌握基础知识。在该行业工作一段时间后,有很多人学习数学。最终,这些人甚至可以理解复杂的算法并在没有任何形式的数学教育的情况下实现它们。

10. 你需要成为全明星的“学习者”

程序员是一个精通学习的人。你可能没有开始成为一名精通学习的人。但是你会到达那里。有时你的工作场所会要求你在六个月内学习三种编程语言。那就是技术创新的状态。作为程序员,我们每天学习。学习就像呼吸。如果你不习惯每天学习,你将被迫习惯。

11. 你将沉迷于完成项目

编码成瘾是一件实事。在你编程生涯中的某个时候,你将体验通宵的编程马拉松。在完成里程碑之后,你才想入睡。你会忘记吃饭,喝酒,甚至从办公桌上站起来,因为你的大脑正在处理大量信息。没关系。完成后,到户外散步。外出度假。

12. 你将花费一整天寻找一个微小的错误

大多数时候,在编程项目中,许多部分相互依赖。通常,你将发现自己无法继续前进,除非你修复了系统中潜伏的一个小错误。作为程序员,除非发现此错误,否则你将对整个项目感到压力。你将整日坐在计算机旁寻找它。你将在晚上梦见代码,直到找到它。

13. 你将花费大部分时间来搜寻没人能回答的答案

如果你使用一种流行的语言进行编程,则可以在线找到遇到的大多数问题的答案。但是,也有例外。有时,没有人遇到你遇到的问题。在这种情况下,参考编程书籍并在编程板块上四处询问通常会为你指明正确的方向。

14. 你将阅读一本设计模式书

是否毕业于该国最好的计算机科学程序都没关系。在每个程序员的职业生涯中,都有一段时间你会坐下来,从头到尾阅读《Head First设计模式》。对于新程序员来说,这可能是最该读的书之一。你还在等什么?拿起并翻阅。

15. 你将学会迷恋确切的拼写

在每个程序员的职业生涯中的某个时候,你都会用自己喜欢的语言编写足够的代码,以自己的方式做事。这包括为变量,类甚至数据库中的表提供命名规约的确切拼写。你将仔细检查这一点。你想要的最后一件事是一些bug,因为你拼错了一个名字。请记住,如果你有充分的理由,那么可以沉迷于事物。如果你没有充分的理由,那只是重复的行为。

16. 你会放弃

我放弃了多少次?我甚至不能统计。有时,你遇到的是你无法解决的问题。有时变得如此困难,以至于你只想退出。有时工作环境会让你想辞职。你的激情取决于你的坚持不懈。这是你经过测试的时间。你在这里停留还是要去?我总是回来。有时,经过几年不编写任何代码后,我总是回来当一个新人,准备处理一个项目。它成为家园,是你冒险的跳板。

17. 你将重新启动

如果你相信更高的权力,那么你将能够与之建立联系。每次,当我看到人们回到编程时,通常不是因为钱。它始终是出于对编程的热爱。当你看到像以前一样喜欢编程的人,你会羡慕不已。你不能放手,然后,突然,你又回到了一个项目。当你知道自己是一名真正的程序员时。你在自己的内心中知道自己生活和呼吸代码。

18. 你将回到某种形式的学校学习“正确”的做事方式

即使是从精英计算机科学硕士课程毕业的最好的程序员,也将在工作中继续他们的教育。实际上,在职培训是大型技术公司工作的最佳福利之一。公司将向你发送“昂贵的”课程和研讨会,以培训你掌握他们要用的最新技术。如果碰巧你仍然在工作中学习掌握的不够,则可以接触许多在线编码学院和youtube视频,以提高自己的技能。

19. 你会被你不想为之工作的人雇用

即使你是普通的程序员,有时也会有某些公司需要你的技能。他们面试你时,请记住,你也在面试他们。根据公司的文化,你可能会发现自己想对一揽子包装说“不”。作为程序员,你将工作很长时间。找到适合你的公司文化几乎至关重要。幸福导致更好的工作。如果需要你的技能,其他公司将为你服务。除非有必要,否则请不要安顿下来。

20. 你将进行技术面试

技术面试不是开玩笑。高级程序员通常会很有趣地编写技术面试问题。通常,这些问题由于某种原因而特别困难。如果你未能通过技术面试,那就不是世界末日。当然,它并没有说明你的编程能力。它只会测试你的知识库。尝试看向光明的一面。如果你的人际交往能力大放异彩,管理人员就会记住你。如果他们喜欢你,而你不适合担任此职位,他们可能仍然会要求你担任其他职位。

21. 你会被告知你很棒

在你的职业生涯中,有时你会觉得自己是明星。依赖你完成项目的经理会告诉你你真伟大,以此来激励你。你会觉得自己处在世界之巅。请记住,它们会让你变得自我。保持平常心。总是有新技术要学习。总是有比你更好的新程序员。

22. 你会被告知你什么都不知道

有时候,你会觉得自己一无所知。对项目感到沮丧的人会将矛头指向你,告诉你你一无所知。也许他们这样做是为了将你放在你的位置。但是,既然你正在阅读本文,你将大步向前。因为你可能比你想像的要了解得多。每一天过去,你都会比前一天学到更多。一年后,人们会仰望你。继续吧,一段时间后,你甚至可能会得到那些告诉你你一无所知的人的尊重。

23. 你将要与你欣赏的其他程序员竞争

编程最令人敬畏的方面之一是竞争。我喜欢和我佩服的人一起编程。当你可以编写你所敬佩的程序员认为值得的代码时,你会觉得自己刚刚中了彩票。编程竞赛总是很有趣。这与谁是最好的无关。这更多地是关于彼此相互学习。

24. 你会不理解同事刚才说的一句话

首先,这可能会每周一次或每月一次。在你从事新的编程工作时,你将不会理解同事刚才说的话。这可能有两个原因。在你的一生中,你只是无法理解他们的口音。在这种情况下,请其他同事翻译。无法理解某人的讲话没有什么可耻的。很有可能,其他同事也需要几年的时间来适应这种口音。另一个原因是你的同事所说的话完全超出了你的理解范围。没关系,毕竟,你的同事是专家。请你的同事以图片形式解释所有这些。你将为此准备一把椅子。可能需要一段时间。

25. 看着你去年编写的意大利面条代码你会感到羞耻

这事儿常常发生。开始时,我因Perl代码而受到批评。代码记录良好,也设计得很好,但是我用一种很难读的语言写的。所以,我写了意大利面条代码。但是,每年,无论我多么努力,我仍然会找到一些意大利面条式的代码,这些代码我会迅速整理完成。程序员就是这样做的。我们修复并修补问题。这没有什么可耻的。当你意识到是谁编写的时,请退后一步并对其进行修复。

26. 当你病得无法看另一行代码时,你将在数据库项目中避难

这条英语没太看懂 🤣

当你进行长时间编程时,会发生这种情况。已经两个月了。你需要休息一下。但是,你喜欢这种动力,所以你可以继续前进。然后你意识到SQL很有趣。你无法弄清楚为什么看不到另一行代码。但是以某种方式,将数据放入数据库并将其取出是一件令人高兴的事情。你完全陶醉于完全合乎逻辑语言的简单性。

27. 你会对黑客马拉松爱恨交加

黑客马拉松如今很普遍。程序员进入团队并相互竞争。在此过程中,将在几个小时内进行大量学习。你会喜欢友善的黑客马拉松。你会讨厌它以最高速度打字时出现的腕管综合症。你还会因为工作中拥挤的房间以及活动期间感觉到的过度刺激而讨厌它。

28. 阅读研究论文时,你会认为自己听不懂英语

你会说英语吗?好吧,大多数人会说是的。但是,我向你保证,你将一遍又一遍地阅读一些研究论文,并意识到这太麻烦了。对我而言,在我学习大学数学基础之前,大多数有关算法的研究论文似乎像一片巨大的树林。然后,突然之间,一切似乎都有意义。

29. 你将会购买耳机

在你的职业生涯的某个时刻,当你全神贯注于代码时,你会意识到任何噪音都会干扰你的感觉。拥有可以消除外部噪音的优质耳机,可以让你在拥挤的房间内集中精力工作。在某些时候,你还会发现音乐可以帮助你编码。我在编码生涯的早期就发现音乐的节奏可以帮助我流畅地编码。即使是现在,当我需要提高工作效率时,我也会喜欢一些音乐。

30. 你将去异地。如果你很幸运,它将在拉斯维加斯。

在你职业生涯的某个时刻,你位于对你的公司非常重要的开发人员小组的内部。这是你将被邀请到异地的时候。这个异地可能是技术专业人员一起社交的地方。高层管理人员可能会借此机会认识你。不要误会我的意思。现在不是时候变得无忧无虑而喝醉了。现在是时候与你的同龄人进行社交和人际交往。如果幸运的话,地点将在拉斯维加斯。有时,它还会包括与其他公司的技术人员举行的会议或会议。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信