[초보자들 pilot] 이것이 진정한 초보다!!!!!

project-bs-newbie-cover

초보자들을 소개합니다

사전에 따르면 초보란 단어는 다음의 뜻을 의미합니다.

초보1 (初步) [명사]
1. 처음으로 내딛는 걸음.
2. 학문이나 기술 따위를 익힐 때의 그 처음 단계나 수준.

[출처] 네이버 국어사전

위에 따르면 저는 확실히 초보 개발자가 맞습니다. 비전공자로서 컴퓨터 프로그래밍에 대한 학문을 제대로 익힌 적이 없으며(학원을 다녔지만 거의 없는거나 마찬가지), 작은 사이트를 몇 개 만들어보긴 했지만 어디 내놓기도 부끄러운(…) 허접한 기술 수준을 가졌기 때문이죠.

아차, 본격적인 시작에 앞서 저와 제 동료를 소개하겠습니다. 저희 둘은 지난 6월, 8월에 치열한 경쟁을 뚫고!! 혹독한 인턴과정을 통과하고!! 신입사원으로 Bsidesoft에 합류하게 된 dimanche와 summer라고 합니다.

dimanche는 전기전자제어 전공 출신입니다. 주변사람의 권유로 우연히 듣게된 프로그램 언어 강의 덕분에 프로그래밍 세계에 대한 관심이 커졌습니다. 이것이 전공이 아닌 일로 들어서게 한 계기가 되어 학원을 다니며 공부를 하기 시작했습니다. 하고 싶은 일을 찾아가는 기쁨을 느꼈지만, 동시에 어딜 가야하는지 전혀 모르고 골목길을 헤메는 사람처럼 무엇이 중요한지, 뭘 해야하는지를 모르고 있었습니다. 하지만 Bsidesoft를 입사한 순간부터는 앞에 아스팔트 도로에 들어선 것 같습니다. (언덕도 보이는 것 같지만…) 지금은 좋은 개발자가 될 수 있는 길에 발을 내딛은 운 좋은 개발자라고 생각합니다. (대박)

Summer인 저는 실내건축학과 전공자로 디자인을 했습니다. 웹디자인을 하면서 우연히 컴퓨터 프로그래밍을 접한 것이 계기가 되어 이젠 ‘개발자’라고 적힌 명함을 가지고 다니는 사람이 되었죠. (명함을 볼 때 마다 감격!) 비전공자이기 때문에 살아남으려면 더더욱 개발에 대한 전문적이고 체계적인 지식과 뛰어난 활용 능력을 갖춰야겠다고 생각했지만, 언제나 생각뿐… 정작 취업에 대한 조급함과 잘못된 방식으로 매번 실력은 그 자리였습니다. 그러던 중 감사하게도 정말 Bsidesoft에 입사를 하게 되었고, 제가 바라던 ‘제대로 된 개발자’의 첫걸음을 내딛을 수 있게 되었습니다. 이 자리를 빌어 저를 고용해주신 회사에 감사드ㄹ…

좋은 개발자란?

그동안 제가 생각한 개발이라고 하면

ideal-programmer

컴퓨터로 뭔가를 만드는 것, 위의 사진처럼 뭔가 공대스럽고, 뭔가 하이-테크해보이고, 뭔가 어렵고 ,뭔가 기계적이고 퓨처리스틱퐌타스틱하고….

그렇습니다… 기본적으로 제가 생각하는 개발이란 ‘뭔가를 만드는 것’, 그리고 수많은 느낌적인 느낌들이었습니다. 이 느낌적인 느낌은 그동안 제가 봐온 수많은 (외국)영화와 미드에서 비롯된 환상 탓이지만요.

어쨌든, 이런 느낌적인 느낌 때문에 제가 생각하는 좋은 개발자도

엄청난 집중력과 빠른 타자속도를 가지고 있으며, 코드 몇 줄을 치면 엄청난 일이 일어나게 하는 사람, 프로그래밍 언어를 잘 아는 사람, 기계 같은 사람(?)

이라고 생각했습니다.

저기서 포인트는 “프로그래밍 언어를 잘 아는 사람”입니다. 제가 생각하는 개발은 ‘프로그래밍 언어를 통해 뭔가를 만들어 내는 것’이므로 프로그래밍 언어를 잘 알면 뭔가를 잘 만들어내겠고, 그는 좋은 개발자라고 생각했습니다. 그래서 생활코딩 강좌를 열심히 보고, 책 하나를 정해서 마구마구 외우고, 거기에 나온 내용 바탕으로 웹사이트나 앱 몇 개 만들어보면서 삽질을 (아주)많이 하다가 보면 실력이 좀 늘지 않을까?란 생각을 했습니다. 틀린 방법은 아니었던 것 같은데…. 제 실력이 제자리인걸 보면 뭔가 잘못되었다는 것을 의미하겠죠? 하지만 이에 대해 저는 ‘아냐, 언어에 대해 충분히 몰라서 그래. 언어를 몰라서 개발을 못하는거야’라고만 생각했습니다.

그리고 회사에 들어와서 교육을 받으면서야 이게 단순히 언어 지식에 대한 문제가 아니라는 것을 깨달을 수 있었습니다. 프로그래밍 언어만 잘 안다고 해서 다가 아니었던 것입니다.

 

그럼 도대체 좋은 개발자란 무엇인가?

저희 대표님께서 전에 채용 후기글(이 글 덕분에 ‘이 회사에 가고싶다!!’라고 생각하게 되었습니다.)을 올리신 적이 있는데 일부를 인용하겠습니다.

저는 제 회사를 전문개발사라고 정의하고 있는데, 전문적으로 개발을 하는 회사라는 뜻입니다.
저는 개발과 프로그래밍을 동일시 하지 않습니다.
프로그래밍은 메모리에 적재되는 프로그램을 작성하는 일체의 기술적인 행위를 나타내는 컨텍스트라면 개발은 고객과 시장의 요구사항에 맞춰 사용할 측이 가치를 느끼는 제품을 만들어가는 컨텍스트로 이해합니다.
제 개인적으로 전문 개발사는 고객의 니즈와 예산, 시장의 변화 속에서의 제품의 가치와 방향을 기획하여 뛰어난 프로그래밍실력으로 이를 실현하는 회사라고 정의했습니다.
위에 따르면 개발사는 뛰어난 프로그래밍 실력으로 이를 실현하는 것 이외에도 고객의 니즈와 예산, 시장의 변화(를 파악하고 그)속에서, 제품의 가치와 방향을 ‘기획‘한다고 언급되어 있습니다. 그리고 명시되진 않았지만 ‘실현’해나가는 과정 속에도 코드를 써내려가는 것 이외에도 많은 것들이 있습니다.(심지어 그것들이 코드보다 훨씬 더 중요할지도 모릅니다.) 좋은 개발자라면 이 모든 것을 갖추고 좋은 제품을 만들 수 있는 사람을 의미하겠죠.

Bsidesoft는 이렇게 합니다

그래서 Bsidesoft는 개발을 하 나 도 모르는 초보자들을 좋은 개발자로 성장시키기 위해 이렇게 합니다.

인턴기간

  1. 타자연습 : 개발자의 기본은 빠르고 정확한 타자실력입니다. 생각한건 100인데 타자가 느려서 손가락이 10을 치고 있다면 개발할 맛이 안나겠죠. 그래서 키보드를 보지 않고 한손가락으로 a부터 z까지 5초안에 칠 수 있게 꾸준히 연습합니다. (양손 모두)
  2. 네트워크 공부 : (재차 말하지만) 프로그래밍 언어를 아는 것이 다가 아닙니다. 개발자는 우리가 개발하는 환경 즉, 인터넷을 포함한 네트워크에 관한 기본 지식을 가지고 있어야 합니다. 그래서 인턴 기간에는 다른 어떤 것보다 네트워크 이론을 집중 공략했습니다. 네트워크 레이어에서부터 시작해서 TCP/IP 프로토콜, HTTP 프로토콜 등에 대해 배웠습니다.

신입기간

혹독한(?) 인턴 과정에서 살아남으면, 깃털만큼의 바탕을 갖춘 신입사원으로 레벨업 할 수 있습니다. 신입사원은 크게 교육과 (약간의)실무, 이렇게 2가지 업무를 맡습니다. 아는 것이 거의 없는 상태이기에 실무의 비중은 매우 적은 편이며, 교육을 주로 열심히 받고 있습니다. 교육은 ‘책으로 하는 공부’와 ‘실제로 만들어보는 공부’로 나뉩니다.

  1. 책으로 하는 공부 : 정해주신 책을 읽고, 모르는 것은 질문하고, 글자 그대로 하나하나 다 외우고, 시험을 보는 방식으로 진행됩니다.
  2. 만들어보는 공부 : 읽고 외운 내용을 실제로 써보는 단계입니다. 실장님이 “무엇을 어떻게 만들어라”라고 미션을 내리시면 요구하신 내용을 정리하고 그 내용을 바탕으로 실제 코드를 작성합니다. 작성한 내용은 피드백을 받아 수정을 하며 발전을 시킵니다.

앞으로 연재될 내용은 주로 2. 만들어 보는 공부에서 신입 둘이 좌충우돌 하는 과정으로 채워질 예정입니다. 회사에서 배운 내용들을 제 머리와 포스팅에 잘 담아낼 수 있으면 좋겠네요. 마지막으로 다시 한번 절 고용해주신 회사에 감사드ㄹ…

어쨌든 그 무엇보다 가장 중요한 것은 “좋은 제품을 만드는 좋은 개발자가 되고야 말겠다”라는 마음가짐인 것 같습니다.

초보자들이 개발왕이 될 그날을 향하여!


summer| bsidesoft 신입사원
디자인을 공부했던 섬머는 개발까지 해버리겠다는 욕심으로 개발자의 세계에 입문하게 되었습니다. 개발왕이 되어 멋진 제품을 만들어내는 꿈을 꾸고 있습니다. 코드, 디자인을 포함한 세상의 모든 아름다운 것들과 미드, 그리고 달리기를 좋아합니다.

%d 블로거가 이것을 좋아합니다: