커뮤니티로 돌아가기

어쩌다 프로그래머가 되다!

Exercism에서 연습 문제를 푸는 게 많은 사람에게 일종의 치료가 될 수 있다는 건 미처 생각지도 못했어요! 멘토링을 통한 사람 간의 교류와 성취감은 강력한 영향을 주는 것 같아요. 최근 Thelma와의 대화에서 그 이야기를 나눠 봤어요!

Jonathan: 자, 안녕하세요 여러분, Exercism 커뮤니티 팟캐스트에 오신 것을 환영해요. 제 이름은 Jonathan이고 남아프리카 케이프타운에서 접속하고 있어요. 지금은 오후 다섯 시고, 제가 알기로는 위스콘신에 살고 있는 Thelma와 함께하게 되어 영광이에요. 오늘 그녀를 인터뷰하고, 그녀의 이야기, 그리고 기술과 그녀의 이야기가 어떻게 만나게 됐는지 조금 더 알아볼 수 있어서 정말 기쁘고요. Thelma, 간단히 자기소개를 해 주시고, 어떻게 지금 있는 곳에 오게 됐는지 조금 들려주세요. 기술 이야기 같은 건 조금 뒤에 나눠도 좋고요. 환영해요. Thelma: 네. 그런데 그건 다 우연이었어요. 해부하는 게 싫어서 비즈니스 칼리지에 갔거든요. 그 학교에서 경제학을 전공했어요. 저는 뭔가에 특별히 관심을 갖는 사람이 아닌데, 제가 꽤 잘했는지 교수님들이... 대학원에 지원해 보라고 하셨어요. 그래서 경제학 전공으로 Brown University에 가게 됐어요. 그리고 거의 바로 남편을 만났고, 육 주 뒤에 결혼했어요. 육 주라니, 와. 제 남편은 경제학을 별로 존중하지 않는 물리학자였어요. 그래서... 당시의 대표적인 인물이었던 Milton Friedman이... 자기 연구 결과 전체를 발표했는데, 제 남편은 한 세션 만에 그걸 발전시켰고, 또 다른 세션에서는 그걸 완전히 무너뜨렸어요. 저는 펠로우십을 갱신하지 않았고, 남편은 그걸 그리 좋아하지 않았어요. Jonathan: 그래요, 그럴 만하네요. Thelma: 그 뒤로 한동안 그냥 떠돌아다녔어요. 뭘 해야 할지 전혀 모른 채로요. 그리고 정말 너무 어려운 수학 강의들을 그냥 청강했어요. Jonathan: 음. Thelma: 그때쯤 우리는 위스콘신에 와 있었어요. 남편은 천공 카드 한 다발로 긴 Fortran 프로그램을 작성하고 있었는데 무척 답답해했어요. 왜냐하면... 뭔가를 제출하면 밤새 기다려야 했거든요. 그 시절엔 결과를 받으려면 그래야 했고, 결과는 적어도 절반은 그가 쉼표를 잘못 찍어 놓은 거였어요. 그래서 나온 건 아무것도 없는 출력이거나 쓰레기 더미뿐이었죠. 그래서 제가 남편 어깨 너머로 들여다보기 시작해서 빠진 쉼표를 넣어 주고 오타도 다 고쳐 줬어요. 그러다가 Fortran 강의를 들어야겠다고 마음먹었어요. 그래서 Fortran 강의를 들었고, 강의가 끝난 뒤에 교수님이 전화를 하셔서 이렇게 말했어요. "저는 대학을 그만두고 소프트웨어 컨설팅 회사를 열 거예요. 우리 회사에 와서 일할래요?" Jonathan: 오, 와우. Thelma: 그게 제가 프로그래밍을 시작하게 된 계기고, 처음 시작한 게 Fortran이었어요. 그래서... 그분이 제게 처음 맡긴 프로그램은... 볼링이었어요. 볼링 기록부였는데, 점수를 계산하는 게 아니라 제 상사가 속한 개인 볼링 리그의 기록을 관리하는 거였어요. 그리고 그 일을 하면서 꽤 많은 프로그램을 만들었어요. 음, 제 딸이 친구들에게 엄마 일은 소를 죽이는 일이라고 말하기 시작했는데, 제가 쓴 프로그램 중 하나가... 젖소에게 뭘 먹여야 하는지 계산하는 거였거든요. 파운드 단위로 사료량을 받고, 영양 요구량을 충족하면서 곡물 같은 것들 사이에서 최소 비용으로 배분하는 걸 해야 했어요. 부피 요구량도 있었고요. 그 모든 요구 사항을 최소 비용으로 충족시키는 거였죠. 그런데 이걸 메모리가 48k인 기계에서 돌렸어요. 그러니 상상이 가시죠. 그런 걸 하려는 최소 비용 프로그램이 어땠을지. 그런데 어느 날 한 농부가 전화를 했어요. "제 소한테 소금을 10파운드나 먹이라고요?" 알고 보니 그 프로그램이 모든 영양 요구량을 충족시키고 가장 싼 부피를 찾다 보니 소금 10파운드가 나온 거였어요. 그래서 그랬던 거예요. 그리고 제가 작업하던 공간이 너무 작아서... 여러 가지 상한값을 두지 못했어요. 몇 개는 있었는데, 소금은 어쩐지 거기 안 들어갔나 봐요. 그다음엔 하드웨어 재고 프로그램도 썼고요. 습도... 그 일에서 주로 기억나는 건 그쪽에 PDP 기계가 있었다는 거예요. 네. 그리고 저는 그... 집에서 옥수수 제분소까지 버스를 타고 다녔는데, 그 크고 커다란 PVP 하드디스크를 들고 말이에요. Jonathan: 네, 꽤 묵직했겠네요. Thelma: 그러다 결국 그분은 소프트웨어 사업부를 닫았어요. Apple 대리점을 시작했는데 그게 소프트웨어보다 훨씬 잘됐거든요. Jonathan: 그럴 만하네요. 와. 그렇게 해서... 그게 처음 단계였다고 할 수 있겠네요. 그리고 소프트웨어 쪽을 마치고 나서, 그러니까 일자리를 잃으신 뒤에... 아, 걱정 마세요, 걱정 마세요. 괜찮아요. Thelma: 스팸 전화를 많이 받아서요. Jonathan: 그럼 계속 정말 짜증나겠어요. 그럼 그때는, 소프트웨어 컨설팅이 끝난 뒤에 다른 일자리를 잡아 두고 있었나요, 아니면 그냥 '그래서 다음엔 어떻게 됐지' 하는 상황이었나요? Thelma: 정확히 언제... 시간 순서가 어땠는지는 좀 가물가물해요. 제가 의과대학에 자원봉사자로 갔다는 건 기억해요. 생리학 교수님이셨는데, 그분이 C로 작성된 프로그램을 주시면서 FORTRAN으로 옮겨 달라고 하셨어요. 그렇게 C를 배웠어요. Jonathan: 네. Fortran에 대해 조금 이야기해 주실 수 있나요? 저는 개인적으로 잘 몰라요. 아직 그렇게 기술적인 사람은 아니지만, Fortran에 대해 조금 더 알아보고 싶어요. Thelma: 저도 그렇게 기술적인 사람은 아니에요. 세상에 나온 첫 번째... 언어 중 하나고, 뭐 그런 거죠. 몇 가지 특징이 있는데, 글쎄요. 더 구체적으로 물어보셔야 할 것 같아요. Jonathan: 괜찮아요, 전혀 걱정 마세요. 그냥 세상에 있는 여러 언어들 중에서 대략 어디쯤에 있는 건지 궁금했어요. 그런데 기술 쪽은 제 강점이 아니라서요. 아주 괜찮아요, 다시 이야기로 돌아가도 돼요. 그게 아마 제가 더 잘하는 쪽이니까요, 말하자면요. 아무튼 다시 돌아가서, 그럼 그 의과대학에서 자원봉사를 시작하셨고, 그 과정에서 C를 익히셨군요. 네, 그리고 나서요. Thelma: 네, 그리고 나서 알게 됐는데... 남편이 물리학자로 있는 UWM에서 IT 시스템을 운영했던 분이 이제는 의과대학에서 IT를 맡고 있었어요. 그래서 그분과 이야기해서 데이터베이스 관련 일을 맡게 됐어요. 아마 세상에서 가장 형편없는 데이터베이스였을 텐데, 다행히 이름은 기억나지 않아요. 그렇게 데이터베이스를 조금 배웠어요. 그런데 제가 의과대학에 있으면서 가장 신났던 건... 그리고 이건 정말 이야기의 일부일 뿐인데, 기술적인 얘기로는, 거기에 멋지고 아주 큰 탈의실이 있어서 9마일 자전거를 타고 온 뒤 샤워를 할 수 있었다는 거예요. Jonathan: 오, 와. 그럼 매일 9마일을 자전거로 가고, 9마일을 돌아오셨다는 거네요. Thelma: 고맙네요. 저는 풀타임으로 일한 적이 없어요. 경력에는 관심이 없었어요. 그냥 스스로 즐기고 있었던 거죠. 괜찮아요. Jonathan: 네, 네. 그럼 잠깐 학교 때로 되돌아가 볼게요. 경제학을 하셨고, 거의 우연히 경제학으로 가게 되셨다고 하셨죠. 네. 어떤 이유가 있었나요, 그러니까 학교에서는 흔히 선택할 수 있잖아요. 좋아, 나는 영문학을 하겠다, 예술을 하겠다, 뭐든지요. 그리고 과학 쪽도 분명히 있고, 경제학은 아마 과학 쪽에 꽤 가깝다고 할 수도 있겠고요. 그쪽으로 끌린 특별한 이유가 있었나요, 아니면 그냥 '그때는 재미있어 보여서'였나요? Thelma: 네. 저는 비즈니스 스쿨에 있었어요. 비즈니스에는 관심이 없었고, 마케팅에도 관심이 없었어요. 그 학교에서는 경제학이 일종의 엘리트들이 하는 거였어요. 그게 저를 끌어들인 거죠. Jonathan: 네, 그럼 경력이라는 게 별로 맞지 않았다고 하셨고요. 그리고 제가 틀렸다면 알려 주세요, 그냥 정리하고 조각을 맞춰 보는 중이에요. 코딩도 거의 우연히 시작하신 것 같아요. 남편 어깨 너머로 보면서 C를 Fortran으로 옮겼다고 하셨고요. 그런데 혹시 어느 순간 '이거다' 싶었던 때가... 아이고. Thelma: 아마 같은 전화인 것 같아요. 네, 지금 연결하려고 하는 중이에요. Jonathan: 죄송해요. 전혀 괜찮아요. 혹시 뭔가 딱 맞아떨어지는 순간이 있었나요, '아, 나 이거 꽤 잘하는데' 싶은 때요. 그냥 취미나 흥미 이상의 뭔가라고 느낀 적이요. '아, 이건 내가 적극적으로 키워 나가고 싶은 거다' 싶었던 순간이 있었나요. 그런 생각이 든 적이 있나요? Thelma: 남편 어깨 너머로 보기 시작하자마자 푹 빠졌어요. 즉시 푹 빠졌죠. 이건 마치 십자말풀이 같다고 정말 생각했어요. Jonathan: 네, 그럼 그 과정의 문제 해결적인 성격이 주목을 끈 건가요? 쉼표를 찾아내는 그런 거요? Thelma: 그렇게 잘하는 편은 아니었어요. 제가 정말 좋아했던 건, 제가 뭔가를 쓰면 그게 전혀 말이 안 되는 거예요. 그러면 컴파일러를 돌리는데, 컴파일러가 실수한 것들을 잔뜩 짚어 주는 거예요. 항상 상호작용적이었어요. 나와, 컴파일 언어인 Fortran이 있는 거죠. 그게 무슨 뜻인지 아시는지 모르겠네요. 네, 저도 익숙해요. 네, 그리고 그 시절엔 오류 메시지들도... Jonathan: 네, 그건 알아요. Thelma: 컴파일러가 내놓는 오류 메시지들이 꽤 끔찍했어요. 그게 뭐라고 하는 건지 알아내는 것도 또 하나의 퍼즐 같았죠. 요즘은 훨씬 나아진 것 같아요. Jonathan: 네, 알겠어요, 알아 두면 좋겠네요. 좋은 정보예요. Thelma: 그런데 마치 누군가 제 손을 잡아 주는 것 같았고, 그게 정말 좋았어요. Jonathan: 네, 그럼 남편분은 천공 카드를 다 만들고 나서 뭐가 제대로 되는지 보려고 밤새 기다려야 해서 머리를 쥐어뜯었다고 하셨죠. 그건 그냥 시간이 오래 걸려서였나요... Thelma: 그는 프로그래밍에는 전혀 관심이 없었어요. 그냥 결과에만 관심이 있었죠. 물리학자였으니까요. 물리학 결과를 찾고 있었던 거예요. Jonathan: 이게 바로 파트너십이죠, 정말 좋은 파트너십이에요. 몇 년 뒤로 건너뛰어서, Exercism은 어떻게 알게 되셨고, Exercism의 어떤 점을 특히 좋아하세요? Thelma: 아이고! 은퇴한 뒤에... 아주 오래전에 은퇴했어요. 자원봉사를 좀 했는데, 꽤 흥미로운 자원봉사였어요. 그러다 그게 끝나고 나니 자원봉사 자리를 찾기가 아주 어려워졌어요. 그래서 컴퓨터를 켰어요. 처음 찾은 게 Udacity였어요. Udacity 아세요? Jonathan: 어, 들어본 것 같긴 한데 잘은 몰라요. 네, 그- 그- 네, 온라인... 강의들이고, 제가 아주 초창기에 찾았어요. 요즘은 좀 사업적으로 변했지만, 그때는 강의가 무료였고 15분 정도 하다가 문제를 하나 주는 방식이었어요. 저는 그곳에서 Python 강의를 들었고 정말 재미있었어요. Thelma: 그다음엔... 제가 남편을 위해 C++로 선형대수 모듈을 작성했었는데, 그걸 정말 싫어했어요. 메모리 할당을 신경 써야 하는 게 잔뜩 있잖아요. 네. 그래서 저는 항상 그것 때문에 파묻혀 버렸어요. 네. 그걸 Python으로 옮겼는데 정말 기분이 좋았어요. Python에서는 메모리 관련 일을 다 알아서 해 주니까요. 네. Jonathan: 그러면 수고와 시간이 많이 절약됐겠네요. Thelma: 그런데, 아, 제가 왜 이 얘기를 하고 있었는지 흐름을 놓쳤어요. 뭔가 생각이 있었는데. Jonathan: 아, Exercism 얘기였어요. Exercism은 어떻게 시작하게 되셨어요? Udacity를 하고 계셨잖아요. Thelma: 그래서 Python 다음엔 뭘 할까 찾아봤는데 전혀 못 찾았어요. 그러다 떠돌아다니다가 Exercism을 찾았어요. 이 플랫폼은 제게 완벽해요. 그러니까... 어... 하고 싶은 대로 자유롭게 할 수 있어요. 학습용 연습 문제를 해도 되고, '나는 학습용 연습 문제는 필요 없어'라고 정해도 되고요. 그리고 여기 멘토링은 정말 환상적이에요. 멋지죠. 다른 데서는 못 하실 거예요. Jonathan: 감사해요. Thelma: 그리고 물론 지금은 특별히 더 훌륭한 멘토링을 받고 있어요. 제가 아들을 설득해서 가입시켰거든요. 지금 제 아들이 저에게 JavaScript를 멘토링해 주고 있어요. Jonathan: 멋져요, 정말 멋져요, 훌륭하네요. Thelma: 아들은 플랫폼에 일주일 있었는데 벌써 불평을 하더라고요. 아, 이미 만나 보셨겠네요. Jonathan: 네, 아니, 그렇죠, 맞아요, 맞아요. 그럼 요즘 Thelma의 하루하루는 코딩과 프로그래밍 면에서 어떤가요? 그냥 문제 해결하는 부분을 즐기시나요? 프로그래밍이 아직도 삶의 큰 부분인가요? 다 어떻게 맞물려 있나요? Thelma: 삶의 큰 부분이에요. 저는 영화 보기 같은 건 정말 못 해요. 그리고 남편은 7년 전에 돌아가셔서 저는 혼자 살고 있어요. 최대한 밖에 나가려고 해요. 올해는 자전거는 끝났어요. 기온이 너무 떨어져서 더는 못 타겠더라고요. Johnson Controls에서 일할 때는... 영하 8도에서도 자전거를 탔는데요. Jonathan: 화씨죠, 확인해 볼게요. 네, 섭씨 8도면 견딜 만하지만 화씨 8도는 다른 차원인 것 같아요. 정말 추워요. 그래서 이제는 그렇게 못 해요. 아마 원하는 것보다 집에 더 많이 갇혀 지내게 될 것 같아요. Thelma: 그래서 프로그래밍이 저를 미치지 않게 붙잡아 줘요. 사람들이 재미로 하는 일들을 많이 못 하니까요. 그리고 멘토링도 저에게는 하나의 교류예요. 친구들이 있는데, 갈수록 더 많은 친구들이 치료사한테 다닌다고 하더라고요. 구슬 공예 재료가 필요하시면 Beadaholique.com에 가 보세요! 요즘은 치료사를 두는 게 유행인 것 같아요. 그래서 저도 사람들에게 '아, 그래, 나도 요전에 치료사랑 좋은 세션을 했어요'라고 말하기 시작했는데, 사실은 Exercism 멘토 한 분을 말하는 거예요. Jonathan: 정말 좋아요, 치료 효과가 크죠, 그리고 그 과정에서 뭔가를 배우게 되는데 그것도 아주 유용하고요. 네. 훌륭해요, 정말 멋져요. 그럼 Thelma, 궁금한 게 있는데요, Exercism에서 저희가 항상 최대한 자세히 이해하려고 하는 것 중 하나가 바로 코딩을 배우려는 사람들에게 어떤 조언을 해 주실지예요. 참여하는 사람들의 범위가 꽤 넓을 수 있고, 각자 배우고 이해하는 방식이 다 다르죠. 그래도 학습 중인 사람에게 강하게 권하고 싶은 특정한 행동이나 패턴, 혹은 배우기 위해 꼭 들였으면 하는 습관 같은 게 있을까요? Thelma: 안타깝네요. 제가 뭔가에 빠져드는 방식은 다른 사람들이 하는 방식과는 좀 달라요. 최근에 어떤 분이 연습 문제에 설명이 충분하지 않다고 불평하는 글을 올렸더라고요. 저는 그 설명 부분이 오히려 꽤 지루하게 느껴질 수 있어요. 그래서 제 앞에 연습 문제가 놓이면, 그때 처음으로 그런 연습 문제를 푸는 데 필요한 모듈이나 뭐 그런 게 궁금해져요. 그러면 나가서 Google에 물어보죠. '이거 어떻게 하는 거죠?' 하고요. 음. 필요를 느끼기 전에는요. 관심을 갖기가 정말 어려워요. 저는 매뉴얼을 못 읽어요. 매뉴얼을 읽을 수가 없다니까요. Jonathan: 오늘 아침에 인기가 많으시네요. 그러니까, 제가 다... 전화가 오네요. Thelma: 이게 뭔지 모르겠어요. 보통 이런 일은 없는데요. Jonathan: 아, 아니에요, 전혀 걱정 마세요. 네, 그러니까 Thelma에게는, 그리고 배우는 사람들을 위한 제안 중 하나는, 실제 삶에서 의미가 있는 걸 하라는 것 같아요. 그런 뜻이죠. 제가 이해하기로는요. 프로그래밍 언어 자체를 능숙하게 하거나 배우는 방법에 대해 강하게 강조하실 것 같아요. Thelma: 네. 제 친구들 중에는 문서를 전부 다 읽기 전에는 아무것도 건드리지 않는 사람들이 있어요. 뭔가 감을 잡고 나서요. 그 친구들이 아마 저보다 나을 거예요. Jonathan: 음, 그러니까 아마 방식이 다르겠죠, 다 다른 방식이요. 제 경우에는 아주 천천히 체계적으로, 구조화된 걸 따라가는 게 도움이 되는데, 그걸 작은 단위로 적용하는 것도 정말 도움이 돼요. 압도당해서 전체를 한 번에 구현하려고 하는 것보다는요. 그러니까 결국 경험을 말씀하시는 것 같아요. 실제 상황에서 경험을 쌓는 게 정말 중요하다는 거죠. 그럼 Thelma, 질문이 하나 있어요. 이건 Exercism 커뮤니티 전체에 하고 싶은 추천 하나를 나누는 시간이에요. 뭐든지 좋아요. 초밥을 먹어 보러 가라, 새로운 프로그래밍 언어를 배워 보라, 자전거를 타러 나가라, 뭐든지요. 원하는 거면 다 돼요. 이번 주에 Exercism 커뮤니티 전체에 어떤 추천을 해 주고 싶으세요? 합리적인 범위 안에서 뭐든 말씀하셔도 돼요. Thelma: 음, 지금은요. 아들에게 멘토링을 받으면서 엄청나게 즐거운 시간을 보내고 있어요. 다들 서로 소통하는 데 어려움을 겪고 있잖아요. 있잖아요, '가족들은 잘 지내?' 같은 거요. 으아아, 그 사람들을 멘토링 관계로 끌어들이세요. Jonathan: 지켜보고 어떻게 되는지 보세요. 멋져요, 정말 즐겁게 하세요. 그리고 저도 꼭 말씀드리고 싶었던 게 있는데요. Thelma: 제 이력이라 할 수 없는 이력에서 정말 다양한 일을 했어요. Johnson Controls라는 회사에 갔는데, 거기서 시뮬레이션 소프트웨어를 하게 됐어요. Thelma: 네, 와. 그때 펩시 병 바닥에도 작업을 하게 됐는데, 그게 균형이 잘 안 맞았거든요. 세상 거의 모든 수학자처럼 리만 가설을 연구하던 수학자 친구를 위해서도 프로그래밍을 좀 했어요. 그를 위해 Python 작업도 좀 했고요. 뭘까요, 정말 흥미로운 일을 많이 했어요. 그런 것들도 알려지면 좋겠어요. Jonathan: 네, 멋져요. 사실 훨씬 더 깊이 들어갈 수 있는 얘기가 많을 것 같아요. 분명히... 뭘 말해야 할지 잘 모르겠다고 하셨지만, 언젠가 꺼내 놓으실 수 있는 이야기가 많이 담겨 있다고 생각해요. 그런데 Thelma, 정말 감사하다는 말씀을 드리고 싶어요. 세부 사항과 뉘앙스까지 깊이 들어가기엔 시간이 많지 않았다는 건 알아요. 그래도 삶의 경험 한 조각, 특히 코딩과 개발에 어떻게 연결되는지를 나눠 주셔서 감사해요. 이 팟캐스트를 통해 전 세계 곳곳에서, 온갖 피부색과 배경과 인종을 가진 사람들이 실제로 뭔가를 시작하게 되기를 바라요. 여기서 들은 걸 가져가서 적용하게 되기를요. 그러니 삶의 이야기, 그리고 Thelma의 이야기를 조금 듣는 게 어딘가의 누군가에게 영감을 줘서 뭔가를 시작하고 실험해 보게 하리라 믿어요. 그래서 감사하다는 말을 전하고 싶었어요. 그리고 언젠가 포럼에서 뵙고, 또 누군가를 멘토링하시는 모습도 보게 되겠죠. 여기 계셔서 기뻐요. Thelma: 아니요! 저는 누구도 멘토링하지 않아요. 다만 멘토가 아니라 기여자로 참여하고는 싶어요. Jonathan: 네, 그러면 정말 좋겠네요. 기여하고 싶으시다면 언젠가 다시 이야기해 봐요. 그런데 삶에 대한 작은 통찰, 그리고 불쑥 나온 이야기들 정말 고마워요. 정말 감사하게 생각해요. 아무튼 지금은 통화에 그대로 계세요. Thelma, 고마워요. 누군가 Thelma에게 연락하고 싶어 하면, 분명 어떻게든 열려 있으실 거예요. 이메일을 온 세상에 공개하지는 않을 거고요. Thelma에게 연락하고 싶은 분은 저에게 메시지를 주시면 거기서부터 진행할게요. 시간 내주셔서 정말 감사해요. 잠깐 이야기 나누고 통화에 함께 있어 줘서 영광이었어요. 조만간 다시 연락드릴게요. Thelma: 고마워요.

커뮤니티의 더 많은 이야기

커뮤니티 멤버들의 이야기를 듣고 배우며 영감을 받아봐요.