分类: 未分类
生活与编程的并行线程
https://www.freecodecamp.org/news/the-parallel-threads-of-life-and-programming-2/
我坚信我们最深切的愿望是,通过花费时间来向人们展示有关宇宙的一些基本真理。听听它的耳语,并指出它的目的。
而且,如果您对这些课程足够认真,就会找到它们。无论它们是您的思想的体现还是可以握在手中,一旦您看到它们,它们就永远属于您。
编程为生活提供了重要的相似之处。我们的任务是创造一些出头其总和感觉比部分更显著。就像生活一样,它是对无限创造力的考验。有规则,我们必须遵守,一些我们应该遵循,以及其他一些我们可以随意忽略。编程让我们瞥见了关于我们所居住的世界的一些基本事实,无论它是多么短暂。
编程与生活之间的四个平行
迭代就是进步。
您是否知道,如果您以一个便士开始一个月,并且每天都翻一番,那么您在该月的15号会有163美元?当然,您认为,肯定有更好的方法可以在15天内赚到163美元。但是,如果再等15天,您将获得超过500万美元。
继续吧,我会等你做数学的。
在编程中,我们使用术语“ 迭代”来表示重复某件事。在更正式的定义中,它将重复地将一个过程应用于该过程的先前结果。例如,将数字1和1相加得到2,然后将数字1和2相加得到3,依此类推。
当我们进行迭代时,我们会寻找反馈。我们等待要满足一些条件,使我们可以停止迭代或调整如何,我们迭代。如果我们听不到这些反馈,就会陷入无限循环。
生活没有什么不同。我们经常期望我们可以从A点跳到B点,而无需定义A点或B点是什么。而且,即使我们确定了这些要点,我们也希望从头到尾立即采取行动。相反,通常是事实,那就是我们必须从头到尾逐步发展自己的道路。我们必须听取反馈,告诉我们我们在哪里,以便我们进行调整。
当我们有了目标时,通常在最初的几天,几周甚至几个月内都感觉不到进步。我们常常被引诱重新开始或重新开始。但是这样做时,我们未能意识到,虽然我们可能尚未到达目的地,但我们已经远远超出了开始的地方。无需完全重启,我们只需要进行一些小的调整即可。
停止重新开始。让迭代成为创造进度的力量。
最复杂的问题是已经解决的较小问题的集合。
即使是最引人入胜的应用程序,也可以使用一系列大多数平凡的解决方案来解决平凡的问题。实际上,程序中实现的大多数解决方案都不是唯一的。正是这些普通解决方案的结合创造了非凡的产品。
在编程中,有多种方法可以使用这些非常普通的解决方案。一种方法是通过称为抽象的术语。抽象某物就是将某物从另一物移开。
在计算机编程中,当我们抽象某些东西时,我们通常会在较低级别的技术之上构建较高级别的技术。这使得使用低级技术更容易。
例如,大多数编程语言都是神秘的二进制语言(0和1)的抽象。它们在我们与计算机之间一些更基本但又麻烦的交互级别之间建立了一层。这些高级语言使我们可以专注于高级问题。
我们可以更有效地解决问题的另一种方法是使用其他人的解决方案。您可能还听说过库一词。而且,虽然我不是在谈论光线不足,灰尘多且安静的地方,但书本并不遥远。
一个库,在编程术语,代码是别人写的,解决日常问题。它还抽象了那些对于解决您遇到的问题并非绝对重要的事情。
例如,如果您正在编写一个程序,要求某人登录才能使用您的应用程序,则可以编写代码来自己加密和解密密码,或者可以使用其他人编写的代码为您完成此操作。使用后一种选项,我们可以腾出时间专注于我们的应用程序试图解决的更重要的问题。
我们所有人都以某种形状或形式使用抽象和库。例如,杂货店是生产我们自己的食物的抽象。汽车是徒步旅行的抽象概念。烤箱是生火的抽象概念。这些是我们摆在我们面前的层次,可让我们将时间分配给更高级别的问题。
重新发明轮子只是为了学习如何制造轮子,而不是开车去商店。
如何定义问题就是解决问题的方式。
回想一下卡车在桥下行驶并被卡住的故事。工程师花费了数小时试图找出如何移动桥梁。一个小孩子站起来,与卡车的轮胎面对面,说道:“如果不让轮胎中的空气出来,那该怎么办?”
从孩子的角度出发,问题不是桥太短,而是卡车太高了。
大多数人都可以解决任何问题。实际上,大多数问题都指出了解决方案。例如,如果网桥是导致问题的原因,那么答案就是对网桥做些什么。但是,如果问题是卡车太高,则解决方案(几乎显而易见)是使卡车缩短。
零件的布置比零件本身重要得多。
Google Maps代码库,独立宣言,马丁·路德·金(Martin Luther King Jr.)的梦想演讲,史蒂夫·乔布斯(Steve Jobs)的2005年毕业典礼地址以及我的第一个应用程序“ Hello,World”有何共同之处?
访问相同的26个英文字母。
没有什么比书面文字更让我着迷了。书面文字是人类出现的最强大的技术之一。
是的,我使用技术一词,是因为它甚至被刻在洞穴的墙壁上,从根本上改变了我们保持信息的方式。数据不再局限于我们的思维范围内。
尽管最初将书面文字的目的与保存记录联系在一起,但它很快成为传播思想的一种方式。其中一些想法会激怒,另一些会启发。
通过书写或语音传输信息时,每种语言(包括计算机语言)都具有微妙之处。单词及其组成部分可能略有不同。但是,语言仍然是一组符号,可以将它们排列成似乎无穷无尽的思想。
例如,在英语中,大约有29个符号可用来代表几乎整个宇宙。我已经提到了26个字母,但是使用句点,逗号和问号也很有帮助。
我和您都可以使用这29个字符,史蒂夫·乔布斯也可以使用。然而,基于我们选择相信和说话而存在的字母的组合,我们每个人一生都会遵循不同的轨迹。
有趣的是,尽管我们经常在字典中添加单词,但通常不添加字母。这意味着,从最根本的层面上讲,所有可能存在的想法已经存在,它们的组成部分悄悄地等待着我们将它们改组为现实。
Les Brown通过这个思想实验很好地总结了这一点:
想象一下,如果您愿意的话,就躺在死亡床上。站在床旁–生活中赋予您的思想,梦想,能力和才华的幽灵。
而且无论出于何种原因,您都从未对这些想法采取任何行动。您从未追求过那个梦想。您从未使用过这些才能。我们从未见过您的领导。你从来没有用过你的声音。你从未写过那本书。
他们在那里,站在你的床周围,用愤怒的大眼睛看着你,说:“我们来找你。只有你能给我们生命!现在我们必须永远与你同死。”
问题是-如果您今天死了,您将死什么想法,什么梦想,什么能力,什么才能,什么礼物?
感谢您的阅读!
成为程序员不需要的10件事
https://www.freecodecamp.org/news/the-10-things-you-dont-need-to-become-a-programmer/
您有成为程序员的条件吗?很有可能,您的答案将基于一堆不真实的刻板印象和误解。这些都是有害的,因为它们阻止您尝试此职业道路。
让我们看一下成为一名程序员不需要的一些东西。
介绍
自从90年代末开始使用互联网以来,我一直对编程感到着迷。开发人员可以做的令人惊奇的事情让我着迷。当新网站和后来的应用程序开始从根本上改变我们周围的世界时,我的钦佩才增长。
但是,我从未尝试自己编程。从未尝试过看看它是如何工作的。但是我通常是一个好奇的人,喜欢研究事物并学习事物。那么那里发生了什么?几十年来怎么可能被编程迷住,甚至没有尝试呢?
就我而言,原因就是我所说的“好莱坞黑客”刻板印象。我们当中那些没有接触到该领域现实的人,只会经历媒体的刻板印象。我认为编程是精英(少数精英)的活动。上过独家大学并完成了非常昂贵的长期学位的人。那些拥有可以做数学天才的超人壮举的人的特权。
我现在知道这不是真的。它不是基于现实的。我希望我早一点知道。
我最终明白,这是比我最初想象的更容易获得的职业道路。我遵循了一些YouTube教程,并对编程感到非常兴奋。我认真地学习,并在10个月内从一个无关领域转变了职业。
这不是在公园散步,这是许多艰苦的工作。就像我们学习的任何技能一样,这需要时间和实践。但这并不需要特殊的权力。这是我如何进行切换的故事。
现在,我正在作为前端开发人员,我想帮助其他人。我想鼓励那些正在考虑将编程作为一种可能的职业,但是不确定他们是否“具备所需的能力”的人,或者认为有些障碍实际上并不存在。
因此,让我们一起探讨成为一名程序员不需要的10件事。

先决条件
这些都是正确或错误地与我们流行为程序员的形象有关的事物。它们是很好的东西,它们可能会有用。
有抱负的开发人员可以花时间来获得其中的一些技能。但是,它们都不是开始,学习,找到工作或拥有出色的计算机编程职业所必需的。
成为天才。做一个数学家。
这是要消除的最重要的神话-特权人士的神话。要成为一名程序员,您的大脑没有什么特别的事情。
编程是一种技巧,例如弹吉他或参加马拉松比赛。通过这样做,您会变得更好。通过投入时间和精力。通过向他人学习。您做得越多,您投入和发展的技能就越多。
如果您看到有能力用计算机完成出色工作的程序员,那总是将时间和精力投入到他们的工作中的结果。这不是他们天生的天赋,也不是神圣的灵感。
另外,让我们谈谈数学。尽管数学是编程的核心,但您在日常工作中并不需要它。今天,大多数工作使用的大多数编程语言都是高级语言。它们比数字更接近人类语言,并且不需要任何数学方面的专门知识。
编程更像是写作而不是演算。如果您擅长数学,它将帮助您更快地解决某些问题。如果像我一样,您在学校没有爱上它,再也没有回头,这不会成为障碍。
成为计算机向导
编程要求您编写在计算机上运行的程序。您可以使用计算机进行操作。这是您工作的媒介。
但是,您无需成为一名程序员就可以从头开始构建计算机。您不需要能够理解计算机的内部工作原理。或是成为您的所有朋友都遇到计算机问题的那个人。
如果您使用汽车来完成工作是一回事,但实际上成为汽车修理工则是另一回事。当然,您对工具的了解越多,您解决问题和解决问题就越独立。但是您可以成为有效的程序员,而无需先学习如何修复姨妈的受病毒感染的机器!
拥有精英大学学位。拥有CS学位。有任何大学学历。
大学学位是一件很棒的事。它教您方法和调查。它教您自己的学习风格。
总的来说,如果你有幸进入大学,成为一名毕业生是一件好事。成为计算机科学专业的毕业生对于编程来说甚至更好。它为您提供了深度和广度的知识。一流的大学将打开大门,并与您联系。
但是,以上所有内容实际上都不是程序员的必要条件。这个领域挤满了没有CS学位或根本没有学位的优秀程序员。如果您全神贯注,那么您就可以成为一名优秀的程序员。
如今,有许多不同的途径成为开发人员。传统的大学路线只是其中之一。有一些训练营将基本知识浓缩为几个月的紧张工作。对于那些想走自我指导路线的人,有很多在线资源。对于需要在准备职业转变的同时继续工作的人们来说,这是一个不错的选择。并且有许多免费或廉价的选择也消除了经济障碍。
拥有最先进的计算机或昂贵的软件
这可能有点愚蠢。但是对于许多生活在困难的经济形势中的人来说,这意味着迈出第一步与不迈出第一步之间的区别。
我曾经以为程序员需要具有最高处理能力的最先进的计算机,因为他们是编写运行计算机的软件和应用程序的人。我以为要开发软件,您需要专用且昂贵的软件。有点像那些从事设计或视频工作的人所需要的工具包。
因此,当我按照我的第一个教程进行操作时,我感到很惊讶,而构建第一个网站所需的全部是Windows内置的记事本。记事本!!任何计算机上最简单,最无聊的软件。一个文本编辑器,它尽可能平淡而基本。
好吧,是的,您完全可以在一台旧机器上完成所有基本工作,而无需花哨。人们期望在专业工作时拥有一台好的机器。但是作为学习者,您可以通过互联网连接和可以运行文本编辑器的基本计算机走得很远。
此外,您在使用过程中需要使用的每种工具都有免费版本。
英文流利
与上述大多数情况一样,流利的英语会有所帮助。编程语言是在英语国家发明和发展起来的。因此,无论好坏,英语都占主导地位。
编程语言中使用的单词是英语。而且有关该主题的大多数文档,教程,文章和资源都是英文的。因此,如果您具有不错的理解水平,它将很有帮助。
但是,这不应该成为阻碍您进行编程的障碍。您可以学习并熟练掌握中级英语。许多人只能够阅读和理解英语。

刻板印象
在公众的想象中,有许多与程序员相关的刻板印象。现在让我们澄清一下,我并不是说这些刻板印象有时不是真实的,或者以任何方式都是负面的。只是您不需要那些适合的东西。
做个书呆子。成为玩家
让我重复一遍,书呆子很棒,游戏玩家很棒。但是您可以成为技术团队的一员,而不必成为上述任何一种。不是90年代-现在,各种风格的人都在行业中工作。
当您初次寻找工作时,与您合作的团队是您成功的最大因素之一。因此,找到一个气氛良好的支持团队至关重要。比您可能会或可能不会与其他程序员共享的兴趣更为重要。
内向
同上。没有特别适合该行业的个性类型。不要去寻找可能会告诉你这是否适合你的人格特质。您的态度要重要得多。
能够处理挫败感并坚持下去是关键因素。那是一种博学的技能,而不是固定性格的一部分。

多元化
以下各项不是刻板印象,而是统计数据。纵观行业现状,您可能看不到自己的代表。这可能会使您认为这不适合“像您这样的人”,但是您可以识别自己。
但是我们的态度应该相反。缺乏代表性是进入它并将自己摆在那儿的更多原因。业界对于团队多样性的重要性变得更加明智。许多公司和个人都在努力使行业更具包容性。
年轻
您无需年轻就可以从事技术工作。您无需从小就可以成为一名优秀的程序员。
我从39岁开始学习,到第一份工作时才40岁。每个年龄段的人都已经成功地完成了过渡。
学习永远不会太晚。永远不会改变职业。此外,一家只想雇用年轻人的公司可能不是一个工作的好地方。如果您需要更多灵感,请查看有关30、40和50年代获得第一份技术工作的开发人员的故事。
做个男人
这应该很清楚。但这不得不说。您不必是一个男人就可以成为程序员。尽管人们仍然占程序员的大多数,但希望这种情况正在迅速改变。
任何具有领导才能的公司都了解性别多元化团队的重要性。这不仅有利于“平等”(这是足够的理由),而且性别多样化的团队可以做出更好的决策,并且不太可能受到偏见。
性别并不是决定您的程序员水平的因素。没有更适合的染色体或大脑结构。编程主要是解决问题。我们需要尽可能多的观点以最佳方式解决问题。
享有特权
当我刚开始学习编程时,我最喜欢的事情之一就是社区的民主,开放和包容性。
编程世界充满了优秀的人才。他们花时间帮助其他人成为更好的程序员。他们创建资源并维护使所有人受益的开源项目。
许多团体和集体仍然人数不足。特别是那些历来被边缘化或难以获得机会的人。但是社区本身比外面看起来更受欢迎和更具包容性。而且它还在不断变化。
您可能不会在受欢迎的图像或有关程序员的统计信息中看到自己。但这不应该成为能够成为程序员的因素。您的性取向,社会阶层,种族,残疾,是否不生活在工业化世界中,是否贫穷。这些都是因素,不是障碍,而是好处。出于与上述相同的原因。
团队的多样性越大,以超越偏见的方式解决问题的能力就越强。那总是一件好事。您可以成为这个行业不断变化的形象的一部分。

奥托罗
我希望本文能帮助您打破关于程序员的神话并消除入门障碍。我希望,如果您对编程感兴趣,可以尝试一下。而且,如果您对它感到兴奋,并且对追求职业感兴趣,那么您将尝试它。
忽略伪装成我们认为阻碍我们前进的障碍之一的自我怀疑。编程很复杂,需要艰苦的工作。但是有关它的一切都是由任何人坚持不懈可以学习的技能组成的。
生活可能很艰难,可能会阻碍我们前进。挑战是应对这些障碍并找到解决之道。因此,让我们至少从路径上消除实际上不是真正障碍的所有杂物。
如果您认识正在考虑编程的人,或者最近开始学习的人,请与他们分享这篇文章。
公开学习 最快的学习方式
https://www.swyx.io/writing/learn-in-public/
如果有一个黄金法则,那就是这条法则,所以我把它放在第一位。所有其他规则或多或少都是该规则#1的详细说明。
您已经知道,您将永远无法完成学习。但是大多数人“私下学习”,并且潜伏着。他们消费内容而不创建自己的内容。同样,这很好,但是我们在这里谈论进入前五分之一。您在这里要做的是养成学习精疲力尽的习惯:
- 撰写博客,教程和备忘单。
- 在聚会和会议上发言。
- 在Stackoverflow或Reddit上询问和回答问题。避开 Slack和Discord等有围墙的花园,它们不公开。
- 制作YouTube视频或Twitch流。
- 开始时事通讯。
- 绘制卡通(人们 喜欢 卡通!)。
无论您做什么,都要做自己希望在学习时发现的东西。不要用“拍手”,转发,星号或赞誉来判断结果-只是从3个月前开始对自己说话。除了我,我几乎每天都写一个开发博客。
你猜怎么了?这不是要让您的内容吸引到尽可能多的人。如果可以的话,太好了,成名时记住我。但是迄今为止,试图帮助过去的最大受益者是未来的您。如果其他人受益,那就是锦上添花。
哦,你认为你完成了吗?不要在这里停下来:
- 喜欢编码视频吗?与演讲者/讲师联系,向他们表示感谢,并提出问题。
- 对您使用的库进行公关。
- 制作自己的图书馆,没人会使用。
- 从头克隆您喜欢的东西,看看它们如何工作。
- 讲习班。
- 参加会议并总结您学到的知识。
总会有一个更深的层次。但是,在每一步中:记录您所做的事情和您解决的问题。
该规则下的副标题为:尽力做到正确,但是当您输入错误时不要担心。反复。如果您感到不舒服或像冒名顶替者,那就很好。你在推自己。不要以为您什么都不知道,但是无论如何都要尽力而为,当您不可避免地犯错时,让互联网来纠正您。将您的noobyness戴在袖子上。
人们认为你很烂?好。你同意。请他们详细解释您为什么吮吸。您想要感觉良好还是想要变得更好?没有异议,没有伤害的感觉。然后走开,证明他们错了。当然,如果他们受到虐待,则将其阻止。
我是否提到教学是最好的学习方法?在编码时说话。这可能会让人感到压力很大,我还没做完那么多,但是我最好的技术面试是我最终像我一样讲课,而不是拼命地证明自己。我们是动物,我们被自信吸引,可以闻到绝望。
在某个时候,您将获得一些支持。人们注意到真正的学习者。他们想为您提供帮助。不要告诉他们,但他们只是成为您的导师。这很重要:拿起他们放下的东西。将它们视为提供您要完成的任务。当他们说“有人愿意帮助__ __吗?” 您是第一行中已经举起手的那个孩子。这些是高级工程师,其中一些是技术界最需要的人。如果您帮助他们,他们会与您以一对一的方式相处(ps,总有他们需要帮助的地方)。您不能为此买单。他们将免费教您。大多数人看不到眼前的一切。但不是你。
您问:“有那么多初级开发人员,他们为什么会帮助我?”
因为你在公共场合学习。通过教你,他们教了很多。您放大它们。他们有一件事是他们没有的:初学者的思想。你知道这是怎么工作的吗?
在某些时候,由于您提出的所有建议,人们会开始向您寻求帮助。80%的开发人员是“黑暗”的,他们不写,不讲话或不参与公共技术讨论。但你做了。您必须是专家,对不对?不要告诉他们你不是。尽可能做到最好,并在遇到问题或遇到错误时将其传递给导师。
最终,您的导师用完了,只能自己解决问题。您仍然在投放内容。你知道这是怎么工作的吗?
在公共场合学习。
ps最终,他们也将向您支付您的帮助。比您想象的要多得多。
另外:公开学习的终极技巧(扩展“捡起他们放下的东西”)
另请参见:如何私下学习(并非所有内容都必须公开!)
相关链接
- 这篇文章的谈话版本:https : //www.swyx.io/speaking/learn-in-public-nyc
- 露台11:不要一无所有
- 克里斯Coyier:显示了与持久性和工作在公共
- Cory House:成为一个离群值和学习与生活方式系统的艺术和第七支柱开发商
- 杰夫·阿特伍德(Jeff Atwood):如何停止吮吸而变得很棒
- 肯特·多德斯(Kent C Dodds):意图职业建设
- 帕特里克·奥肖尼斯(Patrick O’Shaughnessy):学习,构建,共享,重复
- LadyBug播客:Blogging 101(尤其是Ali Spittel的Blog Post工作流程)
- 昆西·拉森(Quincy Larson):建立技能,建立声誉,建立网络
- Ali Spittel在被逮捕的DevOps播客上联合发布内容
- 礼物Egwuenu 公开学习
- 火箭科学家如何学习?(从美国宇航局戈达德中学到的知识管理课程)
在某些地方,知识管理是关于创建可以克服人们的知识缺陷的系统。在戈达德(Goddard),似乎真的是要使人们能够分享和反思他们最了解的知识。这是一个微妙的区别,但是我真的很喜欢他们将人们放在这项工作的中心,并且从人们的丰富知识而不是系统中缺乏信息的地方开始。社交媒体具有很大的潜力,但是您需要考虑如何促进人与人之间不同类型的(在线和离线)关系,以便改善他们的思维,进行创新,他们可以快速解决复杂问题,从而增强并加速业务成果。使用社交媒体作为KM工具的一大好处是,您可以同时创建和捕获知识。但是,为了使它真正起作用,人们必须愿意在整个项目生命周期中进行公开协作。由于许多原因,“在公共场所学习”令人恐惧-人们可以找到并坚持使用过时的信息,并且用户在项目的脆弱时期(即,当他们还没有所有答案时)公开自己的知识。但是,在这一部分过程中,学习是最有价值的。如果您在项目中间分享自己的知识和不知道的知识,则可以使人们有机会分享可以帮助您的特定知识。如果可行,这可以节省时间和金钱。为了使它真正起作用,人们必须愿意在整个项目生命周期中进行公开协作。由于许多原因,“在公共场所学习”令人恐惧-人们可以找到并坚持使用过时的信息,并且用户在项目的脆弱时期(即,当他们还没有所有答案时)公开自己的知识。但是,在这一部分过程中,学习是最有价值的。如果您在项目中间分享自己的知识和不知道的知识,则可以使人们有机会分享可以帮助您的特定知识。如果可行,这可以节省时间和金钱。为了使它真正起作用,人们必须愿意在整个项目生命周期中进行公开协作。由于许多原因,“在公共场所学习”令人恐惧-人们可以找到并坚持使用过时的信息,并且用户在项目的脆弱时期(即,当他们还没有所有答案时)公开自己的知识。但是,在这一部分过程中,学习是最有价值的。如果您在项目中间分享自己的知识和不知道的知识,则可以使人们有机会分享可以帮助您的特定知识。如果可行,这可以节省时间和金钱。由于许多原因,“在公共场所学习”令人恐惧-人们可以找到并坚持使用过时的信息,并且用户在项目的脆弱时期(即,当他们还没有所有答案时)公开自己的知识。但是,在这一部分过程中,学习是最有价值的。如果您在项目中间分享自己的知识和不知道的知识,则可以使人们有机会分享可以帮助您的特定知识。如果可行,这可以节省时间和金钱。由于许多原因,“在公共场所学习”令人恐惧-人们可以找到并坚持使用过时的信息,并且用户在项目的脆弱时期(即,当他们还没有所有答案时)公开自己的知识。但是,在这一部分过程中,学习是最有价值的。如果您在项目中间分享自己的知识和不知道的知识,则可以使人们有机会分享可以帮助您的特定知识。如果可行,这可以节省时间和金钱。您使人们有机会分享可以为您提供即时帮助的特定知识。如果可行,这可以节省时间和金钱。您使人们有机会分享可以为您提供即时帮助的特定知识。如果可行,这可以节省时间和金钱。
- 内森·巴里(Nathan Barry)在他的著作《权威》中:
早在2007年,克里斯·科耶尔(Chris Coyier)开设了一个名为css-tricks.com的网站。这是一个专门用来教人们如何编码网站的网站。(CSS是用来描述网站外观的语言。)当CSS-Tricks首次问世时,我记得读过一个教程,并且自负地想:“我已经知道了。” 克里斯和我的技能水平大致相同,所以我没有从他那里学到任何新东西。由于他不断推出新教程,这种情况持续了一段时间。但是随着时间的流逝,当朋友们开始问我CSS问题时,我发现链接到Chris的一篇文章(因为它们写得很好)比自己解释一切都容易。多年后,克里斯发起了一个Kickstarter广告系列,以重新设计他的网站。那些参与的人可以在幕后访问与重新设计有关的其他教程和内容。目标设定为3,500美元,相当低。他很快就超过了目标,并在活动结束时筹集了89,697美元。难以置信。关键是他相对容易地做到了,这都是因为他建立了一个热爱工作的听众。 他和我从同一点开始,我们的技能以大约相同的速度进步。所不同的是,他教书并与他人分享,而我则将自己所学的东西保留给自己。这使得能够在一个新项目中赚取数万美元与不发布任何东西之间有所区别。
内森(Nathan)通常对LIP有很多重复之处:
关于如何在没有训练营的情况下学习编码的10条提示
https://www.freecodecamp.org/news/10-tips-on-how-to-code-without-a-bootcamp/
2017年西雅图。我刚参加软件开发人员的第一份团队会议。为我感到骄傲的一天!
三年前,我学习了如何在不参加训练营或没有计算机科学学位的情况下进行编码。
从那时起,我一直梦想着成为一名全职开发人员。但是,靠我自己学习编码并不容易,我挣扎了,几乎一度放弃。
如果您正在阅读本文,那么您可能会达到我的目标-自我学习,避免参加昂贵的训练营或回到大学获得计算机科学学位。
这是我的最佳技巧,教您如何在没有训练营的情况下进行编码。
创建一个计划并坚持下去
在学习编码时,常见的错误是没有计划。
您在这里和那里学习一些编码教程,构建一个或两个应用程序,并阅读一些有关编码的文章。但是几个月过去了,您不确定下一步要去哪里。你感到迷茫。
你能做什么?
制定计划-详细的路线图,了解如何精确地编码。
要制定计划,请开始问自己这些问题。
你会学什么语言?您对哪种编码感兴趣?您对创建游戏,构建应用或网站最感兴趣吗?您要关注什么领域?
您的主要目标是什么?您为什么要编码的原因是什么?一旦掌握了技能,您将要做什么?您的目标是成为一名开发人员吗?还是建造一些东西?
您将使用哪些学习资源? 在学习编码时,有许多很棒的(而且完全免费)的资源可供选择,这可能会令人不知所措。无论是freeCodeCamp课程还是其他课程,都请选择一个程序并设定目标以完成该课程。
您每周将学习几小时,何时学习?在上大学或学校时,您通常会知道上课或学习的时间是多少,并且要遵守该时间表。为自己制定最适合自己的时间表,这样您就可以保持进度。
在为自己创建路线图之前,我在教自己如何编码时感到困惑。
我不知道该学什么或下一步做什么。一旦有了自己的路线图,就很容易在前进的过程中前进-我知道下一步要采取的行动。
追求好奇心
制定路线图是关键,但请务必保持好奇心。
要学习编码,请找到与编程有关的一件事,这会让您着迷。找到让您足够好奇的东西,以便在周六晚上进行了解-因为您有时需要这样做。
找到一些关于编码的知识,这就是我最喜欢的作家TK Coleman会不负责任地好奇的样子。您知道当您起床晚了要看一场精彩的演出时,或者您对本书接下来会发生什么感到非常好奇时,已经是凌晨2点了,并且您想睁大眼睛,因为您迫不及待地想知道接下来会发生什么?
探索使您充满好奇心并继续追求的编程领域。随着好奇心的流逝,时间流逝,学到的东西将激增。就像读一本好书或您曾经看过的最佳谁做的电影一样,您必须走到尽头。
弄清楚您对什么感到好奇并追逐它。
让自己负责。
参加编码训练营时,如果您没有完成作业,则可能会被踢出并浪费您为注册而支付的钱。
在学校或大学,如果您不完成家庭作业,则可能会失败上课。
在工作中,如果不露面,您有被解雇的风险。
但是,如果您没有完成免费的编码课程,您将面临什么风险?
没有。您对自己没有任何影响。没有人追究您的责任。
因此,找到使自己负责的方法。
这里有一些想法:
创建一个博客,并宣布(或在社交媒体上)每周将在目标进度方面进行博客。
根据您的需要使用正或负钢筋。告诉朋友,如果您没有向他们出示完成项目的证据,您将向他们支付X钱。或者,每次您在实现编码目标方面取得进展,都会给自己带来奖励。
让自己负责。利用自己。
别无选择,只能学习编码。
公开学习
当我第一次学习如何编码时,我读了有关社交媒体如何影响您的生产力的书籍和文章。随后,我决定删除我的Twitter,Instagram和Facebook帐户。
尽管这确实对我有所帮助(我无法再滚动Twitter来摆脱硬编码问题),但我最终意识到使用社交媒体的好处远大于缺点。
当我回到社交媒体上并开始分享成为一名开发人员的过程时,我结识了朋友,找到了导师,获得了工作机会,并加快了学习速度。我还被告知,通过分享我作为自学成才的开发人员的经历,我启发了一些人。
你也可以做到的。
当我发布有关所学知识的博客文章或社交媒体文章时,我得到了朋友的鼓励和反馈。这种交流为我创造了一个很好的积极反馈回路。我想学习更多,以便再次分享自己的成就。
以下是一些我最喜欢的文章和播客访谈,介绍了在公共场所学习的所有好处以及入门方法:
不要害怕Google的一切。
这是我在Brian Holt观看有关Frontend Masters的出色的Web开发入门课程时听到的。许多人认为,如果必须使用Google的产品,他们并不是很好的编码人员。与此相反,正如Brian指出的那样,优秀的程序员一直都需要Google的东西。
在编写代码时不要害怕Google的事情。谷歌搜索找到答案并不会减少您成为程序员的机会。
建立您知道可以完成的项目。
作为一个初学者开始编码项目是艰巨的。该项目看起来如此庞大,您会觉得好像永远无法完成它。您失去了启动项目的动力,您不知道能否完成。
解决方案?
尝试构建有一定信心可以完成的项目。建立可以扩展您技能的项目,但在能否完成项目上要切合实际。看到完成的项目将有助于激发您继续进行编码之旅。
如果你不知道如何启动一个项目还没有,这个文章我写了从教程移动到编码的项目可能会有所帮助。
建立不可能的项目。
那就是。我的一个好朋友曾在一些最大的科技公司工作,他曾告诉我说,他感到自己作为开发人员的大部分成长都来自建立所谓的“不可能”项目。
他会对要构建的东西有一个主意,然后他便着手去做。尽管建立这些想法似乎是不可能的,但他非常激动,以至于他试图找到一种方法。因此,发生了很多学习。
如果您一直在构建和完成项目,请尝试选择您真正梦想构建的项目,即使感觉无法构建。
凭借对这个项目的热情,您也许能够准确地构建自己想要的东西,或者至少在此过程中学到了很多东西。
寻找导师和您的社区
让导师接你的最无效的方法之一是给某人发疯的消息,并问“你愿意成为我的导师吗?”
与您聊天的人可能已经有很多要求成为导师的请求。如果他们是那种在业余时间免费指导某人的人,那么他们可能已经有几名受训者,不能再另当别论了。当您说“您愿意成为我的导师”而没有具体细节,也没有真正的计划时,您就是在通过确定下一步该做什么使导师提前做更多的工作。可以真正帮助您的人可能不会说“是”。
那么如何找到导师呢?
有很棒的平台,例如CodeMentor或Coding Coach。Udacity或Treehouse等计划中也有教练。
您还可以通过提问,讨论您正在学习的知识以及在论坛和诸如StackOverflow之类的地方与他人进行互动来找到导师。
在您周围建立社区可以帮助您在学习编码的过程中获得极大的帮助。这里是一些我最喜欢的在线编码社区:freeCodeCamp。CodeNewbie,开发,Stackoverflow,Reddit。
我还在今年年初启动了CodebookClub,这是一个由经验丰富的开发人员组成的免费社区,他们可以一起学习。我们举办现场在线会议,并提供技术书籍以及教程。
不要亲自处理您的错误。
我经常看到新开发人员编写代码,遇到错误,然后说类似“ U!当然,我遇到了这个错误,我很愚蠢”,或者“我似乎遇到了很多错误,我不确定是否要切入编程领域。”
是的,您写了一个错误-我们都做。您的代码中的错误并不意味着您不会沦为开发人员。我再说一遍:编码时的错误并不意味着您不会成为一名出色的开发人员。它们是编码过程的自然组成部分。
想想您最喜欢的视频游戏。当您几次未通过游戏时,您是否想过“ 也许我不是要成为视频游戏玩家 ”?可能不会!多次失败,然后掌握该级别,然后转到下一个级别。
不要亲自处理您的错误。向他们学习,继续前进。
保持连胜。
当我第一次学习编码时,我休息了一个星期。回到编码时,我觉得我是第一次再次接触到该语言。一旦我在编码方面稍事休息,重新使用它就变得更加困难。
我妈妈建议我开始连胜编码。编码每个。单。天。很多时候,我对代码感到疲倦或无动力,但我不得不继续努力。所以我会编码-即使只是五分钟。因此,即使在我真的不喜欢它的日子里,我仍然朝着自己的目标迈出了一小步。这种动力使我一直走到终点。
保持连胜!
紧跟当前软件工程趋势的12种方法
https://www.freecodecamp.org/news/12-ways-to-keep-up-with-software-engineering-trends/
我经常被问到如何才能跟上软件工程领域的趋势。所以我写这篇文章:
- 作为我将来遇到的任何问题的答案,以及
- 作为备忘单,因为我变老了,而你永远不知道:)
为了将来参考,我将这些主题分为基于时间的类别。这些类别将指示您需要多长时间检查一次资源。
因为-坦白说-与其他人相比,有些人没有多少时间去跟上潮流。像新父母一样,他们的时间比任何人都要少。虽然每天阅读三个小时来磨练您的手艺是一个好主意,但对于许多人来说这并不可行。
因此,让我们开始吧!
每年几次
调查结果
各种学习组织每年进行一次调查并发布结果一次或两次。这些调查以高质量和有趣的方式显示了计算机科学许多领域的趋势。
没有比StackOverflow的调查更好的例子了。还有其他一些播放器,它们可以完成hired.com和packtpub之类的优质工作。
值得深入研究它们并分析他们有趣的数据见解。您可以快速了解这些站点背后的大型社区如何看待这一领域。
12月下旬或1月初的预测帖子
这几乎是陈词滥调:从12月15日到1月30日,您将无法摆脱“ X年前N大软件开发趋势”之类的文章。
这是了解其他人学习和从事的工作的好方法,但我认为他们可能很主观,可能不会吸引所有人。但是每个开发人员都不一样,因此请先尝试一下。
培训机构提供的趋势和最新课程
这不是一个详尽的列表,因此请随时在下面添加其他有趣的资源。我的最爱是:
这些是一些最受欢迎的自学平台,因此它们总是共享新的东西。
每几周一次
思想作品
思想工作的顾问提出了严肃的报告。我喜欢标签“采用”,“试用”,“评估”和“保留”,而不是您可以找到的所有流行词。如果您想坚持一个技巧,就应该这样。
聚会和您的社交/专业圈子
您是否去过聚会上讨论他们过去十年的事情?我也不!
很容易不知所措,所以选择一对,不要错过任何一个话题。
通常,演讲者会谈论他们在工作所在的公司使用的技术。如果您想为公司工作,这将是一个很好的机会,了解该公司的运作方式并获得见解。(当然,也总是有Glassdoor。)。
更不用说您可以认识的人以及所有免费的披萨。
同样,请勿低估您的社交和专业圈子。是的,软件人员聚集在一起……如果您让自己与众不同,那么您可能是例外,而不是规则:)您雄心勃勃的同事在他们的议程中总会有一些新奇而有趣的东西要学习。
因此,请确保您交换想法。您将享受它并从中受益。这意味着您应该始终以具有高质量工程文化的公司为目标。
Google快讯
如果您想专注于一些技术,我发现的最好的被动方式是google alert。
您订阅了自己喜欢的字词,并且当新的重要结果被索引到您字词的google结果中时,就会收到一封电子邮件。
就像有人每天为您搜索几次,例如“ python3 Django”。
GitHub探索
Github的探索和后续页面(例如趋势)可以一眼就指出开发人员正在做什么。
在撰写本文时,最流行的结果是关于区块链,机器学习和Python的。我认为这些结果代表了该领域当前趋势的很大一部分。
Infoq报告
这是另一个很棒的资源。
我将其归类为Thoughtworks,尽管它们对知识的结构不同。
在他们的主页上,他们显示了一些趋势领域。他们的文章很容易是会议演讲或迷你书,更不用说他们不时赠送的一些电子书了。
您可以查看他们的2020年趋势文章,以大致了解您会发现什么。
每周多次
博客平台的摘要
我的最爱,没有特别的顺序,是dev.to,hackernoon.com和freecodecamp.com。
您可以每天访问他们,也可以使用他们的文章摘要功能(通常每周一次)。
当这些平台基于人群信息模型工作时,如果有足够重要的东西,您会发现很多关于它的文章。
Dailynow.co
可悲的是他们只有一个浏览器扩展。每日是基于人气的新闻源。您只需打开浏览器上的新标签,即可轻松发现每日趋势和高质量文章。
从个人经验出发,总是很高兴看到您的文章排在第一位。
Hackernews和程序
我不能让社交新闻之王脱颖而出。人们对这两者有不同的感觉(主要是从行为方面考虑,因为评论的范围可能从侮辱和拖钓到对该主题的严肃看法)。但是,如果尝试,您可以提取价值。
Twitter趋势(或其他社交媒体的趋势)
正如我在之前的一篇文章中所写的那样,社交媒体可能会被妖魔化,但是您需要建立一个很好的圈子并从中受益。
我亲自跟踪发现有有趣作品的任何公司,作者或演讲者。
我建议您专注于Twitter和LinkedIn,因为根据我的经验,它们往往更适合此目的。
时事通讯
我将向任何能向我证明他们从未订阅过技术通讯的活跃开发人员支付10欧元。这些新闻无处不在。
这些新闻通讯的作者为您付出了艰辛的努力,并从趋势中汲取了泡沫。
我最喜欢的是tldr,更好的dev,codeproject和最近添加的Dev每周
结论
感谢您阅读本文。希望您喜欢上面的提示。如果您有其他任何提示,请随时将其放入评论中。阅读愉快!
2020年最佳开发者社区
来自 https://www.freecodecamp.org/news/best-developer-communities-to-be-part-of-in-2020/
从同级编程到共享知识,指导,共享支持,共享工具,代码审查,回答问题以及更多其他功能,开发人员的成长不能过分强调开发人员社区的利益。
社区通常建立在个人在特定区域学习的共同奋斗之上,每个社区的目标因个人的集体需求而异。
多年来,这些开发人员社区在全球范围内成长,具有不同的目标和使命,但总的目的仍然是为开发人员提供一个学习,互动,共享想法,相互支持和成长的平台。
“如果你想快点走,那就一个人走。如果你想走远一点,就一起走。” –非洲谚语
为了更好地帮助那些希望社区加入的人们,我以不分先后的顺序整理了20个最佳社区的清单,范围从工程,设计,数据科学,机器学习,开发人员关系,技术写作等。
如果您发现其他社区对您有所帮助,请在评论部分中分享这些内容,以造福所有人:)。
1. 编程的女性

女性编程组织是一个国际性的非营利组织,为从事技术活动的女性提供一个全球社区,提供活动,编码资源,工作,指导等。他们旨在激励,支持和帮助女性发展技术技能并在职业生涯中脱颖而出。
立即加入,即可独家访问他们的社区,活动,奖学金,免费活动门票,工作委员会等。
2. 哈希节点

Hashnode是一个在线社区,开发人员可以在其中共享知识并发展自己的职业。来自世界各地的开发人员参加了有关Hashnode的后续讨论。您可以编写故事,提出开放性问题以及技术问题,匿名提问和开始民意调查。您还可以向受欢迎的技术团队和开发者影响者提问,或从有关技术领域杰出女性的故事中学习。
Hashnode的Devblog平台使您可以通过几个简单的步骤在自定义域上创建个人博客,其中包括您成长为博客作者所需的一切。(无Paywall,免费域,SSL,帖子自动备份,Markdown,AMP支持等)。拥有自己的规范,使您的内容独立并建立您的域权限。
3. Freecodecamp

freeCodeCamp是一个非营利组织,它通过世界各地成千上万的视频,文章,交互式编码课程以及成千上万的freeCodeCamp学习小组来帮助人们免费学习编码。
您将通过完成编码挑战并与已验证的认证一起构建项目来学习。
4. StackOverflow

Stack Overflow是一个面向程序员的问答网站,在计算机编程中,有关大量主题的问题和答案不计其数。
您可以从已经问过的问题和已回答的问题中学习,通过回答问题来共享您的编程知识或在此处共享您的问题/错误。
5. 黑客新闻

Hacker News是一个专注于计算机科学和企业家精神的社交新闻网站,您可以在其中提交技术内容的链接。
这是一个向广泛的观众推广您的内容并从其他技术怪胎中找到惊人内容的好地方。
6. Hackernoon

Hackernoon是一个技术媒体网站,提供由真正的技术专家撰写的故事和观点,并由技术专家,软件开发人员,比特币爱好者和区块链爱好者阅读。
您可以在此处撰写技术文章,并从各种可用的不受限制的技术内容中学习。
7. SitePoint社区

SitePoint社区是一个供Web设计人员和开发人员讨论HTML,CSS,JavaScript,PHP,Photoshop,SEO等所有Web开发的社区。
与StackOverflow类似,您可以在此处询问和回答所有Web开发问题。
8. Kaggle

Kaggle是一个由数据科学家和机器学习从业人员组成的在线社区,拥有庞大的社区发布数据和代码存储库,其中包含19,000多个公共数据集和200,000个打开的笔记本。Kaggle还提供有关机器学习,熊猫,Python,深度学习,数据可视化,SQL以及竞赛的课程,并提供有助于您成长的讨论。
9. 独立黑客

独立黑客是“建立可以产生收入的在线项目的人”。Indie Hackers是一个由开发人员组成的全球社区,他们在公司和附带项目背后共享他们的项目,策略和收入统计信息。
您可以从数百家成功的在线企业背后的创始人那里学习,并通过全球聚会,讨论,文章等与其他人建立和发展自己的公司联系。
10. 代码新手

代码新手是程序员和学习代码的人的最支持社区。它始于每周一次的Twitter聊天,旨在为学习编码的人们提供急需的支持。从那以后,它已发展成为一个支持性的国际社区,学习编码。
11. 数字海洋社区

在这个包容性的地方,开发人员可以找到或提供支持并为DevOps和云计算爱好者社区做出贡献。该社区提供了全面的指南,教程,面向开发人员的趋势,Q / A会话等。
12. 产品搜寻

Product Hunt是一个令人兴奋的社区,每天都有特色的令人惊叹的产品发布。在这里,喜欢产品的爱好者可以分享和了解最新的移动应用程序,网站,硬件项目和技术创新。
13. Reddit

Reddit是一个由数千个子社区组成的全球社区,它包含无休止的对话和可靠的网络连接,并为t / reactjs,r / vuejs,r / JAMstack_dev,r / Python等开发人员提供无休止的流。
14. DevCareers

DevCareer是一个非营利组织,致力于通过指导和资源为即将到来的开发人员提供支持,以使他们成为世界一流的开发人员。他们为通过该计划的非洲软件开发人员提供了笔记本电脑,共同工作空间,资源,指导和工作安排。
15. 交互设计基金会社区

交互设计基金会社区为设计师提供了一个激动人心的机会,使其可以在准备和完成新的用户体验工作的同时创建和完善其作品集。他们提供了来自UX专家的课程,在世界各地的城市举行的本地UX设计会议,UX讨论,协作等等。
16. 每日用户界面

Daily UI是一系列免费的日常UI设计挑战,设计灵感和惊喜奖励,可让您在100天内成为更好的设计师。他们令人惊叹的每日提醒将激励您继续学习。
17.开发至

DEV是一个相互帮助的软件开发人员社区。DEV为开发人员提供了一个在学习和共享知识的同时进行协作和建立联系的场所。
18. DevRel集体

DevRel Collective是一个开发人员关系爱好者社区,其存在是为了促进在DevRel社区之间共享信息,资源和鼓励。
如果您积极参与开发人员社区,倡导或事件管理,则应加入该社区。
19. Facebook开发者圈

来自Facebook的Developer Circles是一个旨在为开发人员创建本地组织的社区的程序。这些社区教育并提供一个论坛,以围绕特定主题的开发人员最关注的主题进行讨论和知识共享。
20. Google Developers Groups

GDG将具有类似兴趣的软件开发人员召集在一起,通过聚会和动手研讨会来开会。社区欢迎从初学者到经验丰富的专业人员的每一个人和任何人。”
结论
“改变的力量没有比社区发现它关心的更大。” –玛格丽特·惠特利
开发人员社区中的联系已从“技术小组”发展为“家庭小组”,每个人都热衷于共享知识,回馈并帮助每个人达到更高的境界。
这不只是惊人的吗?迎接新时代,共享知识和团结已成为日常工作。??
2020年社团学习的思考
原则:只做和社团成员成长有关的事情。
- 导师机制完善
导师和学员的数据,以及导师对学员情况的跟踪
- 贯穿学期的公开课
每学期的内容都可以变化,两周一次,不同的导师主讲,对社团外部开放。公开课在实验室或者教室开展,线上直播并录下来可以反复看。
- 线上训练营
以Leetcode、FreeCodeCamp、MOOC为内容的在线学习打卡
- 比赛组织
适合社团参与的比赛信息整理,融合到平时的学习。
- 社团项目和经费
在不影响学习前提下,扩展社团成员参与项目,贡献社团经费。经费进行合理的投资,为社团发展提供支持。
- 线上能力加强
建立不依赖于物理场地的线上学习交流社区。吸收外校成员。
MIT: The Missing Semester of Your CS Education
https://missing.csail.mit.edu/
Why we are teaching this class
During a traditional Computer Science education, chances are you will take plenty of classes that teach you advanced topics within CS, everything from Operating Systems to Programming Languages to Machine Learning. But at many institutions there is one essential topic that is rarely covered and is instead left for students to pick up on their own: computing ecosystem literacy.
Over the years, we have helped teach several classes at MIT, and over and over we have seen that many students have limited knowledge of the tools available to them. Computers were built to automate manual tasks, yet students often perform repetitive tasks by hand or fail to take full advantage of powerful tools such as version control and text editors. In the best case, this results in inefficiencies and wasted time; in the worst case, it results in issues like data loss or inability to complete certain tasks.
These topics are not taught as part of the university curriculum: students are never shown how to use these tools, or at least not how to use them efficiently, and thus waste time and effort on tasks that should be simple. The standard CS curriculum is missing critical topics about the computing ecosystem that could make students’ lives significantly easier.
The missing semester of your CS education
To help remedy this, we are running a class that covers all the topics we consider crucial to be an effective computer scientist and programmer. The class is pragmatic and practical, and it provides hands-on introductions to tools and techniques that you can immediately apply in a wide variety of situations you will encounter. The class is being run during MIT’s “Independent Activities Period” in January 2020 — a one-month semester that features shorter student-run classes. While the lectures themselves are only available to MIT students, we will provide all lecture materials along with video recordings of lectures to the public.