대학교에서 교재로 쓰이는 C++ 등은 대부분이 C++99 표준 수준의 기능만 가르친다.


이게 진짜 존나게 큰 문제점인데.. 아직도 C++에서 난수 생성해보라고 하면

애들이 ctime 하고 cstdlib 인클루드해서 srand(time(NULL)) 이지랄 하고 앉았더라..


그래서 물어봤다. C++에서 1부터 1억 사이의 수를 생성하려면 어떻게 해야되냐고.

rand()를 3~4개 이용해서 한다더라.


이게 존나게 큰 문젠게 시대가 흐르면서 언어는 발전하고, 새로운 기능이 계속 생기기 마련인데

교수새끼들을 비롯해서 애새끼들이 배우는 책도 구닥다리 책이라는 것이다.

어떻게 보면 교수새끼들의 꼰대마인드 기질로 발전이 없는 거겠지.


정말 단 한명도 C++ 11의 random_device을 사용하는 경우를 보지 못했다.

(C++11 이면 심지어 벌써 5년이나 지난 표준이다.. 지금은 곧 C++17이 나온다.)


이미 random_device와 distribution 종류에 따라 type 별로 수많은 랜덤 변수를 생성하는 기능이 생겼음에도

교수새끼들은 이런걸 알려주지 않는다. 주구장창 rand()로 조작을 해서 다른 크기를 생성하도록 한다.


STL의 사용은 '알고리즘' 혹은 '자료구조' 에서 정도나 쓸 수 있게 하고, 그게 아니면 왜 쓰냐고 오히려 뭐라 한다.

그러면서도 cstdlib에 있는 qsort는 이상하게 존나 사랑한다.(심지어 이 qsort는 STL의 sort보다 훨~씬 씹쓰레기임에도 불구하고)

이분탐색은 bsearch 로 하란다.(이것도 STL의 바이너리서치보다 존~나게 후지다)


auto를 쓰면 마치 죄인 취급을 한다. 모든 타입의 이름을 그대로 쳐야하며 정 줄이고 싶을 때는 typedef를 쓰란다.

auto는 이제 심지어 곧 함수 인자 타입에도 쓸 수 있게 된다. 하지만 교수새끼들은 <template T>를 존나게 사용하라 하겠지.


그리고 대체 80년대말 90년대 초에나 써먹을 법한 union은 왜 그렇게 쳐 강조하는지를 모르겠다.

여기서도 이런 글을 쓰면 또 풀발기하면서 union을 까네 이런 병신들이 나올지 모르겠지만, 컴공생의 99.9%는 앞으로 살면서

union을 필요에 의해 사용하며 코딩하는 일이 없다.


일부는 union으로 메모리를 아낀다는 새끼들도 있었다. 그렇게 말한 새끼들 코드에는 알고리즘을 몰라 존나게 큰 배열을 하나 만들고

무식하게 for문으로 해결하기 위한 소스가 보였다. union으로 절약하는 메모리보다 그 병신이 선언한 배열 메모리가 더 아까웠다.


이렇게 새로운 표준이 등장하고, 새로운 프로그래밍 기법이 나오면 그것을 최신 트랜드로 익혀 가르쳐야 마땅할 판국에,

틀딱 교수새끼들은 아직도 C++99 기반의 책으로 학생들을 쳐 가르치고 있다. 그러니까 아~직도 C++ 6.0으로 코딩한다는 애미 뒤진 것들도 나온다.


컴공생의 50%가 STL을 한번도 사용하지 않으며

컴공생의 70%가 for in 문을 사용해본적이 없고

컴공생의 80%가 #include<random> #include<tuple>을 사용 해본적이 없고

컴공생의 95%가 heap (2d vector와 priority_queue)의 dijkstra algorithm을 구현할줄 모른다.(대부분이 adjancy matrix 기반의 dijkstra를 가르치기 때문)


그리고 교수새끼들은 아직도 register int와 volatile, friend class 등을 중요 개념으로 가르친다.

(register 는 C++ 17 부터는 사라진다.)


이렇게 2016년에 컴퓨터를 배우는 프로그래머 학생들 90% 이상이 C++14 기능의 10%도 제대로 사용하지 못하고

C++을 배우며 "C++은 기능도 별로 없고 어렵고 불편하다" 고 생각하니 얼마나 답답한 노릇일까?