没上过高中能成为程序员吗_如何成为世界上最好的程序员

没上过高中能成为程序员吗

我不知道如何成为世界上最好的程序员。 因此,我弄清楚了取得成功的最佳方法是向有史以来最伟大的程序员学习,并从一些出色的工程师那里得到回应。

让我们开始吧。

1. UNIX和C背后的人Dennis Ritchie的经验教训

UNIX本质上是一个简单的操作系统,但是您必须是个天才才能理解这种简单性-Dennis Ritchie
丹尼斯·里奇(Dennis Ritchie), Techtricksworld

在您上大学并获得计算机编程学位的前几天,丹尼斯·里奇(Dennis Ritchie)设法在麻省理工学院(MIT)工作。

计算机实验室并不像现在这样挑剔,并且几乎欢迎任何有耐心帮助他们在房间大小的计算机上工作的人。

对于刚开始是行业外来者的人来说,创建UNIX和C语言(计算机历史上使用最广泛的两种技术)非常重要。 非常重要。

以下是丹尼斯·里奇的一些成就:

  1. Dennis Ritchie创建了C编程语言,并与他的伙伴Ken Thompson共同创建了UNIX操作系统。
  2. 1983年,他获得了计算机协会(ACM)的图灵奖。
  3. 1990年,Ritchie和Thompson均从电气和电子工程师协会 (IEEE)获得了IEEE Richard W. Hamming奖章
  4. 1997年,他成为计算机历史博物馆的研究员
  5. 他于1999年获得克林顿总统颁发的国家技术勋章

那么您将如何完成所有这些工作? 更重要的是,Dennis Ritchie甚至是如何学习编写软件的?

据说丹尼斯·里奇(Dennis Ritchie)是“ C编程语言之父”,他是一个可爱,善良,谦虚的人—完全是个极客!

但是他并不是一个极客。

里奇(Ritchie)出生于纽约,在新泽西州加登市(Garden City)长大。 他的童年稳定,学业成绩也不错。

他继续在哈佛大学学习,在那里他学习了科学并获得了物理学学士学位。

那么,计算机何时进入Ritchie的生活?

要点1:如果您希望擅长编写出色的软件,则必须保持好奇心。

我既不聪明也不特别有天赋。 我只是非常非常好奇-爱因斯坦

好奇心助长了对知识的渴望。 亲爱的知识,统治着世界。

里奇(Ritchie)还是一名学生时,不知何故参加了有关Univac我如何工作的讲座。

UNIVAC I通用自动化计算机I )是美国生产的第一台商用计算机。

以下是它的外观:

维基百科

认真地说,什么样的好奇心会让一个人坐下来并真正享受关于该事物如何运作的讲座?

显然,这是造就出色程序员的那种。

在那次相遇之后,Ritchie进一步研究了计算机的实际工作原理。

好奇心杀死猫🐱。 我们都知道,但是你不是猫。

要点2:我知道您之前已经听说过,但是请构建内容。 很多东西。

我不想专注于特定的项目,而是想和有很多经验和想法的人在一起。 因此,我开始从事各种项目,以学习自己的职业道路。” —丹尼斯·里奇

使许多项目成为您好奇心的产物。 将好奇心转化为建立不同的项目-像Ritchie一样,这将帮助您了解专业知识。

要点3:在您认为更好和更有经验的人周围闲逛。

您这样做的明显原因是,您将以更快的速度学习,并且不会对当前的知识感到过分自满。

据说丹尼斯·里奇(Dennis Ritchie)做得还不错。

如果您无法与自己认为更好和更有经验的人保持亲密接触,那么互联网就是您的朋友。

在您喜欢的频道上关注他们。 阅读他们的博客文章。 观看他们的youtube视频。 听他们的播客。

只是“停留”在他们周围。

要点4:解决问题。

“有趣的不是实际的编程。 但重要的是您可以实现的最终结果。” —丹尼斯·里奇

丹尼斯·里奇(Dennis Ritchie)住的时间是一间计算机满屋子的时候,还有更多。 但是Ritchie知道正在开发较小的计算机,并且它们不具有易于使用的操作系统,因此他着手开发一个项目。

这就是Ritchie总体上看待编程的方式。 这是关于可以完成的事情。 可以解决的问题以及对人们的影响。

如果问题困扰您太多,请不要忽略它。 如果您认为它被许多人忽视,请解决它。 建立东西。 去做就对了。

好奇 研究概念。 请求帮忙。

在解决问题之前,您不应该回头。

当某件事足够重要时,即使赔率对您不利,您也可以这样做-伊隆·马斯克(Elon Musk)。

这里有些例子 :

  • Electron JS (使用Javascript构建桌面应用程序的技术)之所以流行,是因为Github团队的一部分希望使用Web技术构建可入侵的编辑器。
  • Redux是Javascript应用程序的可预测状态容器,它是由Dan Abramov构建的,因为他想创建一个具有最少API但行为完全可预测的状态管理库,这就是他所说的。
  • Quincy Larson和其他一些人构建了Freecodecamp平台,以解决在开源社区中教授Web技术的问题。

他们看到了一个问题,然后继续解决。

C编程语言之父Dennis Ritchie的主要收获

  • 保持好奇心,并不断加深知识之火。 我们永远不可能一无所知。
  • 了解基本原理。 基础知识的掌握,才是真正的技能掌握。
  • 解决问题。 如果您认为可以以不同的方式来完成某事,应该去做,那就去做吧。 您会更快地变得更好,并在此期间更好地生活
  • 建立许多不同的项目
  • 与具有更多专业知识,经验和想法的人在一起。 您不能将其换成其他任何东西。

2. Linux内核操作系统背后的人Linus Torvalds的经验教训

Linus Torvalds, 软百科

Linus Torvalds被《时代》杂志评为“世界上最有影响力的人之一”,是Linux内核操作系统背后的创造力天才。

  • 1998年,他获得了电子前沿基金会(EFF)先锋奖。
  • 在1999年,他被MIT Technology Review TR100授予“全球35岁以下的前100名创新者之一”的称号。
  • 2000年,他获得了由英国计算机学会授予的Lovelace勋章
  • 在2008年,他成为计算机历史博物馆研究员大厅的入选者
  • 2012年,他入选了互联网名人堂。
  • 2012年,他还是千年技术奖的获得者之一。

现在,值得一游。

Linus Torvalds的车牌。 照片: Jon Snyder /有线

莱纳斯(Linus)出生于1969年在赫尔辛基(Helsinki) ,当时是一个新闻记者家庭,他说他的童年并不算特别。

Linus在很大程度上受到其祖父的影响,他在10岁或技术上12岁时编写了他的第一个程序。他帮助他的祖父键入程序,直到12岁,他才开始修改它们并编写自己的程序。

如果成为一名自学成才的程序员意味着要教自己编程,而不考虑一些基本的计算机基础知识,那么Linus就是一位自学成才的程序员。

根据他的说法,“当时高中有编程课,但它们很基础且很初级”

要点5:进行正规的计算机科学教育非常棒,但是请不要阻止您。

“计算机科学教育不能使任何人成为专家程序员,就像学习画笔和颜料可以使某人成为专家画家一样。”
- 埃里克·雷蒙德Eric Raymond)

在成长过程中,Linus Torvalds发现编写游戏很有趣,并且他正在做机器代码。 他无权使用汇编器,因此他在纸上进行了所有汇编并将其编写为二进制文件。

那真是个坏蛋

更有意思的是,他家中的每个人(母亲以外的人)都是记者。 他是败类。

他在接受计算机历史博物馆的采访时说,

“我非常怪胎。 我呆在里面读书或编程。 坦率地说,我仍然阅读并坐在电脑前。 是我的鲍比”

要点6:热爱您的工作。 不只是金钱和名望带来的。

大多数优秀的程序员进行编程并不是因为他们期望得到公众的报酬或赞誉,而是因为编程很有趣— Linus Torvalds

我必须指出,刚开始时,很多时候对编程的热爱并没有消失。 对于许多人来说,这是掌握技巧的分支。

您学习,犯错,积累东西,看到自己变得很好,然后您就完全热爱自己的所作所为。

即使是那些以爱为开端的人,随着他们精通手艺,他们的爱也会增长得更多。

如果您喜欢编程,但似乎没有进步,请不要放弃。 大多数人都穿相同的鞋子-穿的更大!

要点7:从小处着手,但要成长。

“我只想构建自己的操作系统” – Linus Torvalds ???

故事不是这样的。 Linux项目起初并不是为了冒险构建操作系统。

它的细节可能会让您感到厌烦。 但这是重要的一点。

Linus订购了MINIX ,本质上是一个类似UNIX的计算机操作系统(OS)。 它于1987年首次发布,其完整的源代码可供大学在课程和研究中使用。

Linus在这台机器上玩耍,并编写了自己的程序以从没有操作系统的软盘启动。

Linus想玩CPU本身。 因此,使用操作系统会打败他锻炼的目的。

一直以来,他没有发现他编写的程序很有用。 然后,他将程序扩展到了一个操作系统

许多成功的人从小处开始,但从大处开始。

从头开始的危险是,您可能陷入不堪重负的陷阱。

另外,完全不知道什么也可以。 完全可以成为新技术的业余爱好者,但是要张开翅膀,并尽快掌握它。

要点8:您必须完成工作。 没有人会为你做

而且我显然一直在阅读操作系统书籍-Linus Torvalds

我还没有遇到一个没有工作的成功男人。

很容易假设Linus神奇地知道如何构建操作系统。 这不是真的。

他已经完成了所需的工作。

在接受计算机历史博物馆的采访时,他说,他开始致力于重组自己构建的程序,使其表现得更像一个真正的操作系统。 而且他显然也在阅读操作系统书籍。

没什么神奇的。 您确实需要投入一些时间才能精通编程。

Linus Torvalds的关键点

  • 计算机科学教育很棒,但是请不要阻止它成为伟大的。
  • 继续爱你所做的事。 保持良好状态,忘掉赞美和金钱,他们会在以后来。
  • 从小处开始是完全可以的。 只是不要留在那里。
  • 准备投入所需的工作时间。 没什么便宜的

其他经验丰富的开发人员的奖励积分

我亲自收集了一些经验丰富的软件工程师的意见。 他们如何看待成为最好的开发人员?

要点9:其他人都努力做到最好

Bill Sourour ,正在编写软件已有20多年了。 如果您好奇, 昆西·拉尔森Quincy Larson) 在这里采访了他

我联系了他,这是他说的:

基本的答案是,要想做到最好,就必须让其他也想成为最好的人的工作变得多余。 这意味着每天,每天都在编写,阅读,学习和工作。 — 比尔·索尔Bill Sourour)

用比尔的话来说,一个更有趣的问题是,为什么要成为世界上最好的? 那会给你什么? 那是真正的目标吗?

尝试成为自己能做到的最好而又不用担心世界其他地方又如何呢?

它仍然意味着努力工作,但是那样只会与自己竞争。 每天设定目标,使其比昨天更好,那么您会走得很远。

要点10:学会更清晰地思考抽象和软件设计

戴夫

Dave Ceddia在波士顿地区担任软件工程师,他的丰富经验是我逐渐受到尊重的经验。 如今,他主要使用React构建前端UI,并撰写了《 Pure React 》一书。

如果您好奇,这是他的博客

几个月前,我与Dave进行了接触,他的回应中的细节让我感到困惑。

这是他的想法:

1.在适当的时候,探索暴露于多种编程语言所带来的优势

学习多种语言会使您接触到新的思想和解决问题的新方法(尤其是功能性语言)。

然后是像C这样的低层代码,它们将教您注意内存管理和性能。 基本上,您必须构建东西。 建立很多东西。

2.探索更多项目类型

编写UI(用户界面)代码不像编写高性能数据获取代码,也不像编写OpenGL代码,不像套接字编程……所以将开发的一个方面(例如前端/后端的东西)扩展到其他方面很有趣,即使只是看它是什么样子。

3.收集广泛的经验

因此,对我来说,成为一名优秀的开发人员的一部分是要拥有广泛的经验。 不过那可能只是我。 每个人对此都有自己的答案。 但是我认为对一切有所了解很有用。

我想我会称自己为通才–我喜欢学习新事物,所以我做了很多不同的事情。 C ++中的数据采集代码与定制硬件,Qt中的GUI,OpenGL中的小游戏,无聊的Java和SQL,Ruby on Rails中的webapp,小Raspberry Pi项目(如车库门开启器)进行对话……很多小事情。

4.不断擅长自动化和测试

在此过程中,请尝试擅长使事情自动化。 我认为对自动化的渴望一直是我完成的大多数项目的推动力,但也是学习Linux和命令行的重要原因和动机。

命令行知识似乎是辅助的,次要的事情。 但我认为这真的很重要。

它改变了您如何看待问题。 诸如“噢,我必须在30个文件中更改该变量名? 没关系…”变成了几句话。

因为所有命令都有意义,或者至少您看到了它们之间的共性,所以建立构建变得不再那么吓人。

5.了解软件设计

因此,对我来说,作为开发人员进行改进最难的是架构方面的工作。

软件设计,如何组织代码,使其可重用,易于阅读和修改。 擅长于一致地进行重构和测试。

我必须承认,我并不总是擅长测试。 但是TDD (测试驱动的开发)实际上很有趣,您应该学习和实践它。 我认为这是一种在开发软件的“设计”方面变得更好的捷径/系统。

我读过的关于设计的最好的书之一是Sandi Metz的“ Ruby中OO实践设计” 。 您并不需要非常了解Ruby就能从中受益匪浅。 它通过重构一些小示例使它们更易于维护,并且她讨论了做出的每项更改背后的权衡和原因。

结论

你从这里去哪里? 应用这些原则,并开始寻求成为更好的开发人员。 另外,您也应该努力地练习。

Ruby on Rails的创建者DHH在他最近的Quora会议上这样说。

“重复上10次相同的课程无济于事。 您必须不断寻求舒适区的边缘。 ” — David Hansson,Ruby on Rails的创建者。

祝您好运,并为成为更好的开发人员而欢呼!

请推荐该文章,并删除您的评论。

有什么技巧对您有帮助吗? 让我们听听吧!

翻译自: https://hackernoon.com/how-to-become-the-best-programmer-in-the-world-ef9f584c81fa

没上过高中能成为程序员吗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值