首页 >热门资讯> 图像影音设计 > 15年经验分享:成为程序员之前,你该知道的一些事情(上) >

15年经验分享:成为程序员之前,你该知道的一些事情(上)

转载时间:2022.05.06(原文发布时间:2019.09.18)
44
转载作者:36氪企服点评小编
阅读次数:44次

神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。

编者按:“我在15年前开始走上程序员这条道路,如果可以,我希望当时能够有人坐在我的身旁,告诉我本篇文章接下来要探讨的这些内容,因为这些内容可以为每一位新走上这一职业生涯的程序员省去很多麻烦,帮助他们节省很多精力。”原文选自Medium,作者Jun Wu,原文标题“30 Things I Wish I Knew When I Started Programming”,本文进行了适当删减。

  • 15年经验分享:成为程序员之前,你该知道的一些事情(下)

编程并不是一件容易的事。每年都有很多学生从自己所在国最顶级的计算机科学专业院校毕业,编程可以说是我们可以从事的最具竞争力的职业之一。但与此同时,编程也是令人充满激情的职业之一,技术在不断进步,每天都有创新的诞生,无数热爱编程的人士都在孜孜不倦地为之努力。

我在15年前开始走上程序员这条道路,如果可以,我希望当时能够有人坐在我的身旁,告诉我本篇文章接下来要探讨的这些内容,因为这些内容可以为每一位新走上这一职业生涯的程序员省去很多麻烦,帮助他们节省很多精力。当你在编程这条职业生涯之中不断前进时,也可以参考本文所探讨的一些内容。即便其中一些可能你现在看来与你无关,但未来有一天也许你会发现它们的价值所在。

1、编程并不意味着你一定要有专业学位,但你要有相关知识储备

我过去曾与许多没有计算机科学硕士学位或者是计算机科学本科学位的程序员一起工作。编程是少数几个不依赖于学位的职业之一。但是,编程是一项知识密集型职业,如果要想在没有专业学位的前提下走上编程这条道路,你必须阅读以下十本必备书籍(选自《10 Programming Books you Need to Read》,便于读者阅读,将书单列于下方):

  • 《Clean code》作者:Uncle Bob

  • 《Clean architecture》作者:Uncle Bob

  • 《Grokking Algorithms》作者:Aditya Bhargava

  • 《Head First Design Patterns: A Brain-Friendly Guide》

  • 《Test Driven Development: By Example》作者:Kent Beck

  • 《Soft Skills: The software developer’s life manual》作者:John Z .Sonmez

  • 《Cracking the Coding Interview: 189 Programming Questions and Solutions》作者:Gayle Laakmann McDowell

  • 《Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)》作者:Bruce Tate

  • 《 Programming Elixir》作者: Dave Thomas

  • 《Go Programming Blueprints — Second Edition》作者:Mat Ryer

这十本书涵盖了计算机科学的基本概念,也介绍了作为程序员该如何在项目团队中工作。这十本书能够为你的技术技能奠定坚实的基础,让你对基本概念有一个扎实的了解和掌握,除编写功能性代码之外,还可以让你了解技术职位面试相关问题,并教会你如何与同事沟通。

2、编程不仅需要你有解决问题的技能,更需要你有创造力

大多数人都有一种先入为主的观念,他们认为编程就是分析和解决问题的一种技能。这句话并不完全正确,编程还需要很多的创造力。通常来看,有很多种方法可以编写出某个特定的代码。但是,如何找到最简单并且最有效的编码方式,这就涉及到创造力。

3、你无法掌握与编程有关的一切,诀窍是要熟悉地掌握某一特定职业类别所需的知识组合

编程语言有数百种,编程领域也包括各种不同的职业方向和道路:Web开发人员、前端开发人员、后端开发人员、软件工程师、数据库开发人员等等。先想清楚你想成为哪一种开发人员,然后学习这一特定职业类别所需的技能和知识组合。

4、编程并不需要你成为一个机器人

记住你首先是一个人,然后才是一位程序员。在你刚开始走上编程这条职业道路的时候,很容易让自己迷失在代码之中。我也经历过那样的阶段,在我完成项目所有的里程碑式工作之前,我一直都守在电脑前面。但你首先是一个人,你需要笑,需要哭,需要与人交谈,需要给自己减压。积极主动管理自己的生活,在工作之外获取最大限度的乐趣和兴奋度,也将为你带来更多的创造力,并进一步应用到工作之中。

5、编程是一门灵活应用的学问,而不是死记硬背

编程不同于研究,研究是探索和创造新的知识领域,而编程是对现有知识的应用。无论是书本、研究论文还是网上的文章和学习视频都是你经常会用到的学习资源。没有必要去记住任何东西,因为你始终可以通过这些资源来找到自己想要的答案。随着你处理的项目越来越多,你自然而然就会记住更多的东西。

6、你每天都会有“冒名顶替综合症”的感受

编程似乎是一个汇聚了所有“聪明人”的职业。除非你是天才,否则你也会像我一样每天都在经历“冒名顶替综合症”(认为自己不够好,不配拥有当下的成就和收到的称赞,将一切归功于运气)。如果你每天都在承受着这样的困扰,那你就需要找到一种方法来解决这一问题。就我个人而言,我会将这种感受作为学习新事物的动力。我已经学会了正确看待这一问题,只要每天有一点进步我就会满足。

7、你必须要有自己的生活

做了程序员之后,你常常会感觉自己就像是一名隐士一样。但是,要想成为一名快乐的程序员,你必须积极、主动寻求计算机屏幕之外的生活。因为,你的职业生涯是否能够成功往往取决于你遇到什么样的人,人脉对于程序员来说必不可少。避免让自己一味沉迷于编程之中,让自己享受程序员之外的生活至关重要。

8、结对编程会让你学得更快

在你开始走上编程这条职业道路之时,你可能会想要关上世界的大门,让自己潜心研读那十本有关编程的书籍,以此来建立计算机科学的基础。除此之外呢?其实如果你能找一个人一起编程,那你会学得更快。我当时就是一边学习这些编程书籍,一边与朋友一起合作一个项目。结对编程会让你发现很多的问题,对方可能会批评你的代码,你会学习如何去编写更有效的代码,因为你知道旁边有一双监督的眼睛。你会找到最佳的方法,不断地去改进,因为你的同伴也在学习,也在进步。这很好接受,因为在你成为正式的程序员之后,也会有人来检查你的代码。没有单独一个人编程的时候,所以现在就可以提前预演,提前习惯这种编程模式。

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

在技术行业,你会遇到各种各样的超级明星型程序员,他们可能是在接受了正规的文科教育之后,突然发现了编程逻辑思维方面的魅力。也有一些画家或者是作家在追求艺术的同时将编程作为谋生的手段。但对于绝大多数的普通人来说,要想成为一名优秀的程序员,你所需要的只有坚持。编程并不简单,但是只要坚持,任何人都可以通过阅读编程相关的书籍来掌握基础知识。这个行业内有许多程序员是工作了一段时间才又去接触的数学,这些人并没有接受任何正规的数学教育,但他们最后却可以理解并且应用那些复杂的算法。

10、你需要成为全明星“学者”

程序员是优秀的学者,你可能一开始并不认为自己属于擅长学习的类型,但你最后总会成为优秀的学者。有时,你的工作会要求你在六个月的时间内学会三种编程语言,这就是技术创新的本质所在。作为程序员,我们每天都在学习。对于我们而言,学习就如同呼吸一样自然。如果你现在还不是每天都在学习的状态,那你很快就会被迫去习惯这种状态。

11、你会沉迷于编程项目,执着于去完成

编程上瘾是真的。在你的编程职业生涯之中,你将会有通宵编程的体验。在完成重要的里程碑工作之前,你可能都不想睡觉、你可能会忘记吃饭、喝水,甚至忘记从电脑桌前站起来走动一下,因为你的大脑正在处理太多的信息。这都没关系,完成项目后,记得去外面散个步,记得给自己放个假。

12、你可能会花上一整天的时间只为寻找一个小小的bug

对于编程项目来说,大多数情况下,项目中的许多部分都是彼此相互依赖的状态。所以,你会发现有许多时候,如果你不能修复系统中所潜伏的一个小小的bug,那就无法继续接下来的工作。作为程序员,如果你找不到这个错误所在,那巨大的压力会时时萦绕着你。你会花一整天的时间来寻找这个bug,你甚至会在晚上做梦梦到这些代码,直到将它找出来为止。

13、大部分时间你都是借助搜索引擎来寻找答案

如果你是使用一门流行的编程语言编程,那你遇到的大部分问题都可以在网上找到答案。当然,凡事总有例外。有时,你遇到的问题可能其他人并没有遇到过。在这种情况下,查询编程书籍或者是在编程论坛提问可能会帮你找到正确的解答方向。

14、你会读一本设计模式相关的书

即便你是毕业于所在国家最好的计算机科学学院,在你的职业生涯中,你也会遇到那样的时刻,会需要你坐下来认真逐页翻阅《Head First Design Patterns》这本书。对于新程序员来说,这可能是阅读量最大的书籍之一。所以,还在等什么?那拿起这本书,从头开始看吧。

15年经验分享:成为程序员之前,你该知道的一些事情(下)

译者:aiko

[免责声明]

资讯标题: 15年经验分享:成为程序员之前,你该知道的一些事情(上)

资讯来源: 36氪官网

36氪企服点评

图像影音设计相关的软件

大厂都在用的图像影音设计软件

限时免费的图像影音设计软件

新锐产品推荐

消息通知
咨询入驻
商务合作