给我六个小时砍一棵树,我会用前四个小时磨斧头。(亚伯拉罕·林肯)
面向程序员的全栈资源的集合。
此页面的目标是使你成为更熟练的开发人员。你只会找到我发现真正鼓舞人心的资源,或者已经成为永恒经典的资源。
本页并不全面。我想保持轻松,不要太压倒性。文章的选择是固执己见的。
项目:
随时打开 PR 做出贡献!我不会添加所有内容:如上所述,我想使列表保持简洁。
我发现这些书非常鼓舞人心:
有一些免费书籍可用,包括:
公理列表:
其他资源:
老实说:算法可能是一个非常枯燥的话题。这个 quora 问题列出了一些更有趣的学习替代方案,包括:
实现示例:
一般 REST 内容:
示例指南:
更具体的主题:
冒名顶替综合症被低估了:很多谈话都在讨论克服冒名顶替综合症。我说拥抱自我怀疑,每天怀疑自己。在一个快速发展的行业中,你的很多知识每年都在过期,即使是你周围资历最浅的人也会不断地培养你没有的技能;你可以通过以新手的决心(甚至恐惧)申请来保持竞争力。这台跑步机的好处是每个工程师都在上面:仅仅因为你是一个冒名顶替者并不意味着其他人比你更值得,因为他们也是冒名顶替者。你应该为自己辩护,承担风险,在事情进展顺利时拍拍自己的背,当你开始建立解决问题的记录时,相信你的技能和适应能力。不要搞错了:你只和你解决的最后一个问题一样好。
Dan Heller,在软件领域建立职业生涯
我已经学会了永远不要清空我写作的井,而是总是在井的深处还有东西时停下来,让它在晚上从喂养它的泉水中重新填充。--海明威
偏见不仅适用于招聘。例如,当在完全不同的上下文中批评某人很久以前编写的代码时,基本的归因偏见也适用。
isEachUserLoggedIn
areUsersLoggedIn
isUsersLoggedIn)
isPaidFor
wasPaidFor)
isEnabled
isDisabled)
另请参阅 SQL 部分。
习题:
NoSQL:
libphonenumber
strace
tcpdump)
我强烈建议阅读The Non-Designer's Design Book。这是一本非常短的书,将为你提供一些非常可行的设计建议。
文章:
资源:
以下是好书清单:
关于架构的绝对参考之一是Martin Fowler:查看他的软件架构指南。
文章:
你可以在绘图台上使用橡皮擦或在施工现场使用大锤。(弗兰克·劳埃德·赖特)
资源:
工具
Makefile
关于工具的文章:
查看我的管理资源列表。
另请参阅charlax/python-education中的Python特定部分。
HEALTHCHECK
RUN
COPY
ADD)
COPY
ADD
ENTRYPOINT
CMD
HEALTHCHECK
latest
.dockerignore
**/.git
hadolint)
最苍白的墨水比最强大的记忆更可靠。-- 中国谚语
文章
具体关于 Vim:
查看我的管理资源列表。
最好的学习方法是边做边学。
实践:
O(1/N)
“让我们为一个我们都像今天一样愚蠢的未来做计划。
– 丹·米尔斯坦
验尸大纲示例:
注意:这是关于你作为受访者,而不是作为面试官。要查看我的面试官资源列表,请转到我的工程管理存储库。
另请参阅本文档中的练习部分。
学习如何学习!
关于Zettelkasten和PKM(个人知识管理):
理查德·费曼的学习策略:
大多数人高估了他们在 1 年内能做什么,低估了他们在十年内能做什么。–比尔·盖茨
不过,坦率地说,我认为大多数人能学到的东西比他们想象的要多得多。他们卖空自己而不尝试。一点建议:重要的是要将知识视为语义树 - 确保你理解基本原则,即树干和大树枝,在你进入细节/叶子之前,否则没有什么可以抓住的。— 埃隆·马斯克
“经验是你直到需要它之后才会得到的东西。”
告诉我,我忘记了。教我,我记得。让我参与进来,我就会学习。–本杰明·富兰克林
教育是点燃火焰,而不是装满容器。–苏格拉底
我们坚持做的事情对我们来说变得更容易做;不是事物本身的本质被改变了,而是我们做事的能力增加了。– 拉尔夫·沃尔多·爱默生
一个聪明的人可以从一个愚蠢的问题中学到更多,而不是一个傻瓜可以从一个明智的答案中学到更多。–李小龙
讲座被很好地描述为教师的笔记成为学生的笔记而不经过任何一方的头脑的过程。— 莫蒂默·阿德勒
傻瓜从经验中学习。我更喜欢从别人的经验中学习。— 俾斯麦
<scheme>:<authority><path>?<query>#<fragment>
<scheme>
<path>
mailto:billg@microsoft.com
urn:<namespace identifier>:<namespace specific string>
urn:isbn:9780062301239
“一个有效的复杂系统总是被发现是从一个简单的有效的系统演变而来的。从头开始设计的复杂系统永远无法工作,也无法修补以使其工作。你必须重新开始,从一个工作简单的系统开始。
——约翰·加尔(John Gall),《一般系统滑稽学》(General systemantics),一篇关于系统如何工作的文章,尤其是它们是如何失败的......,1975年(这句话有时被称为“加尔斯定律”)
“软件工程是当你增加时间和其他程序员时编程发生的事情。
——Rob Pike,Go at Google: Language Design in the Service of Software Engineering
你不能把向前看的点连接起来;你只能向后连接它们。所以你必须相信这些点会以某种方式连接在你的未来。你必须相信一些东西——你的直觉、命运、生命、业力等等。这种方法从未让我失望,它改变了我的生活。
— 史蒂夫·乔布斯
我建议学习:
多读一点:
只有两种语言:人们抱怨的语言和没有人使用的语言。
- Bjarne Stroustrup(C++创作者)
对于Python,请随时查看我的专业Python教育存储库。
JavaScript 是一种如此普遍的语言,它几乎是必需的学习。
版本控制:
清单:
功能标志:
生产测试:
开发人员培训:
资源列表:
阅读清单:
博客:
书:
文章:
微服务/拆分整体架构:
注意:本节仅介绍 SRE 作为角色。查看系统架构,了解更多与可靠性相关的内容。
书:
文章:
可靠性是每个客户用户的一个特点。-- 一个身份验证 SRE。
资源:
为什么要测试:
如何测试:
测试金字塔:
端到端测试:
学习 Git、课程和书籍:
备忘单:
更具体的主题:
“做你喜欢的事情,直到你喜欢做”我经常想到@naval的“读你喜欢的,直到你爱读”的评论,这是一个很好的概括。我的经验是,教育一个实干家比激励受过教育的人更容易;在你开始努力之前,你必须相信你能做到。– 约翰·卡马克
如果你想多了,写信。如果你考虑不足,请阅读。– @AlexAndBooks_
网站和RSS提要(我使用Feedly):
安全:
通讯: