What makes a good life? Lessons from the longest study on happiness - Robert Waldinger - TEDx talk - Transcript

00:00
What keeps us healthy and happy as we go through life? If you were going to invest now in your future best self, where would you put your time and your energy? There was a recent survey of millennials asking them what their most important life goals were, and over 80 percent said that a major life goal for them was to get rich. And another 50 percent of those same young adults said that another major life goal was to become famous.

00:38
(Laughter)

00:40
And we’re constantly told to lean in to work, to push harder and achieve more. We’re given the impression that these are the things that we need to go after in order to have a good life. Pictures of entire lives, of the choices that people make and how those choices work out for them, those pictures are almost impossible to get. Most of what we know about human life we know from asking people to remember the past, and as we know, hindsight is anything but 20/20. We forget vast amounts of what happens to us in life, and sometimes memory is downright creative.

01:24
But what if we could watch entire lives as they unfold through time? What if we could study people from the time that they were teenagers all the way into old age to see what really keeps people happy and healthy?

01:43
We did that. The Harvard Study of Adult Development may be the longest study of adult life that’s ever been done. For 75 years, we’ve tracked the lives of 724 men, year after year, asking about their work, their home lives, their health, and of course asking all along the way without knowing how their life stories were going to turn out.

02:13
Studies like this are exceedingly rare. Almost all projects of this kind fall apart within a decade because too many people drop out of the study, or funding for the research dries up, or the researchers get distracted, or they die, and nobody moves the ball further down the field. But through a combination of luck and the persistence of several generations of researchers, this study has survived. About 60 of our original 724 men are still alive, still participating in the study, most of them in their 90s. And we are now beginning to study the more than 2,000 children of these men. And I’m the fourth director of the study.

03:03
Since 1938, we’ve tracked the lives of two groups of men. The first group started in the study when they were sophomores at Harvard College. They all finished college during World War II, and then most went off to serve in the war. And the second group that we’ve followed was a group of boys from Boston’s poorest neighborhoods, boys who were chosen for the study specifically because they were from some of the most troubled and disadvantaged families in the Boston of the 1930s. Most lived in tenements, many without hot and cold running water.

03:42
When they entered the study, all of these teenagers were interviewed. They were given medical exams. We went to their homes and we interviewed their parents. And then these teenagers grew up into adults who entered all walks of life. They became factory workers and lawyers and bricklayers and doctors, one President of the United States. Some developed alcoholism. A few developed schizophrenia. Some climbed the social ladder from the bottom all the way to the very top, and some made that journey in the opposite direction.

04:23
The founders of this study would never in their wildest dreams have imagined that I would be standing here today, 75 years later, telling you that the study still continues. Every two years, our patient and dedicated research staff calls up our men and asks them if we can send them yet one more set of questions about their lives.

04:48
Many of the inner city Boston men ask us, “Why do you keep wanting to study me? My life just isn’t that interesting.” The Harvard men never ask that question.

04:59
(Laughter)

05:08
To get the clearest picture of these lives, we don’t just send them questionnaires. We interview them in their living rooms. We get their medical records from their doctors. We draw their blood, we scan their brains, we talk to their children. We videotape them talking with their wives about their deepest concerns. And when, about a decade ago, we finally asked the wives if they would join us as members of the study, many of the women said, “You know, it’s about time.”

05:38
(Laughter)

05:39
So what have we learned? What are the lessons that come from the tens of thousands of pages of information that we’ve generated on these lives? Well, the lessons aren’t about wealth or fame or working harder and harder. The clearest message that we get from this 75-year study is this: Good relationships keep us happier and healthier. Period.

06:11
We’ve learned three big lessons about relationships. The first is that social connections are really good for us, and that loneliness kills. It turns out that people who are more socially connected to family, to friends, to community, are happier, they’re physically healthier, and they live longer than people who are less well connected. And the experience of loneliness turns out to be toxic. People who are more isolated than they want to be from others find that they are less happy, their health declines earlier in midlife, their brain functioning declines sooner and they live shorter lives than people who are not lonely. And the sad fact is that at any given time, more than one in five Americans will report that they’re lonely.

07:07
And we know that you can be lonely in a crowd and you can be lonely in a marriage, so the second big lesson that we learned is that it’s not just the number of friends you have, and it’s not whether or not you’re in a committed relationship, but it’s the quality of your close relationships that matters. It turns out that living in the midst of conflict is really bad for our health. High-conflict marriages, for example, without much affection, turn out to be very bad for our health, perhaps worse than getting divorced. And living in the midst of good, warm relationships is protective.

07:45
Once we had followed our men all the way into their 80s, we wanted to look back at them at midlife and to see if we could predict who was going to grow into a happy, healthy octogenarian and who wasn’t. And when we gathered together everything we knew about them at age 50, it wasn’t their middle age cholesterol levels that predicted how they were going to grow old. It was how satisfied they were in their relationships. The people who were the most satisfied in their relationships at age 50 were the healthiest at age 80. And good, close relationships seem to buffer us from some of the slings and arrows of getting old. Our most happily partnered men and women reported, in their 80s, that on the days when they had more physical pain, their mood stayed just as happy. But the people who were in unhappy relationships, on the days when they reported more physical pain, it was magnified by more emotional pain.

08:52
And the third big lesson that we learned about relationships and our health is that good relationships don’t just protect our bodies, they protect our brains. It turns out that being in a securely attached relationship to another person in your 80s is protective, that the people who are in relationships where they really feel they can count on the other person in times of need, those people’s memories stay sharper longer. And the people in relationships where they feel they really can’t count on the other one, those are the people who experience earlier memory decline. And those good relationships, they don’t have to be smooth all the time. Some of our octogenarian couples could bicker with each other day in and day out, but as long as they felt that they could really count on the other when the going got tough, those arguments didn’t take a toll on their memories.

09:49
So this message, that good, close relationships are good for our health and well-being, this is wisdom that’s as old as the hills. Why is this so hard to get and so easy to ignore? Well, we’re human. What we’d really like is a quick fix, something we can get that’ll make our lives good and keep them that way. Relationships are messy and they’re complicated and the hard work of tending to family and friends, it’s not sexy or glamorous. It’s also lifelong. It never ends. The people in our 75-year study who were the happiest in retirement were the people who had actively worked to replace workmates with new playmates. Just like the millennials in that recent survey, many of our men when they were starting out as young adults really believed that fame and wealth and high achievement were what they needed to go after to have a good life. But over and over, over these 75 years, our study has shown that the people who fared the best were the people who leaned in to relationships, with family, with friends, with community.

11:09
So what about you? Let’s say you’re 25, or you’re 40, or you’re 60. What might leaning in to relationships even look like?

11:19
Well, the possibilities are practically endless. It might be something as simple as replacing screen time with people time or livening up a stale relationship by doing something new together, long walks or date nights, or reaching out to that family member who you haven’t spoken to in years, because those all-too-common family feuds take a terrible toll on the people who hold the grudges.

11:52
I’d like to close with a quote from Mark Twain. More than a century ago, he was looking back on his life, and he wrote this: “There isn’t time, so brief is life, for bickerings, apologies, heartburnings, callings to account. There is only time for loving, and but an instant, so to speak, for that.”

12:22
The good life is built with good relationships.

12:27
Thank you.

12:28
(Applause)

豆瓣日记上的英语经

如何迅速提高英语阅读能力?

  • 对于中初级学习者来说,迅速提高词汇量比分辨近义词的差别更重要。
  • 只要你不是从小大量阅读英文,背单词就是必须的。
  • 要按照读音来记单词
  • 阅读的时候脑子要思考,不断地问:作者在说什么?文章的走向是怎么样的?里面有哪一些核心内容?有什么样的情感?带着目的去阅读,而非无意识阅读。无意识阅读法,只能浪费时间。
  • 在读复杂句的时候,或者碰到不明白的句子的时候,脑子要分清楚主语、谓语、宾语之间的修饰关系。比如说这个It指代了谁?这句超级无敌长的复杂句里,主谓宾在哪里?修饰是放在前面还是后面了?读的时候可以不做语法分析,但是一定要弄明白每个单词在句子里所扮演的角色,以及它们之间所产生的关系。长难句是绝对绕不过去的一个坎,不要心存侥幸,现在就赶紧解决它吧。
  • 千万不要总是跳过不懂的东西。

中国人说英语为什么听起来没有礼貌?(8.17更新添加中英文化差异的讨论)

  • 中国人的英语以 Chinglish 或 Chenglish 闻名于世。中国人最大的英语发音问题就是没有连读,但这都不是最主要的语言问题。老外们时常议论,很多中国人在说英语时,听起来没有礼貌;并不是这些中国人本身没礼貌,而是他们还没有习惯英语的礼貌表达方式
  • 比如,中国人在餐厅或咖啡厅,会说:“我想要一个汉堡包”或者“我想要一杯咖啡”。但是,如果直接把这些话翻译成英语“I want to have a hamburger.”或“I want to have a coffee.”老外们会觉得这样说话很没有礼貌,当然他们也不会直接告诉你。而在西方国家,老外们一般会说:“Could I have a hamburger, please?”或“Can I have a coffee, please?”在这里joy同学又提到一个需要注意的问题,“打工的孩子最容易不注意的是see you. See u应该是客人说的,隐含了他觉得不错他会再来的意思,而店员最好用低调一点的bye,用see u太强势了。另外人家说谢谢,你也不用说you are welcome, 这实在是太正式了,有点真把自己当回事觉得帮了人家的味道。回答 cheersno worries 就好,如果仅仅是对方爱说谢,你甚至可以不回应他的谢,直接说你要说的就好,如果是买了他的东西他谢你,更不能说you r welcome了
  • 再比如,中国人在拒绝别人邀请的午宴或晚宴时,会说:“抱歉,我不能去,我还有别的安排。”翻译成英文就是“Sorry,I can’t. I have another appointment.”如果这样说,那别人第二次也许不会再邀请你了。老外们一般会这样说:“**That is a good idea! I would like to join in but I have another appointment today.**”

LeetCode - Algorithms - 146. LRU Cache

这题是 Top Interview QuestionsTop 100 Liked Questions之一,前后又花了一个星期。

先是了解了下 Cache replacement policies,其中提及 General implementations of Least recently used (LRU) require keeping “age bits” for cache-lines and track the “Least Recently Used” cache-line based on age-bits.

题目里提示 Could you do both operations in O(1) time complexity? ,又了解了下Time complexity。又在kindle上翻了下《算法图解》,了解了下散列表、链表等数据结构,也算加强了下对哈希表的认识。

在平均情况下, 散列表执行各种操作的时间都为O(1)。 O(1)被称为常量时间。你以前没有见过 常量时间,它并不意味着马上,而是说不管散列表多大,所需的时间都相同。

实际上,你以前见过常量时间——从数组中获取一个元素所需的时间就是固定的:不管数组多大,从中获取一个元素所需的时间都是相同的。

填装因子(load factor)度量的是散列表中有多少位置是空的。填装因子越低,发生冲突的可能性越小,散列表的性能越高。一个不错的经验规则是:一旦填装因子大于0.7,就调整散列表的长度。

自己琢磨也是徒劳,不如上网找点提示信息,在quora上找到几条信息

Typically LRU cache is implemented using a doubly linked list and a hash map.

An LRU Cache should support fast lookup. Apparently, in order to achieve fast lookup, we need to use Hashtable or HashMap.Also, an LRU Cache requires that insert and delete operations should be in O(1) time. The obvious choice for this requirement is Linked List. Linked List support insert/delete operations in O(1) time if we have the reference of element. While building an LRU cache requires that you think in terms of these two data structures. The reality is that these two data structures actually work coherently to achieve the design.So, we are finalizing on these data structures: HashMap and Doubly Linked List. HashMap holds the keys and values as reference of the nodes (entries) of Doubly Linked List.Doubly Linked List is used to store list of nodes (entries) with most recently used node at the head of the list. So, as more nodes are added to the list, least recently used nodes are moved to the end of the list with node at tail being the least recently used in the list.

自己对java集合类库还是不够熟悉,看到Is there any doubly linked list implementation in Java?才明白原来java.util.LinkedList本来就可以当双向链表使用,

Doubly-linked list implementation of the List and Deque interfaces. Implements all optional list operations, and permits all elements (including null).All of the operations perform as could be expected for a doubly-linked list. Operations that index into the list will traverse the list from the beginning or the end, whichever is closer to the specified index.

在leetcode上提交了两次,终于运行通过,如果自己来实现双向链表是不是更能提高性能? 做了这些题,感觉leetcode的算法题不是那种难得要死的题,不会做说明你的数据结构和算法知识还比较欠缺。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class LRUCache {
private LinkedList<DualLinkNode> list;
private Map<Integer,DualLinkNode> map;
private final int cacheSize;

public LRUCache(int capacity) {
list = new LinkedList<DualLinkNode>();
map = new HashMap<Integer,DualLinkNode>();
this.cacheSize = capacity;
}

public int get(int key) {
if (map.containsKey(key)) {
DualLinkNode node = map.get(key);
list.remove(node);
list.addFirst(node);
return node.val;
}
else {
return -1;
}
}

public void put(int key, int value) {
if (map.containsKey(key)) {
DualLinkNode node = map.get(key);
list.remove(node);
node.val=value;
list.addFirst(node);
}
else {
if (list.size()==cacheSize) {
DualLinkNode node = list.pollLast();
map.remove(node.key);
}
DualLinkNode node = new DualLinkNode(key,value);
list.addFirst(node);
map.put(key, node);
}
}

private class DualLinkNode {
public int key;
public int val;

public DualLinkNode(int key, int val) {
super();
this.key = key;
this.val = val;
}
}
}

Submission Detail

  • 18 / 18 test cases passed.
  • Your runtime beats 7.69 % of java submissions.

AWS Certified Solutions Architect

How did you prepare for AWS Certified Solutions Architect - Associate Level certification?
https://www.quora.com/How-did-you-prepare-for-AWS-Certified-Solutions-Architect-Associate-Level-certification

Preparing for the AWS Certified Solutions Architect Associate Certification Exam
https://blog.newrelic.com/2018/05/30/aws-certified-solutions-architect-associate-exam-prep/


AWS Certified Solutions Architect - Associate
https://aws.amazon.com/certification/certified-solutions-architect-associate/

AWS Certified Solutions Architect – Associate
https://aws.amazon.com/tw/certification/certified-solutions-architect-associate/

AWS Certified Solutions Architect – Associate
https://aws.amazon.com/cn/certification/certified-solutions-architect-associate/

AWS Well-Architected
采用架构最佳实践进行学习、测量和构建
https://aws.amazon.com/cn/architecture/well-architected/

AWS Well-Architected
Learn, measure, and build using architectural best practices
https://aws.amazon.com/architecture/well-architected/

https://aws.amazon.com/cn/getting-started


Amazon Web Services - Documentation
Documenting Amazon Web Services and SDKs
https://github.com/awsdocs

LeetCode - Algorithms - 7. Reverse Integer

Java

1

自己做出来的naive solution,直接把整数转换成字符串,然后逆转字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution {
public int reverse(int x) {
int r = 0;
if (x>Integer.MAX_VALUE || x<Integer.MIN_VALUE) {
return r;
}
String s = Integer.toString(x);
if (s!=null && !s.isEmpty()) {
String ss = "";
char c = 0;
if (x<0)
s = s.substring(1);
for(int i=s.length()-1;i>=0;i--) {
c = s.charAt(i);
ss += c;
}
if (x<0)
ss = '-'+ss;
System.out.println("ss="+ss);
try {
r = Integer.parseInt(ss);
} catch (NumberFormatException ex) {
r = 0;
}
}
return r;
}
}

Submission Detail

  • 1032 / 1032 test cases passed.

2

9. Palindrome Number ,提示Coud you solve it without converting the integer to a string? 发现人家的方法更直接利落,温故而知新,重新实现下,结果被卡在 java int out of range 的问题里,1534236469 逆序数超过Integer.MAX_VALUE 返回 1056389759,题目里就提示了 Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows. 最后想到不如把逆序数变量定义为 long类型,再判断是否超过2147483647(0x7fffffff, 2^31-1),再把long 安全地转换为int返回,java的long安全转换为int的小问题,google关键字 java long to int 参考了下 Safely casting long to int in Java 这样就ok了,在leetcode上运行通过。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public int reverse(int x) {
if (x>Integer.MAX_VALUE || x<Integer.MIN_VALUE) {
return 0;
}
if (x==0) return 0;
int r = 0;
int remainder = 0;
long reverseNumber = 0L;
for(int t = x>0?x:-x; t>0; t/=10) {
remainder = t%10;
reverseNumber *= 10;
reverseNumber += remainder;
}
if (reverseNumber>Integer.MAX_VALUE)
r = 0;
else
r = Long.valueOf(reverseNumber).intValue();
if (x<0)
r *= -1;
return r;
}
}

Submission Detail

  • 1032 / 1032 test cases passed.
  • Runtime: 21 ms
  • Your runtime beats 97.62 % of java submissions.

LeetCode - Algorithms - 9. Palindrome Number

一个多月前就看了下,这题label为Easy,跟 7. Reverse Integer 有关系,自己做7. Reverse Intege时就简单把整数转为字符串来解决,而这题提示Coud you solve it without converting the integer to a string,自己对c语言为例的过程化编程还是欠差,google 关键字 Palindrome Number,出来

最后参照 C Program to Check Whether a Number is Palindrome or Not 的写了java代码,在Eclipse里跑了下,结果不对,又看人家的代码,看来自己还是不理解这个求逆序数的步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public boolean isPalindrome(int x) {
boolean b = false;
int originalInteger = x;
int reversedInteger = 0, remainder = 0;
int t = x;
while (t>0) {
remainder = t%10;
reversedInteger = reversedInteger*10+remainder;
t /= 10;
}
if (originalInteger==reversedInteger)
b = true;
return b;
}
}

Submission Detail

  • 11508 / 11508 test cases passed.
  • Your runtime beats 58.36 % of java submissions.

LeetCode - Algorithms - 3. Longest Substring Without Repeating Characters

一个多月以前就开始看这个题,先是澄清了下 Substring 与 Subsequence的区别。算法是自己的短板与软肋呀,知之甚少的地方,你再思考也还是只有迷惘,只好上网搜罗,google关键字longest unique substring java搜到:

看了还是不理解,人家的代码实现也看了,也没看明白。

又 google 关键字 longest unique substring in a string,搜到 How To Find Longest Substring Without Repeating Characters In Java?,这个终于看懂了,用到了个LinkedHashMap数据结构来存储无重复字符的substring,从左往右扫描字符数组,一旦字符与HashMap里的字符有重复,就把循环变量i置为那个重复字符在原字符串中的位置,HashMap清空,如果字符不重复,就继续往右扫,如果HashMap的size大于最大无重复子串长度,就更新最大无重复子串长度这个int变量,直到字符串末尾为止。会者不难,难者不会,其实也就这么简单。思路是人家的,自己不过照着人家的解决方案写的,最后写下来代码倒也没几行,LeetCode运行通过了。基本理解了,但要达到了然于胸的程度,还得继续慢慢消化理解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public int lengthOfLongestSubstring(String s) {
int maxUniqSubstrLen = 0;
if (!s.isEmpty()) {
LinkedHashMap<Character,Integer> map = new LinkedHashMap<Character,Integer>();
int len = s.length();
for(int i=0;i<len;i++) {
char ch = s.charAt(i);
if (!map.containsKey(ch)) {
map.put(ch, i);
}
else {
i = map.get(ch);
map.clear();
}
if (map.size()>maxUniqSubstrLen)
maxUniqSubstrLen = map.size();
}
}
return maxUniqSubstrLen;
}
}

Submission Detail

  • 983 / 983 test cases passed.
  • Your runtime beats 10.69 % of java submissions.

新概念英语

  • 新概念英语的文章非常经典,适合学生背诵,从第二册49课,the end of the dream开始,一直背到第三册结束。
  • 推荐英音版本的(即使你是想学美音),因为那个版本比较抑扬顿挫,比较利于记忆、背诵以及语感的养成。一定要模仿任何一处的语音语调,no matter how wierd or stupid it sounds。
  • 因为《新概念英语》教材的经典,其也不可避免的具有因“陈旧”所导致的种种薄弱之处。和即时的新闻和美剧电影来比,用词和题材有些过时。
  • 一来《新概念英语》本身不具备较为正规的测评系统,没有考试,以至于学生很难全面客观地检验学习效果;二来《新概念英语》的知识比较陈旧,与当代发生的新事,当前热门的话题,当下关注度高的问题稍有脱离。
  • 一定要模仿原声课文,一句一句重复模仿,直到可以把每个句子听得很透,甚至可以背下来;尤其开始不要觉的课文很熟了就脱离原声模仿,有很多同学听熟了就自己大声读,读几遍就又回到原来的口音上了。

Book 3: Developing Skills

  • 新概念三册中大部分的叙事文章,例如第5、6、13、15、16、31、33等课,都是很好的复述素材。
  • 31课人物描写的模板、12和41课对比论证的模板、以及59课兴趣爱好的模板。
  • 31课第一段提炼出来的描述人“先否后肯”模式的模板
  • 59课最后一段列出了“收藏”这项爱好的五重好处,即:休闲娱乐、增长知识、结交好友、周游世界、建立自信。通过分析,我们发现,任何有益的爱好都不外乎这几点好处,也就是说,在描述我们爱好及其优点的时候,就可以把这几点套用上去。
  • 第1课的同位语从句、第6课的独立主格、第29课的主语从句
  • 第3, 5, 6, 7, 17, 39等十几篇课文中都为我们提供了非常漂亮地道的亮点句型
  • 对比逻辑的文章,我们可以结合12、27、29、41这几课对比模板轻松应对
  • 第17课是讲解和练习Skimming (略读) 和Scanning (查读)的经典文章。
  • 而下半册中,第51和55课是典型科技类文章的阅读
  • 第六课有两处非常明显地使用了独立结构
  • 第三课An unknown goddess: 英语思维至高无上的秘诀:英文永远是开门见山的,总是把最重要的中心先说出来。更通俗一点来讲,中文的习惯表达方式是因为所以,而英文的表达习惯一般是之所以是因为。
  • 第9课重点训练“数字”的听辨、第27课综合训练“数字、人名、地名”等细节的听辨能力,并以此为例,系统讲解听力“笔记法”

Book 4: Fluency in English

  • 新概念四中的文章是编者ALEXANDER精心挑选的各个领域的散文名篇,这些文章文笔优美,说理透彻。
  • 高超的“破题”范本。以第五课《青年》(Youth)为例,作者在讨论代沟问题、为年轻人辩护时,开篇就指明了问题的根本所在:Let’s get down to fundamentals and agree that the young are after all human beings—-people just like their elders。作者接着指明两者之间的唯一差别就是:年轻人前程似锦,而老年人一切辉煌都已成过眼云烟。这样,下文的论证就有了坚实的基础。我们在写作时,可以参考这种方法,在开篇把问题的根本所在讲明白,这样下文就有话可说,而且容易让人信服。
  • 第24课《美》(beauty):作为一个极其抽象的概念,“美”究竟是什么本来就很难写清楚,而作者在第一段就给“美”下了巧妙的定义:美总会让人想到超越我们俗世的另外一个世界。在这个框架中讨论“美”,就可以有的放矢了。
  • 数字、比较论证技巧:第2课《不要伤害蜘蛛》(spare that spider)
  • 第19课《话说梦的本质》(The stuff of dreams)、十四课《蝴蝶效应》(The Butterfly Effect) :“以退为进”法 这种技巧适用于驳论。
  • 第31课中的“先抑后扬”法
  • 第28课的“例证——极度例证”法
  • 第5课《青年》(Youth)的修辞:两个future第一个future前用了glorious来修饰,在第二个future前则用splendid。再看下一句话:He may be conceited, ill-mannered, presumptuous, or fatuous, ……。这句话中,作者一连串用的四个形容词恰倒好处,令人叫绝。
  • 第24课中可以学到典型的排比句用法
  • 第31课中作者则巧妙地使用了倒装句式
  • 第23课中的长句很多
  • 第11课《如何安度晚年》(How to grow old)是修辞格使用的经典范例。作者在文中把人生比作河流(An individual human existence should be like a river), small at first指的是人的儿童期,rushing passionately指的是人的青年期,boulders 和waterfalls则喻指人生中的坎坷,而become merged in the sea则是指死亡。某种程度上来说,正是这绝妙的比喻使这段话成为英语散文中的经典语段。
  • Lesson 4,属于伪科学盛行时期的产物
  • 第5课 youth 原文是Fielden Hughes 所写的”out of the air”
  • Lesson6:The sporting spirit,乔治·奥威尔(George Orwell)
  • Lesson14:The Butterfly Effect。 美国科普畅销书作家詹姆斯·格雷克 (James Gleick)

Book 2: Practice & Progress

一至三单元主要训练学生写简单句、并列句和复合句


请各位知友分享下自己的英语学习经验吧? - 尤雨溪的回答 - 知乎
https://www.zhihu.com/question/20118811/answer/14036822

  1. 听说读写无障碍,文学类除外。经常有老美发现我不是native speaker的时候很惊讶。
  2. 当年学的时候就是把新概念第二册起的课文听 -> 读 -> 背 -> 说,如此循环。说这一步最关键,要求是能够理解之后像正常思考一样说出来,就像演讲一样。最好是有懂英语的人听着你说,看你说得自然不自然。做到这一步意味着要把文章的词汇、句式、行文思路全部吸收。
  3. 小学6年级开始学英语。初二开始用2里面的方法,高二背完新概念第四册第二遍。之后基本没有刻意再学过。

英语是否会成为开发工程师的发展瓶颈? - 尤雨溪的回答 - 知乎
https://www.zhihu.com/question/55998388/answer/167024826

不仅英语差会成为瓶颈,英语好还能成为优势,因为学习效率会比别人高。像我这样半路出家自学的人,只能靠英语了…

上了大学还是完全不懂语法只想靠美剧或者英语书籍来的语感强行记忆,这种做法靠谱吗? - 尤雨溪的回答 - 知乎
https://www.zhihu.com/question/22027426/answer/21944576

语法也不是完全不需要。或者说,你需要做到的是借助语法去理解你看不懂的句子,而不是去记忆语法本身。理解的过程就是培养语感的过程。从这个角度来说,一些基础的语法知识,比如时态、从句啥的,是培养语感的前提条件。但是,我的看法是语法过了初学者的坎之后就不再是需要刻意去研究的东西,非英语专业尤其如此。

我自己就是语感党,以前考试从来都靠语感,从来不会去记忆具体的语法规则。至于效果… 我高二托福考了673(当时满分677),上海高考 146/150,还拿了个英语比赛的一等奖,高考可以加20分的那种。高中毕业后直接来美国读本科(参加高考是为了防止签证签不出),读硕士,工作,除了本科时候 Liberal Arts 的恐怖阅读量有点累,其他时候英语上从来没有什么障碍。

但是联系到题主的问题,语感的培养绝对不能只靠被动的接收,必须要靠主动的使用。只看书看剧带来的提高是非常有限的,语感只有在使用中才能提高。所以,除了看和听,还要写和说。写嘛,现在网络这么发达,多逛逛外国网站跟人交流或者辩论都可以,但务必保证发言要言之有物。之所以辩论会很有效是因为你需要很努力地思考组织语言去论证自己的正确性。说的方面,在缺少口语交流环境的情况下,背是一个机械但有效的方法。以我自己来说,实质性提高英语的主要手段是靠背新概念 + 背词汇… (参见我这个答案 http://www.zhihu.com/question/20118811/answer/14036822 )所以说到底还是没有什么捷径可走的,想提高英语总得有所付出。

bash shell

BASH Programming - Introduction HOW-TO

by Mike G mikkey at dynamo.com.ar

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

Bash scripting cheatsheet
https://devhints.io/bash


Bash scripting for beginning system administrators
A hands-on approach
https://www.ibm.com/developerworks/aix/library/au-getstartedbash/

适合系统管理新手的 bash 脚本编程
动手实践方法
https://www.ibm.com/developerworks/cn/aix/library/au-getstartedbash/index.html


Bash by example, Part 1
Fundamental programming in the Bourne again shell (bash)
https://www.ibm.com/developerworks/library/l-bash/index.html

Bash 实例,第一部分
Bourne again shell (bash) 基本编程
https://www.ibm.com/developerworks/cn/linux/shell/bash/bash-1/


Bash by example, Part 2
More bash programming fundamentals
https://www.ibm.com/developerworks/linux/library/l-bash2/index.html

Bash 实例,第 2 部分
更多的 bash 基本编程
https://www.ibm.com/developerworks/cn/linux/shell/bash/bash-2/


Bash by example, Part 3
Exploring the ebuild system
https://www.ibm.com/developerworks/library/l-bash3/index.html

Bash 实例,第 3 部分
探讨 ebuild 系统
https://www.ibm.com/developerworks/cn/linux/shell/bash/bash-3/


Bash 脚本 set 命令教程
http://www.ruanyifeng.com/blog/2017/11/bash-set.html

Spring Boot+React.js

Bootiful Development with Spring Boot and React
https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react

Spring Boot API with React UI
https://github.com/oktadeveloper/spring-boot-react-example


Build a CRUD Application with React, Spring Boot, and User Authentication
https://stormpath.com/blog/crud-application-react-spring-boot-user-authentication

React App with Spring Boot
https://github.com/stormpath/stormpath-spring-boot-react-example


Building Spring Boot, MongoDB and React.js CRUD Web Application
https://www.djamware.com/post/5ab6397c80aca714d19d5b9c/building-spring-boot-mongodb-and-reactjs-crud-web-application

Building Spring Boot, MongoDB and React.js CRUD Web Application
https://github.com/didinj/spring-boot-mongodb-react-java-crud


How to Setup Spring-Boot with ReactJS and Webpack
https://medium.com/@benjaminliu_42474/how-to-setup-spring-boot-with-reactjs-and-webpack-9b190edeb0c8

Spring Boot with ReactJS using WebPack and Yarn.
https://github.com/liuben10/spring-boot-react-js-example