1. Start
CS(Computer Science)를 공부하려고 한다.
학원에서 배우는 학습량이 더 많아지고 배운것을 정리하는 시간도 필요하기 때문에 양이 적거나 하지 못 하는 날도 있을 것이다. 그래도 잠을 줄이고, 틈틈이 시간을 내서 공부할 예정이다.
2. Why?
CS를 공부하려는 이유는 세 가지가 있다.
첫 번째 이유는 '왜 CS지식이 필요한지 느껴서' 이다.
유튜브 조코딩 외부 강사 특강편에서 강민철 강사님이 강의 초반부에 왜 개발자가 CS지식이 필요한지에 대해 설명하셨다.
지금까지 나는 개발자한테 CS지식 즉 전공지식이란 알면 좋은 정도로만 들었고 그렇게 생각하고 있었다.
그리고 사실 초반부 언급 내용 중 하나인 성능, 용량, 비용이란 이유도 아직 내가 코딩을 하면서 접하지 않은 문제이기에 크게 와닿지 않았다.
그러던 중 나한테 CS지식에 대해 다시 생각하게 해 준 말이 있었다."컴퓨터에 입력한 소스코드에 문제가 없지만 사용자의 환경에서 동작하지 않는 경우에, CS지식을 모르고, 프로그래밍 언어의 문법만 알고 있는 개발자나, 개발자 지망생들은 발만 동동 구를 수 밖에 없다. 왜냐하면, 이런 사람들에겐 컴퓨터란 그저 내가 소스코드를 입력하면, 거기에 대한 출력을 가지고 오는 그저 미지의 대상이기 때문이다. 하지만, 컴퓨터의 근간, 즉 내가 만든 프로그램이 어떤식으로 동작하는지 알고 있는 개발자에게는 컴퓨터를 미지의 대상이 아니라, 분석의 대상으로 바라볼 수 있다."
맞는 말이다.
나는 저 말처럼 컴퓨터를 당연히 내가 입력하면 결과값을 반환하는 미지의 대상으로 보고있었다. 컴퓨터를 기반으로 하는 일을 업으로 하려는 내가 정작 컴퓨터에 대해 잘 모르고 미지의 대상으로 보고있었다.
부끄러웠지만, 더 부끄럽지 않기 위해서 나는 지금부터 컴퓨터에 대해 공부하려고 한다.두 번째 이유는 '경쟁' 이다.
목표가 취업인 나에게 경쟁의 대상은 같이 수업을 듣는 사람들 정도가 아니다.
나는 취업을 준비중인 모든 개발자 지망생들과 경쟁해야 한다.
취업 경쟁은 전공자와 비전공자를 구분하지 않는다.
비전공자인 내가 전공자들과 경쟁하기 위해서는 그들과 비슷한 위치에 있어야 한다.
그렇다면 비전공자와 전공자의 차이는 무엇일까?
나는 그 답을 전공자가 대학교에서 배우는 CS 지식들이라고 생각했고, 그래서 CS공부를 해야겠다고 다짐했다.세 번째 이유는 '재미' 이다.
CS공부를 하는것이 재밌을 것 같다는 생각이 든다.
아직 제대로 시작하지 않았기 때문에 할 수 있는 생각일 수도 있고, 새로운 무언가를 배운다는 즐거움 때문일 수도, 혹은 다른 무언가일 수도 있다.
그러나, 중요한 것은 적어도 당장, CS공부에 대한 거부감이 들지 않는다는 것이다.
How?
우선 강민철 강사님의 강의를 먼저 들을 생각이다.
강민철 강사님의 유튜브 '개발자 강민철'에는 '혼자 공부하는 컴퓨터구조 + 운영체제' 등의 여러 개의 강의 영상들이 있다.
전공 지식들을 접근하기 쉽고 무료로 배울 수 있다니, 정말 좋은 시대인 것 같다.
이후에는 필요에 따라서, 관련 책을을 가지고 공부할 생각이다.