반응형

안녕하세요. 신기한 연구소입니다.

초보(신입) 개발자인데 코딩만 잘하면 되는 거 아닌가요? 

막상 프로젝트에 투입되니 잘하고 있는 건지도 모르겠어요.

입사 후 선배 개발자들이 저를 답답하게 봐요. 혼나기도 하고 잔소리도 엄청 들어요.

업무 회의에 들어가면 이해가 잘 안되기도 하고 상사가 업무 지시를 내려도 무슨 말인지 잘 모르겠어요.

혹시, 어렵게 신입(초보) 개발자로 취업했는데 이런 경우가 있지 않으신가요?

이런 경우는 반드시 알아야 하는 것도 있고 그래서 미리 준비를 해야 하는 것도 있답니다.

20년 넘게 프로젝트를 해왔고 그 경험을 바탕으로 개발자들이 어떤 것을 알아야 하는지 정리해 봤습니다.

프로 개발자가 되고 싶다면 꼼꼼히 읽어보고 꼭 실천하길 바랍니다.



비전공이었지만 개발자의 꿈을 안고 독학으로 시작해 국비 학원을 수료하고 수십여 통의 이력서를 보내 신입(초보) 개발자로 첫 발을 내 딛은 지가 벌써 20년 하고도 몇 년이 더 흘렀습니다.  개발자로 살아온 그 시간은 정말 재미도 있었고 어려움도 있었지만 잘 마무리가 되고 오류가 해결될 때는 개발자로서 적성에 맞다는 뿌듯함 같은 것이 있었습니다.

그 많은 프로젝트를 하면서 수많은 사람들을 만났고 그 다양함에 즐겁기도 했고 짜증 나는  경우도 종종 있었답니다. 하지만 세상 어디에도 내 맘에 쏙 드는 사람들만 있는 곳은 없었답니다. 그 이유로 그만두거나 이직을 한다면 세상 어디에도 갈 곳이 없다는 의미인 것입니다.

모두가 겪는 이 난감한 상황을 책을 통해서 많이 극복하고 도움을 받았답니다. 개발 전공책이 아닌 다양한 책을 읽었는데 어떻게 책을 통해서 독서를 통해서 개발자로 잘 성장해 왔는지 그 이야기를 해보려고 합니다.

 

1. 개발자에게 가장 필요한 것은 독서, 책을 통해서 지혜를 얻다.

보통 개발자는 개발 관련 책을 많이 읽습니다. 물론 책을 읽지 않고 구글링 (요즘은 chatGPT)으로 궁금한 부분을 해결하는 코더들도 많습니다. 최신 트렌드나 기술에 뒤처지지 않기 위해 낮에 근무가 끝나면 저녁이나 주말에 관련 책을 구매해서 읽고 코딩하는 멋진 개발자들도 많습니다. 

사진: Unsplash 의 Matias North

하지만 개발자는 코딩만 하는 것은 아닙니다. 사실 프로그램을 만드는 것은 누군가 요청에 의해 돈을 받고 만들어 주는 것입니다. 즉, 요구사항도 확인해야 되고 회의도 자주 하는 등 소통 또한 중요하다는 의미입니다. 기술 위주로만 책을 읽고 기술력만 향상한다면 개발자로서 반쪽짜리라 할 수 있습니다. 

고객(현업)은 자신들이 편하게 일할 수 있는 프로그램이 필요합니다. 그래서 개발자에게 돈을 주고 프로그램을 만들어 달라고 요청합니다. 그런데 보통 고객은 프로그램에 대해 전문적으로 아는 경우가 드뭅니다. 이런 경우 개발자들이 전문 기술 위주로 설명을 한다면 고객은 잘 이해하지 못합니다. 그저 "어려운 건가? 잘 만들어 주겠지." 이 정도로 넘어가는 경우가 종종 있답니다. 하지만 이후 개발이 어느 정도 진행되면 서로 다른 생각을 하고 있다는 것을 알게 되고 그게 프로젝트의 발목을 잡게 됩니다.

또한, 전문 지식이 없는 고객의 경우 표현에 한계가 있기에 개발자에게 제대로 설명을 못하는 경우가 있습니다. 그로 인해 서로 말다툼이 일어나기도 하고 개발자는 고객이 무슨 말을 하는지 모르겠다면서 고객과의 대화를 기피하게 됩니다. 그리고 개발자는 본인 마음대로 대충 개발을 하는 경우가 발생하기도 합니다. 물론 테스트 기간에 고객은 이렇게 말합니다.

"이건 내가 원하는 프로그램이 아닌데요"

그때부터 요구사항, 회의록을 뒤져가며 서로 다툼이 발생하게 됩니다. 

이런 경우가 발생하지 않기 위해서는 개발자의 역할이 정말 중요합니다. 고객은 고객입니다. 고객이 없다면 개발자는 혼자 취미로 개발하는 것이기에 직업이 될 수 없겠지요? 앱이나 솔루션을 만들어 판매하더라도 고객이 있어야 합니다. 우리가 열심히 프로그램 공부를 하는 것은 직업적으로 성공도 하고 돈도 벌기 위해서니까요.

이런 문제를 해결하는 방법 중 가장 좋은 것이 독서입니다. 여기서 독서는 책을 읽는 것인데 책이 전문 개발 서적을 의미하는 것이 아닙니다. 물론 개발 방법론이나 알고리즘도 중요한 읽을거리지만 고객과의 소통을 위해서는 다른 책을 읽어야 합니다.

어떤 책을 읽어야 할까요?

다양한 책들을 읽어야 합니다. 예를 들어 볼까요?

우선 추천하는 분류는 마케팅 책입니다. 개발자가 마케팅 책을 왜 읽어야 할까요? 그 책에는 고객의 마음을 읽고 고객이 원하는 것을 알아내는데 최적화된 내용들이 있습니다. 고객의 마음을 얻는 것이 개발자에게 엄청 중요합니다.

고객의 정확한 요구를 알아낼 수 있고, 어려운 상황이 발생했을 때 효율적인 제안을 통해 도움을 받을 수도 있습니다. 또한 고객은 자기들의 어려움, 필요한 것을 해결해 줄 거라는 믿음을 갖게 되므로 이런 능력이 있는 개발자가 필요하게 되는 것입니다. 심지어 입사 권유를 하는 고객들도 있답니다. 반대로 이야기하면 기존에 개발자들 때문에 많이 힘들었던 고객들이라면 자신들을 이해해 주고 소통이 더 잘되는 개발자를 원하게 된다는 겁니다.

심리학 책도 추천합니다. 고객도 사람이고 개발자도 사람입니다. 심리학 책을 읽다 보면 고객들의 마음을 더 쉽게 이해할 수 있게 됩니다. 물론 나쁜 의도로 그들의 마음을 이용하면 안 됩니다. 심리학 책을 읽는다고 심리학자처럼 된다거나 최면을 걸 수 있는 것은 아닙니다. 심리학 책을 읽으면 내 마음도 정리가 되고 스트레스 해소에 도움이 되기도 합니다.  고객이 어떤 어려움이 있고 그들의 스트레스는 무엇인지 조금이나마 알 수 있게 되면서 그들에게 어떻게 도움을 줄 수 있을지 준비할 수 있는 능력을 키울 수 있습니다. 

보통 이렇게 고객들과 잘 지내고 칭찬받는 개발자들은 아마 독서를 많이 하고 있을 겁니다. 책을 통해서 여러분은 능력 있고 인기 있는 개발자로 성장할 수 있게 된다는 의미입니다.

독서의 소중함을 알았다면 빨리 책을 찾아보세요. 삼국지에서도 여러분은 개발자로의 삶에서 길을 찾을 수 있을 겁니다.

 

2. 개발자에게 시간 관리는 필수템이다.

개발자에게 시간은 정말 소중합니다. 물론 개발자뿐만 아니라 시간은 모두에게 소중합니다. 특히 시간 관리는 개발자라면 철저하게 관리해야 하는 템입니다.

사진: Unsplash 의 Kevin Ku

여러분들은 출퇴근 시간을 어떻게 보내고 있나요? 피곤함에 잠을 잘 수도 있고 무한 스크롤링하는 SNS나 숏 영상을 시청하기도 합니다. 

퇴근 후에는 지인과 한 잔의 술로 하루의 스트레스를 해소할 수도 있고 드라마나 영화를 보면서 저녁을 먹기도 합니다. 또는 늦은 시간까지 게임을 하기도 하겠지요.

주말이나 휴일 또한 밀린 잠을 잘 수도 있고 여기저기 놀러 가기도 하며 친구들과 술을 마시며 새벽까지 놀기도 합니다.

모든 개발자가 그러진 않겠지만 출퇴근 시간이나 사무실에서 개발자들의 이야기를 들으면 대부분 비슷한 방식으로 시간을 보냅니다. 

일전에 고속도로 휴게소 화장실에서 읽은 문구입니다. 이름이 기억나진 않지만 엄청 유명한 고령의 피아니스트 이야기였습니다. 그는 고령의 나이와 엄청난 피아노 실력이 있음에도 매일 아침 피아노를 친다고 합니다. 왜 그렇게 매일같이 열심히 피아노를 치는가? 이제 그 정도 실력이면 그렇게 안 해도 되지 않냐는 질문에 이렇게 대답했다고 합니다.

"나는 매일 아침 피아노를 칠 때마다 실력이 더 나아지고 있다는 것을 느낍니다"

우리도 매일 우리를 갈고닦아야 합니다. 우리는 직업인입니다. 개발자입니다. 

기술과 소통의 능력을 키우기 위해서는 시간을 잘 활용해서 우리 자신에게 투자해야 합니다. 

열심히 하려는 후배 개발자들을 만나면 이런 이야기를 해줍니다.

"고3 때처럼 열심히 해"

 

3. 개발자에게 관계는 성공적인 프로젝트 완수를 위해 필요하다.

공통 개발자에게 개발 요청을 한 적이 있습니다.

"이걸 내가 왜 하나요?"

사진: Unsplash 의 Priscilla Du Preez 🇨🇦

유지보수 사이트에서 몇 번 번복된 일을 요청한 적이 있었습니다.

"이랬다 저랬다 하지 말고 한 번에 정리해서 최종만 주세요"

일정이 급한 프로젝트에서 이런 경우도 있었습니다.

"주신 문서로 개발하기 어렵습니다"

"나는 개발 다 했고 문서까지 만들어 줬으니 알아서 하세요"

 

위 경우는 많은 개발자들이 경험했을 거라 생각됩니다. 또는 본인이 이로 인해 어려움을 겪었을 수도 있고 또는 본인이 주인공일수도 있을 겁니다.

해달라는 대로 해줬는데 못 알아듣는 건 실력문제 아닌가?라고 생각하는 개발자가 은근히 많습니다.

이렇게 해달라고 했는데 다시 바꿔 달라고? 내가 왜 그래야 하는데?라고 생각하는 개발자도 있습니다.

그런데 중요한 것인 이렇게 소통이 어렵거나 고집이 쎈 개발자들은 어느 순간 안 좋은 소문이 날 수도 있습니다. 

근무시간 내라면 몇 번의 변경이라도 해주는 것이 맞습니다. 요청한 사람도 확인하면서 오류를 발견했기에 다시 요청을 할 수밖에 없거든요. 이런 상황에서 짜증을 내면서 두세 번 안 하게 해달라고 하면 요청한 사람은 이후 어떤 생각을 갖게 될까요?

내가 해 줄 수 있는 일이라면 내가 직업인이고 프로라면 당연히 해주는 게 맞습니다. "내가 왜 해줘야 되나요?"라는 표현을 자주 사용하게 되면 어느 누구도 요청을 하지 않게 될 겁니다. 그렇게 되면 할 일이 없게 되겠지요?

나는 개발도 해줬고 문서까지 만들어줬는데 뭘 더 해줘야 하나요? 본인들의 실력이 부족해서 이해를 못 하는데 내가 더 자세히 설명해줘야 하는 건 아닌 거 같다.라는 경우도 봤습니다.

그런데 이렇게 생각해 보세요. 내가 열심히 요구에 맞게 만들어줬는데 그걸 이용해서 개발해야 하는 다른 개발자가 문서만으로는 이해가 안돼서 사용을 못한다면 그 프로그램은 안 만든 것만 못합니다. 

잘 만들어줬으면 다른 개발자들이 잘 사용할 수 있게 최대한 쉽고 예제를 만들어 줘야 합니다. 모든 개발자가 다 똑같지 않기 때문입니다. 

이런 부분들로 일정에 치명적인 문제를 만드는 개발자들이 있습니다. 결국 본인 명성에 먹칠을 하는 겁니다.

내가 만든 프로그램이라면 다른 개발자들이 쉽게 이용할 수 있게 하는 것도 개발자의 실력이고 능력입니다.

근무시간 내라면 몇 번이라도 변경해 줄 수 있다면 직업인으로서 당연한 의무라 생각합니다.이걸 내가 왜 해줘? 가 아니라 내가 도움을 줄 수 있다면 당연히 만들어 줘야지 라는 생각이 개발자의 능력이라고 생각합니다.모 대형 프로젝트에 갔는데 위 경우가 모두 발생하고 있었습니다. 고객이나 사업관리는 프로젝트가 오픈 못할까 봐 엄청 스트레스를 받고 있는 상황이었습니다. 왜 그런지 그 안을 들여다보니 다들 잘하고 있었지만 서로가 소통을 못하고 있었습니다. 그저 선 하나만 연결해 주면 마음을 열고 잘해주는 개발자들이었는데 그 역할을 담당한 개발 총괄은 그저 남 탓만 하고 있었습니다. 개발자들의 능력을 인정하고 정중하게 부탁을 하면 보통 다들 도와줍니다. 어려워하지 말고 책을 읽고 느낀 대로 대화를 시도해 보세요. 삭막한 세상에 살다 보니 마음을 닫고 사는 개발자들도 있습니다. 하지만 그들도 인정받고 부탁을 받는다면 기꺼이 손을 내밀어 도움을 줄 겁니다.

 

4. 정리

신규(초급) 개발자에서 프로 개발자가 되고 싶다면,당연 개발 공부는 꾸준히 해야 하고 사람에 관한 공부를 위해 독서는 필수라 할 수 있습니다.그러기 위해서 시간 관리는 철저히 해야 한다고 다시 강조해 봅니다.

 

반응형
반응형

요즘 개발자 커뮤니티를 방문하면 자주 올라오는 취업 관련글이 있습니다.
개발자가 되고 싶고 개발자로 취업하고 싶은데 어떻게 하면 좋을까 이런 고민글인데요.
많은 예비 개발자들의 가장 큰 어려움이지 않을까 싶습니다.



저도 비전공에 개발의 "ㄱ"도 모르는 상태에서 독학으로 시작했고 학원도 다녔지만 처음엔 정말 이해도 잘 안 되었고 학원 수료 후 취업 걱정도 많았습니다.
내가 개발자가 될 수 있을까?
하지만 절대 포기하지 않았습니다.
프로그래밍 언어들이 어렵고 이해가 안되었지만 묻고 찾고 반복하면서 하나씩 해결을 했습니다.
열심히 하니 옆에서 선배 개발자들이 도와주기도 했습니다.
그렇게 시간이 지나니 개발이 무엇인지 자연스럽게 알게 되었습니다.
개발자로 취업도 하고 프리랜서로 활동도 했습니다.
그리고 이제는 후배 개발자에게 조금이나 도움을 주고 싶어 이 포스팅을 쓰게 되었습니다.
개발자 취업이 요즘 어렵다지만 뭐든지 밀물과 썰물이 있습니다.
준비된 자만이 기회를 잡을 수 있기에 항상 준비된 상태로 있어야 합니다.

개발자가 되고 취업도 하고 싶은데 전혀 관련 지식이 없어서 무엇을 어떻게 시작해야 할지 막막하다면 다음 5가지를 잘 읽고 계획을 세운 뒤 실행해 보세요.


학원 가기 전 보면 도움이 됩니다.

그럼 개발자 취업을 목표로 실행에 자신 있는 분들은 계속 읽어보세요.



1. 용어 정리


드라마 미생을 보면 장그래가 업무 지시받을 때마다 이건 뭔 외계어인가? 하며 어리바리하고 있을 때 오 과장이 무역 용어사전을 건네줍니다.
왜?? 무슨 말인지는 알아들어야 하니까요.

사진: Unsplash 의 Joshua Hoehne


어려운 전문 용어로 된 책을 본 적이 있을 겁니다. 읽을 수만 있지 문장 해석이 안되어 먼 소린가 했던 기억이요.
개발자가 되고 싶다면 자주 사용하는 그들만의 용어, 문서 명칭, 최신 트렌드(AI 같은)에 대한 의미는 알아야 의사소통이 됩니다.
작은 노트에 잘 정리해서 수시로 보면 뇌 구조가 IT방향으로 바뀌는 게 느껴질 겁니다.


2. 공부할 목차 정리


용어 정리를 잘했다면 이제 개발자는 어떤 일을 하는지 알게 되었을 겁니다.
개발자가 되기 위해서는 당연히 공부를 해야 됩니다.
보통 프로그래밍을 위한 공부 해야 합니다.
물론 공부할 것이 다양하게 있지만  하나를 정해서 시작하면서 감을 잡아야 합니다.
하지만 엄청난 두께의 책을 펼치면 소스 코드로 범벅된 페이지들이 나타나는데 보면 헉 소리가 납니다.
이 많은 내용을 언제 이해하고 개발자로 성장할 수 있을까? 걱정이 앞섭니다.
걱정 마세요!

사진: Unsplash 의 Unseen Studio


사실 실전에서 사용하는 개발 문법은 기초적인 것만 우선 알면 됩니다.
나머지는 이런 게 있구나 하는 정도만 익히고 그 부분이 필요한 시점이 되었을 때 찾아서 사용하는 방법만 알면 됩니다.
그래서 기초 문법을 먼저 대상으로 정하는 것이 중요합니다.
처음부터 전부 다 알려고 하면 엄청나게 부담도 되고 의욕 상실로 포기하는 상황이 올 수 있습니다.
문장의 5형식만 새까맣게 공부하고 뒷부분은 깨끗했던 영문법 책처럼요. ^^
그렇다면 어떤 목차를 정해서 집중적으로 공부하면 될까요?


3. 공식 사이트


목차를 정하려면 교재가 있어야 합니다.
보통 책을 생각합니다. 그리고 주변에 조언도 구하고 검색해서 인기 있는 책을 찾아봅니다.
이 책으로 공부 후 다른 책으로 어쩌고 저쩌고...
사람들마다 책 추천이 달라서 혼란스럽기도 합니다.
특히 개발서는 가격도 만만치 않기 때문에 나에게 맞지 않은 책을 샀다가 돈만 날릴 수 있습니다.
신기한 연구소는 해당 언어의 공식 사이트를 추천합니다.
보통 영어로 되어 있습니다.
걱정 마세요.
읽다 보면 같은 단어들이 반복되기에 생각보다 어렵지 않게 읽을 수 있습니다.
번역 프로그램도 잘 되어 있는 세상이고 가끔 한국어로 번역된 사이트도 있습니다.

https://developer.mozilla.org/en-US/


예를 들어 자바, 자바스크립트 등 하나를 선택했다면 해당 공식 사이트에 갑니다.
그리고 그 언어의 탄생, 특징, 어떤 용도로 사용하는지 간단하게 살펴봅니다.
자바스크립트라면 변수부터 시작해서 변수, 제어 흐름, 오류 처리, 로프와 반복, 함수, 표현식과 연산자, 숫자와 날짜 등 기초적인 문법을 기간을 정해서 스터디를 합니다.
당연히 처음 하면 무슨 말인지 잘 이해도 안 되고 오류도 많이 납니다.
모든 선배 개발자들도 그런 처음이라는 시절이 있었습니다.
하지만 포기하지 않고 모르는 건 찾아가면서 이해될 때까지 읽고 코딩하면서 전문 개발자로 성장하게 된 겁니다.
영문법 한 번 공부했다고 100점이 될 수 없는 겁니다.
공부하면서 실전에 쓸만한 부분은 따로 정리하면 좋습니다.


4. 샘플 작업


문법 공부를 하면 따라 하기 코딩을 하게 됩니다.
처음에는 뭔지도 모르고 그저 따라 하고 실행하고 오류 나면 정신이 혼미해지고 잘 되면 기분이 좋아지기도 합니다.
따라 하기 코딩을 하면서 실행이 잘 된다면 약간 변형도 해보세요.
오류가 나면 스트레스받지 마세요. 오히려 그것을 해결하면서 더 많은 공부를 하게 됩니다.
오류가 발생할 때마다 짜증을 내거나 스트레스를 받으면 개발자를 할 수 없습니다.
그 이유는 선배 개발자들도 코딩을 할 때 오류는 항상 발생합니다.
오류를 처리하는 것도 개발하는 과정 중 하나입니다.

사진: Unsplash 의 Luca Bravo


즉, 당연히 오류는 나타나고 당연히 해결하는 게 개발자의 일입니다.
이렇게 코딩 연습을 하다 보면 나름 눈이 트이게 되고 필요한 기능들을 만들어 볼 수 있게 됩니다.
그런 샘플 코드를 잘 정리해 두면 나중에 프로젝트 진행 시 시간 절약과 정시 퇴근에 큰 도움이 됩니다.
그렇게 개발자 준비를 하면서 한 가지 더 익혀두면 좋은 기술이 있습니다.  


5. 사이드 기술


개발자가 개발만 잘하면 되지 뭐가 더 필요할까요?
프로젝트에 투입되면 코딩만 하는 것이 아닙니다.
개발자는 보고서, 일정, 개발 관련 문서, 테스트 문서 등을 워드, 엑셀, 파워포인트로 작성합니다. 공공 기관의 경우 한글을 사용하기도 합니다.
그렇다면 오피스 프로그램 사용법을 잘 익혀두면 선배들께 사랑받겠지요?
개발된 소스는 매번 형상관리를 해야 합니다.

https://git-scm.com/


각자 PC에만 저장했다가 혹시 잘못되면 큰일 나기 때문에 깃(깃허브)에 소스를 관리합니다.
그렇다면 깃(깃허브), SVN 등 사용법을 미리 익혀 둔다면 이 또한 선배들의 관심을 받게 됩니다.
개발을 하면 테스트를 하게 됩니다.
jUnit 같은 테스트 툴 사용법을 미리 알아두거나 테스트는 어떻게 하는지 정보를 수집해 두는 것도 큰 도움이 됩니다.

 

실행합시다.

 

개발자가 되고 취업도 하고 싶은데 무엇을 어떻게 시작해야 되나 막막했을 텐데 위 5가지를 보고 하나씩 한 걸음씩 차근차근 준비해 보세요.능숙해지기 위해서는 시간과 노력은 반드시 필요합니다.
절대 포기하지 마시고 a. 용어 정리부터 한 단계식 준비하시면 어느 순간 개발자가 된 자신을 발견하게 될 겁니다.

그리고 최소한의 기초가 되었다면 좀 더 전문적으로 배울 수 있는 국비 학원 또는 부트 캠프를 찾아보세요.
물론 나에게 맞는 강의를 찾아야 합니다. 

개발자로 취업하는 그날까지 파이팅입니다.

반응형