助力求职
阅读不过是给大脑提供知识材料,只有经过思考,这些知识才有可能变为自己的思想。——洛克

| 技术岗位 | ||
|---|---|---|
| 类型 | 序号 | 名称 |
| 推荐书籍 | [0] | 《编程原则( understanding software)》 |
| [1] | 《架构整洁之道》 | |
| [2] | 《重构:改善既有代码的设计》 | |
| [3] | 《编写可读代码的艺术》 | |
| [4] | 《代码大全》 | |
| [5] | 《程序员修炼之道:通向务实的最高境界》 | |
| [6] | 《Software Engineering at Google》 | |
| [7] | 《SRE:Google运维解密》 | |
| [8] | 《google软件测试之道》 | |
| [9] | 《unix编程艺术》 | |
| [2-4] 都是细节丰富,可以选择一本读完,然后再读后面推荐的。 | ||
| 其他资料 | [0] | state of devops 2019 |
| [1] | “从群众来,到群众中去” | |
| [2] | 实践论 | |
| [3] | Google Golang Code Review Comments |

| 产品岗位 | |||
|---|---|---|---|
| 类型 | 推荐书单 | 类型 | 推荐书单 |
| 业务经验 | 创业维艰 | 技术理解 | 给产品经理讲技术 |
| 创新者的窘境 | 用户体验 | 用户画像 | |
| 启示录 | 设计心理学 | ||
| 奈飞文化手册 | 从零开始学设计 | ||
| HBO的内容战略 | 用户体验度量 | ||
| 俞军产品方法论 | 设计方法与策略 | ||
| 点石成金 | 用户体验草图设计 | ||
| 上瘾 | 交互系统新概念设计 | ||
| 原则 | 用户体验要素 | ||
| 重来 | About Face 4:交互设计精髓 | ||
| 刷新 | 简约至上 | ||
| 小群效应 | 数据分析 | 数据分析思维:分析方法和业务知识 | |
| 订阅:数字时代的变现路径 | 精益数据分析 | ||
| 思维方式 | 六顶思考帽 | SQL必知必会 | |
| 人类社会 | 叙事经济学 | A-B测试:创新始于试验 | |
| 乌合之众 | 硅谷增长黑客实战笔记 | ||
| 社交天性 | |||
| 自私的基因 | |||
| 动机与人格 | |||
| 发现社会 | |||
| 人类简史 | |||
| 裸猿 |



| 其他书单 | ||
|---|---|---|
| 书名 | 作者 | 推荐语 |
| 统计学习方法 | 李航 | 李航老师的《统计学习方法》相当基础且重要! |
| 发现社会 | StephenCurri | 虽然是个内容运营,在产品书单里惊奇发现自己专业入门书《发现社会》 |
| 没想到社会学的书成了产品书单,顿时觉得自己的专业不愧涉猎广泛万金油😆 | ||
| 书中梳理了社会学经典大家的经典理论,充满了哲学、政治学、社会学的探讨。 | ||
| 许多理论看似出现在几百年前,但同样适用于百年后的今天,依然充满借鉴之处。 | ||
| 相信本书对社会的洞察也能为产品形态的设计带来启发。 | ||
| 安卓进阶解密 | 三本书从0基础到高级进阶涵盖了安卓开发的绝大多数知识点,作为安卓开发工程师,这三本书是必修课 | |
| 安卓第一行代码 | 安卓进阶之光,导师推荐的,真的是安卓0基础入门,小白之光 | |
| 乌合之众 | 古斯塔夫·勒庞 | 它更像是一本教科书,学了并能应用对未来的人际交往和面对群众时会有很大帮助。但如果不是对心理学感兴趣,它真的很难读下去。 |
| 从日常生活角度,如果你问我读了之后有何收获,我可能还真要好好想想,然后告诉你有收获,但具体是什么我好像又说不上来,但面对大众的观点时,我会三思而后行,尽量避免人云亦云。 | ||
| 从产品角度,这本书分析了“群体的感情和道德观”,“群体的观念、推理与想象力”,“群体的意见”,“群体领袖”等,深入透视了社会服从和过度服从、趣味单一、群众的反叛、大众文化、受别人支配的自我、群众户外、人的自我异化、官僚化过程、以及无意识在社会行为中的作用。 在这本书中,个人和群体的思维关系被放大研究。在勒庞看来,群体的产品不管性质如何,与孤立的个人的产品相比,总是品质低劣的。在现在这个信息高速发达的时代,我们应警惕自身,认识自己,保持自己的人格,做一个清醒的自由人,尤其是在群体更要凸显。在不危及社会利益的情况下,平衡自己与群体的关系。 |
留言、收藏、点赞送PDF
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
vector<int> reverseBookList(ListNode* head) {
recur(head);
return res;
}
private:
vector<int> res;
void recur(ListNode* cur) {
if (cur == nullptr) return ; // 终止条件
recur(cur->next); // 递归后继节点
res.push_back(cur->val);
}
};作者:PVQ
链接:https://leetcode.cn/circle/discuss/U63Kqs/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。