조카녀석 개발자 만들기 프로젝트

2. 학부 커리큘럼

dextto™ 2022. 6. 5. 22:34

드디어 A가 제대했습니다. 군대에 있을 때 나름 군대가기 전 배운 지식(파이썬 언어)을 활용해서 알고리즘과 자료구조를 독학했다고 합니다. 요즘 장병들은 일과 후에 휴대폰을 사용할 수 있기 때문에 나와 가끔 대화도 나누긴 했지요.

A는 1학년 1학기를 마치고 입대했습니다. 이제 학부생활이 3년 반이 남았네요. 오히려 잘 됐다고 생각합니다. 군대를 다녀오면 아무래도 사람이 조금 차분해지고 학부 공부에 집중하는 경향이 있기 때문에 방황하지는 않을 것 같아서입니다.

커리큘럼을 짜 보자

사진출처: https://www.pexels.com

제대 후 처음 같이 만나 처음 할 일로 학부 커리큘럼을 짜 보기로 했습니다. 한 학기동안 배운 과목은 대부분 교양 수업이었고 전공으로 C프로그래밍 과정이 한 과목 있었습니다. 요즘도 학교에서 C를 가르치다니... 임베디드 분야에서는 아직 C를 사용하기도 하고(사실 이부분도 최근 추세는 잘 모릅니다), 로우 레벨의 엔지니어가 되기 위해서는 필수 언어이기는 하지만, 내 견해는 학부에서 가르치기에는 너무 낡은 언어라는 생각입니다.

입학 당시의 학과 즉 현재 속해 있는 학과는 소프트웨어 분야에 초점을 맞춘 곳이 아닙니다. IT 업계에서 원하는 다양한 전공을 접할 수 있는 학과로서는 좋은 커리큘럼을 가지고 있지만, 백엔드 엔지니어를 목표로 하는 학생이 다니기에는 조금 적합하지 않다고 생각합니다. 본인도 이를 알고 있는지라 2학년 때 전과를 하겠다고 합니다. 이야기를 들어보니 이 학교는 다른 과로 전과하는 게 어렵지 않은 일이라고 하니 다행이네요.

그래서 일단 곧 복학 후 현재 학과의 2학기 커리큘럼과 전과하고자 하는 다른 과의 커리큘럼을 살펴보고 백엔드 엔지니어라면 필수로 들어야 할 과목을 찍어주기로 합니다. 목록은 다음과 같습니다. (과목명을 정확하게 쓰면 어느 학교인지 유추할 수 있으니까 대충 씁니다. 😉


객체지향 프로그래밍: 이미 파이썬을 알고 있지만 자바로 배운다고 해서 들어보기로 합니다. 자바는 국내 개발자라면 알아둬야 할 언어이니까요.

 

자료구조: 이걸 빼먹을 수 있을까요?

 

컴퓨터구조: 알아두면 뼈가 되고 살이 됩니다. 저는 CS를 독학했는데 개인적으로 암기과목이라 별로 좋아하지는 않은 과목이었습니다. 집에 가서 시간 날때 아버지 랩탑을 분해해서 다시 조립해 보라고 했습니다. 요즘엔 정말 관심이 있지 않은 이상 직접 컴퓨터를 조립하는 경험을 해 볼 일이 없습니다. 조립과정에서 배울 점이 있다고 생각합니다.

 

컴퓨터네트워크: 이제는 네트워크로 연결되지 않은 환경을 찾아보기 힘듭니다. 역시 기본 지식을 알아두면 좋습니다.

알고리즘: 개발자의 기본 소양이자, 신입사원의 실력을 확인하기 위한 1차 관문입니다. 물론 학점도 챙겨야 하는데 이는 다음에 이야기 하기로 합니다. 한 때 한창 알고리즘 평가가 업계에서 유행하다 최근에는 조금 사그라 들기는 했습니다. 알고리즘 보다는 현업에서 일어날 만한 문제를 제시하고 해결방법을 보는 문제를 제시하기도 합니다. 하지만 여전히 알고리즘은 사회 초년생이 어필하기에는 좋은 도구이고, 회사에서도 채용에 사용하기 편한 도구입니다. 더구나 네카라쿠베(당토)를 목표로 한다면 썩 잘해야 합니다. 1차는 통과해야 하니까요.

 

운영체제: 프로그램이 동작하는 원리를 정확하게 이해하려면 운영체제의 동작 방식을 알아야 합니다. 프로세스와 쓰레드, 메모리, 파일 및 인터페이스를 어떻게 관리하는지에 대해 이해해야 좋은 프로그래머가 될 수 있습니다.

 

데이터베이스: 말하자면 입 아픕니다. 데이터 관리는 백엔드 엔지니어의 전부라고 해도 좋습니다.

 

컴퓨터통신: 백엔드 엔지니어는 종종 인프라를 다룹니다. 그리고 요즘은 데브옵스라는 새로운 직군도 있고 귀한 대우를 받습니다. MSA를 적용하는 회사라면 더욱 그렇습니다. 외부 망과의 연결도 중요하고 같은 회사 내에서 서버끼리의 통신도 중요합니다. 그에 대한 기초 지식을 배울 수 있습니다. 컴퓨터네트워크와 이 과목은 암기과목이라서 나 같으면 꺼려했겠지만 암기는 잘 한다고 하니 포함합니다.

 

소프트웨어공학: 좋은 아키텍처를 만들려면 무엇이 있는지부터 알아야 합니다. 그리고 소프트웨어 프로세스를 체계적으로 배울 수 있는 기회입니다.

 

실무교육: 희한한 교과 과목이 있네요. 주 4일을 매일 3시간 강의 + 5시간 실습으로 진행합니다. 실제 프로젝트를 기획하고 개발까지 진행하는 과정입니다. 마치 SW 마에스트로나 우아한 테크 캠프 같은 실무형 인재 양성 과정 같습니다. 요즘 학교가 현업에서 원하는 인재를 기르기 위해 노력한다는 생각이 듭니다.

 

현장 실습 / 해외 인턴쉽: 역시 의외의 과정이 있습니다. 4학년 커리큘럼에 있는데 실무 경험을 미리 쌓게 해 주는 과정입니다. 취업 연계 과정인듯 합니다.

 

그 외 여유가 될 때 들어볼 과목들

 

머신러닝: 오호, 학과과목에 이게 있네요! 이걸 과연 한 학기에 다 배울수 있을까요? 이 과목은 너무 핫하고 미래 먹거리이기 때문에 들어두면 언젠가는 도움이 됩니다. 하지만 당장은 필요없으므로 여유가 된다면 수강하기로 합니다.

 

소프트웨어설계: 이게 무슨 과목인지 과목 소개 페이지만 봐서는 이해가 잘 안되서 확인하고 결정하기로 합니다. 아마도 모바일 앱을 설계하고 만들어 보는 과정인듯 합니다. 백엔드 엔지니어에 초점을 맞춘다면 필요는 없겠지만 사람일은 또 어떻게 될지 모르니 맛을 봐두는 것도 좋다는 생각입니다. 혹시 또 창업을 하거나 하면 1인 다역을 해야 할테니..

보안이론이나 임베디드 시스템 설계 같은 과목은 정말 여유가 될 때 듣는 것으로 합니다.

 


이렇게 커리큘럼을 짜고 났더니 대부분의 과목이 이미 필수입니다! 그냥 자연스럽게 필수를 다 듣고 여력이 되면 관심 있는 과목을 들으면 되겠습니다. A가 140학점을 알차게 채워 나가길 바랍니다.

오늘의 팁

이제 A와 일주일마다 만나기로 했습니다. 온라인이면 일요일 저녁 9시부터 1시간 동안, 오프라인이면 일요일 오후에. 그리고 만날 때마다 팁이나 유용한 도구를 하나씩 알려주려고 합니다. 오늘은 메모 도구인 노션을 소개해 줬습니다. 블로그도 좋지만 개인적으로 그냥 노트로 정리하기에 노션만한 도구가 없습니다. 노션으로 이력서도 종종 받습니다. 요즘엔 제텔카스텐이라고 하는 메모법이 유행하면서 옵시디언 같은 도구도 있지만, 쉽고 보기 좋게 만들수 있는 노션을 쓰기로 합니다. 우선 오늘 같이 했던 일을 쓰라고 했습니다. 그리고 TIL(Today I learned, 매일 그날 배운 것)을 정리하라고 했습니다.

오늘의 과제

매주 과제도 있습니다 ㅎㅎㅎㅎ. 부담스럽지 않은 범위에서 한 주 동안 남는 시간에 해결할 수 있는 것으로 던져 주려고 합니다. 첫 번째 과제는 두둥! 저도 전혀 하고 있지 못한 숏텀 롱텀 계획 세우기입니다.

  • 다음 학기말에 무엇을 하게 될지 생각해 보자
  • 내년 이맘때쯤 무엇을 하고 있을지 생각해 보자
  • (10년후는 너무 멀어서) 졸업 후에 어떤 모습으로 되어 있을지 상상해 보자.
  • 그리고 이 세 가지를 최대한 구체적으로 적고, 프린트해서 책상앞에 붙여 놓는다.

다음 주제는 학점 관리하는 방법입니다.

반응형

'조카녀석 개발자 만들기 프로젝트' 카테고리의 다른 글

5. 개발자 테크트리와 TIL  (0) 2022.07.29
4. 3개월 동안 공부해 볼것  (0) 2022.06.25
3. 학점관리  (0) 2022.06.19
1. 계기  (2) 2022.03.16