티스토리 뷰

반응형

내가 공부 했던 것들 DID

1. 자료구조 및 알고리즘 영역

- 이산수학 Discrete Mathematchics
학부시절 하란 교수님의 수업을 듣고 난 뒤, 과목의 매력을 느껴 교과목의 부 교재였던 Rosen 이산수학 원서 Discrete mathematics and its application으로 공부하였음. 내용 이해 및 연습문제를 풀 정도가 되니, BOJ에 나오는 대부분의 기초적인 알고리즘을 이해하는데 도움이 되었다. 그러니까 왠만한 코딩테스트들의 문제는 이 책 내용을 벗어나지 않는다. (PS 대회 제외) 특히 해당과목은 CS의 기본 수학인 "이산 수학" 즉, 수학이 subject였기 때문에 공학도인 내가 제일 먼저 덤벼볼 수 있었던게 있었던 것 같다. 

원서가 좋은데 너무 비싸서 당시 pdf로 보았다.

2017년도에 책으로 공부했었는데, 현재까지도 잘 학습했다고 만족하는 과목이다. 뭐 그 뒤로도 Rosen 저서에 관심이 있어 2018년도에 Handbook of Discrete and Combinatorial mathematics 라는 저서를 추가적으로 보았다. 이 책은 추후 기술될 CLRS 책과 같이보면 참 좋을 듯 하다.

- 백준/code.plus 그리고 몇 몇의 온/오프라인 스터디 
2018년도 국비지원 교육과정에서 동기분들이랑 공부했었다. 음... 당시엔 멋사 4기를 하고나서 느낀게, 난 IT랑 안맞구나 생각해서 IOT와 4차산업 배양 교육인 국비지원에 산업공학을 살리려 갔었다. 동 대학 선배분들도 여러 있어서, 권유하여 같이 시작했는데 문제해결 영역이 나랑 너무 잘 맞았다. 당시 문제 수준이, 퀴즈푸는 수준이어서 재밌었던 듯 하다. 당시 code plus의 백준님 강의를 들으며 공부했고, 나는 그 후에 개인적으로 중/고급 영역 강의를 샀다. 국비지원 교육과정이 끝나고 온/오프라인 스터디를 돌아다니며 반강제적인 자기주도학습을 주로 했다. 특히, 스터디 내의 발표시간은 학습한 것을 더욱 내재화 하는데 도움이 되었다.

- Introduction to Aalgorithm(a.k.a. CLRS)
백준 플랫폼을 통해 알고리즘을 공부하면서 중/고급 알고리즘으로 넘어가며 도저히 감각 만으로 풀기 어려운 영역이 나오고나서부터 이 책을 통해 공부했다. 이전에 Rosen 이산수학 책을 보았다고 했지만, 이산수학 책에서는 알고리즘에 대해 꼼꼼하게 해당 정의 내려주는 것이 아니기 때문에 알고리즘 전문 서적인 이 책을 읽었다. 위에 잠깐 언급한 Rosen의 Handbook of Discrete and Combinatorial mathematics도 같이 곁들어 보면 좋을 것이다.

 

-codeforces
 음.. 여긴 덕질의 영역이긴 하나 확실히 도움이 된다. 나는 막, 회사에 취직하였을 때 codeforces 개인 최고 성적을 거두었고, 그 뒤로는 이것 저것 신경쓸게 많아서 안하고 있다. 가끔씩 온라인 스터디에서 장려하면 테스트를 보긴하는데, 자주 안하는 이유는 예전처럼 2시간을 테스트에 할애하기 싫어서이다. 1년 6개월 동안 체험해보니, 이해하기 어렵고 해결하기 어려운 문제를 해결할 때의 성취감은 대부분 시험 바깥에서 이루어졌었다. 그에 반해, 시험 안에서의 대부분의 시간은 즉, 온라인 테스트 도중에서는, 수십번~수백번의 추상적인 해결 시도를 반복하는 고통스러운 테스트이고, 더 공부해야겠다는 동기부여제였다.
 블루 구간을 유지하고 퍼플로 올라가려면 내가 쏟아야할 시간이 더 많이 필요해졌고, 동시에 현업에서 일을 하는 체력, 취미 개발, + 집안 일 등을 해버리면 내가 삶이 없었다. 그리고 알고리즘 말고 다른게 공부하고 싶었기도 했다. 

 나는 도중에 멈추었지만 이 정도의 노력을 꾸준히 유지하시면 대부분의 국내의 대기업 코딩테스트는 통과할 것 입니다. 나는 비효율적으로 공부하는 편이라 다른 분들에게 제 공부방법을 추천하진 않습니다. 

2. 언어 영역 

- 객체지향언어
학부 시절 객체지향언어 수업으로 듣게 되었다. C++ 기반의 내용이었는데, C++에 대해 배울 수 있어 괜찮았다. 근데 가상 함수 테이블 등의 이론 내용은 전혀 기억이 나지 않는다..ㅠㅋ;;

내가 공부해야할 것 들 TODO

-2021/04/30 수정 (컴퓨터 구조 제외 및 데이터베이스 추가)
-2021/06/29 내용추가 ( 데이터베이스 교재 Database System Concepts pdf 주소 추가)

 현업에서 일한지 2년이 되었는데, 문득 잘하고 있나라고 생각이 들었다. 2년 동안 일 했으면 비전공자여도 기본적인 지식은 조금 배워야하지 않을까? 라는 생각이 들었다. 특히 50~60 나이의 시니어 개발자분들이 이 부분에 대한 지식을 조금씩 공유해주실 때마다, 왠지 이 지식은 절대 불변하지 않을 것이고, 죽을때까지 써먹겠구나 라는 자기 확신이 들었다.  

 아래 내용은 내가 현재 진행 하고 있는 공부여서 참고했던 강의 및 저서가 변경될 수 있습니다. 

=================================

1. 운영 체제 - covenant.tistory.com/219?category=773722

KOCW 강의 - 반효경 교수님 2017년 강의

2. 네트워크 - covenant.tistory.com/222?category=773722

KOCW 강의 - 이석복 교수님

+ HTTP 인프런 강의 - 김영한 강사님
저서 - HTTP 완벽 가이드

3. 데이터베이스 

KOCW 강의 - 용환승 교수님 
+ 추가적으로 Database System Concepts는 무료로 pdf를 배포하여 사용할 수 있다.  https://www.db-book.com/db7/slides-dir/index.html

===============================

올 여름(8월 말 예상)까지는 이렇게 공부할 것이다. 학부 시절 공부할 때처럼 원서 뒤져가면서 해야할 듯 싶다. 인프런 강의는 현업에서 거의 대부분이 HTTP를 쓰니 넣게 되었다. 잘 이해하며 쓰고 싶기 때문이다. 하지만, 주로 진행할 대학강의와는 느낌이 달라서 아마 OS, 컴구, 네트워크 파트가 다 끝나고 나서 여름 8월 쯤에 들을 듯 싶다.   

추후 공부하는 시즌에 할 것들 데이터베이스, 오토마타, 컴파일러...
데이터베이스는 해보고 싶은데, 오토마타와 컴파일러는 내용을 검색해보니 논리기호가 나오던데... 30대엔 논리기호 말고 신경쓸게 많아서 당장은 못 하겠더라. 이미 살면서 수학은 충분히 많이 했던 것 같은데..... 우선 이과정이 끝나보고 리뷰해봐야 올 해 계획에 넣을지 말지 결정을 할 듯 하다

반응형