Uncategorized

학생을 위한 팁: 프로그래밍 경력을 시작하는 방법

JetBrains의 열정적인 교육 분야 개발자 애드버킷인 Sebastian Aigner는 자신이 학생들과 함께 작업한 경험과 대학 졸업 후 JetBrains에 입사할 때까지의 이야기는 좌절을 겪고 있는 이들에게 영감을 줄 것입니다.

Sebastian_Aigner

JetBrains는 여러분이 프로그래밍 기술을 학습하고 개선할 수 있도록 다음와 같은 내역을 지원하고 있습니다.

JetBrains의 교육 분야 개발자 애드버킷은 어떤 일을 하나요?
저는 개발자 에드버킷 팀의 일원으로서 대학, 학교 및 기타 교육에 대한 이니셔티브를 갖고 JetBrains와의 협력에 관한 일을 해요. JetBrains 도구와 JetBrains의 프로그래밍 언어, Kotlin의 좋은 기능과 이점을 강사, 교수, 교사들에게 피력하여 JetBrains가 강의실에 도입되도록 노력하죠. 또한 학생들이 혁신적인 솔루션 제작에 도전하고 Kotlin과 JetBrains 도구를 사용할 때의 이점을 직접 확인할 수 있도록 하기 위해 대학교 해커톤을 후원하고 조직하기도 해요.

제 모든 활동은 사람들이 자신이 좋아하는 분야에서 능력을 향상할 수 있도록 돕는 일에 초점이 맞춰져 있어요. 저는 항상 다음과 같은 핵심 질문부터 시작하죠. 사람들이 프로그래밍을 더 쉽게 학습하게 하려면 어떻게 해야 하는가, JetBrains 도구와 Kotlin을 더 재미있게 사용하게 하려면 무엇을 해야 하는가 같은 질문이요.

본인의 업무에서 가장 좋아하는 일은 무엇인가요?
컨퍼런스, 해커톤, 채용 박람회의 부스에서 일하는 겁니다. 사용자와 실제로 대화할 때 우리의 작업이 효과를 발휘하고 있음을 제대로 확인할 수 있죠. 사람들이 우리에게 다가와서 다음과 같이 말할 때 따뜻하고 행복한 기분이 듭니다. “안녕하세요! JetBrains 도구 덕에 문제가 해결되었어요”라거나 “도구를 시작하기가 정말 쉽더군요”, “제 개발자 경력을 살린 건 JetBrains였어요”, “JetBrains 없이 과제를 제시간에 끝내지 못했을 거예요”와 같은 말이죠.

반대로 누군가가 아이디어를 가지고 왔을 때 업무에서 실행한 적이 있으신가요?
일상 업무의 주요 작업 중 하나는 Kotlin JS에 관한 주요 피드백 중 하나를 해결하는 거예요. Kotlin JS는 튜토리얼이나 문서가 없기 때문에 시작하기가 어렵거든요.

한번은 학생 해커톤인 hackaTUM과 같은 대학 행사에서 학생들이 찾아와 다음과 같이 말하더군요. “JetBrains에서 도전과제를 내줄 거라고 생각해서 이 행사에 참여했어요.” 그래서 그 다음 해에 도전과제를 들고 참여했더니 기대한 것보다 더 많은 학생 제출물을 받았어요. 저희는 그저 워크샵을 제공하고 도구에 대한 교육만을 하는 것은 아니에요. 이제 학생들에게 학생과 개발자로서의 삶을 향상시키는 혁신적인 솔루션을 만들도록 도전과제를 주기도 합니다.

JetBrains 도구는 학생들에게 어떻게 유용한가요?
한때 학생이었던 사람으로서(웃음), 개인적으로 JetBrains 도구는 입문자에게 최적의 도구라고 생각해요. 학습할 때는 자신이 하고 있는 작업에 대한 피드백을 받는 것이 매우 중요하죠. 피드백은 교수님이나 학우들에게 받을 수도 있지만 사용 중인 IDE에서도 받을 수 있다면 완전히 새로운 차원의 학습 기회가 더해지게 돼요.

스마트한 개발 환경은 사용자가 실수를 하거나 더 좋은 작업 방법이 있을 때 강조 표시해줘요. 이는 본질적으로 작업을 개선할 수 있는 기회가 되죠. 이를 테면 “여기에서 세 개의 중첩 루프를 사용할 필요가 없습니다. 이 코드를 더 읽기 쉬운 방식으로 결합할 수 있을 것입니다.”와 같은 제안으로요. 이 점이 스마트 IDE가 학습자에게 큰 도움이 되는 이유에요. 복잡한 항목과 개선 방법에 관한 생각의 방식을 변화시켜주거든요. 잘못된 코드나 최적의 코드보다 좋지 않은 코드를 작성하면 IDE가 올바른 방향으로 이끌어줘요. 이러한 상황이 몇번 반복되고 나면 어느 순간, 더 나은 코드를 바로 작성하고 있는 자신을 발견하게 될 겁니다.

JetBrains의 교육용 제품에서 저희는 Coursera와 JetBrains Academy와 같은 플랫폼을 통합해 학습자가 원활하게 시작할 수 있도록 만드는 데 전력을 다하고 있어요. JetBrains 도구를 사용하면 프로그래밍 교육과정에서 파일을 복사하고 다운로드할 필요 없이 연습 문제에 바로 액세스하여 풀이할 수 있어요.

JetBrains에서 일하고 싶은 학생들에게 들려 주고 싶은 조언이 있으신가요?
하고 싶은 일에 열정을 가지라는 겁니다. 자기 동기 부여는 JetBrains에서 일할 때 갖추어야 할 주요 덕목 중 하나예요. 도전하고 변화를 두려워하지 말고 혁신적으로 임하세요. 자신이 다 알 수 없다는 사실도 받아들일 수 있어야 합니다. 자신이 알고 있는 것에 의문을 던지고 개인으로서 계속 배우고 성장하려는 자세를 가지고 있어야 합니다. 새롭고 혁신적인 최고 품질의 제품을 구축하는 것, 이것이 JetBrains 사람들이 추구하는 바를 요약하는 말이라고 생각합니다.

일과 학업을 병행하면서 번아웃되지 않는 방법은 무엇일까요?
학업에만 정진하기는 매우 어렵다는 사실은 비밀이 아니죠. 즉, 매주 40시간, 아마 50시간까지 학업에 투자하고 파트타임으로 15~20시간 일하는 게 보통이에요. 하루에 시간은 충분히 많지만 어느 시점에 가면 지치게 돼죠. 안타깝게도 번아웃을 해결할 수 있는 마법 같은 치료법은 없습니다. 제가 드릴 수 있는 최선의 조언은 이것저것 하며 맥락을 바꾸지 말고 일의 체계를 세우고 개별 작업에 집중하라는 겁니다.

JetBrains 인턴십에 지원하는 학생들이 저지르는 일반적인 실수는 무엇인가요?
JetBrains 지원자들은 이력서를 통해 자신의 강점을 잘 강조하는 편이에요. 그러나 일부는 자신의 능력과 지원하는 직책을 연결시키는 데 어려움을 겪는 것 같아요.

좋은 성적과 경험은 훌륭한 출발점이 되겠지만 자신이 갖고 있는 고유한 기술이 고유이 지원하는 직책에 적합한 이유도 잊지 말고 분명히 밝혀야 해요. 자기소개서는 이를 알리기에 아주 좋은 곳이죠. JetBrains는 이 내용을 참고하여 JetBrains에서 제공하는 좋은 기회와 지원자를 쉽게 연결할 수 있어요.

인턴이 된 학생들에게는 어떤 조언을 해주시겠어요?
자신의 일에 집중하세요. 주요 목표는 팀장의 의견을 경청하며 최대한 많은 것을 배우고 자신보다 더 많은 지식을 가진 사람들에 둘러싸여 있다는 사실을 받아들이고 최대한 많은 지식을 흡수하여 작업 중인 모든 프로젝트에 적용하는 것이에요. 그러면 인턴 경험에서 가장 큰 성공을 거둘 수 있는 길이 열릴 겁니다. 물론 함께 일하는 사람들과 의미 있는 관계를 맺으려고도 노력하세요.

프로그래머가 되는 것이 꿈이라는 사실을 어떻게 알게 되셨나요?
11살 때부터였던 것 같아요. 해커와 컴퓨터에 뛰어난 사람들을 그려낸 ‘위험한 게임(War Games)’과 같은 할리우드 영화에 영향을 받은 게 아닌가 싶네요. 저희 아버지는 Free-Basic이라는 Basic의 파생 언어를 알려 주셨어요. 프로그래머는 아니셨지만 언제나 제가 하는 모든 일을 강력히 지지해주셨죠. 그러다가 좋은 친구를 만나 PHP 개발을 접하고, 그 다음에는 Java, 나중에는 Swift를 경험했습니다. Kotlin을 발견했을 때는 그 구문과 접근 방식에 순식간에 빠져 들어 Kotlin 개발에 몰두했어요. JetBrains가 만든 이 언어를 보니 오랫동안 제가 사용할 프로그래밍 언어가 이거라는 사실을 그냥 알겠더군요.

처음 사용해본 JetBrains 도구는 무엇인가요?
뮌헨 공과 대학교에서 첫 학기에 사용해본 IntelliJ IDEA였어요. 그것을 설치한 후(다크 테마를 적용했어요) 미리 작성해 놓은 코드에 대한 모든 경고를 확인했죠. 그리고 그 순간 바로 홀딱 반했어요.

새로운 지식은 어떻게 학습하시나요?
시행착오를 거치며 완전히 몰입하면서 학습해요. 시행착오는 말 그대로 새로운 기술을 사용하여 새로운 것을 만들었다가 버리고 다시 작성하고, 내가 빠져나올 수 없는 수렁으로 프로그래밍한 것은 아닌지 분석하고, 결과물에 만족할 때까지 아키텍처와 설계 결정을 다시 검토한다는 의미이죠.

완전히 몰입한다는 것은 기술에 대한 지식을 수집하기 위해 수많은 채널을 이용하려 애쓰는 것을 의미합니다. 잠자리에 들기 전에 팟캐스트를 찾거나 온라인 강좌를 찾거나 컨퍼런스 발표를 시청하기도 하죠. 각 유형의 매체에서 모든 것을 즉시 파악하지는 못하더라도 기술에 대한 느낌을 얻을 수 있거든요.

프로그래머는 어떤 자질을 가져야 할까요?
좌절에 대한 넓은 관용. 그게 가장 중요한 덕목이에요. 수학 소질이나 강한 논리력이 있는 것도 좋겠죠. 일반적인 믿음과는 달리, 기계가 항상 사용자가 말한 것을 수행하지는 않으며, 적어도 최종 사용자에게는 기계가 자신이 말한 대로 수행하는 것처럼 보이지 않는 경우가 많거든요.

다른 것을 시도하세요. 두려워하지 마세요. 첫 시도가 완벽할 거라고 기대하면 안 돼요. 여러 시간 동안 단 하나의 문제에 몰입하거나 왜 작동을 하지 않는지 파고들 수 있어야 해요. 제가 보기에는 이것이 프로그래머가 되는 데 가장 중요한 자질인 것 같아요.

본문은 Nadya Davydova
Tips for Students: How to Start Your Programming Career를 번역한 글입니다.

Discover more