이 이야기는 Yuri Sharoiko
라는 게임 개발자에 관한 것입니다 . IT에 입사하기 전에 그는 법 집행 기관에서 근무했으며 은행에 보안을 제공했습니다. 그는 곧 이 일에 싫증이 나고 어린 시절의 취미인 컴퓨터 프로그래밍을 떠올렸습니다. 결국 유리는 자바를 배우고 브라우저 게임을 쓰기 시작했다.
"어렸을 때부터 컴퓨터로 일하고 싶었어요"
저는 26세입니다. 저는 노보시비르스크( 러시아의 도시 — 편집자 주 ) 에서 태어나고 자랐습니다 . 저는 어렸을 때부터 컴퓨터를 다루는 일을 하고 싶었고, 게임 개발에 대한 모든 생각이 저를 매료시켰습니다. 일부 텍스트 기반 퀘스트를 C++ 및 C#으로 코딩했지만 (게으름으로 인해) 연구에서는 빛을 발하지 못했습니다. 나는 바보가 아니었고, 단지 체계적이지 못했을 뿐입니다. 이 모든 것이 제가 기회라고 생각한 곳에 등록하게 만들었습니다. 저는 법 집행 기관에서 일할 생각을 했기 때문에 시베리아 주립 철도 공학 대학교(SGUPS)에서 형법학과를 졸업했고, 결국 제가 원하던 곳에 딱 들어맞게 되었습니다. 나는 대학교 2학년 때 조사위원회 인턴십을 마치고 그곳에 머물렀다. 4년차에 나는 채용되었습니다. 지금은 어떨지 모르겠지만 예전에는 3학년이 지나면 그곳에서 취업할 수 있었어요. 나는 대학을 졸업한 지 6개월 만에 중위 직급을 받았다. 1년 더 일했는데, 긴 밤샘과 경비 업무, 사회생활의 부족 등으로 지쳤다는 걸 깨닫고 그만두기로 결정했습니다. 그 후 저는 은행 보안팀의 일원으로 일하게 되었습니다. 이는 내 이야기에서 일부 세부 사항을 생략한다는 의미입니다. NDA는 여전히 유효합니다. 그곳에서 저는 사물을 리엔지니어링하려는 열망을 어느 정도 유지했습니다. 프로세스를 개선하고 자동화했습니다. 결과적으로 이러한 모든 노력은 보안 부서의 통합 액세스 시스템을 만들기 위한 비교적 대규모 프로젝트로 발전했습니다. 부서는 50명으로 구성되었지만 프로그램(그런데 이 프로그램은 악명 높은 MS Access를 기반으로 구축되었습니다. 이는 보안 팀을 위한 소프트웨어 개발에 돈을 지출하고 싶지 않은 은행의 경우 매우 일반적인 접근 방식입니다) 데이터베이스, Excel 및 Word 파일의 자동 생성, Outlook 연결, Adobe Acrobat Reader를 통한 PDF 파일의 텍스트 인식 등 필요한 부분이 많이 있었습니다. 이 일 덕분에 좋은 승진을 하게 됐지만, 보안팀에 있었기 때문에 더 이상 승진할 여지가 별로 없다는 걸 깨달았습니다."나는 공부만 한 것이 아니라 정보를 탐독했다"
2019년 중반부터 피곤함과 지루함의 심연에 빠졌는데, 여자친구가 제가 늘 하고 싶었던 일을 떠올리며 "한 번 해보세요"라고 말하더군요. 왜 안 돼? — 나는 생각했다. 당시 저는 급여와 근무 시간, 경영진의 좋은 평판을 고려하여 밤까지 사무실에 앉아 있기보다는 저녁에 집에서 코드를 작성하는 위치에 있었습니다. 그래서 이 생각은 다시 한 번 나의 욕망을 불러일으켰고 나는 시도해 보기로 결심했습니다. "저주받은" VBA를 제외한 모든 것을 잊어버렸기 때문에( 편집자 주: VBA는 Microsoft Office 제품 라인에 내장된 Visual Basic 프로그래밍 언어를 약간 단순화하여 구현한 것입니다)), 저는 YouTube 비디오를 시청하고 Herbert Schildt의 책 "C++ for Beginners"를 읽는 것으로 시작했습니다. 덧붙여서, 이것은 훌륭한 책입니다. 나는 모든 사람에게 그것을 추천합니다. 어느 시점에서 은행은 Java 재교육 프로그램을 발표했고 저는 그 프로그램에 참여할 수 있었습니다. 두 달 조금 넘게 교육을 마쳤습니다. 솔직히 말해서 거의 아무것도 얻지 못했습니다. 일주일에 두 번씩 두 달 동안 모든 자료를 제대로 다루기에 충분한 시간이 아니기 때문입니다. 강의는 좋았으나 주제가 너무 빨리 넘어가고 실습이 거의 없었습니다. 이 교육 프로그램이 주로 이미 엔지니어로 일하고 있거나 은행 IT 부서의 일원으로 근무하고 있는 사람들을 대상으로 한다는 사실을 인정하지 않는다면 완전히 정직하지 못할 것입니다. 경험이 전혀 없어서 매우 어려웠습니다. "재교육"이 끝나고 은행은 내부 인터뷰를 가졌으며 그 동안 나는 마침내 내가 아무것도 모른다는 것을 깨달았습니다. 은행이 자체 팀에서 누군가를 고용할 의향이 없다면 이는 그 사람이 사실상 아무것도 모른다는 것을 의미합니다. 때는 2019년 12월이었습니다. 몇 번의 인터뷰가 끝난 후, 이 Java 코스가 있다는 소식을 들었습니다. 그래서 제대로 된 지식으로는 쉴 틈이 없다는 사실을 마침내 받아들였을 때 등록을 하고 공부를 시작했습니다. 제가 훈련을 활발하게 받은 시기는 2020년 2월~5월이었습니다. 제가 완전히 전환한 것은 3월에 격리되었을 때였습니다. 원격으로 일하기 때문에 사무실에 갈 필요가 없었습니다. 하루~이틀 정도 지연을 두고 일을 할 수 있도록 절차가 마련됐다. 나는 공부만 한 것이 아니라 24시간 내내 앉아 정보를 탐독했습니다. 오전 8시에 일어나서 공부를 시작하는 것은 정상이었습니다. 그러다가 오후 4시가 지나서 이미 뇌가 튀겨졌을 때 원격 근무로 전환했습니다. 동기 부여에 관해서는, 이것이 내 미래라는 것을 내 안 어딘가에서 이해했을 뿐입니다. 물론, 이 어려운 길을 시작하는 데에는 씩씩한 여자 친구의 지원이 여러 면에서 도움이 되었습니다. 그래서 2달 정도 공부했어요. 나는 심하게 지쳤지만 일반적으로 뇌에 너무 많은 부담을주지 않았습니다. 예를 들어, 무언가를 굽고 싶다면 오븐을 325도까지 예열한 다음 필요할 경우 온도를 높이세요. 오븐을 즉시 450도로 설정할 가능성은 없습니다. 왜냐하면 그렇게 하면 만든 모든 것을 단순히 태울 것이기 때문입니다. 여기에도 동일한 원칙이 적용됩니다. 저는 2~3개월 만에 퀘스트를 완료한 후 고용주가 원하는 모든 기능(Spring, Hibernate, Tomcat 등)을 연구하기 시작했습니다. 그런데 "전문가를 위한 봄 5"라는 책을 읽었습니다. 거기에는 정보의 바다가 있습니다. 물론 이해하기 어려울 때도 있지만 일반적으로 모든 것이 소화 가능합니다. 심지어 유튜브조차도 나에게 이 책보다 봄을 더 잘 설명할 수는 없었다. 또한 Spring 프레임워크에 대한 웹사이트를 살펴보는 것이 좋습니다. 매우 유용한 튜토리얼이 있습니다. 제가 배우기 가장 어려운 주제는 버퍼, 파일 작업 및 비트 단위 조작이었지만 이러한 내용은 극소수의 장소에서만 사용되며 그 중 99%는 진행에 필요합니다. 내 어려움은 모든 곳에서 재귀로 인해 더 많았습니다. 혼란스러웠을 뿐인데, 학습이란 바로 그런 것입니다. 뭔가 잘못된 일을 하고 나서 그것을 올바르게 하는 방법을 알아내는 것입니다. 당신은 이유와 이유를 이해하고 그런 다음 그러한 실수를 저지르지 않습니다. 결국, 아무것도 하지 않고서는 결코 배울 수 없습니다."IT 분야에서 자리를 잡기 위해 천재가 될 필요는 없습니다."
레벨 28부터 일자리를 찾기 시작했지만, 내 지식이 충분하지 않다는 것을 금방 깨달았습니다. 그런 다음 잠시 휴식을 취하고 5월에 퀘스트를 완료하고 프레임워크에 대해 읽은 후 다시 구직 활동을 시작했습니다. 채용되기까지 적어도 10번의 면접을 본 것 같아요. 요즘 IT 관련 인력은 많지만, 채용 병목 현상을 극복하기가 점점 어려워지고 있습니다. 보통 10명 중 3명은 1~2개월 안에 취업한다고 합니다. 나머지는 더 오래 걸리고 때로는 훨씬 더 오래 걸립니다. 하지만 그렇다고 해서 이 리소스를 포기해야 한다는 의미는 아닙니다. 네 번째 면접에 떨어졌을 때, 그들은 나에게 "계속 면접을 해라. 결국 모든 것을 기억하게 될 것이고, 면접에 합격하고 취업할 수 있을 것이다. 직장에서 빨리 배울 것이다"라고 말했다. 면접에서는 대부분 같은 질문을 받습니다. 즉, 면접관이 알고리즘에 대해 이야기하기 시작할 때 드문 예외도 있습니다. 예를 들어, 저는 정부를 위해 사회 프로젝트를 수행하는 회사에 취업하려고 했습니다. 그때 알고리즘에 대한 질문을 받았습니다. 나는 나쁘게 대답했지만 여전히 내 자신의 질문에 답했습니다. "정말로 알고리즘 작업이 허용됩니까?" 이에 대해 그들은 "당연하지 않다. 우리는 이를 위해 중간 수준 및 고위 개발자로 구성된 특별 팀을 보유하고 있다"고 말했다. 내 관심이 너무 높아서 그들이 굳이 물어보는 이유에 대해 더 자세히 설명해 달라고 요청했습니다. 이것은 단순히 경영진이 설정한 요구 사항 중 하나인 것으로 밝혀졌습니다. 알고리즘을 사용하여 작업할 수는 없지만 고용되기 전에 알고 있어야 합니다. 인터뷰 중에는 Spring, Hibernate 및 SQL에 대한 지식을 입증하는 것이 특히 중요합니다. 작은 기술이지만 충분한 이해가 부족하면 말도 안되는 소리를 뱉어내기 시작할 것입니다. 따라서 당신이 무슨 말을 하는지 모른다면 더 나은 대답은 다음과 같습니다. "당신이 나에게 묻는 것에 대한 정확한 대답은 모르지만 나는 Spring에 대해 이것저것 알고 있습니다." 등등. 이렇게 하면 아무리 작은 지식이라도 눈에 띌 것입니다. 저는 브라우저 기반 게임을 만드는 게임 스튜디오에 취직했습니다. (경영상의 문제를 피하기 위해 회사 이름은 언급하지 않겠습니다.) 저는 게임의 백엔드 부분을 개발합니다. 즉, 데이터베이스 작업을 하고, 브라우저 추가 기능을 작성하고, 기능을 추가하고, 백엔드와 프런트엔드를 연결합니다. 알고리즘도 다룹니다. 저는 Spring을 사용합니다(마크업, 빈, 파서 등 모든 것이 표준임). 저는 Tomcat, PostgreSQL 및 Hibernate를 사용하여 작업합니다. 일반적으로 나는 최선을 다해 프로젝트를 유지하고 개선하기 위해 나에게 할당된 업무를 수행합니다. 현재 저는 주니어 개발자입니다. 직장에 입사한 첫 2개월 동안 저는 아무것도 이해하지 못했습니다. 마감일이 다가오자 하루에 12~14시간씩 일하기로 스스로 결정했고, 그 결과가 결실을 맺었습니다. 사실, 나에겐 든든한 멘토(15년 경력의 멋진 선배 개발자)가 있다. 그는 말한다, "스스로 알아내세요. 어떻게 작동하는지 보세요." 즉, 그는 도움을 주기 위해 개입하지 않으며, 도움을 준다 해도 극히 드물게 발생합니다. 그리고 그거 알아? 프로그래머가 스스로 생각하도록 강요하는 것은 옳습니다. 처음부터 며칠 동안 고생하며 대가를 치르지 않고 모든 일에 도움을 요청했다면, 나는 전문적인 성장의 길에 들어서지 못했을 것입니다. 이제는 주니어 개발자 수준의 업무를 수행하고 있다고 자신있게 말할 수 있고, 최근에는 한 단계 더 높은 수준의 업무가 할당되는 것을 목격했습니다. 지금은 자기 개발과 자기 개선에 전념하고 있습니다. 프로그래밍은 추진력입니다. 새로운 도전입니다. 처음부터 급여에 대해 걱정하지 마십시오. 6개월이 지나면 괜찮아지고, 1년이 지나면 대체로 훌륭해질 것입니다. 잠재 고객에 대해 이야기하고 있다면 한 자리에 앉아 괜찮은 돈을 벌 수 있고 그것이 자신에게 적합하지 않다고 느끼거나 무엇이든 바꾸는 것을 두려워하거나 위험을 감수할 수 있습니다. 두려워하지 않고 미래를 향해 노력하기 시작한 것이 매우 기쁩니다. 결국, 나는 이전 사무실에서 고된 일을 계속할 수 있었습니다. 궁극적으로 모든 사람이 IT 분야에 진출할 수 있는 것 같습니다. 천재, 과학자, 위대한 수학자일 필요는 없습니다. 인내심이 있고 최첨단을 갈망한다면 모든 것이 가능합니다.초보 개발자를 위한 팁:
- 비디오를 시청하고 읽으십시오. YouTube에서 무언가를 배우기 위해 많은 에피소드를 시청하고 있다면 콘텐츠 제작자 한 명을 선택해 보세요. 제작자마다 생각과 정보를 다르게 전달하기 때문입니다. 한 YouTube 사용자에서 다른 YouTube 사용자로 전환하면 동일한 주제에 대해 혼란스러울 수 있습니다.
- 한 번에 모든 것을 하려고 하지 마십시오. 특히 원격으로 일하지 않고 업무에 집중해야 하는 경우에는 더욱 그렇습니다. 하루에 몇 시간씩 공부하세요. 주말에 자유시간이 있다면 과로하지 마세요. 당신은 이미 일주일 내내 공부했으니, 쉬는 것이 더 나을 것입니다.
- 이력서에 특정 기술을 설명하십시오. 예를 들어, 이력서에 "Java를 알고 있습니다"라고 쓰지 마세요. 너무 모호해요. 면접 질문은 자신이 전혀 모르는 내용을 묻는다면 당황스러울 수 있습니다. 코어 자바를 아시나요? 훌륭합니다. "Core Java"라고 쓰고 그 뒤에 여러분이 잘 알고 있는 몇 가지 사항을 적어보세요.
GO TO FULL VERSION