티스토리 뷰

수강 계기

저번 학기는 개체지향 프로그래밍 설계에 대해서 학습 했습니다.

https://takim0070.tistory.com/23

 

[POCU 강좌 후기] COMP 2500 - 개체지향 프로그래밍 및 설계 (Java)

수강계기 단순한 이유 2022년 05월 학기에서 COMP1000 - 소프트웨어 공학용 수학 과목과 COMP 2200 - C 언매니지드 프로그래밍을 수강하고 난 뒤에 만족도가 높아서 2022년 9월 학기에서는 COMP2500 - 개체지

takim0070.tistory.com

 

 

이제 취업을 해야하는데 코테 준비가 막막하더라구요. 그래서 그 차원에서 알고리듬 강의를 시작하게 되었습니다.

POCU의 학습 방식에 관한 설명은 이전 강좌 후기를 보시면 됩니다.

이번 강좌에서는 제가 느낀 장점, 단점만 이야기 하도록 하겠습니다.

 

장점

1. 왜 이런걸 배우는지 알려준다.

강좌를 간략히 설명하면

1,2,3 주차 -> 기본 알고리듬에 대한 설명 및 정렬

4,5 -> 해시 함수와 암호화

6,7 -> 여러가지 트리

8 -> 중간고사

9,10 -> DFS, BFS, DP, 그리디

11,12,13 -> 그래프

14 -> 기타 등등

15 -> 기말고사

 

학교 다닐때 정렬을 왜 배워야하는 지를 몰랐었는데 정렬이 되어 있으면 binary search가 용이 해지거나 그리디에 활용하는 등 다양하게 사용할 수 있는 점을 알게되었습니다. 그리고, 퀵 정렬과 병합정렬을 알고 있다고 생각했는데 그게 아니었습니다.... 확실히 직접 코드를 짜봐야 진짜 아는지 아니면 안다고 착각하고 있는지 알 수 있는 것 같습니다.

 

dp, 그리디, dfs, bfs는 문제에 접근하는 방식을 알려주는 느낌이었습니다. 전에는 이것의 쓸모가 있는지 몰랐는데 확실히 알고나니까 사용할 때는 많을 것 같더라구요.

 

그래프는 현실 문제를 어떻게 컴퓨터가 풀 수 있게 변환하고 효율적으로 풀 수 있는가 였던 것 같습니다.

그래프는 아직 어렵더라구요...

 

그래도 예전에는 알고리듬을 굳이 알아야 좋은 프로그래머인가? 하는 의문이 있었습니다. 적당히 개념만 알더라도 괜찮지 않을까 하는 생각이 있었습니다만 이번 강좌 학습 이후 이런 생각이 사라졌습니다.

컴퓨터로 어떤 문제를 해결하는게 프로그래머라고 하였을 때, 알고리듬은 그것을 효율적으로 행하는 방식이라는 점에서 알면 무조건 좋은 것이고 기본적인 정렬은 스스로 할 줄 알아야하며 그래프와 트리 등등은 개념을 이해하고 필요할 때 학습이 부족하다면 추가적인 학습을 하면서 적용하면 되겠다는 생각을 가지고 있습니다.

 

제가 기존에 학습을 하면서 받지 못한 경험이 '왜 이런걸 해야하나요' 라는 의문에는 답이 되지 않았습니다. 학교나 다른 강의에서는 이것을 알아야 코테 통과를 할 수 있습니다. 또는 이것을 알아야 졸업 할 수 있습니다.와 같은 간접적인 필요에 의해서 학습하다보니 흥미가 떨어졌는데 이제는 코테 연습도 스스로 하게 되었습니다. 왜냐하면 코테 문제들이 현실세계의 문제를 해결하는 역량을 길러준다고 생각하기 때문에 프로그래머스나 백준, 리트코드 문제들을 찾아보게 되더라구요.

 

 

2. 실습과 과제는 제대로 알고 있는지 확인 시켜준다.

확실히 POCU는 실습과 과제가 좋습니다. 알고리듬 자체는 다른 강의나 교재를 통해서 배울 수 있는데 진짜 내가 그 개념을 알고 있는가는 문제푸는 사이트에서 여러 문제를 풀어보면서 다져나가지만 POCU에서는 실습과 과제만 있으면 개념 학습에는 무리가 없습니다.

 

이제 저는 얼마나 빠른 시간안에 문제를 푸느냐에 달려 있습니다. 문제를 푸는 것 자체는 가능 하리라 생각하지만 프로그래머스 lv2부터는 시간이 조금 걸리는데 이걸 줄여야 한다는 걸 알았습니다.

많은 문제를 풀면서 이건 그리디, 이건 dp 이건 bfs 이건 dfs 이런식으로 보자마자 딱 캐치하는 능력을 기르면 코테는 문제 없지 않을까 싶습니다.

 

3. 슬랙방 토론이 다른 업계 사람과 이야기하는 느낌이 들게 해준다.

이번 강좌에서는 슬랙방에서 여러 이야기를 했었습니다.

근데 실습, 과제가 끝나기 전이라면 직접적인 코드로 소통할 수 없었습니다. 그래서 내가 짠 방식 통과하지 못하는 테스트로 내가 왜 안되는지 다른 사람들에게 설명하고 다른 사람들도 해결 방식이나 테스트 코드로만 소통하다보니 느낀게 있습니다.

 

보통 다른 업계 사람들과 이야기할 때 내 업무가 이런게 있고 요즘 이런게 잘 안되어서 고충이다. 이런 식으로 이야기 해 본 적이 있습니다. 그러면 그 사람들이 이런 방식이나 저런 방식을 이야기하며 조언을 해주는데 그런 느낌을 받았습니다.

그래서, 이번 강좌에서는 색다른 경험을 한 것 같습니다. 앞으로도 슬랙방에서 이런 저런 이야기하면서 토론하는 습관을 들여야겠습니다.

 

단점

1. 중간, 기말고사에서 왜 틀린지 알수 없다.

POCU 무엇이든 물어보세요에서 본거 같은데 중간, 기말고사에서 틀린 문제에 대한 답을 알려줘도 학습에 큰 도움이 안된다는 통계 때문에 알려주지 않는다는 걸 본 적이 있습니다.

그렇다하더라도 이 부분은 매우 아쉽습니다.

 

뭐가 틀린지 안다면 중간, 기말고사 검토 때 보고 추가적인 학습을 할 수 있을텐데 현재는 그냥 틀렸다는 것만보고 그 부분을 다시 한번 보는 방식으로 학습하니 뭔가 찝찝한 기분은 어쩔 수 없는 것 같습니다.

 

좋게 생각하면 나의 부족한 부분이 이런 것이니 계속 숙달 해야된다 생각하고 하는 것이고 나쁘게 생각하면 그런 것을 할 인력이 부족한 것인데 공개하지 않는 통계를 핑계로 한다고 생각할 수 있을 것 같습니다.

저는 아직 초보 프로그래머로써 부족한 부분을 알았으니 계속 숙달해야 한다고 생각해야 겠습니다. 나중에 시니어가 되었는데도 지금과 같은 생각이라면 그때는 비판을 해야겠습니다.

 

2. 다른 강의와 강의 자체의 차이점은 없다.

실습, 과제, 시험과는 별개로 강의 자체로 뭔가 다른 퀄리티를 제공하지는 못합니다.

물론 왜 이런 알고리듬을 배워야하는 지 설득하는 과정이 디테일한 점이 있습니다. 저는 이 부분이 매우 좋았습니다.

다만, 어떤 사람들은 '뭐야, 강의는 똑같네?'라고 느끼는 사람도 있을거로 예상됩니다.

 

이 부분은 어쩔 수 없는 것 같습니다. 이미 나와 있는 알고리듬을 소개하는 것이다 보니 다른 강의와 너무 다르지도 않는게 어찌보면 당연한 것일 수 있습니다.

 

 

마치며

제 성적표 입니다.

중간, 기말고사를 완전히 말아먹었습니다. 😅😅😅😅

 

지금까지 POCU의 강좌를 여러개 들었는데요.

기초-C#, 수학-C#, 언매니지드-C, 개체지향-Java, 알고리듬-Java

 

제 생각엔 C, Java 과목이 더 도움이 되었고 기초, 수학 과목도 일부 도움이 되었다고 생각하는데 당장에 코테 패스를 해야하는 입장에서는 알고리듬 과목이 가장 실용적이었습니다.

댓글