IT/정보공유

#2. 개발자를 하고싶은데, 어떤 공부를 해야해?

Holic 2021. 4. 25. 11:29
반응형


뭘 더 공부해야 하지?

 

요즘 국비지원이 잘 되어 있어서, 학원에서 JAVA를 수강할 수 있는 기회가 많습니다. IT 관련 대학교를 졸업한 분들은 C 언어와 JAVA를 배워서 졸업하고요. 흔히들 하는 고민이 "뭘 더 공부해야 하지?" 일 겁니다. 신입 개발자 분들도 어떤 자기 계발을 해야 할지 갈피를 못 잡는 경우가 많습니다. 저는 얘기를 시작하기 전에 한 가지 묻고 싶습니다.

"어떤 언어를 배우셨어요? 왜 그 언어를 배우셨어요?"

 


세계에서 제일 많이 쓰는 언어는?

피식하셨다구요? 자네 개발해볼 생각 없나?

 

물론 JAVA 언어 사용이 많은 걸 알고 있습니다. 그래서 다들 JAVA를 배워야 한다, C언어를 배워야 한다고 말을 하죠. 저도 JAVA로 시작했습니다. 하지만 언어는 프로젝트를 하기 위한 도구일 뿐입니다. 프로젝트를 하기 위해 필요한 것이 프로그래밍이고, 프로그래밍을 하기 위해서는 언어를 알아야 하니까 배우는 겁니다. 포인트는 JAVA를 배워야 하니까 JAVA를 공부해야지가 아니고, 지금 프로젝트를 하기 위해서는 JAVA 언어를 써야 하니까 JAVA 공부를 하는 겁니다.

저의 경우에는 취업할 때부터 지금까지 다른 언어를 사용하고 있습니다. 제가 다른 언어를 쓰고 있는 이유는, 현재 비즈니스에 필요한 언어가 아니기 때문입니다. 다음 프로젝트에서 필요하다면, 다시 JAVA를 써야 하겠지만.

 


프런트엔드? 백엔드?

프런트엔드, 백엔드

 

시각적인 작업을 하는 프런트엔드

내가 한 코드로 버튼이나 색상, 콘텐츠 배치 등을 이쁘게 보이고 싶다면 프런트엔드를 선택하는 것이 좋습니다. 코드를 한 줄만 바꿔도, 보이는 많은 것들이 바뀌는 현상을 경험하실 수 있습니다. 웹으로 예를 들자면, HTML, CSS, JS 언어를 다루는 직업입니다.

 

안전한 서비스 경험을 제공하는 백엔드

데이터를 좀 더 빠르게 읽고 쓰고, 엄청 많은 유저를 핸들링하고, 한 번에 많은 데이터들을 다루고 싶다면 백엔드가 적합합니다. 프로젝트에서 어떤 언어를 다루느냐에 따라서, 백엔드의 언어도 많이 나뉩니다. 각기 다른 매력을 가지고 있는 언어들이기에, 적합한 언어를 찾으시는 게 좋습니다.

 

초보자는 어떤 것부터 해야해?

입문하시는 분들이라면, 저는 프런트엔드를 먼저 해보시는 걸 추천해드리고 싶습니다. 코드 한 줄을 입력할 때마다 결과를 바로바로 확인이 가능하기에, 처음에 흥미를 붙이기에도 백엔드에 비해선 쉽습니다. 반면, 백엔드는 코드를 수십 줄, 수백 줄을 입력해도 결과 확인이 안 되는 경우도 있습니다. 

저는 백엔드부터 시작한 케이스에 속합니다. 연구하고, 고민하고 하는 쪽을 더 좋아했었거든요. 하지만 지금은 양쪽 다 하는 풀 스택 프로그래머가 되어버린 상태입니다. 어느 쪽이든 일단 시작하고, 프로그래밍 자체를 싫어하지 않고 꾸준히 하는 것이 제일 중요한 것 같습니다.

 

 


프로그래밍을 어떻게 공부해야 하지?

공부법에 정답은 없지만, 감히 말씀드릴 수 있는 것은 "이거 언젠가는 필요할 것 같은데, 공부해야겠다"라는 생각으로 시작한 공부는 오래가지 못합니다. C언어, JAVA, 파이썬, node.js 등등 지금까지 내가 뭘 공부했는지 보다는 지금 내가 짜고 있는 코드로 프로젝트를 진행하는 것이 중요한 거라고 생각합니다.

 

소규모 프로젝트부터

처음 시작하는 분들이라면, 코끼리 같은 프로젝트 보다면 소규모 프로젝트를 위주로 공부하는 것이 좋습니다. 페이스북이나 인스타그램을 클론 코딩하는 것보다는, 메시지를 보내는 기능, 스크롤하면 헤더가 바뀌는 거나 간단한 비디오 플레이어, 알림 창 같은 것들을 만드는 것이 좋습니다. 작은 단위로 배우고 바로 적용해서 눈으로 바로 확인이 가능한 그런 것들을요. 그렇게 결과물을 도출해내는 기쁨을 얻다 보면, 자연스럽게 라이브러리를 공부하시게 될 겁니다.

 

라이브러리?

라이브러리부터 시작한다면, 하위 스택의 개념을 이해하지 못할뿐더러, 왜 이걸 써야 하는지도 이해를 못하는 경우가 많습니다. 이럴 경우 다시 기초부터 공부해야 하는 경우가 발생합니다. 물론 습득 속도도 더디고요. 

pure 한 언어로 소규모 프로젝트를 진행하면서 자연스럽게 라이브러리를 학습하게 되면, 왜 라이브러리를 쓰는지, 해당 프로젝트에 맞는 라이브러리는 무엇인지 보다 쉽게 이해하시게 될 겁니다.

 

소규모 프로젝트가 없는 백엔드는?

자신의 컴퓨터에 먼저 서버를 설치해 보는 것으로 시작하는 게 좋습니다. 숙련된 개발자의 경우 로컬 서버는 클릭 몇 번이면 서버를 구성할 수 있을 정도로 아주 심플한 프로젝트입니다. 그 이후에 프런트엔드의 hello world 수준의 가벼운 코드를 얹는 식으로 웹사이트를 구현할 수도 있습니다. 이 같은 예처럼 프런트엔드-백엔드의 구동원리를 이해하고, 전체적인 사이클을 이해하신 후에 공부방향을 잡으시는 게 좋습니다.

 

흔히들 하는 실수

대학교나 학원에서는 리눅스, 데이터베이스, 자료구조, 알고리즘 각각 과목으로 나뉘어 있습니다. 이런 공부법에 익숙하기에 공부할 때에도 과목으로 분류하고, 한 과목을 끝낸 후에 한 과목을 공부하는 경우가 많습니다. 집중해서 하는 것은 좋지만, 전체적은 흐름을 파악하고 이미지를 그려 본 후에 하는 것을 추천합니다.

 


마치며

다음 글부터는 개발 TIP이나, 성장에 도움이 될 만한 내용을 위주로 쓰겠습니다.

반응형