제로베이스 커넥to 강사가 말하는 신입 개발자 역량

|JavaScript 이웅모 강사님 인터뷰

커넥to 강사님이 궁금하세요?

사진= 제로베이스 네카라쿠배 JavaScript 담당 이웅모 강사님

사진= 제로베이스 커넥to JavaScript 담당 이웅모 강사님


프로 개발자들 간에 이것은 필수입니다!

  • 오늘은 실무에서 필요한 개발자의 자질과 태도에 관해 살펴보려고 합니다. 제로베이스 커넥to 개발자 양성과정에서 JavaScript 이웅모 강사님은 코딩 기본 개념과 용어를 숙지하는 것, ‘코딩컨벤션’을 지킬 수 있는 커뮤니케이션 역량이 중요하다고 하셨는데요. 예비 개발자가 아닌, ‘현업 개발자’가 되기 위해서는 구체적으로 어떤 역량이 필요할까요. 강사님과 만나 자세한 얘기를 풀어드릴게요.

신입 개발자​가 갖춰야 할 JavaScript 개발 능력은 구체적으로 어느 정도일까요?


어느 정도를 측정하기는 매우 어려워요. 네이버, 카카오 모두 개발자를 뽑는 과정이 있습니다. 그 과정은 매년 바뀌고 있어요. 다만, 보편적인 역량을 말하자면, 간단한 앱(투두리스트, 블로그 등)을 혼자서 처음부터 끝까지 만들 수 있으면 됩니다. 자신이 작성한 코드를 충분히 설명할 수 있으며 작동시키는 데 있어서, “다른 방법이 있는데 이 방법을 왜 택했는지” 설명할 수 있다면 충분하다고 생각합니다.

신입 개발자에게 코딩 스킬 이외에 필요한 역량이 있을까요?


개발자라고, 회사에서 코드만 만들지는 않아요. 미팅을 한다든지, 메일을 보낸다든지 개발자들 간의 커뮤니케이션이 필수입니다. 개발자에게도 의사소통은 협업의 필수 요소입니다. 기본적인 개념과 용어가 약하면 커뮤니케이션에 차질이 생기고 이는 심각한 문제로 이어지기도 합니다.

개발자가 ‘변수’라는 단어를 모른다고 가정해 봅시다. 팀원들에게 ‘변수’를 설명하기 위해 ‘메모리값을 담는 식별자’라고 길게 풀어서 설명해야 합니다. 기초적인 용어를 일일이 설명해야 한다면, 같이 일하는 동료나 선배 입장에서도 곤란해집니다. 코딩을 잘하는 것도 중요하지만 용어에 대한 이해를 기반으로 잘 소통하는 것도 중요합니다.

수업 과정에서 비전공자 수강생분들이 어려워하는 부분은 없나요?


약간의 차이가 있을 수 있는 건 어쩔 수 없는 사실이에요. 전공자 분들은 용어나 개념을 자세히 알지는 못하더라도 그 용어를 많이 들어보기는 했을 테니까요. 비전공자들은 상대적으로 기본 용어나 개념을 익히는데 어려움을 많이 느낍니다. 그래서 커넥to Javascript 수업 초반에 기본 개념과 동작원리를 학습하면서 ‘개발 상식과 용어’에 대해 많이 공부합니다. 본격적인 코딩 실습에 들어가기에 앞서, 컴퓨터 공학 전공과목에서 배우는 내용 중‘JavaScript’, ‘프론트엔드 개발’에 필수적인 내용을 수업에 꼭 포함시키고 있습니다.


시간이 좀 들더라도 시행착오를 겪고,
스스로 체득해 가야 합니다.

기본 개념에 익숙해졌는데 어떻게 구동할 지에 대한 감이 안 온다면 어떻게 공부해볼 수 있을까요?


​컴퓨터 입장에서 내가 만든 코드가 정확히 어떻게 동작하는지 이해하고 있어야 합니다. 알고리즘과 기본적인 자료구조를 이해하는 것도 많은 도움이 되지만, 제일 중요한 건 ‘의식적인 연습’입니다.

책이나 유튜브에 나오는 예제를 타이핑해서 제대로 된 결과가 나오면 넘어가는 넘어가는 방식으로 코딩을 하면 결코 실력이 늘지 않습니다. 현재 능력보다 쉽게 할 수 있는 것을 반복하는 것도 연습이 아닙니다. 자신의 능력을 살짝 넘는 의식적인 연습이 필요합니다. 의식적인 연습에서 시행착오를 겪으면서, 개발자로 성장하는 것입니다.

다른 직무보다 개발자에게 시행착오는 특별한 의미가 될 것 같은데 어떤가요?


개발 공부를 하시는 분들이 코딩할 때 한 번에 풀어내야 한다는 강박감이 있는 것 같아요. 수학 문제 풀 때, 한 번에 풀어서 제출하는 훈련을 많이 해서 그런 건지… 과제를 받으면 한 번에 못 풀면 실력이 없다고 생각합니다. 그러나 절대 그렇지 않습니다.

제로베이스 네카라쿠배 JavaScript 강사 인터뷰 중, 기본 개념과 동작 원리를 기반으로 한 학습 피라미드 이미지

위에 그림1–1을 보면서 설명해 드릴게요. 먼저 제일 밑 부분은 이해의 영역이지만, 중간 부분의 코딩 스킬은 숙달의 영역이에요.

​‘숙달’은 혼자만의 고독한 과정이 필요해요. 오롯이 자신과 싸움입니다. 시행착오를 겪으면서, 하나의 과제를 끝냈을 때 그 과정 안에서 성장하는 것입니다. 시행착오 자체를 비효율적이라고 생각하면 안 됩니다. 시간이 좀 들더라도 시행착오를 겪고, 어떤 지식이 필요한지 스스로 체득해야 합니다.

현업에서 개발자로 일하는 데 어떤 성향이 어울릴까요?


​자신의 스타일을 지나치게 추구하는 것보다는 팀워크가 중요하다고 봅니다. 혼자 코딩할 때는 자신만의 코딩 스타일을 추구해도 문제가 없지만, 현업의 관점에서는 개발자들 사이의 약속이나 규칙, 즉 ‘코딩 컨벤션’을 준수하는 것도 상당히 중요합니다. 팀워크를 발휘할 수 있는 성향이면 좋습니다. 커넥to 과정은 코딩 이론을 공부하는 것을 넘어서, 실무에서 필요한 커뮤니케이션 역량을 기르기 위한 여러 과정이 있습니다.

​우선, 매일 오전마다 2시간씩 하는 ‘러버덕 디버깅’이 있습니다. 커넥to 수강생들은 매일 아침 모여서, 구현이 어렵거나 해결이 어려운 문제에 대해 논의하면서 문제 해결 역량과 팀워크를 키워가고 있습니다. 팀 단위의 프로젝트도 미니 프로젝트, 중간 프로젝트, 최종 프로젝트를 진행하면서 실무에 빠르게 적응할 수 있는 개발자를 양성하고 있습니다.

강사님께서 생각하시는 ‘좋은 개발자’란 어떤 사람인가요?


​‘기본기를 중요하게 생각하는 개발자’입니다. 취미로 개발을 한다면 재미 위주이기 때문에 기본기가 중요하지 않을 수도 있습니다. 그러나 프로가 되실 분들이라면 기본기가 중요합니다.

​무엇보다 가장 중요한 건, ‘자신의 일’을 좋아하는 사람’이 좋은 개발자입니다. 개발 직군이 초봉이 높다거나, 취업이 잘 된다는 이유로 수업을 들으러 왔을 수 있어요. 그러나, 여기 온 이상 이 일을 좋아하지 않으면 안 됩니다. 개발자는 평생 공부해야 합니다. 개발을 정말 좋아하면 공부가 괴롭지 않을 겁니다.

마지막으로, 커넥to로 함께하기를 고민하는 분들께 한마디 부탁드립니다.


​우리는 취미로 코딩을 하려고 모인 게 아니잖아요. 어느 정도 깊이도 없이 어딘가에 입사하겠다고 지원하는 것 자체가 실례이지 않을까요? 그런 측면에서 커넥to 교육과정은 굉장히 힘들고 고되겠지만 하드 트레이닝일 수밖에 없다고 생각합니다.

그럼에도, 과정만 잘 따라와 주신다면, 프론트엔드 개발자로서 갖추어야 할 지식을 얻어가실 수 있습니다. 더불어 실무에서 필요한 개발자로서의 역량을 쌓을 수 있습니다.

고된 여정이겠지만 개발을 사랑하고, 개발자가 되기를 바라시는 분들과 함께하기를 기다리고 있겠습니다.

패스트캠퍼스에서 6년간의 교육 경험을 통해 만든
‘네카라쿠배 스쿨’이 '커넥to'로 변경되었습니다.


제로베이스와 함께한 이야기가 더 궁금하다면,