본문 바로가기

잡담

SI 개발 경력 5년 차에 학부생 시절 컴퓨터 기본 개념을 등한시해서 후회하는이유

이제 어느덧 SI 개발 경력 5년차가 됐다.

이전에도 이런 글을 작성한 적이 있는데 현재 일을 하면서 느끼는 점이 있다보니 또 글을 쓴다.

 

대학교에 입학하여 코딩을 배우게 되고 어느정도 지나면 학부생끼리 수업 과제로 작은 프로젝트를 하기 시작한다.

학부생 때 흔히 하는 착각은 그저 코딩만 잘하면 된다라는 것이다.

그래서 코딩으로 프로그램을 만드는 것에만 관심을 가지고 다른 공부들을 등한시하게 된다.

나 역시 코딩 외의 과목들은 전부다 필요없다고 생각하고 컴퓨터 구조, 네트워크와 같은 과목은 공부를 안 했다.

그리고 이제 경력이 어느 정도 있다 보니 프로젝트를 할 때 프로젝트의 큰 그림을 그리는데 관여하게 됐다.

 

예를 들어 서버 2 중화와 같은 개념이다 서버가 2 중화되어있는데 TCP로 통신을 하게 되면 이 TCP나 HTTP 제대로 송수신이 가능하느냐와 같은 이야기가 나왔다. 이런 상황이 생겼을 때 나는 아무 말도 하지 못하고 가만히 있었다.

그러면서 들었던 생각은 역시 기본기가 중요하고 코딩이 전부가 아니라는 것이었고 나 역시 코드몽키에 가깝다는 생각이었다.

그럼 네트워크만 추가적으로 공부를 하면 되지 않냐고 생각할 수도 있겠다.

 

근데 개발자들마다 성장을 하게 되는 계기가 달랐다.

나의 경우에는 현재 코딩을 할 때 객체지향의 SOLID 원칙이 가장 많이 도움이 되었다. 

반면에 컴퓨터 구조가 그렇게 많은 도움이 되는가?라는 의문을 품고 있는데

LG 연구소의 책임자와 이야기를 나눴을 때 그 책임자는 컴퓨터 구조를 공부한 뒤로 개발에 대한 시야가 완전히 달라졌다고 한다.

그중에서 비트 플립과 같은 개념이 코딩을 할 때 상당히 많은 영향을 준다고 하는데 과연 저 개념이 코딩에 많은 도움을 주는지 나는 아직 잘 모르겠다.

하지만 내가 본 개발자 중에서 가장 뛰어난 개발자였기 때문에 그 말을 듣고 컴퓨터 구조도 공부를 하려고 노력 중이다.

 

어느 정도 코딩을 할 줄 알게 되면 다시 기본기를 배우기 위해 되돌아 온다.

어느 시점이 지나면 나무가 아니라 숲을 볼 줄 알아야 한다.

근데 그 숲을 보게 해주는 기본기는 사람마다 다르다.

어떠한 기본기가 본인의 성장에 많은 도움을 줄 지 모르기 때문에 다방면에서 기본기를 쌓는게 중요하다고 생각 된다.

만약 학부생들이 이 글을 읽고 있고 본인이 코딩하는 것만 좋아한다면 코딩에만 너무 집중하지 말고 다른 컴퓨터 기초 과목도 열심히까지는 아니지만 등한시하지 않고 배웠으면 좋겠다.