30

当我开始编程时,我希望知道的 30 件事

 4 years ago
source link: https://www.tuicool.com/articles/3yANjiU
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

2m6bMfI.png!web

雷锋网 AI 科技评论按,本文作者 Jun Wu 有着编程和统计学背景,她在 15 年前就是一名程序员。近日,她分享了给程序员的 30 条心得建议,雷锋网 AI 科技评论整理如下。

如果你想成为一名程序员,这个建议可以帮助你走上正确的道路。

程序员不是一个容易的职业,每年都有许多人从国内顶尖院校的计算机科学专业毕业,这是任何人都能从事的竞争最大的职业之一。同时,编程也是令人兴奋的。随着技术的进步,工业界每天都有创新。编程对于热爱它的人来说是一项充满激情的事业。

当我 15 年前开始做程序员的时候,我希望有人能告诉我下面清单上的一切建议。这个清单可以为所有新手程序员节省大量的时间和精力,并且,你可以在编程职业发展的整个过程中都参考这些建议。即使这里面有些观点现在可能与你无关,但总有一天你会看到其中的智慧。

作为一名程序员,你正处在伟大的顶点。

你只要对自己要走的道路稍有了解就可以开始冒险了。

1.你不需要学位,但你需要知识

我和许多没有计算机科学硕士学位或计算机科学本科学位的程序员一起工作。编程是少数不依赖学位的职业之一。然而,编程是一项知识密集型的职业。如果你想开始编程生涯,这是本基础书籍你必读的。这十本书将涵盖计算机科学的基本概念以及如何在项目团队中工作。它们可以为你的技术打下坚实的基础,让你对基本概念有一个深刻的理解,并且让你有能力去编写功能性的代码,顺利进行技术面试并与同事交流。

2.创造性是提高解决编程问题能力的重要因素

大多数人都有这样的先入之见:编程都是关于分析和解决问题的技能。这个观点并不是完全正确的,编程也非常需要创造力。通常,你可以用很多方法编写给定的代码。当你拥有了创造力,就能设计出最简单、最有效的代码时。

3.不要什么都学,精通一部分知识

编程语言有数百种。有一些编程领域有着明确的职业道路:Web 开发人员、前端开发人员、后端开发人员、软件工程师、数据库开发人员等。你需要决定要成为哪种开发人员,然后学习该职位所需的所有技术和技能。

4.你不需要活的像机器人

记住,你首先是一个人,其次才是程序员。当您第一次开始编程时,很容易在代码中迷失方向。有时我在完成项目的所有里任务之前都不离开电脑。但是你是一个人,你需要笑,哭,减压,和人交谈。管理好你的生活,最大限度地提高工作之外的兴趣爱好,这将程序员的工作带来更多的创造力。

5.编程就是应用知识而不是为了记忆

与研究不同,在研究中,你会发明和创造新的知识领域,但编程就是应用现有的知识。书籍、研究论文、在线文章和学习视频成为您经常使用的资源。不需要记住任何东西。你总是可以搜索资源来找到答案。随着你处理的项目越来越多,这些记忆会自动自然地出现。

6.你每天都要克服自己是「冒牌货」的心态

编程似乎是所有「聪明」人都倾向于做的一种职业。除非你是个天才,否则你会像我一样,每天都会怀疑自己是个冒牌货。当你每天都经历这些的时候,你往往会想出一个办法来解决这个问题。对我来说,我一直把它当做学习新事物的动力。我已经学会了站在正确的角度看待这个问题,并且满足于每天都有的一点点进步。

7.你必须有程序员以外的生活,否则你只会沉迷于编程

有时你会在宅在家里。然而,要成为一个快乐的程序员,你必须主动地在电脑屏幕之外寻找生活。你事业的成功往往取决于你遇到的人。当你是一个程序员时,社交网络是必不可少的。拥有程序员以外的生活对于防止自己沉溺于编程是至关重要的。当你编程是因为激情而不是被迫的时候,你就能做出最好的工作。

8.如果你和其他人共同完成一个项目,你会更快地学会编程

在你的职业生涯刚开始的时候,你会试图把自己封闭起来,阅读关于编程的书来建立你的计算机科学基础。你猜怎么着?如果你找到一个朋友一起合作,你会学习得更快。我在和其他小伙伴合作完成一个项目的过程中看完了编程书籍。当你和其他人一起合作时,你所有的程序缺点就会暴露出来,你的代码将受到批评。你将学会编写有效的代码,因为有人在监视你。你会想找出最好的方法去做事情,因为你的朋友也在学习。当你做程序员时,总有人在审查你的代码。你永远不会独自编程,所以你需要习惯这些。

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

在科技行业,你会遇到各种超级程序员,他们在接受了一辈子的文科教育后发现编程的逻辑思维很有吸引力。有很多画家和作家在一边追求艺术,一边做着程序员。编程是一项艰苦的工作,做一个好的程序员所需要的只是坚持,任何人都可以通过编程书籍学习基础知识。很多人在这个行业工作了一段时间后就开始学数学了。最终,这些人甚至可以理解和实现复杂的算法,尽管他们并没有接受任何形式的正式数学教育。

10.你需要成为一个全明星的「学习者」

程序员是一个熟练的学习者。现在你可能不是一个大师级的学习者,但你会到达那一步的。有时候你的工作会要求你在六个月内学会三种编程语言,这就是技术创新的现状。作为程序员,我们每天都在学习。对我们来说,学习就像呼吸一样自然。如果你对每天的学习感到不耐烦,你必须强迫自己去习惯这一点。

11.专注于完成你的项目

编码是真的会上瘾。在你的编程生涯中的某个时刻,你将经历一整晚的通宵编程。在完成里目标之前,你不会想睡觉的。你会忘记吃饭、喝酒,甚至忘记从办公桌上起来,因为你的大脑处理了太多的信息。没关系,在做完后,到外面散散步,度个假吧。

12.你会花费整天找一个小 Bug

大多数时候,在一个项目中,许多部分是相互依赖的。通常,你会发现除非你修复了一个潜伏在你系统中的小 Bug,否则你无法继续前进。作为一个程序员,除非你发现这个错误,否则你会对整个项目感到有压力,你将整天坐在电脑前寻找它,再找到它之前你将在晚上梦见代码。

13.你将花大部分时间搜索没有人能告诉你的答案

如果你用一种流行的语言编程,你将能够找到你在网上遇到的大多数问题的答案。但是,也有例外。有时,没有人遇到过你碰到的问题。在这种情况下,参考编程书籍和在四处询问通常会为您指明正确的方向。

14.你会读一本设计模式书

你是否毕业于最好的计算机院校关系不大。在每一个程序员的职业生涯中,总有一段时间你会坐下来,从头到尾地阅读 Head First Design Patterns。对于一个新手程序员来说,这可能是阅读得最多的书之一。那么,你还在等什么?把它捡起来,从头读到尾。

15.你将学会专注于准确的拼写

在每一个程序员的职业生涯中的某个时刻,您将用您最喜欢的语言编写了足够的代码,以便按照自己想要的方式来做事情。这包括为变量、类甚至数据库中的表按照你自己的命名约定进行准确的编写。你将对此进行彻底的审查。你最不想看到的是一些因为你拼写错误而出现的 Bug。记住,如果理由足够,那么请专注于一件事情。但当你没有很好的理由而去做某件事,这可能只是重复性的行为。

16.你会放弃

我放弃了多少次?我已经数不清了。有时你会碰到你无法解决的问题,有时候会你会因为困难而想停止,有时候工作环境会让你想辞职。你的激情取决于你的坚持,这些正是考验你的时候。是留下还是离开?我每次都留下来了。有时,在几年没有写一行代码之后,我会作为一个准备好完成一个项目的新人回来。当你知道你热爱你的工作时,它会变成一个家,你会愿意为之冒险。

17.重启你自己

如果你相信更高的力量,你可能会需要这个建议。我看到过很多人重新开始编程,通常他们都是因为热爱,与钱无关。当你看到一个人像你以前一样对编程乐在其中时,你是嫉妒的,你觉得你也不能放弃编码。然后,突然间,你又回到了一个项目中。你知道,在你的内心深处,你的生活和呼吸都离不开代码。这就是你知道自己是一个真正程序员的时刻。

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

即使是从精英计算机科学专业硕士毕业的最好的程序员也会在工作后继续他们的学习。事实上,在职培训是在大型科技公司工作的最佳福利之一。公司会给你提供「昂贵」的课程和研讨会,让你了解他们希望你使用的最新技术。如果可能,你在工作中学到的知识是不够的,你将参加许多在线编码学院,查看 YouTube 视频来提高你的技能。

19.你将被一个你不想为之工作的人雇用

即使你是一个平庸的程序员,某些公司也会需要你的技能。当他们面试你时,请记住你也在面试他们。由于公司的文化,你可能会发现自己想对一个轻松的 offer 说「不」。作为一名程序员,你将工作很长时间,因此,找到一个文化和你契合的公司文化至关重要。愉快的心情能让你更好地工作。如果你的技能合适,其他公司也会来敲你的门,除非有必要,请不要随意跳槽。

20.你会在技术面试中失败

技术面试不是开玩笑。高级程序员经常为了好玩而编造技术面试问题。通常,由于某种原因,这些问题是非常困难的。如果你没有通过技术面试,那并不是世界末日,它并不能证明你没有编程能力,它只是在测试你的知识库,试着往好的方面看。如果你的人际交往能力出众,经理们会记住你的。如果他们喜欢你,而你不适合这个职位,他们可能还会打电话给你另一个职位。

21.你会被告知你很棒

在你的职业生涯中,有时你会觉得自己是明星。依赖于你完成项目的经理会为了激励你,会告诉你你特别伟大。你会觉得自己在世界的顶端。记住,保持脚踏实地。总是有新技术需要学习,总是有比你更好的新程序员。

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

在你的职业生涯中,有时你会觉得自己什么都不知道。对某个项目感到沮丧的人会告诉你你什么都不知道。也许他们这样做是为了让你安顿下来。但是,你完全不应该否定自己。因为你知道的可能比你想象的要多得多。每过一天,你就会知道得比前一天多一点。一年后,人们会尊敬你的。请继续努力,一段时间之后,你甚至可能得到那个告诉你你什么都不知道的人的尊重。

23.你会想和其他你钦佩的程序员竞争

编程最棒的方面之一就是竞争。我喜欢和我崇拜的人一起编程。当你能编写一段让你欣赏的程序员肯定的代码时,你会像刚刚中了彩票一样开心。编程中的竞争是很有趣的,它并不是比谁最好,更多的是互相学习。

24.你不明白你的同事刚刚说的话

在最开始,这可能每周或每月发生一次。在你的新编程工作中,你会不理解你的同事刚刚说的话。这可能有两个原因。一个可能的原因是,你就是无法理解他们的口音。在这种情况下,可以请另一个同事翻译。不能听懂别人的话并不羞耻,很可能其他同事也花了很多年才习惯这种口音。另一个原因是,你的同事刚刚说的话完全超出了你的想象。但这也没关系,毕竟,你的同事是专家。摆好椅子,请你的同事以图片的形式解释这一切。很可能,你需要一段时间去适应。

25.看到去年写的乱七八糟的代码你会感到羞愧

这也是经常发生的。在最开始,我也因为代码不规范受到过批评。当时,设计很好且有着良好文档,但我是用一种难以阅读的语言写的。但直到现在,不管我多么努力,每年我仍然会找到一些乱七八糟的代码,这通常都是因为我想很快地完成工作。实际上这就是程序员的工作,我们不停地完善和修改各种代码。这并不羞耻。当你意识到它们是你写的的时候,后退一步,如果可以的话,好好地修改它。

26.当你虚弱得不能看一行代码时,你将在你的数据库项目中找到庇护

当你在进行一次愉快的编程之旅时,可能会发生这种情况。你已经连续工作两个月了,你需要休息一下。但你喜欢这种当时的状态,所以你继续前进。然后您会发现 SQL 很有趣。你不明白为什么你看不进去一行代码。但不知何故,将数据放入数据库并将其取出,是一件令人愉快的事情。你陶醉于这种完全符合逻辑的简单语言。

27.你对黑客又爱又恨

黑客攻击现在很常见。程序员在团队中互相竞争,在这个过程中,好几个小时你都在高度紧张地学习。此时的黑客攻击就想调味剂一样,你可能会非常喜欢。但有时,你会讨厌在高速敲键盘时被打断。你也会讨厌拥挤的办公室和喧嚣的活动。

28.在阅读研究论文时,你会认为你一个单词都看不懂

你会说英语吗?好吧,大多数人的回答都是肯定的。但是,我向你保证,有时你会一遍又一遍地读一些研究论文,并意识到自己完全无法理解它们。对我来说,在我学会大学数学的课程之前,大多数关于算法的研究论文都像是没有意义的森林。然后,突然某一天,一切似乎都有了意义。

29.你要买耳机

在你的职业生涯中的某个时刻,当你全神贯注于你的代码时,你会意识到任何一种噪音都会阻碍你的感官。一个好的耳机可以消除外部噪音,这样在拥挤的办公室里你也会隔绝外部干扰。在某些时候,你也会发现听音乐可以帮助你编码。在我编码生涯的早期,我发现音乐的节奏有助于我流畅地编码。即使现在,我也会借助一些音乐来提高自己的生产力。

30.你将去一个新的地方,如果幸运的话,它将是拉斯维加斯

在你的职业生涯中的某个阶段,你会成为对公司非常重要的核心开发人员。这时,你可能会被邀请到异地,和其它技术人员进行交流。高层管理人员可能会利用这个机会了解你。请别误会,这并不代表着你可以无忧无虑地喝醉酒了,而是你和你的同龄人交往和交流的好机会。如果你幸运的话,活动将会在拉斯维加斯。有时,还会有其他公司的技术专家来参加这些活动。

via: https://medium.com/better-programming/30-short-things-i-wish-i-knew-all-this-when-i-started-programming-b17667e3df0c

雷锋网 (公众号:雷锋网) 雷锋网

雷锋网版权文章,未经授权禁止转载。详情见 转载须知

2iqqEjn.jpg!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK