Build your IELTS Listening test vocabulary

© Build your IELTS Listening test vocabulary

Part 1: familiar vocabulary

1. Days of the week

Sunday

Monday

Tuesday

Wednesday

Thursday

Friday

Saturday

Quick Tip: Wednesday is commonly misspelled.

2. Months and seasons of the year

January

February

March

April

May

June

July

August

September

October

November

December

winter

spring

autumn

summer

Quick Tip: The first ‘r’ in February is often forgotten. If you struggle with spelling, you can choose to write the date using numbers as long as these numbers are written in the correct format. E.g. ‘the 10th of February, 2020’ = 10/02/2020

Quick Tip: the final ‘n’ in autumn is often forgotten as we don’t hear the silent ‘n’.

3. Shapes

circle

square

rectangle

triangle

cylinder

oval

Quick Tip: Shapes can be used when we refer to places in a city, King George Square, so it’s important that you can spell common shapes.

4. Transportation

automobile

truck

tractor

tram

subway

airplane

train

bicycle

car

pedestrian

passenger

commuter

Quick Tip: ‘ commuter ‘ is often misspelled, confusing it with ‘computer’!

5. Colours

red

orange

yellow

green

blue

purple

white

black

brown

Quick Tip: Colour spelled with a ‘u’ is the Canadian/British spelling. In the US, it is spelled ‘color’ without a ‘u’. Both are correct and a matter of preference.

6. Verbs

suggest

develop

borrow

persuade

discuss

review

concentrate

believe

crash

Quick Tip: Sometimes verbs are conjugated for gender, tense, etc. The difference could give you an incorrect answer.

7. Adjectives

beautiful

necessary

fantastic

comfortable

convenient

wonderful

terrible

temporary

permanent

knowledgeable

exciting

boring

difficult

easy

Quick Tip: Make sure that you note adjectives that have double consonants (ss/mm). It is easy to miss a letter.

8. Numbers, times, and currencies: commonly appear in Part 1 of the listening test. Recording the corresponding number or symbol is suggested because this will help eliminate the possibility of spelling the word incorrectly.

For example, thirty dollars is the same as $30 on the listening test. Also, six o’clock and 6:00 are the same as well. Finally, ten thousand and 10,000 are also both correct. Writing the number or symbol allows you to feel more confident that you have not made a spelling mistake.

Quick Tip: When deciding on whether the answer is 30 or 13, listen to the stressed syllable. If it’s 13, the stress is on the second syllable ‘thir teen ‘, if it’s 30, the stress is on the first syllable ‘ thir ty’.

Quick Tip: Copy the correct symbol from the Listening question to make sure you are using the correct currency. If you use ‘$’ instead of ‘£’, the answer will be incorrect.

Part 2: a monologue, speech or talk

1. Rooms in buildings

kitchen

bathroom

bedroom

living room

dining room

lounge

library

gymnasium (gym)

cafeteria (cafe)

classroom

waiting room

reception

ticket desk

storage room

theatre

2. Place markers

street

road

avenue

lane

drive

court

place

terrace

way

There is some vocabulary you should be listening for, but may not have to write down when doing a map question in Part 2, which will allow you to follow the map more easily. Make sure you know where these direction words point to.

3. Directions and prepositions of place

north

south

east

west

up

down

left

straight

across from

between

beside

diagonal

corner

opposite

adjacent to

near

past

before

after

4. Verbs

turn

move

continue on

walk

cross

pass

start

finish

end

stop

go straight ahead

5. Places on a map

tennis court

river

courtyard

laboratory

building

bridge

road

path

traffic lights

bench

seat

table

basketball court

running track

swimming pool

beach

forest

garden

castle

Part 3: a conversation between people

1. School terms

presentation

project

teamwork

pairs

organisation

outline

proofreading

experiment

reference

lecture

tutor

teacher

attendance

specialist

knowledge

faculty

bachelor’s

master’s

schedule

management

leadership

questionnaire

statistic

percentage

laboratory

school

university

college

Quick Tip: North Americans pronounce ‘laboratory’ in three syllables: lab-bra-tory. British English speakers pronounce the same word using four syllables: lab-or-a-tory.

2. Subjects in school

Mathematics (Maths)

Science

English

Physical Education (PE)

Art

Music

Geography

Biology

Chemistry

History

Quick Tip: When students study a subject at school, their school year is divided into terms or semesters. They have breaks or holidays between each term.

3. Subjects in university

Commerce

Science

Psychology

Engineering

Marketing

Sociology

Medicine

History

Geography

Architecture

Law

Philosophy

Economics

Education

Quick Tip: When students study at university, their university year is divided into semesters. They usually have exam blocks at the end of each semester following by a break. They can study part-time or full-time and combine it with employment.

4. Examination

assessment

test

revision

pass

fail

repeat

supervise

supervisor

assess

exam

results

degree

certificate

Part 4: a university lecture

1. Health

vegetarian

vegan

healthy

unhealthy

leisure

disease

vitamin

protein

carbohydrates

exercise

treatment

obese

overweight

fit

doctor

check up

medicine

vitamin

pandemic

virus

cure

vaccination

2. Animals and their habitat

mammals

reptile

primates

predators

prey

mountain

jungle

forest

island

pond

river

stream

zoo

pet

endangered

species

ocean

sea

3. Continents and Countries

North America

South America

Asia

Africa

Europe

Antarctica

Australia

Oceania

England

Canada

China

United Kingdom

Germany

Mexico

Switzerland

4. Environment

global warming

disaster

earthquake

tornado

blizzard

hurricane

pollution

temperature

drought

flood

cyclone

volcanic eruption

deforestation

desertification

bush fires

5. Government

politics

leader

politician

senator

mayor

laws

regulations

senate

president

society

individual

council

rules

Quick Tip: The word ‘society’ is one of the most commonly misspelled words on the IELTS test.

6. Energy

nuclear

oil

coal

hydro electrical power

natural gas

solar power

source

generate

electricity

dam

windmill

wind turbine

renewable

non-renewable

Quick Tip: Remember to check your spelling of nuclear, it is often written as ‘unclear’, a simple typo that result in an incorrect answer.

7. General

appointment

cooperation

employment

government

exhibition

occupation

aluminum

century

decade

millennium

individual

creativity

guarantee

satellite

opportunity

licence

frequently

calendar

different

Quick Tip: The words ‘government’ and ‘different’ are two of the most commonly misspelled words in the IELTS test. Also, ‘aluminum’ is pronounced with four syllables in North American English: a-lu-min-num. It is pronounced with five syllables in British English: al-u-min-i-um.

LeetCode - Algorithms - 242. Valid Anagram

Problem

242. Valid Anagram

Java

HashMap

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
class Solution {
public boolean isAnagram(String s, String t) {
final int len_s = s.length();
final int len_t = t.length();
if (len_s != len_t)
return false;
Map<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < s.length(); i++) {
Character k = s.charAt(i);
if (map.containsKey(k)) {
Integer num = map.get(k);
map.put(k, ++num);
}
else {
map.put(k, 1);
}
}
for (int i = 0; i < t.length(); i++) {
Character k = t.charAt(i);
if (map.containsKey(k)) {
Integer num = map.get(k);
map.put(k, --num);
} else {
return false;
}
}
for (Integer count : map.values()) {
if (count.intValue() != 0)
return false;
}
return true;
}
}

Submission Detail

  • 34 / 34 test cases passed.
  • Runtime: 12 ms, faster than 22.04% of Java online submissions for Valid Anagram.
  • Memory Usage: 40.6 MB, less than 28.82% of Java online submissions for Valid Anagram.

Sorting

© 20+ basic Algorithms Problems from Coding Interviews 16. Write Algorithms to Check if Two String are Anagram

One trick to solve this problem is to sort the character array and check if they are the same or not.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public boolean isAnagram(String s, String t) {
final int len_s = s.length();
final int len_t = t.length();
if (len_s != len_t)
return false;
char[] arr_s = s.toCharArray();
char[] arr_t = t.toCharArray();
Arrays.sort(arr_s);
Arrays.sort(arr_t);
for (int i = 0; i < len_s; i++) {
if (arr_s[i] != arr_t[i])
return false;
}
return true;
}
}

Submission Detail

  • 34 / 34 test cases passed.
  • Runtime: 4 ms, faster than 51.35% of Java online submissions for Valid Anagram.
  • Memory Usage: 42.2 MB, less than 9.92% of Java online submissions for Valid Anagram.

leetcode solution - Hash Table

It seemed that no 0ms solution by java.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] counter = new int[26];
for (int i = 0; i < s.length(); i++) {
counter[s.charAt(i) - 'a']++;
counter[t.charAt(i) - 'a']--;
}
for (int count : counter) {
if (count != 0) {
return false;
}
}
return true;
}
}

Submission Detail

  • 34 / 34 test cases passed.
  • Runtime: 3 ms, faster than 79.53% of Java online submissions for Valid Anagram.
  • Memory Usage: 39.4 MB, less than 84.32% of Java online submissions for Valid Anagram.

Why you will fail to have a great career - Larry Smith - TEDxUW | November 2011 - Transcript

What you see in the TED talk is essentially thirty years of Smith’s frustrations reaching a boiling point. “Wasted talent is a waste I cannot stand,” Smith told me. “My students want to create technology. I want them to create really ‘kick-ass’ technology. I want them to be passionate about what they’re doing.” — Carmine Gallo


I want to discuss with you this afternoon why you’re going to fail to have a great career.

(Laughter)

I’m an economist.

I do dismal. End of the day, it’s ready for dismal remarks. I only want to talk to those of you who want a great career. I know some of you have already decided you want a good career. You’re going to fail, too.

(Laughter)

Because – goodness, you’re all cheery about failing.

(Laughter)

Canadian group, undoubtedly.

(Laughter)

Those trying to have good careers are going to fail, because, really, good jobs are now disappearing. There are great jobs and great careers, and then there are the high-workload, high-stress, bloodsucking, soul-destroying kinds of jobs, and practically nothing in-between.

So people looking for good jobs are going to fail. I want to talk about those looking for great jobs, great careers, and why you’re going to fail. First reason is that no matter how many times people tell you, “If you want a great career, you have to pursue your passion, you have to pursue your dreams, you have to pursue the greatest fascination in your life,” you hear it again and again, and then you decide not to do it. It doesn’t matter how many times you download Steven J.’s Stanford commencement address, you still look at it and decide not to do it.

I’m not quite sure why you decide not to do it. You’re too lazy to do it. It’s too hard. You’re afraid if you look for your passion and don’t find it, you’ll feel like you’re an idiot, so then you make excuses about why you’re not going to look for your passion. They are excuses, ladies and gentlemen. We’re going to go through a whole long list – your creativity in thinking of excuses not to do what you really need to do if you want to have a great career.

So, for example, one of your great excuses is:

(Sigh)

“Well, great careers are really and truly, for most people, just a matter of luck. So I’m going to stand around, I’m going to try to be lucky, and if I’m lucky, I’ll have a great career. If not, I’ll have a good career.” But a good career is an impossibility, so that’s not going to work.

Then, your other excuse is, “Yes, there are special people who pursue their passions, but they are geniuses. They are Steven J. I’m not a genius. When I was five, I thought I was a genius, but my professors have beaten that idea out of my head long since.”

(Laughter)

“And now I know I am completely competent.” Now, you see, if this was 1950, being completely competent – that would have given you a great career. But guess what? This is almost 2012, and saying to the world, “I am totally, completely competent,” is damning yourself with the faintest of praise.

And then, of course, another excuse: “Well, I would do this, I would do this, but, but – well, after all, I’m not weird. Everybody knows that people who pursue their passions are somewhat obsessive. A little strange. Hmm? Hmm? Okay? You know, a fine line between madness and genius. “I’m not weird. I’ve read Steven J.’s biography. Oh my goodness – I’m not that person. I am nice. I am normal. I’m a nice, normal person, and nice, normal people – don’t have passion.”

(Laughter)

“Ah, but I still want a great career. I’m not prepared to pursue my passion, so I know what I’m going to do, because I have a solution. I have a strategy. It’s the one Mommy and Daddy told me about. Mommy and Daddy told me that if I worked hard, I’d have a good career. So, if you work hard and have a good career, if you work really, really, really hard, you’ll have a great career. Doesn’t that, like, mathematically make sense?” Hmm. Not. But you’ve managed to talk yourself into that.

You know what? Here’s a little secret: You want to work? You want to work really, really, really hard? You know what? You’ll succeed. The world will give you the opportunity to work really, really, really, really hard. But, are you so sure that that’s going to give you a great career, when all the evidence is to the contrary?

So let’s deal with those of you who are trying to find your passion. You actually understand that you really had better do it, never mind the excuses. You’re trying to find your passion –

(Sigh)

and you’re so happy. You found something you’re interested in.

“I have an interest! I have an interest!”

You tell me. You say, “I have an interest!” I say, “That’s wonderful! And what are you trying to tell me?” “Well, I have an interest.” I say, “Do you have passion?” “I have an interest,” you say. “Your interest is compared to what?” “Well, I’m interested in this.” “And what about the rest of humanity’s activities?” “I’m not interested in them.” “You’ve looked at them all, have you?” “No. Not exactly.”

Passion is your greatest love. Passion is the thing that will help you create the highest expression of your talent. Passion, interest – it’s not the same thing. Are you really going to go to your sweetie and say, “Marry me! You’re interesting.”

(Laughter)

Won’t happen. Won’t happen, and you will die alone.

(Laughter)

What you want, what you want, what you want, is passion. It is beyond interest. You need 20 interests, and then one of them, one of them might grab you, one of them might engage you more than anything else, and then you may have found your greatest love, in comparison to all the other things that interest you, and that’s what passion is.

I have a friend, proposed to his sweetie. He was an economically rational person. He said to his sweetie, “Let us marry. Let us merge our interests.”

(Laughter)

Yes, he did.

“I love you truly,” he said. “I love you deeply. I love you more than any other woman I’ve ever encountered. I love you more than Mary, Jane, Susie, Penelope, Ingrid, Gertrude, Gretel – I was on a German exchange program then. I love you more than –” All right. She left the room halfway through his enumeration of his love for her. After he got over his surprise at being, you know, turned down, he concluded he’d had a narrow escape from marrying an irrational person. Although, he did make a note to himself that the next time he proposed, it was perhaps not necessary to enumerate all of the women he had auditioned for the part.

(Laughter)

But the point stands. You must look for alternatives so that you find your destiny, or are you afraid of the word “destiny”? Does the word “destiny” scare you? That’s what we’re talking about. And if you don’t find the highest expression of your talent, if you settle for “interesting,” what the hell ever that means, do you know what will happen at the end of your long life? Your friends and family will be gathered in the cemetery, and there beside your gravesite will be a tombstone, and inscribed on that tombstone it will say, “Here lies a distinguished engineer, who invented Velcro.” But what that tombstone should have said, in an alternative lifetime, what it should have said if it was your highest expression of talent, was, “Here lies the last Nobel Laureate in Physics, who formulated the Grand Unified Field Theory and demonstrated the practicality of warp drive.”

(Laughter)

Velcro, indeed!

(Laughter)

One was a great career. One was a missed opportunity. But then, there are some of you who, in spite of all these excuses, you will find, you will find your passion. And you’ll still fail.

You’re going to fail, because – because you’re not going to do it, because you will have invented a new excuse, any excuse to fail to take action, and this excuse, I’ve heard so many times: “Yes, I would pursue a great career, but, I value human relationships –

(Laughter)

more than accomplishment. I want to be a great friend. I want to be a great spouse. I want to be a great parent, and I will not sacrifice them on the altar of great accomplishment.”

(Laughter)

What do you want me to say? Now, do you really want me to say now, tell you, “Really, I swear I don’t kick children.”

(Laughter)

Look at the worldview you’ve given yourself. You’re a hero no matter what. And I, by suggesting ever so delicately that you might want a great career, must hate children. I don’t hate children. I don’t kick them. Yes, there was a little kid wandering through this building when I came here, and no, I didn’t kick him.

(Laughter)

Course, I had to tell him the building was for adults only, and to get out. He mumbled something about his mother, and I told him she’d probably find him outside anyway. Last time I saw him, he was on the stairs crying.

(Laughter)

What a wimp.

(Laughter)

But what do you mean? That’s what you expect me to say. Do you really think it’s appropriate that you should actually take children and use them as a shield? You know what will happen someday, you ideal parent, you? The kid will come to you someday and say, “I know what I want to be. I know what I’m going to do with my life.” You are so happy. It’s the conversation a parent wants to hear, because your kid’s good in math, and you know you’re going to like what comes next. Says your kid, “I have decided I want to be a magician. I want to perform magic tricks on the stage.”

(Laughter)

And what do you say? You say, you say, “That’s risky, kid. Might fail, kid. Don’t make a lot of money at that, kid. I don’t know, kid, you should think about that again, kid. You’re so good at math, why don’t you –”

The kid interrupts you and says, “But it is my dream. It is my dream to do this.” And what are you going to say? You know what you’re going to say? “Look kid. I had a dream once, too, but – But –” So how are you going to finish the sentence with your “but”? “But. I had a dream too, once, kid, but I was afraid to pursue it.” Or are you going to tell him this: “I had a dream once, kid. But then, you were born.”

(Laughter)

(Applause)

Do you really want to use your family, do you really ever want to look at your spouse and your kid, and see your jailers? There was something you could have said to your kid, when he or she said, “I have a dream.” You could have said – looked the kid in the face and said, “Go for it, kid! Just like I did.” But you won’t be able to say that, because you didn’t. So you can’t.

(Laughter)

And so the sins of the parents are visited on the poor children. Why will you seek refuge in human relationships as your excuse not to find and pursue your passion? You know why. In your heart of hearts, you know why, and I’m being deadly serious. You know why you would get all warm and fuzzy and wrap yourself up in human relationships. It is because you are – you know what you are.

You’re afraid to pursue your passion. You’re afraid to look ridiculous. You’re afraid to try. You’re afraid you may fail. Great friend, great spouse, great parent, great career. Is that not a package? Is that not who you are? How can you be one without the other? But you’re afraid.

And that’s why you’re not going to have a great career. Unless – “unless,” that most evocative of all English words – “unless.” But the “unless” word is also attached to that other, most terrifying phrase, “If only I had …” “If only I had …” If you ever have that thought ricocheting in your brain, it will hurt a lot.

So, those are the many reasons why you are going to fail to have a great career. Unless –

Unless.

Thank you.

(Applause)


LeetCode - Algorithms - 796. Rotate String

Problem

796. Rotate String

Java

my solution - brute method

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public boolean rotateString(String A, String B) {
final int len_A = A.length();
final int len_B = B.length();
if (len_A != len_B)
return false;
if (A.isEmpty() && B.isEmpty())
return true;
for(int i=0; i<len_A; i++) {
A = A.substring(1)+A.charAt(0);
if (B.equals(A))
return true;
}
return false;
}
}

Submission Detail

  • 45 / 45 test cases passed.
  • Runtime: 5 ms, faster than 9.75% of Java online submissions for Rotate String.
  • Memory Usage: 38.4 MB, less than 32.29% of Java online submissions for Rotate String.

trick method

© 20+ basic Algorithms Problems from Coding Interviews 19. How to check if two String is rotations of each other?

There is a simple trick to solve this problem, just concatenate the String with itself and check if the rotation exists there. You can do that by using indexOf or substring method. If the concatenated String contains rotation then given String is a rotation of former.

1
2
3
4
5
6
7
8
9
10
class Solution {
public boolean rotateString(String A, String B) {
final int len_A = A.length();
final int len_B = B.length();
if (len_A != len_B)
return false;
String s = A + A;
return s.indexOf(B) != -1;
}
}

Submission Detail

  • 45 / 45 test cases passed.
  • Runtime: 0 ms, faster than 100.00% of Java online submissions for Rotate String.
  • Memory Usage: 37.2 MB, less than 75.85% of Java online submissions for Rotate String.

LeetCode - Algorithms - 507. Perfect Number

Problem

507. Perfect Number

Java

my solution

There is one fact that odd perfect numbers are greater than \( 10^{1500} \) if exist. By Euclid–Euler theorem, there is a one-to-one relationship between even perfect numbers and Mersenne primes. Even perfect number have the form as \( 2^{p−1}(2^p−1) \).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public boolean checkPerfectNumber(int num) {
if ((num & 1) == 1)
return false;
else {
if (num == 0)
return false;
int n = num;
int p = 0;
for (; (n & 1) == 0; p++) {
n = n >> 1;
}
int x = (2 << (p - 1)) * ((2 << p) - 1);
return num == x;
}
}
}

Submission Detail

  • 156 / 156 test cases passed.
  • Runtime: 0 ms, faster than 100.00% of Java online submissions for Perfect Number.
  • Memory Usage: 37.7 MB, less than 23.24% of Java online submissions for Perfect Number.

LeetCode - Algorithms - 392. Is Subsequence

Problem

392. Is Subsequence

Java

Recursion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public boolean isSubsequence(String s, String t) {
boolean b = true;
final int len_s = s.length();
if (len_s > 0) {
int i = t.indexOf(s.charAt(0));
if (i != -1)
return isSubsequence(s.substring(1), t.substring(++i));
else
return false;
}
return b;
}
}

Submission Detail

  • 15 / 15 test cases passed.
  • Runtime: 0 ms, faster than 100.00% of Java online submissions for Is Subsequence.
  • Memory Usage: 37.5 MB, less than 62.77% of Java online submissions for Is Subsequence.

Iterative

© JAVA clean, quick, concise solution.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public boolean isSubsequence(String s, String t) {
final int len_s = s.length();
final int len_t = t.length();
if (len_s > len_t)
return false;
int i = 0;
for (int j = 0; j < len_t && i < len_s; ) {
if (s.charAt(i) == t.charAt(j)) i++;
j++;
}
return i >= len_s;
}
}

Submission Detail

  • 15 / 15 test cases passed.
  • Runtime: 0 ms, faster than 100.00% of Java online submissions for Is Subsequence.
  • Memory Usage: 37.1 MB, less than 39.06% of Java online submissions for Is Subsequence.

Why tech needs the humanities - Eric Berridge - TED@IBM - Transcript

It is in Apple’s DNA that technology alone is not enough — it’s technology married with liberal arts, married with the humanities, that yields us the results that make our heart sing. — Steve Jobs


You’ve all been in a bar, right?

(Laughter)

But have you ever gone to a bar and come out with a $200 million business? That’s what happened to us about 10 years ago. We’d had a terrible day. We had this huge client that was killing us. We’re a software consulting firm, and we couldn’t find a very specific programming skill to help this client deploy a cutting-edge cloud system. We have a bunch of engineers, but none of them could please this client. And we were about to be fired.

So we go out to the bar, and we’re hanging out with our bartender friend Jeff, and he’s doing what all good bartenders do: he’s commiserating with us, making us feel better, relating to our pain, saying, “Hey, these guys are overblowing it. Don’t worry about it.” And finally, he deadpans us and says, “Why don’t you send me in there? I can figure it out.” So the next morning, we’re hanging out in our team meeting, and we’re all a little hazy …

(Laughter)

and I half-jokingly throw it out there. I say, “Hey, I mean, we’re about to be fired.” So I say, “Why don’t we send in Jeff, the bartender?”

(Laughter)

And there’s some silence, some quizzical looks. Finally, my chief of staff says, “That is a great idea.”

(Laughter)

“Jeff is wicked smart. He’s brilliant. He’ll figure it out. Let’s send him in there.”

Now, Jeff was not a programmer. In fact, he had dropped out of Penn as a philosophy major. But he was brilliant, and he could go deep on topics, and we were about to be fired. So we sent him in. After a couple days of suspense, Jeff was still there. They hadn’t sent him home. I couldn’t believe it. What was he doing?

Here’s what I learned. He had completely disarmed their fixation on the programming skill. And he had changed the conversation, even changing what we were building. The conversation was now about what we were going to build and why. And yes, Jeff figured out how to program the solution, and the client became one of our best references.

Back then, we were 200 people, and half of our company was made up of computer science majors or engineers, but our experience with Jeff left us wondering: Could we repeat this through our business? So we changed the way we recruited and trained. And while we still sought after computer engineers and computer science majors, we sprinkled in artists, musicians, writers … and Jeff’s story started to multiply itself throughout our company. Our chief technology officer is an English major, and he was a bike messenger in Manhattan. And today, we’re a thousand people, yet still less than a hundred have degrees in computer science or engineering. And yes, we’re still a computer consulting firm. We’re the number one player in our market. We work with the fastest-growing software package to ever reach 10 billion dollars in annual sales. So it’s working.

Meanwhile, the push for STEM-based education in this country – science, technology, engineering, mathematics – is fierce. It’s in all of our faces. And this is a colossal mistake. Since 2009, STEM majors in the United States have increased by 43 percent, while the humanities have stayed flat. Our past president dedicated over a billion dollars towards STEM education at the expense of other subjects, and our current president recently redirected 200 million dollars of Department of Education funding into computer science. And CEOs are continually complaining about an engineering-starved workforce. These campaigns, coupled with the undeniable success of the tech economy – I mean, let’s face it, seven out of the 10 most valuable companies in the world by market cap are technology firms – these things create an assumption that the path of our future workforce will be dominated by STEM.

I get it. On paper, it makes sense. It’s tempting. But it’s totally overblown. It’s like, the entire soccer team chases the ball into the corner, because that’s where the ball is. We shouldn’t overvalue STEM. We shouldn’t value the sciences any more than we value the humanities. And there are a couple of reasons.

Number one, today’s technologies are incredibly intuitive. The reason we’ve been able to recruit from all disciplines and swivel into specialized skills is because modern systems can be manipulated without writing code. They’re like LEGO: easy to put together, easy to learn, even easy to program, given the vast amounts of information that are available for learning. Yes, our workforce needs specialized skill, but that skill requires a far less rigorous and formalized education than it did in the past.

Number two, the skills that are imperative and differentiated in a world with intuitive technology are the skills that help us to work together as humans, where the hard work is envisioning the end product and its usefulness, which requires real-world experience and judgment and historical context. What Jeff’s story taught us is that the customer was focused on the wrong thing. It’s the classic case: the technologist struggling to communicate with the business and the end user, and the business failing to articulate their needs. I see it every day. We are scratching the surface in our ability as humans to communicate and invent together, and while the sciences teach us how to build things, it’s the humanities that teach us what to build and why to build them. And they’re equally as important, and they’re just as hard.

It irks me … when I hear people treat the humanities as a lesser path, as the easier path. Come on! The humanities give us the context of our world. They teach us how to think critically. They are purposely unstructured, while the sciences are purposely structured. They teach us to persuade, they give us our language, which we use to convert our emotions to thought and action. And they need to be on equal footing with the sciences. And yes, you can hire a bunch of artists and build a tech company and have an incredible outcome.

Now, I’m not here today to tell you that STEM’s bad. I’m not here today to tell you that girls shouldn’t code.

(Laughter)

Please. And that next bridge I drive over or that next elevator we all jump into – let’s make sure there’s an engineer behind it.

(Laughter)

But to fall into this paranoia that our future jobs will be dominated by STEM, that’s just folly. If you have friends or kids or relatives or grandchildren or nieces or nephews … encourage them to be whatever they want to be.

(Applause)

The jobs will be there. Those tech CEOs that are clamoring for STEM grads, you know what they’re hiring for? Google, Apple, Facebook. Sixty-five percent of their open job opportunities are non-technical: marketers, designers, project managers, program managers, product managers, lawyers, HR specialists, trainers, coaches, sellers, buyers, on and on. These are the jobs they’re hiring for. And if there’s one thing that our future workforce needs – and I think we can all agree on this – it’s diversity. But that diversity shouldn’t end with gender or race. We need a diversity of backgrounds and skills, with introverts and extroverts and leaders and followers. That is our future workforce. And the fact that the technology is getting easier and more accessible frees that workforce up to study whatever they damn well please.

Thank you.

(Applause)


Steve Jobs: “Technology Alone Is Not Enough”

Code Monkey (song)

by Jonathan Coulton

Verse 1

Code Monkey get up, get coffee
Code Monkey go to job
Code Monkey have boring meeting
With boring manager Rob
Rob say Code Monkey very diligent
But his output stink
His code not “functional” or “elegant”
What do Code Monkey think?

Pre-Chorus 1

Code Monkey think maybe manager want to write god-damned login page himself
Code Monkey not say it out loud
Code Monkey not crazy, just proud

Chorus

Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart
Code Monkey like you
Code Monkey like you

Verse 2

Code Monkey hang around at front desk
Tell you sweater look nice
Code Monkey offer buy you soda
Bring you cup, bring you ice
You say no thank you for the soda cause
Soda make you fat
Anyway you busy with the telephone
No time for chat

Pre-Chorus 2

Code Monkey have long walk back to cubicle
He sit down pretend to work
Code Monkey not thinking so straight
Code Monkey not feeling so great

Chorus

Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart
Code Monkey like you
Code Monkey like you a lot

Verse 3

Code Monkey have every reason
To get out this place
Code Monkey just keep on working
See your soft pretty face
Much rather wake up, eat a coffee cake
Take bath, take nap
This job “fulfilling in creative way”
Such a load of crap

Pre-Chorus 3

Code Monkey think someday he have everything
Even pretty girl like you
Code Monkey just waiting for now
Code Monkey say someday, somehow

Chorus

Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart
Code Monkey like you
Code Monkey like you



The workings and concepts of Git - Reader's Digest

concepts

The repository holds all versions of the content, while the working directory is the place where you modify the code. You checkout code from the repository to the working directory and commit changes you’ve made in this working directory back into a new version of the content in the repository.

The main principle of Git

First, Git handles content in snapshots, one for each commit, and knows how to apply or roll back the change sets between two snapshots. This is an important concept. In my opinion, understanding the concept of applying and rolling back change sets makes Git much easier to understand and work with. This is the real basic principle. Anything else follows from this.

Naming

Snapshots are the main elements in Git. They are named with the commit ID, which is a hash ID like “c69e0cc32f3c1c8f2730cade36a8f75dc8e3d480” for example.

Note that the term commit, is used both as verb for creating a snapshot and as name for the resulting snapshot.

Normally you don’t have to work with the commit IDs; instead you work with branches.

In Git, a stream of changes is an ordered list of change sets as they are applied one after another to go from one snapshot to the next. A branch in Git is only a named pointer to a specific snapshot. It notes the place where new changes should be applied to when this branch is used. When a change is applied to a branch, then also the branch label moves to the new commit.

How does Git know where to put the change from a workspace? That is where HEAD points. The HEAD of the development is where you last checked out your workspace and, more importantly, where to commit the changes. It usually points to the branch you last checked out.

The tag command names a commit and allows you to address the individual commit with a readable name. Basically, a tag is an alias for a commit ID but commits can also be addressed with some shortcuts.

gitrevisions is a revision parameter typically, but not necessarily, names a commit object.

Because names like tags or branch names are references to commits, they are called refnames. A reflog shows what has been changed during the lifetime of the name, from when it was created (usually by a branch) until the current state.

Branching

The concept behind branching is that each snapshot can have more than one child. Applying a second change set to the same snapshot creates a new, separate stream of development. And if it is named, it is called a branch.

Branches are created with the git branch <branch name> command on the current HEAD, or git branch <branch name> <commit id> on any valid snapshot version. This creates a new branch pointer in the repository. Be careful, branching this way leaves your workspace at the old branch. You need to checkout the new branch first. With git checkout -b <branch name> the new branch is created, and your workspace is also moved to the new branch.

Two other commands are rather useful:

  • git diff <branch> -- <path> as already mentioned above prints a diff of the given path (file or directory) between the current working directory and the specified branch.
  • git checkout <branch> -- <path> checks out files from a different branch into the working directory, so you can pick changes from another branch.

useful commands concerning to branch

  • git branch — creates a new branch from the current HEAD (working directory).
  • git checkout -b — creates a new branch from the current HEAD, and switches the working directory to the new branch.
  • git diff – — shows the difference of between the working directory and the given branch.
  • git checkout – — checks out files from the given branch into the working directory.
  • git merge — merges the given branch into the current branch.
  • git merge -abort — aborts a merge that resulted in conflicts.

Merging

When you implemented your new feature, you checked it into the repository, for example, on your “feature” branch. When the feature is finished, you need to merge it back into the master branch. You do this by checking out the master branch, and use git merge <branch name>. Git then merges the changes from the given branch into the checked out branch. What Git does to achieve this is it applies all of the change sets from the feature branch onto the tip of the master branch.

Depending on the type of changes in the two branches, and possible conflicts, there are three possibilities that can happen.

  • Fast forward merge
  • No-conflict merge
  • Conflicting merge

merge conflict

如何消除对合并时出现冲突的恐惧心理?

  • 首先可以放心的是,你随时可以撤销一个合并操作,并且返回到冲突发生之前的状态。
  • 只要在命令行界面中键入 git merge --abort 命令,你的合并操作就会被安全的撤销。
  • 当你解决完冲突,并且在合并完成后发现一个错误,仍然还有机会来简单地撤销它。你只须键入 git reset --hard 命令,系统就会回滚到那个合并开始前的状态

git status 显示 unmerged paths,表明存在冲突

发生冲突的文件的内容

  • Git 会非常友好地把文件中那些有问题的区域在 <<<<<<< HEAD>>>>>>> other/branch/name 之间标记出来。

  • 第一个标记后的内容源于当前分支。在尖括号之后,Git 会告诉我们这些改动是从哪里(哪个分支)来的。然后有冲突的改动会被 ======= 分割起来。

  • 使用一个专门的合并工具可以使清理这些冲突变得更容易,你可以通过 git config 命令来设置这个合并工具给 Git。之后当发生合并冲突时,你可以使用 git mergetool 命令来调用这个工具。

  • 手动处理冲突,你必须手动地将文件标记为已解决状态(通过执行命令 git add <filename>)。最终,当所有的冲突被解决后,你必须通过一个正常的提交操作来完成这个清理合并冲突的工作。

resources

The Speed of Darkness

by Muriel Rukeyser

I

Whoever despises the clitoris despises the penis
Whoever despises the penis despises the cunt
Whoever despises the cunt despises the life of the child.

Resurrection music, silence, and surf.

II

No longer speaking
Listening with the whole body
And with every drop of blood
Overtaken by silence

But this same silence is become speech
With the speed of darkness.

III

Stillness during war, the lake.
The unmoving spruces.
Glints over the water.
Faces, voices. You are far away.
A tree that trembles.

I am the tree that trembles and trembles.

IV

After the lifting of the mist
after the lift of the heavy rains
the sky stands clear
and the cries of the city risen in day
I remember the buildings are space
walled, to let space be used for living
I mind this room is space
this drinking glass is space
whose boundary of glass
lets me give you drink and space to drink
your hand, my hand being space
containing skies and constellations
your face
carries the reaches of air
I know I am space
my words are air.

V

Between between
the man : act exact
woman : in curve senses in their maze
frail orbits, green tries, games of stars
shape of the body speaking its evidence

VI

I look across at the real
vulnerable involved naked
devoted to the present of all I care for
the world of its history leading to this moment.

VII

Life the announcer.
I assure you
there are many ways to have a child.
I bastard mother
promise you
there are many ways to be born.
They all come forth
in their own grace.

VIII

Ends of the earth join tonight
with blazing stars upon their meeting.
These sons, these sons
fall burning into Asia.

IX

Time comes into it.
Say it. Say it.

The universe is made of stories,
not of atoms.

X

Lying
blazing beside me
you rear beautifully and up—
your thinking face—
erotic body reaching
in all its colors and lights—
your erotic face
colored and lit—
not colored body-and-face
but now entire,
colors lights the world thinking and reaching.

XI

The river flows past the city.

Water goes down to tomorrow
making its children I hear their unborn voices
I am working out the vocabulary of my silence.

XII

Big-boned man young and of my dream
Struggles to get the live bird out of his throat.
I am he am I? Dreaming?
I am the bird am I? I am the throat?

A bird with a curved beak.
It could slit anything, the throat-bird.
Drawn up slowly. The curved blades, not large.
Bird emerges wet being born
Begins to sing.

XIII

My night awake
staring at the broad rough jewel
the copper roof across the way
thinking of the poet
yet unborn in this dark
who will be the throat of these hours.
No. Of those hours.
Who will speak these days,
if not I,
if not you?


  • Muriel Rukeyser, “The Speed of Darkness” from The Collected Poems of Muriel Rukeyser. Copyright © 2006 by Muriel Rukeyser. Reprinted by permission of International Creative Management.
  • Source: Out of Silence: Selected Poems (TriQuarterly Books, 1992)