CodeGym /Java Blog /무작위의 /나는 내 인생을 Java에 묶지 않겠다고 다짐했습니다 — 소프트웨어 개발자 Anzor의 이야기
John Squirrels
레벨 41
San Francisco

나는 내 인생을 Java에 묶지 않겠다고 다짐했습니다 — 소프트웨어 개발자 Anzor의 이야기

무작위의 그룹에 게시되었습니다
CodeGym 학생들은 이미 IT 분야에서 일하고 있는 사람들의 이야기를 듣고 싶어한다는 것을 알고 있습니다. 우리는 문제를 직접 해결하여 Java 교육을 이수한 다양한 국가 및 회사의 개발자에 대한 시리즈를 출시했습니다. 이 이야기는 Anzor Karmov 라는 소프트웨어 개발자에 관한 것입니다 (그는 우리 과정의 러시아어 버전에서 Java를 배웠습니다). 이 사람은 고등학교 때부터 파스칼 코딩을 좋아했지만 프로그래머가 될 생각은 없었습니다. 그는 결국 우리 과정에서 프로그래밍을 배웠고 현재 몇 년 동안 백엔드 개발자로 일하고 있습니다. Anzor는 그가 어떻게 했는지 알려줍니다."나는 내 인생을 Java에 묶지 않겠다고 다짐했습니다" — 소프트웨어 개발자 Anzor의 이야기 - 1

"나는 이 공포에 절대 손대지 않을 것이다"

고등학교 때 저는 프로그래밍과 파스칼 언어를 좋아했습니다. 나에게는 가정교사가 있었다. 저는 비즈니스 분석 학위를 받기 위해 대학에 입학했습니다. 이 학습 과정에는 C# 및 Java 학습을 포함한 프로그래밍 수업이 포함되었습니다. 내 인생을 자바에 얽매이지 않겠다고 다짐했던 때를 기억합니다. 선생님은 우리에게 기본 사항을 설명하지 않으셨습니다. 학습자료는 사전 지식을 잔뜩 전제하고 있는 것 같아서 불분명한 부분이 많았습니다. 모두가 이미 프로그래밍을 알고 있다고 가정했습니다. 그때 '이런 공포는 절대 만지지 않겠다'라고 생각했어요. 나의 IT 여정은 Microsoft의 ERP 시스템을 배포한 회사의 면접에 합격하면서 시작되었습니다. IT 부서에는 개발자와 컨설턴트라는 두 종류의 직원이 있었습니다. 컨설턴트는 테스터와 제품 관리자의 역할을 맡았고, 개발자는 개발을 담당했습니다. 저는 컨설턴트로 채용되었지만 이력서에 학교에서 파스칼을 공부한 것으로 나와 있습니다. 이를 토대로 나에게 개발자가 되라고 권유했다. 우리는 Pascal의 일종의 "후손"인 "feces"라고 애칭하는 C#L 언어로 코딩했습니다. 이 공간에서 어느 정도 방향을 잡았을 때 나는 이것이 대략적으로 말하면 개발자가 일할 수 있는 가장 낮은 곳이라는 것을 깨달았습니다. 회사가 나빠서가 아니라, 우리가 사용하는 언어가 적용 범위가 매우 좁았기 때문입니다. 그 지식을 다른 곳에 적용할 것이라고 기대하는 것은 단순히 비현실적이었습니다. 내가 개발자라면 좀 더 보편적이고 널리 적용할 수 있는 것을 배워야 한다고 생각했어요.

"공부를 그만뒀을 때 너무 게으르다고 자책했어요."

공부할 프로그래밍 언어를 선택할 때 제가 선택한 언어는 C++, C#, Java였습니다. 포럼에서 읽은 내용에 따르면 C++는 나에게 어려울 것이며 이 주제를 다루려면 많은 시간이 걸릴 것이라고 결론을 내렸습니다. 제가 Java에 정착하게 된 것은 아마도 이 과정을 접했기 때문일 것입니다. 저는 약 1년 반 동안 프로그래밍 언어를 공부했습니다. 내 상사는 나에게 많은 "도움"을 주었습니다. 그는 내 직장에서 강력한 의욕을 꺾는 사람이었지만 확실히 내가 Java를 배우도록 동기를 부여해 주었습니다. 그는 나쁜 상사였고, 나는 가능한 한 빨리 그에게서 벗어나고 싶었습니다. 하지만 떠나고 싶다는 생각을 깨닫기까지 약 1.5년이 걸렸고, 이는 제가 독학하는 데 들인 시간과 같습니다. 다양하게 공부했어요. 나는 계획을 세웠습니다. 의심할 여지 없이 직업을 바꿔야 하고 Java를 배워야 했지만 1년 반 동안 이 노력에 지속적으로 시간을 할애할 수 없었고 매일 공부할 수도 없었습니다. 한두 달 정도 짧게 쉬는 시간도 있었고, 적극적으로 공부한 달도 있었습니다. 일정은 다음과 같았습니다. 평소보다 훨씬 일찍 일어나 공부하고 직장에 가서 매우 바쁘지 않으면 그곳에서 공부하고 집에 돌아와 다시 공부했습니다. 포기했을 때 나는 너무 게으르다고 자책했고, 상사와의 '밀착한 협력'이 다시 한 번 나에게 영감을 주었고, 나는 열정적으로 학업에 복귀했습니다. 새로운 레벨이 나올 때마다 이전 레벨보다 점점 더 어려워졌던 것을 기억합니다. 첫 번째 레벨이 일주일 정도 걸렸다면 중간에 가까울수록 하나의 과제를 해결하는 데 약 일주일이 걸렸습니다. 이 모든 것을 완전히 포기해야 한다는 생각은 결코 나에게 일어나지 않았습니다. 왜냐하면 이번이 내 인생에서 무슨 일이 있어도 끝까지 도달하겠다고 결심한 유일한 때였기 때문입니다. 저는 이 모토를 채택했습니다. 무언가를 오랫동안 망치면 조만간 뭔가가 잘 될 것입니다. 저는 보통 작업을 하다 막히곤 했는데, 모든 해결 방법이 인터넷 어딘가에 게시되어 있기 때문에 필요한 것을 찾는 것은 어렵지 않았습니다. 도저히 참을 수 없을 때 그냥 기성 솔루션을 잡고 붙여넣었습니다. 그런데 연습 프로젝트가 있었어요. 학교에서 과외를 다닐 때 Sea Battle이라는 게임을 만들고 싶었습니다. 이것이 내 디자인이었습니다. 컴퓨터로 플레이하고 콘솔에 대상 셀의 주소를 입력하면 컴퓨터가 보트에 부딪혔는지, 놓쳤는지 또는 파괴했는지 표시합니다. 그리고 같은 방식으로 컴퓨터는 이에 반응하여 촬영하고, 맞췄는지, 놓쳤는지, 파괴되었는지 알려줍니다. 그런 다음 다중 셀 선박에 충돌한 후 컴퓨터가 더 지능적으로 발사되도록 할 수 없다는 사실에 갇혔습니다. 인간 플레이어가 상대방의 함선을 공격하면 다음 턴에 이전 공격의 위나 아래 또는 왼쪽이나 오른쪽으로 총을 쏠 것입니다. 나는 컴퓨터가 그런 식으로 촬영하도록 할 수 없었습니다. 아마도 두뇌가 충분하지 않았기 때문일 것입니다. 어느 순간 드디어 이 게임 구현을 끝내야겠다는 생각이 들었습니다. 나는 앉아서 코드를 작성했다. 그리고 이전의 난제를 극복했습니다. 28레벨이 되기 전에도 면접을 보러 갔습니다. 나중에 나는 이 일을 하기에는 너무 이르다고 판단했습니다. 나는 프레임워크도 모르고 데이터베이스 작업 방법도 몰랐다는 것을 깨달았습니다. 나는 선택에 직면했습니다. CodeGym에서 모든 것을 완료하고 프레임워크를 배우거나 인터뷰를 시작하는 것이었습니다. 나는 일자리를 찾기로 결정했습니다.

"어느 순간 돌파구가 생겼고 모두가 나에게 전화하기 시작했습니다."

Java를 배울 때 백엔드 개발 또는 Android라는 두 가지 옵션이 있습니다. 그래서 동시에 안드로이드도 배우기 시작했어요. 나는 몇 가지 기본 애플리케이션을 작성했습니다. 하나는 숫자 게임이었고, 다른 하나는 계산기였습니다. 첫 번째 인터뷰는 잘 진행되지 않았습니다. 아직 많은 것을 이해하지 못했거나 알지 못했기 때문입니다. 나는 첫 번째 인터뷰 후 6개월이 지나서 다시 인터뷰에 참석하기로 결정했습니다(이는 엄청난 실패였습니다). Java에 대한 교육을 훨씬 덜 받았을 때 어떤 이유에서인지 인터뷰에 초대를 많이 받았지만 얼마 후 실력이 향상되자 전화가 중단되었습니다. 이것은 약 6개월 동안 지속되었습니다. 꽤 고통스러운 6개월이었습니다. 이 모든 것이 헛된 것이라는 느낌이 스며들었습니다. 계획은 간단했습니다. 나는 계속 공부할 것이며 조만간 더 많은 인터뷰를 요청받게 될 것입니다. 인터뷰에서 나올 수 있는 질문에 대한 답변을 블로그에 올리기 시작했습니다. 나는 정보를 수집하고, 연구하고, 게시하기 시작했습니다. 어떤 사람이 나에게 편지를 써서 내 게시물에 대해 감사를 표하고, 필요한 경우 이력서 작성을 도와주겠다고 제안했습니다. 그는 내 이력서에 대한 피드백을 주었고 내가 수정했습니다. 하지만 어떤 이유에서인지 나는 여전히 인터뷰에 초대받지 못했습니다. 나는 이것을 시장의 소강 상태와 연관시킵니다. 아마도 6월에는 고용주에게 누구도 필요하지 않았을 것입니다. "그러다가 어느 순간 돌파구가 생겼고 모두가 저에게 전화를 걸기 시작했어요." 여러 인터뷰가 있었습니다. 예를 들어, 종이에 답변을 준비해야 하는 그룹 인터뷰가 있었는데, 그들은 차례로 개발자 지망생들을 불러 답변을 주었습니다. 세 번째는 제가 지금 일하고 있는 회사와의 면접이었습니다. 로열티 팩토리라고 합니다. 스타트업으로 시작되었습니다. 회사는 브랜드 충성도를 높이기 위해 고안된 마케팅 도구를 개발합니다. 우리 제품은 주로 레스토랑을 중심으로 다양한 브랜드를 위해 제작한 마케팅 툴킷이지만 주유소, 미용실, 쇼핑센터에도 적합합니다. 해당 제품은 CRM 시스템과 모바일 앱으로 구성되어 있습니다. 따라서 클라이언트가 레스토랑이라면 우리는 이를 위한 모바일 앱을 만듭니다. 레스토랑의 고객은 모바일 앱을 다운로드하고 레스토랑 주인은 CRM 시스템에 액세스하여 타겟 고객을 확인하고 다양한 프로모션의 일환으로 제안을 보낼 수 있습니다. 앱에서 대상 고객은 포인트를 적립하고 특정 보상으로 교환할 수 있는 기능을 얻습니다. 당사의 독립형 모듈 중 하나는 결제 대행사와의 통합을 가능하게 했습니다. 우리는 검역보다 훨씬 앞서 국제 시장에 진출했지만 검역은 바로 집으로 음식 배달에 대한 엄청난 수요를 창출한 것입니다. 많은 레스토랑에서는 고객이 모바일 앱을 통해 주문할 수 있는 기능이 필요했고 그 중 많은 레스토랑이 우리를 선택했습니다. 음식 배달 모듈을 활용하지 않는 고객은 자신에게 맞게 맞춤화해 달라고 요청했습니다. 식당은 배달을 통해서만 살아남을 수 있었기 때문에 격리 기간 동안 사업을 계속하는 데 도움이 되었습니다.

"직장에서 병가를 내고 먹고, 자고, 시험공부만 했어요."

아마 자기 소개서 덕분에 여기서 일자리를 얻었을 거예요. 이번이 100번째 이력서 제출이었습니다. 어느 누구도 나를 인터뷰에 초대하지 않았기 때문에 나는 기분이 좋지 않았습니다. 자기 소개서에 내 고통을 모두 적어서 보냈습니다. 나중에 채용 담당자는 그것이 자신의 인생에서 가장 감동적인 자기 소개서였으며 아마도 그것이 나를 인터뷰에 불러들인 이유였을 것이라고 말했습니다. 인터뷰 후 그들은 나에게 테스트 과제를 주었다: Wi-Fi를 통해 Android 앱을 테스트하는 웹 인터페이스가 있는 프로그램을 작성하는 것. 내 프로그램은 어떤 테스트가 성공했고 어떤 테스트가 실패했는지 표시하도록 되어 있었습니다. 테스트를 완료하는 데 일주일이 주어졌습니다. 내 인생에서 가장 바쁜 코딩 주간이었습니다. 회사에서 병가를 내고 먹고, 자고, 시험공부만 했어요. 드디어 완성해서 제출했습니다. 얼마 후 채용담당자가 저에게 전화를 해서 제가 테스트를 너무 잘해서 다른 지원자를 기다리지 않을 거라고 하더군요. 나는 Java 개발자가 되기 위해 그곳에 갔지만, 그 공석이 채워졌음을 알게 되었고, 자동화된 테스트를 작성하는 테스터가 되어 달라는 제의를 받았습니다. 우리 테스트 부서에서는 나 외에는 Java를 아는 사람이 아무도 없었습니다. 모바일 앱을 수동으로 테스트하는 시스템이 있다고 들었습니다. 이는 웹 인터페이스가 있는 프로그램이었습니다. 웹 인터페이스로 이동하여 테스트 애플리케이션을 테스트 세션에 연결한 다음 수행해야 할 작업을 확인합니다. 나의 첫 번째 임무는 테스트 세션에서 클릭하는 테스터를 교체하는 것이었습니다. 짧은 시간 후에 모든 것이 시작되었습니다. 첫 번째 테스트 사례를 자동화한 다음 두 번째, 세 번째 사례를 자동화했습니다. 불행하게도 모바일 앱이 자동 테스트를 적용할 수 있는 것보다 훨씬 빠르게 시작되었기 때문에 내 아이디어는 프로덕션을 보지 못했습니다. 그들을 위해. 나중에 웹 인터페이스를 테스트하기 위한 두 번째 자동화 테스트 프로젝트가 주어졌습니다. 내부 관리 패널을 테스트로 덮어야 했습니다. 나는 그것을 테스트하기 위해 처음부터 프로그램을 작성하기 시작했습니다. 세 번째 프로젝트를 마쳤을 때 서버 개발자가 있는 부서로 이동하여 코드를 작성해 달라는 제안을 받았습니다. 나는 이것에 기뻐했습니다. 이 부서에서 저는 약간의 개선을 시작했고 시스템에 익숙해졌습니다. 나는 각각의 새로운 작업이 조금 두려웠습니다. 감당하지 못할까 봐 불안했어요. 결국 모든 것이 잘되었습니다. 이제 저는 모바일 앱의 백엔드 개발을 담당하는 팀의 리더입니다. 내 사촌이기도 한 부하 직원 중 한 명도 이 Java 과정을 공부했습니다. 나는 그에게 멘토링을 해왔다. 현재 주니어 개발자입니다. 내가 그에게 공부하도록 동기를 부여했다고 말할 수도 있습니다. 이 훈련은 내 삶을 더 나은 방향으로 변화시키는 데 도움이 되었으며, 나는 이 기회를 사랑하는 사람들과 공유하고 싶었습니다."나는 내 인생을 Java에 묶지 않겠다고 다짐했습니다" — 소프트웨어 개발자 Anzor의 이야기 - 3

초보 개발자를 위한 팁:

1. 공부를 정리하는 방법

우선 제가 어떻게 공부했는지부터 말씀드리겠습니다. 나는 파도 속에서 공부했다. 공부를 전혀 하지 않았던 시기도 있었는데, 아마도 탈진 때문이었을 것입니다. 한 달 넘게 아무것도 하지 않은 기간이 있었습니다. 그리고 회복 기간이 시작됩니다. 계속해서 아무것도 하지 않으면 내 인생에서 아무 것도 변하지 않을 것이라는 것을 깨달았을 때 이런 일이 일어났습니다. 이러한 확신으로 저는 새벽 4시 30분에 일어나 출근 전 공부를 조금 하게 되었습니다. 나는 직장에서 공부했습니다. 그리고 퇴근하고 집에 와서 다시 공부했어요. 시간이 지나면서 자연스럽게 탈진 상태가 되어 몇 달 동안 아무것도 하지 않게 되었습니다. 나는 완전히 포기하지 않았습니다. 단지 내가 멈추면 내 삶은 그대로 유지될 것이라는 것을 분명히 알 수 있었기 때문입니다. 그리고 나는 옛 생활이 마음에 들지 않았습니다. 그래서 그만둘지도 모른다는 생각조차 마음속에 들어오지 않게 하려고 노력했어요. 내 좌우명은 "무언가를 오랫동안 망치면 조만간 뭔가가 될 것입니다."였습니다. 이제 4년이 지나면 같은 일을 하는 것을 권장하지 않습니다. 나는 모든 사람이 그런 자기 학대를 견딜 것이라고 생각하지 않습니다. 쉬지 않고 일하면 탈진이 발생합니다. 스트레스는 스트레스 뒤에 약간의 휴식이 뒤따를 때만 유익합니다. 따라서 (다른 모든 것과 마찬가지로) 공부를 체계화하는 방법에 관해서는 한 번에 조금씩 공부하되 장기적으로 정기적으로 공부하는 것이 좋습니다. 긴장을 풀어야 합니다. 자신을 강요하지 마십시오. 뇌는 휴식과 잠을 자면서부터 모든 것을 동화하기 시작합니다. 이는 학업과 휴식에 대해 똑같이 진지해야 함을 의미합니다.

2. 일자리를 찾는 방법

이것은 간단합니다. 일자리를 구할 때 첫 번째 목표는 면접을 보는 것입니다. 당신은 실패할 가능성이 높습니다. 그러니 당장 취업하는 것에 대해 너무 많이 생각하지 마세요. 시작하려면 인터뷰에 참여하기만 하면 됩니다. 이를 위해서는 어딘가에서 초대를 받을 때까지 다음 3가지 작업만 수행하면 됩니다.
  1. 이력서를 작성하세요.
  2. 이력서를 모두에게 보내세요.
  3. 당신이 받는 피드백을 살펴보세요. 많은 응답을 받지 못한다면 이력서가 매력적이지 않은 것입니다. 이력서 작성 방법, 입사 지원 방법, 자기소개서 작성 방법을 읽어보세요. 1단계로 이동합니다.
첫 번째 인터뷰에 실패한 후에는 스스로에게 칭찬을 해주세요. 특정 지식을 습득하고 인터뷰에 참여하는 것은 대단한 성과입니다. 여기서 가장 큰 실수는 포기하는 것입니다. 물론 거절당하는 것은 불쾌한 일이다. 하지만 모든 것이 계획대로 진행되고 있으며 원하는 직업에 훨씬 더 가까워졌습니다. 다음 목표는 또 다른 면접에 실패하는 것입니다. 그리고 한 번 더, 또 한 번... 그리고 각 인터뷰 후에 무슨 일이 일어났는지 평가하세요. 지식 격차를 살펴보고 이를 더 작게 만드세요. 당신은 서두르지 않습니다. 가장 중요한 것은 꾸준한 노력과 자신에게 친절을 베푸는 것입니다. 당신은 모든 일을 올바르게하고 있습니다. 어느 날 당신은 제안을 받게 될 것입니다. 이것이 당신이 향하는 목적지입니다. 귀하의 당연한 제안입니다. 당신은 정말 대단해요! 제안에 대해 논의할 때 주저하지 말고 질문하십시오. 이상적으로는 미리 질문 목록을 작성해 두는 것이 좋습니다. 작업 흐름이 어떤 것인지에 대한 정보를 요청하세요. 어떤 업무를 맡게 되나요? 언젠가 일하기 싫고 휴식을 취하기로 결정했다면 어떻게 합니까? 아프면 어쩌지? 휴가기간은 28일 연속으로 모두 쓸 수 있나요, 아니면 안되나요? 멘토가 있을까요? 등등. 나중에 불쾌한 놀라움을 느끼는 것보다 먼저 모든 질문을 하고 모든 것에 동의하는 것이 좋습니다. 취업 면접에서는 구애와 평가가 양방향으로 진행된다는 점을 기억하십시오. 당신이 필요한 만큼 그들도 당신을 필요로 합니다.

3. 직장에서 편안하게 지내는 방법

너 자신이 되어라. 주저하지 말고 질문하세요. 실수하는 것을 두려워하지 마십시오. 처음에는 많은 내용을 이해하지 못하더라도 스트레스를 받지 마세요. 처음에는 다들 혼란스럽습니다. 약 6~12개월 후에 회사에 실제 이익을 가져오기 시작할 것입니다. 그동안 프로세스에 몰입하고, 제품을 연구하고, 계속해서 학습하세요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION