《斯坦福大学人生设计课》
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《斯坦福大学人生设计课》相关的知识,希望对你有一定的参考价值。
参考技术A 斯坦福大学人生设计课比尔·柏奈特 戴夫·伊万斯
推荐序 0530
>> 人生设计”就是把设计思维运用在职业生涯规划上的一种方式,课程的目标是“如何运用设计思维,发现自己未来想做什么?”。
三个例子 传统思维和设计思维的差异
1. 不要坚持初心,而是重新定义问题
例子:作者很小的时候认为自己注定要成为一个物理家(父母/成绩/老师),但是后来他重新思考,意识到自己并不是想做物理家,而是发现了自己真正的特质和喜欢的事情。
# 现在回头去想,我意识到自己其实对于物理并不算太感冒。我的物理学得很好,因为老师很喜欢我;我喜欢和别人分享有趣的知识,而相对论是个不错的选择;我热衷于幻想而不是研究,甚至还写过几篇科幻小说……#
# 我是一个关注概念和关系的人,我在“分享自己挖掘来的有趣想法给大家,并且对他人有帮助”的时候最快乐——这是一个老师、作家、助人者、支持者的工作,也是今天我正在做的事。#
#你看,我一直以为自己的初心是“物理学家”,但其实我只是喜欢“与人分享有趣的理念”。物理只是一个渠道,我还有很多其他的渠道。#
>> 正如福特说的,如果你问没有发明汽车前的大众,你想要什么?他们会说“一匹飞快的马”(名词),但是如果你问他们,你想要做什么?他们的答案是“更快地抵达”(动词)。在人生设计课里,“小时候,你有什么目标?” 这个问题被重新定义为:“你在什么时候最快乐、最有能量?”当初心从“名词”转换为“动词”,我们就能找到自己真正关切的东西。
2. 不是找到最适合自己的方向,而是拥有很多个选择
>> 职业生涯里有一个很大的难题——什么是自己最适合的方向?如何找到这个方向?如何确定它是“最适合”的?
>> 现在,问题又绕回来了:你究竟最适合什么样的生活?
>> 其实,“最适合”本身就是一个坑,因为“最”是极端词,而“适合”是动词。随着你不断地成长,做成了一件又一件事,能力和资源不断提升,“最适合”的答案也一天天在不断变化,永远定不下来。
>> 人生设计的思路是——每个人都有许许多多可能适合自己的生活方式。人生设计课会逼你,对,就是逼你进行头脑风暴,想出至少10个选择,不管靠谱不靠谱——因为一个好点子来自很多点子,输入决定输出。
真正好的人生状态是:我发现了很多适合自己的选择,而且决定从某个选择开始先试试看。
3. 不要“做出决定,坚定推进”,而是“边走边看,低成本试错”
>> 人生设计课则提供了一个全然不同的思路: 当你没有真的推进的时候,你根本不知道自己会遇到什么困难。 互联网公司的做法是进行AB测试,而最聪明的人生设计方法,是做一个“AB人生原型”,然后开始小范围试错。
>> 相比在焦虑、犹豫中来回摇摆的心力交瘁,探索本身就是一件快乐、有趣,而且效率更高的事情。而且,你在尝试中学到的东西,也会迭代到未来的新选项中去。
总结:
>> 好了,现在我们把前面三个标题的前半句话连在一起,就成了你常常听到的传统的职业规划思路——“专注初心,找到最适合自己的选择,做出决定并且把事情做成。”
>> 而把后面这三句话连在一起,则是人生设计的思路——“重新定义问题,找到尽可能多的选择,选择一个进行快速尝试,直到成功。”
>> 前者是做人生工程,后者是做人生设计。
>> 人生设计的好处是做出更加有趣、没有痛苦的决策,探索过程本身就是个快乐的创作过程,更加适应变化,更容易活出独特的人生。
备注: “设计你的人生”(网站是:www. designingyour.life)
思维误区1:你的学位决定你的职业生涯
重新定义:3/4的大学毕业生最后从事的工作都与他们所学的专业无关。
例子说明:美国,只有27%的大学生毕业后所从事的工作和他们所学的专业有关。
思维误区2: 获得成功就会感到幸福
重新定义:真正的幸福源于设计有意义的人生。
例子说明:美国,有2/3的职场人士对他们的工作不满意,有15%的人甚至痛恨他们的工作。
思维误区3: 太晚了
重新定义:设计一种自己热爱的生活,何时都不晚。
例子说明:在美国,年龄在44~70岁的成年人中,有超过3100万的人想要拥有一种“返场事业”—— 一份既可以体现个人生活意义和社会影响力,又可以继续赚钱的工作。
几个问题
· 我如何才能找到一份自己喜欢的甚至是热爱的工作?
· 我如何才能创立一番伟大的事业,过上美好的生活?
· 我如何才能平衡好生活和工作之间的关系?
· 我如何才能实现自己的人生价值?
· 我如何才能变得苗条、性感,并拥有巨额财富?
核心概念
“重新定义”是设计师应该具有的最重要的设计心态之一,很多伟大的创新都起源于“重新定义”。在提到设计思维时,我们经常会说:“不要从问题开始,要以人为本,抱持同理心。”一旦设计师与使用他们设计的产品的顾客有了同样的感受,他们就会确定设计理念、开动脑筋、进行头脑风暴和原型设计、挖掘他们不了解的地方。显然,这就是“重新定义”,即“轴点运动”。“重新定义”是指当我们对某个问题获得新的信息后,重新阐述我们的观点,重新开始思考并进行原型设计。例如你一开始觉得自己正在设计一个产品(一款新的混合咖啡和新款咖啡机),当你意识到自己实际上是在“重新设计”一种咖啡体验(如星巴克)时,你就是在“重新定义”。又如,你试图帮助贫苦大众,不再借钱给富裕阶层(贷款给富人),于是你给那些因过于贫困而无法偿还钱款的人借钱(如小额贷款机构和孟加拉乡村银行)。还有苹果公司团队推出的平板电脑系列,事实上也是对手提电脑的一种全方位的“重新定义”。
概念实践
设计师会想象出一些原本不存在的东西,然后去建造,进而改变世界。你也可以这样做——你可以想象一种根本不存在的工作或者生活,然后据此塑造一个未来的你,进而改变你的生活。如果你很满意现在的生活,你热爱目前的状态,那么人生设计也可以让你的生活变得更加美好。
在开始设计人生之前,你需要学会像设计师一样思考。我们会给大家介绍一些简单的方法,但首先你需要明确一点:设计师并不是在“思考”他们未来的人生路,他们是在“创造”前进的人生路。这是什么意思呢?这意味着你不仅要凭空想象出许多和现实世界(或者真实的你)没有任何关系的有趣的事物,你还需要创造新事物(我们称之为“原型”),并进行测试练习。
本书将介绍设计思维的5种基本心态,并教会大家如何应用它们进行人生设计。
这5种基本心态分别是:好奇心,努力实践,重新定义,专注和深度合作。
备注:
生活常常是复杂而混乱的,当你前进一步时,有时看起来你正在向后倒退。生活中的你可能会犯错,也可能会抛弃自己的原型。在这个过程中,你必须学会“放手”——不要纠结于自己最初的想法,放弃那个“不错但并不精彩的”解决方案。
问题: 似乎一旦某件事让他们激情澎湃,其他的一切就会奇迹般地明朗起来。我们并不赞同这种观点,一个非常明显的原因就是:大多数人并不知道自己的激情所在。
例子: 威廉·戴蒙是斯坦福大学青少年研究中心的主任。他发现,在12岁到26岁的青少年中,只有1/5的人对于他们将来想要做什么、想要取得怎样的成就有一个清晰的愿景。同样,我们的教学经验也表明,有80%的人并不是真的很了解自己的激情所在。
解答: 你真正需要的是花时间培养一种激情。研究表明,对于大多数人来讲,当他们尝试了某件事后,他们便会对这件事产生兴趣,进而去掌握它、精通它。由此可见,激情是一种美好人生设计的结果,而不是原因。
方法: 实际上,大多数人都对各种各样的事情充满了激情,唯一可以了解他们想要什么的方法就是提供一些 潜在的人生原型 ,并进行测试,看看是否会和他们产生共鸣。
0601 第1章分析测评你目前的生活
武汉理工大学Java程序语言设计课内实验二
一、前言
本文内容:武汉理工大学Java语言程序设计第二次课内实验的内容,分为有按钮和无按钮。
开发工具:IntelliJ IDEA2021.2.3
二、实验描述
1.实验描述
根据教材关于Java GUI的介绍,编写一个具有如下布局的应用程序,要求挡在上面的文本区输入若干数据后(输入的多个数据之间以逗号分隔),并点击按钮,就可以在下面的文本框中分别显示除输入数据的和与平均数。
2.基本要求
在完成上述要求的情况下,考虑改进该应用程序,从界面上去掉按钮,并且随着输入数据的变化,其和与平均数能够立可显示在下面的相应文本框中。
要求考虑异常处理,使得程序能够正常运行。
三、具体实现
1.有按钮
frame = new JFrame("和与平均数");
frame.getContentPane().setFont(font);
frame.setBounds(400,200,400,400);
mainPanel = new JPanel();
initComponent();
initEvent();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//文本框设置
textArea = new JTextArea();
textArea.setPreferredSize(new Dimension(300, 100));
textArea.setToolTipText("将输入数据用逗号分开!");
textArea.setFont(font);
JPanel textAreaPanel = new JPanel();
textAreaPanel.setPreferredSize(new Dimension(350, 150));
textAreaPanel.add(textArea);
mainPanel.add(textAreaPanel, BorderLayout.NORTH);
//和值显示框
sumField = new JTextField();
sumField.setFont(font);
sumField.setEditable(false);
sumField.setPreferredSize(new Dimension(300, 30));
JLabel sumLabel = new JLabel("和值");
JPanel sumFieldPanel = new JPanel();
sumFieldPanel.add(sumLabel);
sumFieldPanel.add(sumField);
//平均值显示框
averageField = new JTextField();
averageField.setFont(font);
averageField.setEditable(false);
averageField.setPreferredSize(new Dimension(300, 30));
JLabel averageLabel = new JLabel("平均值");
JPanel averageFieldPanel = new JPanel();
averageFieldPanel.add(averageLabel);
averageFieldPanel.add(averageField);
//计算按钮
calculateButton = new JButton("计算");
calculateButton.setPreferredSize(new Dimension(60, 40));
JPanel calculatePanel = new JPanel();
calculatePanel.add(calculateButton);
JPanel centerPanel = new JPanel();
centerPanel.add(sumFieldPanel);
centerPanel.add(averageFieldPanel);
centerPanel.add(calculatePanel);
frame.add(mainPanel, BorderLayout.NORTH);
frame.add(centerPanel, BorderLayout.CENTER);
public void inEvent()
calculateButton.addMouseListener(new MouseAdapter()
@Override
public void mouseClicked(MouseEvent e)
if (e.getButton() == MouseEvent.BUTTON1)
String numberText = textArea.getText();
if (numberText == null || numberText.trim().length() == 0)
JOptionPane.showMessageDialog(null, "输入为空!");
sumField.setText(" ");
averageField.setText(" ");
else
String[] numString = numberText.split(";");
double[] numDouble = stringToTypeDouble(numString);
double sumNumber = sumCalculate(numDouble);
double averNumber = averCalculate(numDouble);
sumField.setText(String.valueOf(sumNumber));
averageField.setText(String.valueOf(averNumber));
);
private double[] stringToTypeDouble(String[] string )
if(string == null || string.length==0)
return null;
else
double[]arrDouble = new double[string.length];
try
for(int i = 0; i<string.length;i++)
String str = string[i].trim();
arrDouble[i] = Double.parseDouble(str);
catch (NumberFormatException e)
e.printStackTrace();
arrDouble = null;
JOptionPane.showMessageDialog(null,"输入的数据类型错误!");
catch (InputMismatchException e)
e.printStackTrace();
arrDouble = null;
JOptionPane.showMessageDialog(null,"输入的数据格式错误!");
return arrDouble;
/**
* 计算和值
*/
private double sumCalculate(double[] arrDouble)
double sumNum = 0;
if(arrDouble == null || arrDouble.length == 0)
return sumNum;
else
for (double v : arrDouble)
sumNum = sumNum + v;
return Double.parseDouble(new DecimalFormat("#.000").format(sumNum));
/**
* 计算平均值
*/
private double averCalculate(double[]arrDouble)
double averNum = 0;
if(arrDouble == null || arrDouble.length == 0)
return averNum;
else
averNum = sumCalculate(arrDouble)/arrDouble.length;
return Double.parseDouble(new DecimalFormat("#.000").format(averNum));
2.无按钮
无按钮的界面设计只需将“计算”按钮删除即可。
/**
* 键盘输入处理
*/
private void initEvent()
textArea.getDocument().addDocumentListener(new DocumentListener()
@Override
public void insertUpdate(DocumentEvent e)
updateTextArea();
@Override
public void removeUpdate(DocumentEvent e)
updateTextArea();
@Override
public void changedUpdate(DocumentEvent e)
updateTextArea();
);
private void updateTextArea()
String numberText = textArea.getText();
if( numberText.trim().length() == 0)
JOptionPane.showMessageDialog(null,"输入为空!!!");
sumField.setText(" ");
averageField.setText(" ");
else
String[] numString = numberText.split(";");
double[] numDouble = stringToTypeDouble(numString);
double sumNumber = sumCalculate(numDouble);
double averNumber = averCalculate(numDouble);
sumField.setText(String.valueOf(sumNumber));
averageField.setText(String.valueOf(averNumber));
private double[] stringToTypeDouble(String[] string)
if(string == null || string.length==0)
return null;
else
double[] arrDouble = new double[string.length];
try
for (int i = 0; i < string.length; i++)
String str = string[i].trim();
arrDouble[i] = Double.parseDouble(str);
catch (NumberFormatException e)
e.printStackTrace();
arrDouble = null;
JOptionPane.showMessageDialog(null, "输入的数据类型错误!");
catch (InputMismatchException e)
e.printStackTrace();
arrDouble = null;
JOptionPane.showMessageDialog(null, "输入的数据格式错误!");
return arrDouble;
private double sumCalculate(double[] arrDouble)
double sumNum = 0;
if(arrDouble == null || arrDouble.length == 0)
return sumNum;
else
for (double v : arrDouble)
sumNum = sumNum + v;
return Double.parseDouble(new DecimalFormat("#.000").format(sumNum));
private double averCalculate(double[] arrDouble)
double averNum = 0;
if(arrDouble == null || arrDouble.length == 0)
return averNum;
else
averNum = sumCalculate(arrDouble)/arrDouble.length;
return Double.parseDouble(new DecimalFormat("#.000").format(averNum));
以上是关于《斯坦福大学人生设计课》的主要内容,如果未能解决你的问题,请参考以下文章
斯坦福大学公开课机器学习:advice for applying machine learning - deciding what to try next(设计机器学习系统时,怎样确定最适合最正确的