2019년 10월, 꿈에 그리던 회사에 합격 통보를 받았다.

개발자로서 만 4년의 경력 중 가장 치열하고 힘들었던 2019년 한해 였지만 그 동안의 경험을 통해 이룩해낸 성취가 뿌듯함을 느끼게 해주었다.


첫 직장으로 삼성전자에서 2년을, 두번째 직장으로 LINE 에 경력직으로 입사했으며, 이제는 꿈에 그리던 외국계 기업에서 세번째 커리어를 시작한다.

경력대비 많은 이직을 한 편에 속해서 지인들로부터도, 개인적으로 코드를 리뷰해주는 학생들로부터 질문을 많이 받는데, 그 때 도움이 될 수 있도록 해주었던 조언들을 정리해보았다.

이제 막 커리어를 시작하는 개발자들에게는 좋은 도움이 될 것 같아 개발자로서의 진로에 관한 지극히 개인적인 경험과 생각을 공유해본다.

절대 이 내용은 개발자에게 회사를 선택하는 기준을 제시하는 가이드북이 아니며, 단지 친한 형이 개인적인 생각 말해주는 셈 쳐줬으면 좋겠다.

 

어떤 커리어를 쌓고싶은가?

 

생각보다 어려운 질문이다.

학생 때의 나는 막연히 세계적으로 명성이 자자한 구루(GURU) 가 되고싶었지만, 뭘 어떻게 해야하는지도 몰랐고 어떤 회사에서 일하고 싶은지도 몰랐다. (글쓰고 생각해보니 그때도 구글에서 일하고 싶긴 한 것 같다...ㅎ)

그리고 불분명한 생각으로 경력을 시작하게 되면 3가지 케이스로 나뉘게 된다.

 

1. 돈을 목표로 하는 경우

2. 워라밸(Work and Life Balance)을 목표로 하게되는 경우

3. 꿈을 따라가는 경우

 

어느게 좋다고 할 수도 없고, 운좋다면 2~3가지를 동시에 만족시켜주는 기업에서 일하게 될 수도 있다. (부럽습니다)

문제는 어떤 곳에서 일하게 되더라도 본인이 행복할 수 있는가, 일에서 만족감을 얻을 수 있는가 최우선이 되어야할 것이다.

그리고 더 문제는 그 사실도 모두가 아는 뻔한 정답이다.

 

만약 본인이 만족하면서 일을 하고 계신 분이라면 시간 절약을 위해 뒤로가기를 권고드린다.

이 앞으로는 지극히 뻔한 얘기이기 때문이다.

 

아래 내용은 한창 방황하던 혹은 뭘 하고 싶은지 커리어가 뭔지도 모르고 취직을 준비하던 과거의 나와 같은 분들을 위해 쓴 경험담에 기반한 글이다.

 

 

잘 갖춰진 프로세스와 화려한 커리어를 원한다면 대기업을

 

 

대기업 개발자로 경력을 계발해보는 건, 완벽한 프로세스 위에서 잘 적응할 수 있는 인재가 되는 것과 같다.

이건 좋은 의미와 나쁜 의미를 전부 포함한다.

 

- 장점

이미 갖춰진 선진 프로세스를 익히고 사업을, 서비스를 배우는 데 있어서 대기업은 훌륭한 옵션이다.

당신이 모르는 부분이 많다면 사내 인프라만 잘 활용해도 성장할 수 있는 여지는 아주 크다.

 

또한 뛰어난 네임 밸류 는 커리어 계발에 있어서 큰 도움이 된다. 

비단 후광 효과 뿐만 아니라 책임감, 업계나 기술을 보는 시야 등이 강제적으로 확장된다.

좁은 시야의 확장은 자신의 인생에 있어서 중요한 Value 를 찾게해주기도 한다.

당연히 비즈니스 기회가 많이 보이지 않을까?

 

그리고 가장 큰 장점으로는 이직을 목표로 하고있다면 당연히... 전직장 연봉은 자신의 몸값에 큰 지표가 된다. ^^;;

사회 생활을 해본 분들은 절감하겠지만... 시장에서 자신의 가치는 올리기가 정말 쉽지않다.

대기업에서는 평균적으로 높은 테이블의 연봉을 보장하며, 이는 나와서도 도움이 될 수 있다.

 

- 단점

주도적이 되지 못할 가능성이 크다. 이것도 사람마다 하기 나름이고 회사 나름이라 일반화시킬 수는 없다.

하지만, 우리나라 회사에서는 대게 시키는 일을 하게 된다.

 

대기업은 모든 체계에 대한 작업이 이미 이루어져있는 경우가 많다.

가령 당신이 입사해서 당신이 회사에 기여할 수 있는 훌륭한 코드를 만들 수 있다고 할 때, 이미 해당 기능은 비슷한 생각을 한 누군가에 의해 만들어져 있거나 다른 훌륭한 오픈소스가 사내에 적용되어 있을 가능성이 높다.

그렇기 때문에 이 때 당신의 능력은 회사에 '당신만의 훌륭한 것' 을 기여하기보다는 '회사의 훌륭한 시스템' 을 얼마나 잘 활용하는지로 계발되고 평가되어질 가능성이 높다.

그렇기 때문에 자신이 빛나고 싶다면 회사의 시스템에 의해 역량이 묻히지 위한 노력이 필수적이다.

 

자신이 홀로 빛나고 싶다면 대기업은 쉽지않다. 물론 홀로 빛나는 천재들도 분명 계시지만...

필자를 비롯해 대부분은 그렇지 않다. ㅜㅜ

어떻게보면 경쟁이 치열하다는 의미로 해석될 수 있겠다.

 

- 대표기업 : Samsung, LG 등

 

- 전략

당연히 실력이다. 하지만 즉시 투입되어 사용할 수 있는 업무 활용능력 보다는 잠재력 이라고 하고싶다.

대기업은 원하는 인프라를 모두 제공해줄 수 있고, 직원들을 키우는데 있어서 아낌없이 투자한다.

하지만 가장 중요한건 그 투자 이상의 회수이다. 

즉, 시니어 / 임원급이 아닌 이상에야 잠재력이 뛰어난 인재를 뽑아서 키우는 전략이 주가 되기 때문에 그 점을 중점적으로 생각해보면 된다.

 

협업도구의 까다로운 설정을 능숙하게 한다던지, 데이터베이스의 쿼리나 협업도구를 훌륭하게 쓰는 건 훌륭한 자질이고 기술이지만 대부분의 대기업이 1순위로 보는 능력은 아니다.

 

특히 주니어라면 알고리즘, 자료구조 등 CS 기본기가 가장 중점이 되며 이 들을 보는 이유는 사고력과 학습능력이다.

회사에 필요한 어떤걸 주더라도 빠르게 학습하고 응용해서 경쟁력을 갖출 수 있는 인재가 되도록 준비를 해보면 좋겠다.

 

그리고 중요한건 "쫄지말자". 대기업이어도 사람 뽑는 이유는 하나다. 인재가 필요하기 때문이다.

대기업이라고 갑이고 본인이 을 인 경우가 아니며 본인이 인재라면 "갑의 입장" 이 되어볼 수 있다.

 

추천 지식 : 개발언어 기초지식, 자료구조, 알고리즘, Soft Skills (기술 이외의 것들 - 사회성이나 말하는 방법 등이 포함된다.)

 

 

보다 주도적인 개발이 좋다면 Software 개발 중심의 회사로

 

 

앞서 언급한 대기업 중에 Software 개발이 중심이 아닌 회사들도 많이 있다.

또한, 의외로 Software 개발 중심의 비즈니스 모델을 가지거나, 비즈니스 모델과 무관하게 Software 경쟁력이 뛰어난 회사들도 있다. 

 

- 장점

개인적인 경험에서 얘기를 한다면, 모든 케이스를 일반화할 수는 없지만 소프트웨어 중심의 서비스 회사에서 배울 수 있는 경험은 개발자로서 아주 소중한 경험이 된다.

개인적으로 역량을 개발하고 토이프로젝트를 진행하는 것 이상으로 팀 단위로 구성된 팀에서 잘 갖추어진 서비스를 신규 개발 및 런칭해보고 운영해보는 경험은 개인 공부로는 쌓기 힘든... 커리어에 있어서 큰 자산이 된다.

그리고 많은 회사에서는 이런 종류의 경험들은 Senior Developer 가 됨에 따라 개인의 가치를 높이는 무기가 되기도 한다.

 

또한 소프트웨어 개발자로서 얻을 수 있는 Domain 지식이 좀 더 많을 수 있다.

이부분은 연구중심의 회사와 서비스중심의 회사가 다를 수 있는 부분이라 "Case by Case" 라고 하겠지만,

Software 개발에 있어서는 도메인적 지식의 폭이 더 넓어지고 깊어질 수 있다.

당연히 미리 만들어진 체계를 쓰는 대신 새로 자신이 공부해서 만들어내거나 신기술을 적용할 수 있다면, 그 자체로도 도메인적 지식이 습득되고 자기발전으로 이어지지않을까?

 

자신이 욕심내서 하는만큼 실력이 발전하고, 좋은 회사라면 자신의 개발 실력에 알맞는 평가까지도 받을 수 있는 좋은 선택지가 될 수 있다.

 

- 단점

업무가 많을 가능성이 정말 크다.

특히 잘 짜여진 체계가 없는 회사이거나 개발자 개인의 역량이 아주 중요한 스타트업에 경우...

개발자는 슈퍼맨이 될 가능성이 크다.

어쩌면 Software Architecture 의 중대한 부분에 대한 의사결정부터, 코드 레벨의 마이크로튜닝까지를 모두 담당하게 될 것이고, 비즈니스 환경에서 계속 바뀌는 요구사항은 수시로 코드를 뒤엎게 만들고 리팩토링까지 요구한다.

 

이 모든 경험이 개인의 발전에 있어서 큰 도움이 된다고 생각할 수도 있다. (실제로도 노력은 배신하지 않는다.)

다만, 본인이 너무 힘들다면 생각해보자.

우리는 개발하기 위해 태어난 사람이 아니라 행복하기 위해 노력하는 사람들이다.

 

- 대표기업 : Naver, Kakao 등

 

- 전략

많은 경우 개발자로서 대기업에 입사하는 것보다 쉽지않다.

네임 밸류만 보고 무시하고 대충 준비하는 사람들이 간혹 보이는데...

큰코 다칠 정도로 난이도가 있는 경우가 대부분이다.

잠재력도 물론 중요하지만 업무에 바로 투입될 수 있는 업무 활용능력이 좀 더 중요하다.

 

요구하는 인재상에 따라 다르겠지만 예시를 들자면, 주어진 문제에 대한 해결 능력에 대해 토론할 일보다 프레임워크의 특성을 설명해볼 일이 많다.

(물론 문제해결능력은 매우 중요하다.)

그렇기 때문에 자신의 실력을 증명할 수 있는 포트폴리오나 Github 같은 부분들은 큰 도움이 될 것이다.

필자처럼 블로그를 운영해보는 경험도 면접시에는 큰 도움이 된다.

 

추천 지식 : 개발언어 기초지식, 자료구조, 운영체제, 네트워크, 도메인 지식들

 

 

그 외...

 

경험해본 내용을 바탕으로 대기업과 소프트웨어기업으로 분류해서 얘기를 해보았다.

많은 질문을 받는 외국계에 대한 내용도 향후 기술할 수 있었으면 좋겠다.

필자는 현재 회사에 열심히 적응 중이고, 많은 것을 배워나가는 중이다.

향후 외국계에 대해서도 포스트를 업데이트하게되길 바란다. :)

 

 

하지만...?

 

 

"포스팅에서 기술한 기업 타입 별 장/단점이나 면접 준비 전략 모두" 일반화시킬 수 있는 지식이 아닌 필자의 개인적인 경험이라고 봐주시면 좋겠다.

빠져나갈 구멍을 만드려는게 아니라 실제로 그렇다.

회사마다 조직별로, 부서별로 특색은 정말 천차만별이며 특히 면접은 면접관의 가치관이 반영될 수밖에 없다.

 

그리고...

 

가장 중요한 건 자신이 어떤 사람이며 어떤 커리어를 추구하는 지를 생각해보는 것. 그 자체인 것 같다.

정답은 없다. 개발자로 시작했지만 다른 커리어를 밟아도 좋고, 다른 커리어를 밟다가 뒤늦게 개발을 시작해도 늦지않다.

또 어떤 회사에서 어떤 일을 하는지도 여러분의 가치를 정해주지 않는다. 가치평가는 스스로만 내릴 수 있다.

사회생활을 시작한다면 어떤 일을 할 때 좀 더 행복할 수 있는지, 자신의 인생에 있어서 더 중요한 목표가 무엇인지 고민해볼 시기이다.

 

 

마지막으로...

 

면접 탈락은 은근히 큰 내상으로 다가온다.

자존감이 낮아지는 것도 문제이지만 특히 이직이라면 면접 때마다 휴가를 써야하지 않은가...?

눈치보면서 휴가 썼는데 사소한 실수로 탈락의 고배를 마시는 건 정말 속쓰린 일이다. 

또, 만약 비전공자라면 어떻게 준비를 해야하는지부터가 막막할 수 있다.

 

절대 겁먹지말고, 탈락에 슬퍼하지 말자.

필자도 본인이 원하던 회사에 입사하기 전까지 무수한 탈락의 고비를 마셨다.

실패를 담담하게 받아들이고 보완해서 재도전하면 될 일이다.

어렵기로 유명한 "소울류 게임" 을 죽지않고 깬다면 게임을 할 이유가 없다.

 

 

개발자로 처음 발을 디딘 이들에게 위의 이야기가 도움이 되었으면 좋겠다.

 



UV는 Unique Visitor의 약자로 설정된 기간동안 방문한 순 방문자수를 나타낸다. 

즉, 한 방문자가 여러 번 페이지를 로딩하더라도 해당 방문자는 Unique 한 한명으로 체크되기 때문에, 사이트의 규모를 파악하는데 가장 일반적으로 사용되는 지표이다. 

자체 로그 분석 툴을 통해 체크할 경우 자체 분석이 가능하다.


PV는 일반적으로 말하는 Page View이다. 즉, Unique Visitor 들이 발생시킨 페이지뷰의 총 합으로 양적 지표나 활동성과 연관해 사용한다. 

메뉴 및 UI 등에 대한 분석 리포트로 주로 사용된다.





우리나라에도 훌륭한 IT 기업들이 많이 있지만, 많은 개발자들은 이른바 FAANG 이라고 언급되는 Facebook, Apple, Amazon, Netflix, Google 에서 한번쯤 일하고 싶은 꿈을 갖고 있을 것이라고 생각합니다.


본 포스팅을 보면서 혹시 외국계 기업의 취업을 목표로 하고 계신 분이라면 많은 도움을 받을 수 있었으면 좋겠습니다.



1. GlassDoor


해외기업 중 탑급으로 일컬어지는 FAANG 의 경우 너무나도 유명하지만 들어가기도 쉽지 않을 뿐더러 좋은 외국계 회사가 FAANG 만 있는 것도 아닙니다.


실제로, FAANG 급의 연봉을 주면서 좋은 워라밸(Work And Life Balance)을 보장해주는 알짜기업들이 상당히 많습니다. ^^


혹시 제의를 받거나, 관심있는 공고가 떴다면 기본조사는 해봐야겠죠? 





GlassDoor : https://www.glassdoor.com/index.htm


아시는 분들은 아시는 유명한 기업 평점 사이트인 GlassDoor 입니다.


우리나라에는 잡플래닛과 같은 사이트들이 있지만, 해외에서 가장 인지도 높은 사이트 중 하나는 GlassDoor 입니다.


기업의 이름을 검색하는 것만으로도 연봉정보나, 실무자들의 리뷰들을 얻을 수 있기 때문에 구직시 아주 유용하게 사용되는 정보입니다.



2. MOOC 웹사이트


MOOC( Massive Open Online Course) 는 새롭게 떠오르고 있는 온라인 교육 플랫폼입니다.


그 중에서도 개인적으로 이용해본 2가지 사이트를 추천드립니다.



Udacity : https://www.udacity.com/


먼저 Udacity 는 실무 중심의 교육 플랫폼입니다. "Google 사의 XX 엔지니어가 알려주는 안드로이드 강좌" 와 같은 컨셉으로

강의가 진행되며, 상당히 실무에 밀접한 강좌가 진행됩니다. 


장점이라면, 학부강의나 인터넷, 서적 등에서 알기 어려운 실무들에 대해 염두하고 강의가 진행된다는 점입니다.


하지만 아쉬운 점은 대부분 유료강의인 데다가, 입문 강의 이상을 배우긴 쉽지 않습니다.





Coursera : https://www.coursera.org/


Udacity 가 실무중심이라면 Coursera 는 다분히 Academic 합니다. 


주로 대학교 교수님들의 강의가 많으며, 배우기 어려운 대학과정의 원론을 배우기에 적합합니다. 


특히 비전공자로써 소프트웨어 개발자를 목표로 하고 계시다면, 이곳에서 컴공 관련 기초 과목들을 들으시는 것을 추천합니다.


개인적으로는 기술먼저 배우는 것보다 교과과정의 기본을 통해서 숙달하는 것이 좋아보이기 때문입니다.



그 외에도 최근에 많은 MOOC 들이 있고, 대부분의 필요한 수업들을 들을 수 있습니다.


대부분 영어로 수업이 진행되기 때문에 영어로 기술적인 내용을 이해하고 학습하는 능력을 기르는데 큰 도움이 될 것입니다.


해외 취업을 목표로 하신다면 엔지니어라도, 수업을 따라가고 수료할 수 있을 정도로 영어 능력을 기르시는 게 좋습니다.




3. LeetCode


우리나라에는 아직 모르시는 분들이 많이 있으신 것 같아서 포스팅해보았습니다.


실제로 이미 외국계 직장인 포털등에서는 Bible 로 통하고 있는 LeetCode 입니다.


구글에서 시작되어 이제는 많은 외국계 기업에서 대세인 인터뷰 방식인 화이트보드 코딩 테스트와 동일한 형태의 연습을 해볼 수 있습니다.


문제 수도 정말 많고, 지속적으로 업데이트 중인 곳이라 잘 알아두시고, 꾸준히 문제를 풀며 연습하면 큰 도움이 될 듯 합니다.




https://leetcode.com/


당연히 모든 알고리즘 문제는 영어로 설명되어있고, 문제에 대한 토론도 영어로 이루어집니다. 


좋은 점은 어려운 문제들의 경우 솔루션을 직접 제공해주기 때문에 솔루션을 분석하며 준비하기가 아주 좋습니다.


또한 저는 개인적으로 가장 좋게 보고있는 점인데... 다른 알고리즘 사이트들과는 다르게 "알고리즘" 만 다루지 않습니다.


실제 면접을 위한 System Design 이나 Database Design 능력 들도 문제로 주어지고 풀 수 있게 되어 있어서 매우 유익한 사이트라고 생각합니다.




4. Github



Github : https://github.com/

말할 필요가 없는 "깃허브" 입니다. 해외 뿐 아니라 국내의 많은 기업들도 깃허브를 포트폴리오의 좋은 척도로 생각하고 있기 때문에 깃 허브 를 관리하는 것은 매우 좋은 선택입니다.


이미 현직에 계신 분들이라면 대부분 사내 버전 관리툴을 이용하기 때문에 개인 Git 에 큰 의미를 둘 필요는 없을 수 있으나,


신입 개발자이거나 개인프로젝트 또는 오픈 소스에 관심이 많다면 Github 를 통한 포트폴리오는 아주 효과적일 수 있습니다.


개인적으로 관심있는 프로젝트가 있다면 Fork 하고, 다른 사람들에게 PR 을 줘보세요. 그리고 하고싶은 프로젝트가 있다면 당장 깃허브에 올려서 시작해보세요. 많은 현업 경험이 쌓일 것 입니다.


5. Linked In



LinkedIn : https://www.linkedin.com/



아마 많이 들어봤지만 (특히 학생분들이라면) 의외로 링크드인을 실제로 쓰는 분은 많지 않을 것입니다.


하지만, 링크드인을 통한 구직은 개발자로써, 특히 주니어라면, 가장 해외이직을 하는 데 있어서 편한 루트를 제공해주는 SNS 입니다.


링크드인은 자신의 포트폴리오와 경력을 관리하고, 이를 바탕으로 구직/구인을 할 수 있는 SNS 입니다.


해외의 많은 Head Hunter 들 및 인사팀(HR)이 링크드인을 전담하고 있으며 채용 시즌마다 많은 우수한 개발자들에게 러브콜을 날립니다.


자격이 된다면 원하는 기업의 원하는 포지션에 도전할 수 있는 최적의 기회를 제공해주는 곳이라고 생각합니다.




블로그를 방문해주시는 분들의 외국계 기업 취직의 꿈을 위해 큰 도움이 되길 바랍니다.





해외 사이트의 좋은 글을 퍼와서 번역한 내용입니다. :)

특히 중요한 부분 위주로 변역하여 올린 내용으로, 이제 막 개발에 흥미를 붙이신 분들이라면 도움이 될 만한 습관들과 방법들을 정리해보았습니다.

(원 출처 : http://studyorcrytrying.tumblr.com/post/141574889807/general-always-comment-your-code-commenting-your)



좋은 개발자가 되기 위한 습관들


항상 코드에 주석을 달자.

코드를 만들면서 주석을 다는 것은 머릿속으로 생각을 정리하는 것 뿐 아니라, 다른 사람들이 코드를 읽었을 때 의미를 좀 더 분명히 할 수 있는 좋은 방법이 됩니다. 물론 줄마다 주석을 달 필요는 없지만, 특히 복잡한 로직이 포함될 경우에 주석은 코드를 파악하기 위한 좋은 습관입니다.


메소드와 함수들에 대해서는 기록하세요.
당신이 정의하고 만든 메서드에 대해 문서화하는 것은 프로그램 전체 구조를 추적하는데 있어 좋은 방법이 됩니다. 메소드 이름들을 리스팅하고, 어떤 인자를 Argument 로 갖는지, 어떤 동작을 통해 어떤 값을 반환하는 지는 프로그램 구조를 생성할 때, 각 작업 단위를 명확히 하는데 큰 도움을 줍니다.  또한 이는 프로젝트에 새로운 멤버가 프로젝트를 빨리 파악하는 데 큰 도움이 되기도 합니다.


당신만의 코딩 스타일을 확립하세요.

아마 처음 코딩을 시작할 때, 많은 코딩 스타일들이 레퍼런스 등을 통해 당신에게 유입될 것입니다. 괄호는 중구난방일 것이고, 불필요한 공간을 만들거나 변수 네이밍이 제각각일 수 있습니다. 경험을 통해 자신만의 코딩 스타일을 찾게 된다면, 코드를 빨리 파악하고 작성하는데 큰 도움이 될 것입니다.


사용하는 언어에 대한 Official 사이트를 알아두세요.

당신이 사용하는 C++, Android, Java 등등 언어에 대한 공식 웹 사이트를 알고 있다면 꼭 참조해서 알아보는 것이 중요합니다. 새로운 정보를 지속적으로 습득하는 것 뿐 아니라, 학습 자체를 하는 것에 있어서도 공식사이트가 갖는 공신력은 큰 영향을 가집니다.


당신만의 코드를 실험하세요.

이 부분은 코딩 스타일의 확립과도 일치되는 내용입니다. 만약 궁금하거나 실험해보고 싶은 부분이 있다면 얼마든지 도전해보세요! 새로운 기술을 적용하고 당신만의 프로그램을 당신만의 방법으로 최적화 해보는 것은 코딩 실력향상에 있어서 큰 도움을 줍니다. 심지어 당신의 선생님 / 사수가 당신을 최고의 코드를 만들게 인도하는 것보다도 더 큰 향상을 이루어낼 수도 있습니다.


당신이 한 작업을 디버깅하세요.

문제가 생겼을 시, 당신이 만들어낸 코드의 작업을 쭉 따라가면서 디버깅을 해보는 것은 좋은 습관입니다. 중간중간 작업의 단위를 나누어 디버깅을 하는 습관을 들인다면, 디버깅의 단위가 커져서 감당할 수 없게 되거나, 전체 모듈을 다시 코딩하는 불상사를 방지할 수 있습니다.




좋은 개발자가 되기 위한 초보 개발자들의 과제


출력 결과를 읽는 시간을 충분히 가지세요.

중요한 부분이나 중요한 결과가 도출되는 부분에서 만들어내는 프로그램의 출력 결과를 무시하는 경우가 많습니다. 이 부분을 읽는 것을 불필요하다고 여기지 마시고 충분히 관찰해본다면 내부 구동 원리를 파악하고 학습에 도움이 될 수 있습니다.


코드 상단에 당신의 문서라는 걸 명시해보세요. 
많은 IDE 들은 author와 문서의 description 을 기입하는 기능을 제공하고, 이는 프로젝트 협업 시 어떤 파일에서 어떤 의도로 당신이 설계했는지 파악하는데 도움이 될 수 있습니다.

변수 들에 대한 리스트 만들기
당신이 사용하는 중요한 변수들이 있다면 리스트를 만드세요. 프로그래밍은 복잡한 작업이고, 시간이 지날 수록 예전에 사용하던 당신의 코드, 그 중에서도 변수들은 까먹기 쉽습니다. 훌륭하게 네이밍 하는 것은 이를 도와주지만, 훨씬 더 효과적인 방법은 Document 화하여 기록해보는 것입니다. 구식적인 방법이라고 볼 수도 있겠지만 초보 개발자에게는 프로젝트를 진행하는 데 있어서 큰 도움이 될 수 있습니다.

코드를 복잡하게 만들지 마세요.

초보 개발자 티를 조금 벗은 개발자들이 많이 하는 실수입니다. 할당받은 양이 있다면 그 만큼에 대해서만 코드를 작성하세요. 현금 결제 시스템을 만드는 데 있어서 신용카드나 보너스 등까지 고려할 필요는 없습니다. 


좋은 개발자가 있다면 언제든 도움을 구하세요.

Stack Overflow 에 의존하는 것은 좋은 방법이지만, 실제 더 나은 개발자가 있다면 직접 배우는 것이 더 도움이 될 수 있습니다. 문제를 해결해주는 답변에 당신은 좋아요를 누르겠지만 이해했다고 확신할 수 있나요?


페어 프로그래밍은 좋은 코드 향상 방법입니다. 하지만...

페어 프로그래밍은 좋은 협업 방법이지만 당신이 당신의 몫을 충분히 할 때 의미가 있습니다. 그렇지 않고서는 이는 지루한 1대 1 코딩 과외가 될 뿐입니다. 파트너에게 코드 작성을 기대지말고 스스로 독자적인 코드를 만들고 토론할 수 있을 때 페어 프로그래밍은 의의를 갖습니다. 


마지막으로 강조하지만 당신만의 코드를 만들어보세요.

깃허브나 다른 훌륭한 파트너에 의존하지말고, 구글에서 코드를 복사하지말고 당신만의 코드를 만들어보세요.

어려우면 어려운대로 처음부터 코드를 작성해보는 것이 굉장히 중요합니다. 남의 코드를 가져다만 쓰는 것은 결국 한계를 드러내기 마련입니다.



상당히 좋은 내용들이 많습니다. :) 

방문해주시는 분들 읽고 도움이 될 수 있었으면 좋겠습니다.

+ Recent posts