2월, 파이썬챌린지의 시작
최근에 코딩 숙제를 하려고 구글 검색을 하다가 신기한 경험을 했다. 크롬페이지 상단이 움직이면서 새로운 방에 들어가는 듯이 열리더니 뜬 문구.
“Curious developers are known to seek interesting problem. Solve one from Google?”
what??? 😱 일단 무의식적으로 “I want to play” 를 눌렀다.
2월 한달 간 코딩 챌린지를 하면서 매일 아침 1시간 씩 파이썬 수업을 듣던 때였다. 검색해보니까 이 푸바챌린지는 구글의 secret hiring process 라고 한다. 다양한 경로를 통해 초대장에 수락한 사람들에게 문제를 주고, 모든 레벨을 클리어하면 이후 인사팀에서 인터뷰 연락을 주기도 한다고. 구글 알고리즘이 뭔가 잘못 짚은 듯한 기분.

문제는 그 다음 단계다. 나는 개발자도 아니고 파이썬 입문과정을 밟고있는데 챌린지에 참여하려면 Bash 쉘(Shall) 스크립트부터 알아야 다음스텝으로 넘어갈 수 있다.

딱 봐도 내가 풀 수 있는 문제가 아닌데 괜한 오기가 생겨서 남편의 도움을 받아 다음 스텝으로 넘어갔다.
그렇게 맞이한 첫번째 문제.

7일 안에 풀어야한다는 메세지와 함께 왼쪽 하단에 타이머가 남은 시간을 알려준다.
문제는 이러하다. 요약하면… “현재 미니언들의 ID 는 1, 2, 3,… 42 이런 방식으로 랭킹이 매겨져있는데 이런 재미없는 (“boring”) 방식에 미니언 간에 반발이 생겼다. 그래서 사령관 lambda 는 아주 간단하고도 랜덤한 방식을 사용해서 모든 미니언들에게 새로운 ID 를 부여하기로 했다. 먼저 연속 된 소수 2,3,5,7, 11… 을 이은 긴 문자열(string)을 만들고, 모든 미니언들에게 모자에서 새로운 숫자를 뽑게 했다. 긴 문자열은 (“2357111317192329….”)이런 식으로 계속 이어진다. 모자에서 뽑을 수 있는 숫자는 0부터 10000 사이이며, 뽑은 숫자는 문자열의 첫번째 인덱스가 되고, 첫번째 인덱스부터 다음의 5 자리 숫자를 포함한 ID 를 부여받게 된다.”
파이썬으로 작업 단계를 설정해보면 이렇다. 먼저 소수를 이은 새로운 문자열을 만들고, 0부터 10000 사이에서 임의의 숫자를 랜덤으로 뽑은 후, 그 n 의 값을 첫번 째 인덱스로 지정해주는거다. 문제 해석은 대충 했는데 이걸 코드로 짜는 게…. 나의 실력 밖이다 😭

구글 푸바 챌린지의 결말은…. 잠깐 산책 갔다가 돌아와서, 무의식적으로 노트북에 열린 모든 창을 한번에 꺼버리면서 문제를 풀어보기도 전에 종료됐다. 7일 간 시간을 준다더니 다시 링크에 접속 할 방법을 모르는 게 문제였다.
푸바 챌린지 링크로 아무리 접속으로 해도 다시 이전의 초대장으로 돌아갈 방법이 없었다. (혹시 아는 분 계신가요…? 😭)
그렇게 나의 구글 푸바 챌린지는 허무하게 끝났다. 이후 찾아보니 한국어로 된 리뷰가 꽤 많더라. 어떤 분은 레벨 5 까지 모두 끝내고 구글 인사팀의 연락을 받아 여러 차례 인터뷰를 진행했다는 리뷰도 봤다.
또 다른 후기에서는 레벨 간의 문제에 대한 설명이 나와있다. 레벨 클리어 할 때마다 뛰어다니는 토끼가 꽤 귀엽다.
#30일 코딩 챌린지 후 얻은 것
2월 챌린지가 한참 끝나고 나서 최근에 이 문제를 다시 풀어봤다. 분명 아래 코드보다 훨씬 더 간결하게 작성할 수 있는 방법이 있을텐데… 최소한 코드를 읽고 기분 구문을 쓸 수 있다는 점이 뿌듯하다. 머리를 쥐어짜며 라인을 쓰고 지우고, 왜 에러가 생길까 고민하다보면 생각하는 습관을 자연스럽게 배운다. 코드를 구현하는 방법이 너무나도 다양해서 인터넷에서 검색해서 다른 사람들은 어떤 식으로 접근했을까 찾아보는 것만으로도 배우는게 많다.

요즘은 인터넷에 좋은 강의가 정말 많다. 그 중 추천 할 만한 유료 사이트 중 Udacity 와 Udemy 가 있는데 후자가 부담없는 가격에 들을 수 있어서 입문 수업으로 추천한다. 나는 심플스텝스 파이썬 스터디와 병행하며 안젤라 강사의 “100 Day of Code” 30일 프로젝트를 시작했다. 종종 할인을 할 때 구입하면 $12불 미만의 가격에 결제가 가능하다. 오히려 높은 수업료를 지불하고 들었던 수업보다 재밌게 들었다. 모든 강의는 스몰 프로젝트나 게임을 만들어보면서 배울 수 있도록 커리큘럼이 잘 되어있다.
사실 중도 그만두고 싶었던 적이 여러번 있었다. 15일 차부터는 난이도가 급격히 올라서 내가 이걸 배워서 뭘 하겠나… 생각을 여러번 했다. 그럴 때마다 안 풀리는 문제를 붙잡고 스트레스 받기 보다는 로직을 생각해보고, 실제 구현하는 방법은 선생님 강의를 통해서 따라적으면서 배웠다. 그러다보면, 한달 간 배운 내용이 하나씩 쌓여서 꽤 많은 프로젝트를 해볼 수 있다.
2월 한달 파이썬 챌린지가 끝이 났다. 언제 코딩 공부를 다시 할지는 모르지만, 부디 어딘가 써먹을 수 있길… 😉 아직 한번도 코딩을 배워보지 않았거나 고민하는 분이 있다면 위에 소개한 유데미 코스를 추천한다.
다음 글: 3월 스쿼트 챌린지 (VR게임)