写博客 发Chat 如何从业余爱好者自学进阶成专业开发者

本文分享了一位开发者从园艺工人转型为专业Web开发者的经历,总结了从自学编程到获得第一份工作的宝贵经验,包括建立在线形象、分享知识、专注技术和积极解决问题。



几年前,我交替干着园艺工作和餐饮的工作。那时候我刚离开大学,还不知道我这一生到底该干什么。


我有很多想法,但是没有方向。在那段时间里,我开始自学编程。最初是因为喜欢,我认为编程是件很酷的事情,可以只动动脑子写写代码就创造出各种事物。


然后我开始思考人生,认为编程可能成为我的生活。


一开始我并没有这种想法。我没有钱来支付真正的教育。因为没有钱,我已经从大学退学了,如果我进入计算机科学领域,就必须重新开始。我离开学校6年了,还有超过 $50,000 的债务,所以不会有这种想法。


然后我开始思考,我可以自学 Web 开发并达到可以实习的程度。


我最初的计划是到镇上的几家公司自荐,并问他们是否愿意会见我。我想一边在学校学习一边和他们一起工作,这样我就有钱进学校同时还能获得一些经验。


因此我认真的对待 Web 开发这件事情。


我开始建立一个真正的文件袋并把自己的技术记录下来,而不是杂乱无章的做事。


我开始活跃在像 Stack Overflow 这样的地方。


我在 GitHub 上建立了几个实际的应用,虽然并无过人之处,但至少可以表明我会编程。


一家公司不接受我兼职工作。他们并没有说欢迎我在获得学位之后回来,而是直接提供了一份 6 个月试用期的全职的初级程序员的工作。


我欣喜若狂。事实证明我一旦认真起来有目的的进行开发,能自学不少东西。


我可以回答他们的问题,我可以给他们讲解自己创建的初级应用,我还可以解释我的项目是如何进行的。


我在那家公司待了两年半,然后在我居住的城市成为一名真正的 Web 开发者。


以学徒的身份审视自己

让我转变为专业开发者,有很重要的一个部分,就是在之前的公司作为学徒的时候,竭尽所能地学习。


在公司的工作中所学的关于现实的知识是无价的。如何与客户、同事并在一定的内部约束下一起工作,这些都是基本要素。而这些只能在一定的领域中学习。


现在的我可能比刚开始工作的时候知道得更多,但我不会停止以学徒的身份审视自己。要想成为一个伟大的开发者,就要有持续学习的欲望。当我们看到自己掌握了某项技能,那一刻开始我们(关于这项技能)的成长就停止了。


海明威说得好:


人生不就我们都是某项手艺的学徒,没人会成为大师


他说的是写作,但同样适用于开发。


自学和在公司工作的结合让我学到很多(我甚至在写书)。我理解 Web 开发实践,知道如何从业余到专业。这是一条任何人都可以走的路,不管你是否有时间,也不管你能力如何。


举个例子,我曾一次做了两份工作 —— 其中一个需要我凌晨 4 点起床驾驶叉车。


作为一个忙碌的成年人,学习编码需要决心,动力以及顽强的坚持。

从业余爱好者过渡到专业开发者 

下面是一个你可以参考的过程。每个人的成长轨迹都会有所不同,但是你可以采取一些步骤来帮助你更快地走上正确的道路。


1. 相信自己可以做到


每个人都可以自学成为开发者。千万不要认为自学是只有某种类型的人才能做到的,虽然在某种意义上可能这也是对的。你需要自我驱动,激励自己,而不是让这种想法成为付费学习的动机。


社会上很多人会认为有些人生来就有某些特质,而别人没有。这对成长是不利的,也是造成许多人对生活感到不满的原因之一。


如果你一直觉得你要么“拥有”,要么“没有”,就很容易沮丧。


任何人都可以学会自我激励,自学编程。或许是开始一个成功的业务,亦或许是实现长期目标。这和你的出生无关,关乎到的是你的毅力。


如果你能把自己放低一点,坚守住最困难的时刻,你可以做到任何你想做的事情。


当然,所有的事情都存在运气的因素。例如,我主动联系了一个网页开发机构,很幸运,他们恰好在那个时候正在寻找一个开发者,而我恰好满足了他们的需求,我很幸运地得到了这份工作。但是如果我没有对自己的发展方向做出决定,那我绝对不会有这份幸运。


运气确实是一个因素,但是如果你不坚持在某件事情上做到很好,运气可能永远不会找到你。


2. 持续专注于你的技术


我最大的缺点就是容易感到无聊和分心,总想跳入下一个项目。


听起来似乎很自由,能够在任意项目之间弹跳以适应当天的心情,但...


这是一个陷阱!请记住:

成功成为专业开发人员的首要任务是 commit 。持续坚持 commit,直到你完全掌握。这也适用于所有事情。


人们往往强调选择使用哪个框架。但更重要的其实是挑选一个,并坚持下去。等你完全掌握了以后,可以转移和学习新的语言和框架。


此外,重要的是在开发过程中获得的解决问题的技能,以及像真正的开发人员一样思考的能力。


我自学的是 Laravel 编程,雇用我的公司使用的是 CakePHP 。但没关系,他们知道我有切换框架所需的技术和技能。


选择一个方向,盯着它,不管是什么,消除被别的东西分心的可能性。这很不容易,但一旦你学会忽视分心,你会更享受工作。


人们常常容易不开心,因为他们不断再寻找完美的职业生涯。但激情往往来自于你对技术那份不可阻挡的欲望。一旦保持了这种心态,你作为开发人员的能力将会得到升华。


3. 立即采取行动


很多充满激情的开发人员可能会陷入阅读陷阱,而不采取行动。


教程和书籍是非常适合学习基础知识,问题是它们也对开发者灌输了一些信心上的错觉。


你有没有在看完一本编程书后,去自己构建一些东西只是为了验证自己到底知不知道如何去做?如果有,那你肯定明白我在说什么。


这个解决方案很简单,但不容易。


随便做一些什么。做一个解决自己生活中遇到的问题的应用程序,亦或者是解决你身边的人的问题。


做点什么,并把它放出去。让它开源并放在 GitHub 上。你不是为别人做的,而是为了你自己,所以不用担心别人的意见。


刚开始你的代码肯定是丑陋的。我回顾了几个月前写的一些代码,自己看到都想吐。但是,如果没有构建这些东西,就无法学习开发。书是很棒,我也很痴迷想去尽可能的阅读更多,但你必须应用这些知识。


在这过程中你会遇到问题,你会去想办法解决。那很好,这段时间里我们将真正学到更多东西。


4. 建立你的在线形象


一旦你开始去构建一些东西,你将需要建立一个在线的形象。你的 GitHub 帐户将是一个好的开始,这是一个能够安置你正在开展的项目并与世界分享的舞台。


但是如果你想比这更进一步,我建议你建立自己的 portfolio 网站。


这个网站可以做这些事情:


1、作为公共场所把你的能力展示给潜在的雇主

2、一个你可以展示你的工作成果的地方

3、作为你的平台


最后一个非常重要。一旦你开始构建一些东西,你应该马上开始写下来,分享你正在做的工作,并分享给别人你所知道的一切。


这是给潜在雇主展示的最好的方法之一,告诉他们你是谁,你能做什么。这也是一个让你的名字展示在那里的方式,也为自己建立了一个平台。最终可以带来更好的就业机会和通过写书或自由职业者来获得更多收入的可能性。


此外,你的网站应该提供非常具体的目的。


大多数人找工作只是创建在线简历,但你可以做到更多。你的具体目标(职业方向)是什么?那你的网站就应该围绕该目标进行设计和创建。如果你想要在某个项目或某个框架上工作,请把它也放在你的网站上。


我建议你的网站要有 4 大核心区域:


1. 主页

主页是网站的入口。它应该提供一个关于你是谁和你在做什么的一个很简单的概述。并且应该引导人们浏览与他们最相关的地方。

例如,你可以有两个主要按钮。一个引导用户到你写作的部分了解更多关于网页开发的信息,另一个引导至雇用页面,如果有人有兴趣招聘你。


2. 写作

放你的博客和教程的地方。尽可能地在这里多写,不要害怕分享。


3. 关于

详细介绍你是谁,你在做什么,而不是谈论你的个人生活,谈论什么导致你进行网络开发,你的旅程到目前为止,以及你想去哪里。可以提及一些你最喜欢的项目并链接到它们。


4. 雇佣我

你的网站的重要组成部分,如果别人有兴趣招聘你去做开发,那么这里就是他们要去的地方。

确保在推销自己和诚实之间找到适当的平衡。这个页面和“关于”的页面之间可能会有一些重叠,但是这个页面将更具体地说明你的技能。

该页面也应该有联系方式,以便人们可以联系到你。


5. 开始分享你所知道的一切


Nathan Barry 曾讲述了 CSS Tricks 创始人 Chris Coyier 的故事。


在该网站刚开始建立时, Chris 就公开分享了他正在学习的东西,以便其他人可以跟进。现在它已经成为了最大的 Web 开发网站之一。


我想说的是,你不必等到自己成为世界上最伟大的专家,才开始写作和教学。


在网络商业世界中,有一种说法,每个人相对于别人都是一个专家。


令我困扰的是“专家”一词。教导你所知道的事情并不会有什么问题,如果对别人有价值,甚至可以出售这些信息。


但是自称一个专家可能会把事情弄得太过了。所以当你分享你的内容时,还不如诚实一点。


我更愿意在公共场合学习。有很多人刚开始都只是一个公众学习者。他们正在学习一种手艺,并记录他们正在学习的东西。随着学习到的东西越来越多,你就可以建立自己的内容,并在此过程中快速成长。随着时间的推移,你所在的行业中的其他人将开始将你为权威人士。


6. 奔着解决问题的目的去构建


成为专业开发人员最重要的方面之一就是完成一个具体目标的所有事情。


Web 开发商店真正的商业价值不是编码,而是他们正在解决的问题。编码只是他们用来实现这一点的首选工具。


阅读任何营销或文案,他们会告诉你销售的产品的好处,而不是功能。


Web 开发人员应该推销的是应用程序,以显示它们能如何有效地解决客户的问题,然后用具体的数据验证这些观点。客户通常对这种方法的反应更为敏感,而不是开发者所谓的那些尖端技术。


如果你能够展示你的编程技能,以及你能够以解决问题和制定更有意义的应用等具体意图来编写代码,对于雇主来说,你会更具吸引力。


所以,当你与潜在的雇主或客户沟通,以及在为你的网站撰写内容时,请考虑优势与功能。


当然,你也应该提到你的编码熟练程度,虽然大多数人都花时间在这上面。简要介绍一下让潜在的雇主知道你能做什么。


7. 保持学徒心态


你以为掌握所有东西的那一天就是你停止学习的那一天。


采纳终身学徒的心态。总是有更多知识去学习,总是更多的地方需要改进。


这在你职业生涯的早期阶段尤为重要。如果你是兼职或实习,或担任初级开发人员,那么你需要尽可能立即进入学徒心态并尽快成长。


你应该真的要这样做,即使你拥有一位实际的“导师”。


在 Jeff Goins 的 “The Art of Work” 一书中,他谈到了21世纪的师徒关系模式。


回到中世纪,这种关系非常正式。师傅将会接管学徒多年,学徒们将慢慢开始掌握师傅的手艺,直到他们达到了大师的头衔,到此他们就可以收徒了。


这种关系已然发生了变化,但把自己当做学徒已然很重要。主要的区别是,现在你必须密切注意潜在的导师和学习机会,并且你的人生旅程中将会有很多导师。


在网络开发的世界中,我们不断地在互联网上浏览,所以这可以有多种形式。


书籍、教程、课程、论坛和其他形式的学习都是有价值的。然而,我认为,最有价值的学徒形式来自于目前向处于你希望的职位的人的学习。


这就是为什么渴望和愿意学习是如此重要的原因。获得你的第一份开发工作并不是旅程的结束,而是开始。


那就是你真正开始学习和以指数级拓展你的知识的时候。


8. 学会协作


将编码作为爱好还是以编码为生的最大区别之一是学会与人合作。


在整个职业生涯中,你需要与同行、老板、同事、客户、合作伙伴公司以及各种人物进行交互和协作。


学会如何有效地与别人协作是很重要的。


在 Web 开发领域,沟通是关键。当一家公司进来并告诉你他们想要什么,但你并不是很清楚这具体是什么样的样子的时候,这可能在之后会引起很多问题和困扰。


同样,如果你无法与你合作的人沟通,你工作也将异常痛苦,你将无法完成工作。


当你还在学习阶段时,有很多好办法可以做到这一点。


当你开始教授你所知道的一切时,这种情况将会来临。人们会与你互动,有时是负面的,你将学会如何处理这些情况。


我也强烈建议为开源项目做贡献。这样可以让你了解在一个项目上协作的方式,其中不同的人可能会对处理问题的最佳方式有不同的想法。


对开源项目做贡献可能是令人生畏的,但它可能为你的事业发展做出奇迹。


走出去并以此为生

成为一名 Web 开发人员很难。这意味着永无止境地学习和适应新技术的生活。这是职业生涯中不可或缺的技术之一,商务和沟通技巧也是。


这是一条非常值得的道路。你可以做到这些:解决人们的问题,使他们的生活更轻松,同时过上梦幻般的生活。


这里有无数的资源可以帮助您学习编码,其中很多都是完全免费的,但似乎缺乏资源来帮助人们实现到专业开发人员的转变。


我希望这本简短的指南为您提供一个良好的路线图,让您开始成为专业的开发人员。


请记住,除非你采取行动,否则不会发生任何改变。建立一个简单的投资组合网站,通过电子邮件发送给几个潜在的雇主,在媒介上写一些帖子。仅仅是开始做一些事情。


你尝试的次数越多,你做的就越多,你会越快从业余水平进阶到专业水平。


几年前,我交替干着园艺工作和餐饮的工作。那时候我刚离开大学,还不知道我这一生到底该干什么。


我有很多想法,但是没有方向。在那段时间里,我开始自学编程。最初是因为喜欢,我认为编程是件很酷的事情,可以只动动脑子写写代码就创造出各种事物。


然后我开始思考人生,认为编程可能成为我的生活。


一开始我并没有这种想法。我没有钱来支付真正的教育。因为没有钱,我已经从大学退学了,如果我进入计算机科学领域,就必须重新开始。我离开学校6年了,还有超过 $50,000 的债务,所以不会有这种想法。


然后我开始思考,我可以自学 Web 开发并达到可以实习的程度。


我最初的计划是到镇上的几家公司自荐,并问他们是否愿意会见我。我想一边在学校学习一边和他们一起工作,这样我就有钱进学校同时还能获得一些经验。


因此我认真的对待 Web 开发这件事情。


我开始建立一个真正的文件袋并把自己的技术记录下来,而不是杂乱无章的做事。


我开始活跃在像 Stack Overflow 这样的地方。


我在 GitHub 上建立了几个实际的应用,虽然并无过人之处,但至少可以表明我会编程。


一家公司不接受我兼职工作。他们并没有说欢迎我在获得学位之后回来,而是直接提供了一份 6 个月试用期的全职的初级程序员的工作。


我欣喜若狂。事实证明我一旦认真起来有目的的进行开发,能自学不少东西。


我可以回答他们的问题,我可以给他们讲解自己创建的初级应用,我还可以解释我的项目是如何进行的。


我在那家公司待了两年半,然后在我居住的城市成为一名真正的 Web 开发者。


以学徒的身份审视自己

让我转变为专业开发者,有很重要的一个部分,就是在之前的公司作为学徒的时候,竭尽所能地学习。


在公司的工作中所学的关于现实的知识是无价的。如何与客户、同事并在一定的内部约束下一起工作,这些都是基本要素。而这些只能在一定的领域中学习。


现在的我可能比刚开始工作的时候知道得更多,但我不会停止以学徒的身份审视自己。要想成为一个伟大的开发者,就要有持续学习的欲望。当我们看到自己掌握了某项技能,那一刻开始我们(关于这项技能)的成长就停止了。


海明威说得好:


人生不就我们都是某项手艺的学徒,没人会成为大师


他说的是写作,但同样适用于开发。


自学和在公司工作的结合让我学到很多(我甚至在写书)。我理解 Web 开发实践,知道如何从业余到专业。这是一条任何人都可以走的路,不管你是否有时间,也不管你能力如何。


举个例子,我曾一次做了两份工作 —— 其中一个需要我凌晨 4 点起床驾驶叉车。


作为一个忙碌的成年人,学习编码需要决心,动力以及顽强的坚持。

从业余爱好者过渡到专业开发者 

下面是一个你可以参考的过程。每个人的成长轨迹都会有所不同,但是你可以采取一些步骤来帮助你更快地走上正确的道路。


1. 相信自己可以做到


每个人都可以自学成为开发者。千万不要认为自学是只有某种类型的人才能做到的,虽然在某种意义上可能这也是对的。你需要自我驱动,激励自己,而不是让这种想法成为付费学习的动机。


社会上很多人会认为有些人生来就有某些特质,而别人没有。这对成长是不利的,也是造成许多人对生活感到不满的原因之一。


如果你一直觉得你要么“拥有”,要么“没有”,就很容易沮丧。


任何人都可以学会自我激励,自学编程。或许是开始一个成功的业务,亦或许是实现长期目标。这和你的出生无关,关乎到的是你的毅力。


如果你能把自己放低一点,坚守住最困难的时刻,你可以做到任何你想做的事情。


当然,所有的事情都存在运气的因素。例如,我主动联系了一个网页开发机构,很幸运,他们恰好在那个时候正在寻找一个开发者,而我恰好满足了他们的需求,我很幸运地得到了这份工作。但是如果我没有对自己的发展方向做出决定,那我绝对不会有这份幸运。


运气确实是一个因素,但是如果你不坚持在某件事情上做到很好,运气可能永远不会找到你。


2. 持续专注于你的技术


我最大的缺点就是容易感到无聊和分心,总想跳入下一个项目。


听起来似乎很自由,能够在任意项目之间弹跳以适应当天的心情,但...


这是一个陷阱!请记住:

成功成为专业开发人员的首要任务是 commit 。持续坚持 commit,直到你完全掌握。这也适用于所有事情。


人们往往强调选择使用哪个框架。但更重要的其实是挑选一个,并坚持下去。等你完全掌握了以后,可以转移和学习新的语言和框架。


此外,重要的是在开发过程中获得的解决问题的技能,以及像真正的开发人员一样思考的能力。


我自学的是 Laravel 编程,雇用我的公司使用的是 CakePHP 。但没关系,他们知道我有切换框架所需的技术和技能。


选择一个方向,盯着它,不管是什么,消除被别的东西分心的可能性。这很不容易,但一旦你学会忽视分心,你会更享受工作。


人们常常容易不开心,因为他们不断再寻找完美的职业生涯。但激情往往来自于你对技术那份不可阻挡的欲望。一旦保持了这种心态,你作为开发人员的能力将会得到升华。


3. 立即采取行动


很多充满激情的开发人员可能会陷入阅读陷阱,而不采取行动。


教程和书籍是非常适合学习基础知识,问题是它们也对开发者灌输了一些信心上的错觉。


你有没有在看完一本编程书后,去自己构建一些东西只是为了验证自己到底知不知道如何去做?如果有,那你肯定明白我在说什么。


这个解决方案很简单,但不容易。


随便做一些什么。做一个解决自己生活中遇到的问题的应用程序,亦或者是解决你身边的人的问题。


做点什么,并把它放出去。让它开源并放在 GitHub 上。你不是为别人做的,而是为了你自己,所以不用担心别人的意见。


刚开始你的代码肯定是丑陋的。我回顾了几个月前写的一些代码,自己看到都想吐。但是,如果没有构建这些东西,就无法学习开发。书是很棒,我也很痴迷想去尽可能的阅读更多,但你必须应用这些知识。


在这过程中你会遇到问题,你会去想办法解决。那很好,这段时间里我们将真正学到更多东西。


4. 建立你的在线形象


一旦你开始去构建一些东西,你将需要建立一个在线的形象。你的 GitHub 帐户将是一个好的开始,这是一个能够安置你正在开展的项目并与世界分享的舞台。


但是如果你想比这更进一步,我建议你建立自己的 portfolio 网站。


这个网站可以做这些事情:


1、作为公共场所把你的能力展示给潜在的雇主

2、一个你可以展示你的工作成果的地方

3、作为你的平台


最后一个非常重要。一旦你开始构建一些东西,你应该马上开始写下来,分享你正在做的工作,并分享给别人你所知道的一切。


这是给潜在雇主展示的最好的方法之一,告诉他们你是谁,你能做什么。这也是一个让你的名字展示在那里的方式,也为自己建立了一个平台。最终可以带来更好的就业机会和通过写书或自由职业者来获得更多收入的可能性。


此外,你的网站应该提供非常具体的目的。


大多数人找工作只是创建在线简历,但你可以做到更多。你的具体目标(职业方向)是什么?那你的网站就应该围绕该目标进行设计和创建。如果你想要在某个项目或某个框架上工作,请把它也放在你的网站上。


我建议你的网站要有 4 大核心区域:


1. 主页

主页是网站的入口。它应该提供一个关于你是谁和你在做什么的一个很简单的概述。并且应该引导人们浏览与他们最相关的地方。

例如,你可以有两个主要按钮。一个引导用户到你写作的部分了解更多关于网页开发的信息,另一个引导至雇用页面,如果有人有兴趣招聘你。


2. 写作

放你的博客和教程的地方。尽可能地在这里多写,不要害怕分享。


3. 关于

详细介绍你是谁,你在做什么,而不是谈论你的个人生活,谈论什么导致你进行网络开发,你的旅程到目前为止,以及你想去哪里。可以提及一些你最喜欢的项目并链接到它们。


4. 雇佣我

你的网站的重要组成部分,如果别人有兴趣招聘你去做开发,那么这里就是他们要去的地方。

确保在推销自己和诚实之间找到适当的平衡。这个页面和“关于”的页面之间可能会有一些重叠,但是这个页面将更具体地说明你的技能。

该页面也应该有联系方式,以便人们可以联系到你。


5. 开始分享你所知道的一切


Nathan Barry 曾讲述了 CSS Tricks 创始人 Chris Coyier 的故事。


在该网站刚开始建立时, Chris 就公开分享了他正在学习的东西,以便其他人可以跟进。现在它已经成为了最大的 Web 开发网站之一。


我想说的是,你不必等到自己成为世界上最伟大的专家,才开始写作和教学。


在网络商业世界中,有一种说法,每个人相对于别人都是一个专家。


令我困扰的是“专家”一词。教导你所知道的事情并不会有什么问题,如果对别人有价值,甚至可以出售这些信息。


但是自称一个专家可能会把事情弄得太过了。所以当你分享你的内容时,还不如诚实一点。


我更愿意在公共场合学习。有很多人刚开始都只是一个公众学习者。他们正在学习一种手艺,并记录他们正在学习的东西。随着学习到的东西越来越多,你就可以建立自己的内容,并在此过程中快速成长。随着时间的推移,你所在的行业中的其他人将开始将你为权威人士。


6. 奔着解决问题的目的去构建


成为专业开发人员最重要的方面之一就是完成一个具体目标的所有事情。


Web 开发商店真正的商业价值不是编码,而是他们正在解决的问题。编码只是他们用来实现这一点的首选工具。


阅读任何营销或文案,他们会告诉你销售的产品的好处,而不是功能。


Web 开发人员应该推销的是应用程序,以显示它们能如何有效地解决客户的问题,然后用具体的数据验证这些观点。客户通常对这种方法的反应更为敏感,而不是开发者所谓的那些尖端技术。


如果你能够展示你的编程技能,以及你能够以解决问题和制定更有意义的应用等具体意图来编写代码,对于雇主来说,你会更具吸引力。


所以,当你与潜在的雇主或客户沟通,以及在为你的网站撰写内容时,请考虑优势与功能。


当然,你也应该提到你的编码熟练程度,虽然大多数人都花时间在这上面。简要介绍一下让潜在的雇主知道你能做什么。


7. 保持学徒心态


你以为掌握所有东西的那一天就是你停止学习的那一天。


采纳终身学徒的心态。总是有更多知识去学习,总是更多的地方需要改进。


这在你职业生涯的早期阶段尤为重要。如果你是兼职或实习,或担任初级开发人员,那么你需要尽可能立即进入学徒心态并尽快成长。


你应该真的要这样做,即使你拥有一位实际的“导师”。


在 Jeff Goins 的 “The Art of Work” 一书中,他谈到了21世纪的师徒关系模式。


回到中世纪,这种关系非常正式。师傅将会接管学徒多年,学徒们将慢慢开始掌握师傅的手艺,直到他们达到了大师的头衔,到此他们就可以收徒了。


这种关系已然发生了变化,但把自己当做学徒已然很重要。主要的区别是,现在你必须密切注意潜在的导师和学习机会,并且你的人生旅程中将会有很多导师。


在网络开发的世界中,我们不断地在互联网上浏览,所以这可以有多种形式。


书籍、教程、课程、论坛和其他形式的学习都是有价值的。然而,我认为,最有价值的学徒形式来自于目前向处于你希望的职位的人的学习。


这就是为什么渴望和愿意学习是如此重要的原因。获得你的第一份开发工作并不是旅程的结束,而是开始。


那就是你真正开始学习和以指数级拓展你的知识的时候。


8. 学会协作


将编码作为爱好还是以编码为生的最大区别之一是学会与人合作。


在整个职业生涯中,你需要与同行、老板、同事、客户、合作伙伴公司以及各种人物进行交互和协作。


学会如何有效地与别人协作是很重要的。


在 Web 开发领域,沟通是关键。当一家公司进来并告诉你他们想要什么,但你并不是很清楚这具体是什么样的样子的时候,这可能在之后会引起很多问题和困扰。


同样,如果你无法与你合作的人沟通,你工作也将异常痛苦,你将无法完成工作。


当你还在学习阶段时,有很多好办法可以做到这一点。


当你开始教授你所知道的一切时,这种情况将会来临。人们会与你互动,有时是负面的,你将学会如何处理这些情况。


我也强烈建议为开源项目做贡献。这样可以让你了解在一个项目上协作的方式,其中不同的人可能会对处理问题的最佳方式有不同的想法。


对开源项目做贡献可能是令人生畏的,但它可能为你的事业发展做出奇迹。


走出去并以此为生

成为一名 Web 开发人员很难。这意味着永无止境地学习和适应新技术的生活。这是职业生涯中不可或缺的技术之一,商务和沟通技巧也是。


这是一条非常值得的道路。你可以做到这些:解决人们的问题,使他们的生活更轻松,同时过上梦幻般的生活。


这里有无数的资源可以帮助您学习编码,其中很多都是完全免费的,但似乎缺乏资源来帮助人们实现到专业开发人员的转变。


我希望这本简短的指南为您提供一个良好的路线图,让您开始成为专业的开发人员。


请记住,除非你采取行动,否则不会发生任何改变。建立一个简单的投资组合网站,通过电子邮件发送给几个潜在的雇主,在媒介上写一些帖子。仅仅是开始做一些事情。


你尝试的次数越多,你做的就越多,你会越快从业余水平进阶到专业水平。

内容概要:本文出自罗兰贝格关于工业4.0现状的报告,系统分析了制造业在数字化转型过程中的实际进展挑战。报告指出,尽管“工业4.0”概念提出已逾十年,但多数企业仍未实现预期的智能化、自组织生产目标,主要受限于技术复杂性、组织孤岛、投资回报周期长及人才短缺等问题。通过对领先制造企业的研究,报告提炼出三大功要素:一是制定基于现实的工业4.0愿景全面战略,明确用例优先级;二是建立“中心辐射式”组织架构,设立专职数字化制造部门,推动跨职能协作规模化落地;三是构建统一的IT/OT目标架构,强化数据生态系统互操作性。报告特别强调,高价值用例如预测性维护、实时参数优化、视觉检测等已在汽车半导体行业显现显著效,企业应聚焦可量化回报的场景,结合资源现实,分阶段推进转型。; 适合人群:制造业企业管理者、数字化转型负责人、工业互联网从业者及政策制定者; 使用场景及目标:①帮助企业评估自身工业4.0熟度并制定务实展战略;②为制造企业设计组织架构IT/OT技术路线图提供参考;③指导资源优先配置于高价值数字化用例,提升投资回报率; 阅读建议:建议结合企业实际生产场景阅读,重点关注“中心辐射式”运营模式六大高价值用例的适用性分析,同时参考报告中的汽车行业案例,因地制宜地规划数字化路径。
内容概要:本文围绕基于蚁狮优化算法(ALO)在复杂三维动态环境下求解多无人机动态避障路径规划问题展开研究,并提供了完整的Matlab代码实现。该研究旨在解决多无人机系统在存在障碍物和动态变化环境中的高效、安全路径规划挑战,通过引入ALO算法优化飞行轨迹,有效规避障碍并实现路径最优。研究不仅关注算法层面的实现,还涵盖了目标函数设计、约束条件处理、环境建模等关键技术环节,确保路径规划结果兼具可行性鲁棒性。此外,文档附带丰富的相关科研资源,涵盖路径规划、智能优化算法、机器学习、电力系统等多个领域,为后续拓展研究提供坚实支撑。; 适合人群:具备一定编程基础,熟悉Matlab工具,从事无人机路径规划、智能优化算法或智能系统研究的科研人员及研究生。; 使用场景及目标:①研究复杂三维动态环境下多无人机的协同避障路径规划问题;②掌握蚁狮优化算法(ALO)在路径规划中的应用实现机制;③为智能交通、无人系统控制、自动化调度等相关课题提供算法参考代码支持; 阅读建议:建议结合Matlab代码深入理解ALO算法的具体实现流程,重点关注目标函数构建、动态障碍建模避障策略设计等关键模块,同时可参照文中提及的其他智能优化算法(如PSO、GWO等)进行对比实验,进一步提升算法性能分析工程应用能力。
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 Git在全球范围内被公认为最为流行的分布式版本控制系统,其在软件开行业中占据着不可或缺的地位。Git-2.21.0-64-bit 以及 TortoiseGit-2.8.0.0-64bit 是两款专门为Windows操作系统设计的Git相关软件。Git-2.21.0-64-bit 代表了Git的命令行版本,而TortoiseGit则是一个图形化界面工具,它为用户呈现了一种更为直观的操作体验。 Git的主要优势体现在其分布式架构上。每一个通过Git克隆得到的仓库都是一个自给自足的、完整的文件库,其中包含了所有的历史版本记录以及修订追踪详情。因此,即便在缺乏网络连接的环境下,开发者依然能够在本地执行版本控制任务,例如进行提交、切换分支以及合并代码等操作。这种架构设计显著提升了开效率,特别是在处理大型项目或进行团队协作时更为明显。 Git的分支管理功能是其另一项突出的能力。开发者借助简单的指令即可迅速完分支的创建、切换和合并,这一特性对于并行开、试验新功能或解决bug等问题提供了极大的便利。例如,开发者可以开辟一个新分支来实施新功能,在开后将其整合回主分支,而不会对其他团队员的工作造干扰。 TortoiseGit是Git的一个补充工具,它将Git的操作指令无缝嵌入到Windows资源管理器中,使得Git的使用体验类似于常规的文件管理操作。TortoiseGit-2.8.0.0-64bit.msi 文件正是这个图形化界面的安装包,它提供了右键菜单的快捷方式,让用户能够更加便捷地进行版本控制活动。此同时,TortoiseGit-LanguagePack-2.8.0.0...
内容概要:本文系统阐述了物理信息神经网络(PINNs)在求解布洛赫-托雷(Bloch-Torrey)方程中的具体应用,结合PyTorch框架提供了完整的Python代码实现案例。通过将物理定律作为先验知识嵌入神经网络的损失函数中,PINNs能够在缺乏大量标注数据的条件下,高效求解描述磁共振像中自旋粒子扩散行为的偏微分方程。文章详细剖析了网络架构设计、物理约束的数学表达、边界初始条件的处理方法以及模型的训练优化流程,充分展现了PINNs在科学计算工程仿真领域的强大潜力独特优势。; 适合人群:具备深度学习基础、偏微分方程知识,以及Python编程能力,从事计算物理学、医学影像、生物医学工程或科学机器学习等相关领域的研究人员、高校研究生及工程师。; 使用场景及目标:① 掌握利用PINNs求解复杂物理系统的基本方法技术路线;② 学习如何将物理守恒律、本构关系等先验知识有效融入神经网络模型以提升泛化能力和求解精度;③ 应用于磁共振像(MRI)的微结构建模、扩散过程仿真及其他涉及偏微分方程求解的科学研究工程问题。; 阅读建议:建议读者结合所提供的代码进行动手实践,重点理解物理残差项在损失函数中的构建逻辑及其对训练过程的影响,并尝试将该方法迁移至其他类型的偏微分方程(如热传导方程、Navier-Stokes方程等),以深入掌握PINNs的核心思想工程实现技巧。
源码下载地址: https://pan.quark.cn/s/5eea35613168 依据所提供的文档资料,我们可以对RTL8211芯片及其关联的电路设计理念技术核心进行细致的研究。RTL8211是由Realtek公司研的网络物理层(PHY)部件,主要应用于以太网端口,能够支持10/100Mbps的数据传输速率。接下来将详尽阐释文档中的核心要点。 ### RTL8211概述 RTL8211系列芯片是Realtek为以太网应用而设计的具备高性能的PHY解决方案。该系列芯片支持多种接口规范,涵盖RMII(Reduced Media Independent Interface)、MII(Media Independent Interface)等,并且能够适配不同的连接器类型,例如UTP(Unshielded Twisted Pair)或光纤接口。 ### 文件标题描述解析 文件标题和描述均标注为“RTL8211 原理图 PDF版”,这表明该文档是一份PDF格式的原理图,主要包含了RTL8211芯片的内部构造、外部接口以及相关电路的设计详情。 ### 标签解读 标签“RTL8211”进一步证实了文档的主题是围绕该型号芯片展开的。 ### 部分内容解析 在文档的部分内容中,我们观察到了一系列数字字母的组合,这些符号代表了原理图中的引脚编号、信号名称以及电路模块等信息。通过分析这部分内容,可以归纳出以下关键知识点: #### 引脚功能说明 - **ENREG/RXER_N**: 负责注册使能和接收错误中断信号。 - **RXD2_N、RXD0_N、TXD1、TX_CTL、TXD3、RXD3_N、TXD0、RX_CTL_N、TXD2、RX_CLK_N、RXD1_N*...
内容概要:本文详细介绍了基于并行物理信息神经网络(PINNs)对NLS–MB方程中孤子演化过程进行高精度预测的Python代码实现,依托PyTorch框架完数值求解。该方法通过将非线性薛定谔型物理系统的控制方程嵌入神经网络训练过程,利用自动微分技术确保模型输出严格满足偏微分方程的物理约束,有效解决了传统数值方法在复杂系统中计算本高、泛化能力弱的问题。文章系统阐述了并行PINNs的模型架构设计、多尺度损失函数构造策略、数据-物理混合驱动的训练流程以及GPU并行加速机制,突出了其在少样本甚至无标签条件下实现物理系统精准建模的优势。; 适合人群:具备深度学习、偏微分方程及科学计算基础,从事物理建模、人工智能交叉学科研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究非线性色散波系统如孤子动力学的高效数值求解方法;②探索物理规律深度神经网络融合的科学人工智能(SciAI)范式;③掌握PINNs中物理损失项的设计原理实现技巧;④构建高性能并行化物理驱动模型,用于复杂系统的预测、反演优化。; 阅读建议:建议读者结合提供的代码动手实践,深入理解物理约束项在损失函数中的权重配置收敛行为的关系,并尝试将其迁移至其他偏微分方程系统(如KdV、Burgers方程等),同时可通过调整网络深度、激活函数或引入自适应采样策略进一步提升模型精度训练效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值