백엔드 공부 어렵네요!

Wang_Seok_Hyeon·2023년 1월 21일
0

ZeroBase를 하며

목록 보기
4/7

어려우니까 하는 것.

프로그래밍 공부를 약 3주? 4주? 정도 각 잡고 시작을 했다. 어렵다. 프로그래밍 언어에 대해서 전혀 모르는 것도 아니지만, 책을 공부하고, 문제를 풀고 구현해주는 걸 강의를 통해 보고 배우면서 느끼는 건, 역시 내가 아는게 아는 게 아니라는 점.

하지만, 그게 나한테는 좋은 자극이 된다. 나라는 세상을 깨고 프로그래밍이라는 세상으로 가기 위한 알 깨기 과정이랄까?

사진이 좀 자극적이긴 한데, 전구를 깨고 있어서 그 의미가 크게 느껴졌다. 머리가 아파서 깨는 것도 있겠지만, 내 세상의 틀을 깨는 느낌도 나서 가져와 봤다.

잡담.

어려우니까, 하는 거에 조금 더 부연이다.(TMT스타일)

최대한 짧게 말하면,
어려우니까 누구나 할 수 있는 건 아니고, 그렇다고 못 갈 길은 아니라는 점의 가능성을 봤던 거 같다. 특히 이번 한 주가 좀 그 점이 크게 느껴졌다. 그래서 빛이 보인다는 희망찬 기분에서 글을 이어갈 수 있을 거 같다!

공부할 과정.

아직 배워야 할게 산더미다. 단순 개념만 해도 그렇다. 하지만 그 산더미도 언젠가는 내 머릿 속의 작은 메모리에 올라가는 주소가 될 거다.

그리고 그 주소를 잘 활용할 수 있게 내 컴파일러를 갈고 닦는게 내가 할 일이다.

                                     (내가 꿈꾸는 나의 머릿 속)
                                     

그런 몇 가지 학습 과정을 그려 볼까 한다.
내 두뇌 DeepLearning을 시킬 과정이랄까?

1. 책으로 공부하기.

나는 자격지심이겠지만, 학원에서 공부하는 강의의 학습만으로 내가 프로그래머의 이름을 달고 살아가는 건 안 된다고 생각한다.

특히 제한된 시간과 그 개념의 구현을 체계적으로 영상으로 찍어 둔 이번 과정을 보고 책 공부도 함께 하면서도 느끼는 바가 많다.

강의에서 이 개념을 설명하려면, 얼마나 엄청난 시간이 걸릴까?

(윤성우의 열혈 자바라는 책을 기본서로 보고 있다. 대충 900p)

그러면서 동시에, 내가 이 개념을 모르고 현업에서 일을 하게 되었을 때 얼마나 큰 불편을 겪을까? 이런 생각을 많이 하게 된다.

학원의 프로그램은 정말 대학 4학년을 잘 압축시켜서 녹여냈다. 하지만, 그것의 압축해제본을 전혀 모르면, 그 압축의 가치를 알 수 없다. 그러기 위해서라도 책은 내겐 꼭 필요한 것 같다!
(자료구조, 알고리즘 기본서는 아직 못 정했지만 곧! 정해야지!)

2.강의 수강.

원론으로 돌아와서 나는 적지 않은 돈을 주고 강의와 과정의 수강권을 구매한 구매자이기도 하다. 그래서 강의도 열심히 들을 필요가 있다.

더불어서 밝히지만, 강의는 분명 양질의 강의임에 틀림이 없다. 자바로 이렇게 꼼꼼하고 다양한 예제와 문제를 풀면서 훈련시키는 강의는 아직 만나보지 못한 거 같다.
(영업 사원 같지만... 아니고, 진짜, 내가 1회차 한 번 하고 Drop하고 여러 개 찾아 봤지만 이 정도로 Detail하게 해 주는 곳은 없었기에)

문제는 강의 하나가 20분~30분 짜리인데, 그거 하나 듣고 이해하는 코드를 나 스스로 분석하는데 2시간 3시간이 걸린다는 점이다.

이 시점에 이 강의가 얼마나 잘 만들어졌는지 알 수 있으리라. 2~3시간이 걸릴 수도 있는 내용을 2~30분 안에 녹여 놓은 것이다.

그래서 계획한 공부시간이 2시간, 3시간을 초과해서 5시간, 6시간이 되곤 할 때가 많다.

근데, 이걸 분석하고 내 머릿 속의 컴파일러를 업데이트 할 때 그 짜릿함이 정말 말도 못하게 좋다.

하지만, 이걸로 끝이 아니다!

문제풀기!

개념의 이해, 코드 분석의 완료. 너무나도 좋다.
우리는 쉽게 까먹지만,
int i = 0; 과 같은 구조도, 결국 우리가 이해하고 사용하고 있음을 밝힌다.

class에 대한 이해도가 높은 사람들은

class Car{
public Car(){}
public void carNum(int num){}
}
대충 위의 클래스와 생성자, 메소드 사용을 거침없이 해낼 것이다. 이런 개념의 이해는 직접 구현해 보는 게 좋다.
그리고 이 구현은 문제로 훈련이 가능하다.

프로그래머스 문제를 약 한 달 간 풀면서,


랭킹의 단위가 바뀌었다. 혹자는 이렇게 얘기한다. 검색해서 다 풀 수 있고 검색하면 다 나오는 건데, 저게 가치가 있을까?

나는 생각한다. 검색해서 자기가 필요한 걸 활용하고 그것을 학습하고 그러면서 배우는 게 잘못된 걸까?

그 과정이 100번, 1000번 반복하면서 모방해내 내것으로 만든다면, 그것도 충분히 가치 있는 학습 중 일부가 되지 않을까?

검색이 잘못된 게 아니라, 검색으로만 문제를 해결하고, 그 코드에 담긴 본질을 놓치는 것이 문제이리라 본다.

그 늪에 빠지지 않게 나 스스로, 코드를 참고했다면, 그 코드를 이해하고 분석하고, 어떤 생각으로 작성했을까를 직접 구현해 본다.

그럼 나의 쿠세나, 기존의 참고 코드와는 다른 모양새가 되는걸 볼 수 있다. 이런 과정을 통해서 학습을 수정하고 점검하면서 계속 앞으로도 문제를 풀어갈 거다.

특히, 자료주조의 선형, 비선형 문제들을 도전하고 해치워 나나고 싶다. 아직 그 부분이 너무 부족하다.

끝으로...

위에서도 한 번 언급했지만, 어려우니까 한다. 그렇게 내 세상을 부수고, 프로그래밍의 세계로 가고 싶다.

하지만, 이것도 작은 벽일 거다. 아직 모르는 게 너무 많다.
나는 이 투명하고 미지한 무지가 더 무섭다.
어떻게 해야할지 아직 감도 안 잡히는 것들.
내가 어떤 것에 더 관심을 쏟고 더 집중해야 진짜 좋은 프로그래머가 될 수 있을까에 대한 의문.

이런 의문들 속에서 지금은 즐겁게, 책과, 강의와, 문제 속에서 공부를 이어가고 있다. :)

p.s. 미안해요. 고슬링*, 저는 커피를 안 마시지만, 자바는 열심히 할게요.
제임스 고슬링(James Arthur Gosling)
[자바 언어 개발자.](<-자세한 내용은 여기를)

profile
하루 하루 즐겁게

0개의 댓글