我已经编程十多年了,并且在过去的几年里,我主要在像字节这样的大型科技公司里担任架构师的角色。
在这篇文章中,我将分享一下当我刚开始编程时希望早知道的9件事,如果我早点知道这些事情,我的编程旅程会轻松得多。
1. 你不需要知道所有的东西要知道的东西实在是太多了。
在我加入的每一家公司,直到我真正开始在那里工作,我都不知道我将要使用的大部分工具。
软件工程更多的是愿意在需要的时候学习新东西,而不是了解特定的工具。
2. 学习一种编程语言当我刚开始编程时,我想学习所有流行的编程语言和工具。
我认为“我知道的语言越多,我就会成为更好的程序员!”
因此,我经常在语言之间转换。有一天我可能会观看一些Java教程,在第二天观看Python教程,在几周后观看一些JavaScript教程。
我觉得我学到了很多东西,但是我的知识在最好的情况下也只是浅显的。我并没有真正取得任何进步。
例如,我可以用Java的if/else和for循环编写一些简单的代码,但我并不真正了解JVM是如何工作的,内存是如何管理的,或者Java中的多线程是如何工作的。
回首过去,我希望我一开始就专注于一种主要的语言,而不是学习一点儿所有的事情。
相信我,一旦你掌握了基础,学习其他语言就会变得更容易。
当涉及到编程语言时,深度比广度更重要!
3. 不要与他人比较作为人,我们都有倾向于拿自己和别人相比,这在编程中尤其如此。
当我上大学的时候,我对编程一无所知,但是一些同伴已经编程2年了。
在我大二的时候开始学习数据结构和算法,但我的同学已经是算法竞赛的专家了。
这导致我不断地和其他人比较,感觉我永远也无法像他们那样好。
我花了太多的时间担心我与其他人相比如何,而不是专注于提高自己的技能。
但我学到的一件事是:无论你有多好,总会有比你更有才华和更聪明的人。
事实是,每个人的旅程都是独特的。
没有人比另一个人更好。
你需要比的只是昨天的你。
所以不要比较,也不要竞争,只需创造、学习、建立,并享受你的旅程!
4. 你不会记住所有的东西当我第一次开始编程时,我着迷于试图记住每一个细节。
但是事实是:你的大脑只能存储那么多的信息。
除非你反复地练习或复习你所学到的东西,否则你将会在几周内忘记它。
这就是我们的大脑的工作方式。
在过去的10年里,我学习了8种编程语言,其中包括PHP,但如果你现在让我用PHP写一个for循环,我可能做不到,因为我忘记了它的大部分内容。
你不需要记住所有的东西。
只需专注于基础,然后让经验和实践来填补空白。
即使你忘记了什么,你总是可以使用 Google,阅读文档,前往 Stack Overflow,或者向像 ChatGPT 这样的 AI 工具提问。
5. 通过实践学习获取更好的编程能力的最佳方式是编写大量代码。
你可以观看教程。
你可以阅读文章。
你可以购买教科书。
但是当你自己开始写代码时,真正的学习才开始。
这并不总是容易的,有时你可能会感到沮丧。
最重要的是,它需要时间。
但是就像其他任何事情一样,你做得越多,你自然就会越来越好。
所以,一旦你掌握了基础,试着尽可能多地编写代码。
这可以通过构建项目或者在像leetcode这样的平台上解决编程挑战来实现。
你还应该尝试阅读有经验的程序员的大量代码。
阅读代码会让你接触到不同的编码风格、技巧和最佳实践,这些是你可能无法通过其他方式学习到的。
6. 不要只做一个程序员在我开始的几年里,我一直以为程序员就是一直编程的人。
但是过了几年我意识到,编程不仅仅只是写代码,更重要的是解决问题。
我们写的每一行代码都有一个特定的目的,编程只是我们解决真实世界问题的一种工具。
这就是为什么我们更应该看待自己为解决问题者,而不只是一个程序员。
有解决问题的思维方式可以让我们关注更大的图景,并帮助我们花更多的时间去思考解决方案,而不是写代码。
一旦你知道要解决什么问题以及如何解决,编码就变得更容易了。
所以,不只做一个程序员 - 做一个问题的解决者。
不要仅仅为了写代码而写代码。写出来的代码要能解决问题,要能制造出一些变化。
7. 沟通技巧很重要只擅长技术性问题是不够的,能够有效地沟通你的想法和解决方案是真正区分成功的程序员和其他人的关键。
这是我在职业生涯中晚期才明白的,但是从那时起,我就有意识地去提高我的沟通技巧,积极寻找机会来讲述我的想法,参与团队的讨论,并提高我的说话和写作能力。
善于沟通让你能清楚地表达你的想法,与团队成员有效地工作,同时把复杂的技术问题解释给非技术人员理解。
8. 提问没有人期待你知道所有的答案。
当我刚开始编程时,我不敢寻求帮助。
我以为寻求帮助是一个弱点的表现,表示我没有足够的智慧或能力独自解决问题。
我会花费几个小时,甚至几天的时间,独自头抵着问题,坚决要自己来解决。
但是每个人有时都需要帮助。
提问是我们学习、成长以及执行我们正在做的事情方式的改进的方式。
而最好的一点是,大部分的人都很好,总是愿意提供帮助。
我从没遇到过拒绝帮助我的人。事实上,人们通常喜欢帮助别人。
记住,唯一愚蠢的问题就是未被提出的问题。
所以,不要犹豫向同事、导师,甚至是互联网上的陌生人寻求帮助。
很可能,他们以前有过和你一样的经历,并愿意分享他们所知道的。
9. 挑战自己学习编程就像锻炼肌肉。
在健身房里,如果你只是举轻重的哑铃,你不会变得更强壮。
要快速增强身体肌肉,你需要随着时间的推移慢慢增加重量。
这个原则同样适用于编程。
要更好地编程,你需要处理更困难的任务和解决更大的问题。
但是不要尝试立即开始最困难的任务。
相反,尝试去做一些比你习惯的任务有点困难的任务,并慢慢提升难度等级。
当你逼自己去解决困难的问题时,你不仅仅是在解决问题 - 你是在提升你的技能,扩展你的知识,建立你的信心。