전설의 프로그래머 존 카맥의 팟캐스트를 들으며 내맘대로 요약해본 타래. 무려 5시간 동안 엄청난 에너지를 쏟아낸 팟캐스트. 1/12
Q: 뛰어난 프로그래머는 어떤 사람인가?
A: 사용자에게 가치를 만들어 주는 사람. 프로그래머 자신을 만족시키기 위한 코드는 별 가치 없다. 2/12
Q: 어떻게하면 존 카맥 같은 프로그래머가 될수 있나?
A: 열심히 하는 수밖에…주당 40시간 일은 파트타임으로 적당. 진지하게 잘 하려면 60시간 이상은 일 해야. 그게 현실이다. 모든 사람이 그렇게 할 필요는 없다. 하지만 훌륭한거 만들려면 딴방법 없다. 3/12
Q: 프로그래밍할때 습관이 있나?
A: 어려서 가난했는데 피자를 먹고 싶었다. 나중에 게임만들며 매일 도미노 피자에서 피자를 한개씩 주문 15년동안 먹었다. 지금도 코딩하며 다이어트 콜라 하루 9캔씩 마신다. 4/12
Q: 자바스크립트는 어떻게 생각하나? 파이썬은?
A: 괜찮은 언어다. 커뮤니티도 크고 툴 생태계 도 훌륭하고.. 가끔 성능때문에 짜증이 확 나지만(반복 강조 😅)… 그게 모두에게 중요하겠나? 5/12
Q: 처음 게임 만든 언어, 사용한 컴퓨터는 뭐였나?
A: 어셈블리. 그 당시엔 다 어셈블리 몇천 라인이면 게임 만들고 그랬다. 10대에 애플 2로 컴퓨터에 빠졌고 그 담엔 IBM PC. 밥 먹고 코딩만 했다. 행복했다. 6/12
Q: 어떻게 맨땅에서 3D 그래픽스를 구현했나? 수학 천재 아닌가?
A: 사실 난 수학 천재 아니다. 그냥 고등학교때 배운 수학으로 다 가능했다 (존카맥은 대학 2학기만에 게임 만들려고 자퇴) 7/12
Q: 어렸을때 어떻게 자랐나?
A: 집이 가난하고 성격이 좀 우울했다. 편의점가서 만화책 보거나 오락 한두판 하는게 제일 좋았다. 수업은 빠지고 도서관에서 책 읽는날이 많았다. 8/12
Q: 어떻게 대단한 것을 만들었나?
A: 시스템 레벨의 생각이 중요. 모든 것에 1등일 필요는 없다. 그러나 난 하이레벨부터 하드웨어까지 스택의 돌아가는 것을 모두 안다. 그럼 전체를 최적화 하기위해 무엇을 희생할지 결정 할수 있다. 새로운 것을 만들려면 이 시스템 레벨의 결정이 핵심이다. 9/12
Q: 현재 만드는 AGI (범용인공지능) 프로젝은 가능성 있나?
A: 우리가 아직 완전히 모르지만 아주 단순한 방법이 있을것. 너무 단순해서 수만 라인 정도의 코드로 스스로 배울 수 있는 인공지능을 만들수 있을거라고 생각. 2030년 안에 가능하다는데 배팅한다. 10/12
Q: AGI 프로젝은 왜 하는지?
A: 50대가 되고 돈은 많다. 인류에 중요한 프로젝은 무엇일까 생각하니 AI. 수억원어치 GPU 사서 머신러닝 실험 돌리고 있다. 날리던 사람들이 나이들어 이런 “미친 과학자” 프로젝트 하는게 많았으면 좋겠다. 얼마전 투자도 받아 책임감도 생겨 더 집중하게 되더라. 11/12
Q: 젊은이들에게 해주고 싶은 말은?
A: 기술의 겉표면만 긁지말고 레이어를 깊이 파고들어라. 호기심을 가지고 스택의 모든 것을 다 알고 싶어하라. 모든 것을 알아서 시스템 레벨로 생각하는 사람이 되라. 그렇게 모든것을 꽤뚫은 사람이 되면 기회가 찾아온다. 12/12
• • •
Missing some Tweet in this thread? You can try to
force a refresh
SW 엔지니어의 레벨에 관해 생각해본 타래. FAANG기준으로 레벨은 대충
L3: 졸업하고 코딩인터뷰 통과
L4: 코드는 능숙하게 짤수 있는 실력
L5: 큰 기능 하나는 디자인할 실력
L6: 큰 제품 하나는 디자인 할 실력
L7+: 제품 여러개가 일관성있게 돌아가도록 만드는 실력 1/11
레벨이 올라가면 그 전 레벨의 능력은 다 갖추고 있다고 가정한다. 즉 L5 (시니어)가 되면 코딩은 문제없이 깔끔하게 할수 있다는 뜻. 아주 높은 레벨의 사람들 역시 마찬가지. 레벨이 오를수록 바빠서 코딩할 시간이 없지만 필요하면 코딩은 누구보다 잘한다고 보면된다. 2/11
그런데 레벨이 실제로 어떤 의미가 있을까? 바꿔 말해 내가 다음 레벨로 올라가려면 어떤 실력을 갖추어야 할까? 이 문제에 대한 답은 참 애매모호하다. L4도 기능을 디자인 할 수 있는데 그럼 언제 이 디자인은 L5 수준의 디자인이라고 말할 수 있을까? 3/11
구글은 bottom up 컬춰이다보니 누군가 일을 했다는 증거(artifact)를 강조한다. 명령을 내리면 매니저가 했다고 증언 해주면 끝나지만 bottom up에서는 개발자가 제안하고 일을 추진하니 실제 어떤 일들을 했는지 기록을 남기지 않으면 안한 것으로 간주. 2/8
그런 증거(artifact) 예로는 피춰 런치, 디자인 문서, 코드 커밋한 것들, 심지어는 이메일 쓰레드도 유효하다. 어떤 조직에서 기능을 새로 런치하면 "아 퍼프시즌 다가오네" 웃는게 농담만은 아니다. 런치 안했으면 아무리 일을 했어도 점수가 낮다. 3/8
1. "일찍 퇴근, 구글 네임, 페이도 좋으면 뭔가치를 만들든 못만들든 그낭 좋을 것 같은데"
사실 이게 개인의 행복을 위해서는 맞는 말. 승진, 더 많은 돈이 더 행복을 가져다 줄거라 생각지는 않음. 그런데 내가 무언가 노력해 인풋을 넣었는데 아웃풋이 없는건 나름의 고통.
울 부모님은 시골서 농사짓는데, 예를들어 봄에 씨 뿌리고 여름에 뻘겋게 살을 태우며 키워놓은 벼들이 가을에는 다 죽어버린다고 생각하면. 대신 항상 누군가 돈을 다 보상해준다면.
그럼에도 불구하고 이 과정을 행복하게 반복할 수 있을까?
결과에 상관없이 과정의 노동만으로도 행복할까 의문