프로그래밍 언어 또한 일종의 언어로 기계와 이야기하기 위한 수단이다. 그런데 컴퓨터와 이야기하는 일은 융통성이라고는 눈곱만큼도 찾을 수 없는, 즉 지구상에서 가장 까다로운 문법학자와 이야기하는 것과 비슷하다. 여러분이 다른 사람과 이야기한다면, 상대방은 당신이 말한 것을 이해하기 위해 최대한 노력할 것이다. 그러나 컴퓨터는 전혀 그렇지 않다. 컴퓨터는 프로그래머의 아주 작은 실수 하나도 놓치지 않고, 그 실수가 고쳐질 때까지 면전에서 끊임없이 지적한다. 이런 일은 프로그래머의 정신과 성격에도 영향을 끼친다. 그러므로 만약 여러분이 프로그래머를 만난다면, 하루 일과 중 가장 중요한 일이 끊임없이 실패하고 좌절하는 일인 사람을 만나는 것이다.
--- p.34, 「1장 일상을 뒤집는 새로운 종족의 등장」 중에서
프로그래머들은 현재 작업 중인 수십, 수백 혹은 수천 줄의 코드를 머릿속에 담아 놓고는 자신만의 작업 리듬 속에 흠뻑 빠져 있으려 한다. 일단 그런 상태에 도달하면, 프로그래머들은 어렵게 도달한 만큼 필사적으로 그 상태를 유지하려 한다. 프로그래밍 삼매경에 빠져 있는 프로그래머 어깨에 살며시 손을 얹으며, “이봐, 요즈음 어떻게 지내?”라고 말해보라. 다시 그 상태에 도달하려면 1시간 정도 걸릴 마법 같은 상태를 깨뜨린 탓에 여러분은 폭발할 듯 화가 나 식식거리는 프로그래머를 보게 될지도 모를 뿐만 아니라, 세상에게 “이제, 안녕”이라고 작별 인사를 해야 할지도 모른다.
--- p.36~37, 「1장 일상을 뒤집는 새로운 종족의 등장」 중에서
즉, 프로그래머가 한 가지 문제를 해결했다면, 프로그래머 자신만이 아니라 모두를 위해 그 문제를 해결한 셈이다.
--- p.38, 「1장 일상을 뒤집는 새로운 종족의 등장」 중에서
당시의 컴퓨터 사양은 매우 제한적이었다. 윌크스가 작업했던 IBM 704의 경우, 주 메모리에 저장해 실행할 수 있는 프로그램 크기는 약 4,000단어 수준이었다. 그렇기 때문에 프로그래밍은 마치 단편시를 쓰는 일 같았으며, 좋은 프로그래머라면 명령어 하나 헛되이 쓰지 않고 간결하게 프로그래밍할 수 있어야 했다. 한마디로 프로그램은 0과 1로 이루어진 시였다.
--- p.55, 「2장 진화를 거듭하는 프로그래머」 중에서
약간 과장해서 혹은 나름 의미를 담아 프로그래밍에 대해 이야기하면, 프로그래밍은 프로그램을 작성하는 일이라기보다 오히려 프로그램을 고치는 일이다. 컴퓨터 과학의 선구자 가운데 한 명인 시모어 페퍼트 교수는 “처음부터 올바르게 작동하는 프로그램은 없습니다”라고 말하기도 했다.
--- p.109, 「3장 영원한 숙적, 버그」 중에서
심리학자 반즈는 연구보고서에서 “프로그래머들은 조용하고 내성적이지만, 독립심도 강하고 자신에 대한 믿음도 강하다. 또한 논리적이며 분석적이다. 그러나 여전히 다른 사람들과 협력해 일하는 것을 좋아하지 않는 것으로 보아, 그들은 사람보다 기계를 좀 더 편안한 동료로 느끼는 것 같다”라고 말했다.
--- p.154~155, 「4장 이들을 이해해야 세상을 이해한다」 중에서
그러나 수많은 소프트웨어 회사들은 젊고 똑똑한 엔지니어를 뽑아 마치 기계처럼 일을 시키고, 분명 몸에 해로울 만큼 과한 작업 속도를 강요해 그들을 망가뜨린다. 주당 60시간에 이르는 과도한 프로그래밍 작업? 오직 사무실에 앉아만 있는 비활동적인 작업? 사이비 종교 집단에 빠진 듯 사랑하는 사람과 떨어져 일하는 작업? 만약 여러분이 정신질환을 앓은 적이 있다면, 분명 의사는 이런 환경을 최대한 피하라고 말할 것이다. 잘 알려졌듯이 이런 환경이야말로 정신질환의 주범이기 때문이다. 좀 더 솔직히 말하면 건강한 사람조차도 이런 환경에서 계속 일하면 몸에 심각한 문제가 생길 것이다.
--- p.184~185, 「4장 이들을 이해해야 세상을 이해한다」 중에서
일반적으로 프로그램은 간결하면 간결할수록 더 좋다. 언제나 그런 것은 아니지만 프로그램 길이가 짧으면 짧을수록 버그가 발생할 가능성이 줄어들기 때문이다. 반대로 뒤죽박죽 쓰인 코드가 잔뜩 들어 있는 프로그램에는 버그가 있을 만한 곳이 많다. 프로그램이 짧고 간결할수록 프로그래머가 무엇을 의도했고 무엇을 의도하지 않았는지 명확히 알 수 있다. 숲에 나무가 너무 많으면 숲속을 제대로 볼 수 없다.
--- p.216, 「5장 효율적이지 않으면, 아름답지 않아」 중에서
진짜 유용한 프로그래밍 작업은 고독한 총잡이 혼자서 활약하는 것이 아니라 함께 협력해 만들어야 하는 팀 작업이라는 점이다.
--- p.279, 「6장 10X 프로그래머가 세상을 바꾼다?」 중에서
프로그래머는 실력이 좋아지면 좋아질수록 대형 과제의 전체 구조를 시각화하고 만드는 계획을 세운 뒤, 적절한 크기로 일을 나누어 팀원들에게 나누어주고, 그들이 그 일을 잘할 수 있도록 만드는 데 뛰어난 실력을 발휘한다. 그리고 당연하게도 프로그래머가 이런 작업을 잘하면 잘할수록, 그 프로그래머는 직접 프로그래밍할 부분이 줄어든다. 프로그래머는 무언가 만드는 일을 좋아했기 때문에 프로그래머가 되었을 것이다. 그러나 정말로 뛰어난 프로그래머라면, 그는 결국 다른 사람이 프로그램을 잘할 수 있도록 계획을 세우고 도와주는 관리자가 된다.
--- p.283, 「6장 10X 프로그래머가 세상을 바꾼다?」 중에서
애니악이 개발되었을 때 프로그래밍은 애니악 책임자들에게 천공카드 작업만큼이나 하찮게 보였다. 결국 그들은 첫 번째 애니악 프로그래머로서 여성들을 뽑았다. 첫 번째 애니악 프로그래머 팀은 모두 여성이었으며, 그들의 이름은 캐슬린 안토넬리, 베티 홀버튼, 말린 멜처, 루스 테이텔바움, 진 바틱, 프란시스 스펜스였다. 사람들은 6명의 여성 프로그래머들을 ‘애니악 걸’이라 불렀다.
--- p.302, 「7장 시작에는 여성이 있었다」 중에서
영국 전자 회사 광고에서는 단발머리의 여성이 펜을 씹으며 “레오 컴퓨터 최고의 프로그래머 가운데 몇몇은 어느 누구보다도 여성스러워요”라고 말하기도 했다.
인재가 너무 부족했던 탓에 흑인 여성에게도 기회가 주어졌다. (중략) 브레이스웨이트는 캐나다에서 첫 번째 여자 프로그래머가 되었고, 보험회사를 전산화하는 몇몇 대형 프로젝트를 이끌었다. “프로그래머로서의 내 삶은 편안했어. 컴퓨터는 내가 여자인지 혹은 흑인인지 전혀 신경 쓰지 않았거든. 사실 대부분의 여자는 훨씬 힘들게 살았단다.” 그녀가 아들에게 말했다.
--- p.306, 「7장 시작에는 여성이 있었다」 중에서
마골리스는 입학 전에 컴퓨터 프로그래밍 경험이 있는 학생들 상당수가 남학생이라는 사실을 발견했다. 남학생들은 여학생에 비해 자라는 동안 훨씬 많이 컴퓨터에 노출돼 왔다. 예를 들어 남학생이 부모님에게서 컴퓨터를 선물로 받을 가능성은 여학생에 비해 2배 이상 높았다. 또한 부모님이 가족용 컴퓨터를 구매했을 경우, 대개 딸이 아닌 아들 방에 두었다. 게다가 아버지는 아들과 함께 베이직 매뉴얼을 본다거나 프로그래밍을 하며 아들을 격려했다. 반면에 아버지와 딸이 그런 관계를 가지는 일은 매우 드물었다.
--- p.312, 「7장 시작에는 여성이 있었다」 중에서
스피어는 훗날 “고정관념과 편견은 컴퓨터가 단어의 뜻이라고 믿는 것 속에 함께 녹아들어 갑니다. 이런 상황을 좀 더 직설적으로 말하면, 컴퓨터는 사람들의 말로 학습된 덕분에 성차별주의자나 인종차별주의자로 학습됩니다”라고 썼다.
--- p.450~451, 「9장 인공지능은 정말 인간을 대신할 수 있을까?」 중에서
“인공지능 시스템을 설계하는 일에는 도덕적인 선택이 따라옵니다.” 그녀는 덧붙여 말했다. “인공지능 시스템 설계자가 도덕적인 선택을 하려 하지 않는다 해도, 실은 여전히 도덕적인 선택을 하고 있다는 거예요.” 무슨 뜻일까? 인공지능 시스템 설계자가 현실 속 인종차별을 조금도 고치지 않고 그대로 적용한다면, 이미 그것은 현실 속 인종차별이 지속되어도 괜찮다는 도덕적 선택을 하고 있다는 뜻이다.
--- p.460, 「9장 인공지능은 정말 인간을 대신할 수 있을까?」 중에서