대학교에서 교재로 쓰이는 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++은 기능도 별로 없고 어렵고 불편하다" 고 생각하니 얼마나 답답한 노릇일까?
앙~기모띠 ^오^
binary_search 보다는 lower_bound 가 더 쓸모 많다.
정성스런 어그로에 개추 하나 놓고 갑니다
ㅇㅇ // 나는 오히려 좋게봄 ㅎㅎ 이렇게 가르쳐서 나와야 땔깜들이 밑을 깔아주지
이것이 헬조선 아니겠습니까
오히려 교수보다 언어쪽은 시강들이 더 나을수도 있습니다. 실제 일하는 사람들이라서요. 서로 교육스타일이 달라요. 그런데 본인이 관심있으면 찾아서 공부하는데 8할은 그런사람이 아니지요. 물론 비율적인데 그나마 유명댜는 찾아보는 비율높을지 모르지만 밑으로 내려강수록 더 심해져요
학교 플젝과젠 공모전 하면서 느낀건데 학점절대 안믿습니다. 4.0넘어도 제대로된 코딩이나 이론을 모르는데 어떻게 그렇게 학점 높은지 의문
정보처리기사 // 당연히 틀딱들 옛날 서적 외워서 지들만의 리그에서 노는데 학점이 좋겠죠 ㅎㅎ 현실은 그렇게 배우고 나와서 찌꺼기지만
ㅇㅇ // 당연히 그게 맞는 거임. 공부 제대로 안하고 날코딩 몇년 일찍 시작했다고 깝치는 애들은 땔깜 테크
잘 읽었습니다
그런건 알면 메뉴얼에 나온대로 쓰는거고 말그대로 잡지식이기 때문에 별로 중요한건 아님. 학교가 그런 잡지식이나 가르치고 있으면 그것도 문제지....
학교애서 c++ 가르치는것 자체가 잘못
ㄴ 이게 핵심을 찌르는 댓글이네. C++만큼 심오하고 어려운 언어가 없는데 그걸 학부생에게 C다음에 바로 가르치는건 잘못임. C 자바 파이썬 세개정도가 적당하다 봄
위에 말이 맞다 최신기술을 안가르쳐주는게 문제가 아니라 저학년에 그걸 배우니까 생기는 문제임. 근데 좆부생주제에 모든기능안배운다고 화낼거면 디비 네트워크 알고리즘 어셈쪽은 왜 지적안함?
ㄴㅋㅋ ㄹㅇ
C++99가 뭐냐. C++98이겠지. 사실 C++03이지만.
ㄴ C99랑 헤깔릴수도있져. ㅋㅋ
나도 이 글에 별로 동의하지않는다. 최신기술을 가르쳐주지 않는건 대학교에서 그닥 문제가되지않는다고본다. 랜덤함수? 그거 최신기법으로 짜는게 그렇게중요하냐? 그런게있으면 그때그때 현업에서 배워서 쓰면그만이다. 대학에서 배워야하는건 그런게아니라 각종 디비이론, 네트워크, 자료구조 등 세월이 지나도 바뀌지않는 기본중심을 탄탄히 가르치는게 중요하다고본다.
그리고 트렌드따위는 언제든지 바뀜. 그렇게 갈대처럼 바뀌는걸 대학에서 가르치는게 정상이냐?
윗놈말에 일부동의한다 하지만 1억짜리 난수생성하는데 srand쓰는놈은 뭐냐? 좀 더효과적인걸 구글링하거나 공식문서볼순없는거냐? 대학에선 그런것도 가르쳐야한다고 생각한다
애초에 대학이 C++을 배우는 곳이라고 생각하는 것에서 글쓴이의 지식수준을 판단할 수 있다.
대학에서 실용 기술을 모두 배워야 한다는 등신마인드는 어디 개족보 쌍놈 마인드냐. 벼이삭 도리깨질이나 할 놈이 글 몇자 배웠다고 샌님행세 하네. 학교에서는 가장 스탠다드한 표준을 가르치는 거고, 현장에 필요한 실무지식은 지가 알아서 공부하는 거야.
학교가 학원이냐? 교육기관 인식하는 수준 보니까, 어디에 비중을 두고 배운놈인지 뻔히 각 나오는데, 그러면 대학교수라는 양반이 c++ 버전 찾아가면서 라이브러리 일일이 설명하고 함수 설명하고, 그 지랄 떨어야겠냐. 그게 교수임? 인간 메뉴얼이지? c++ 이라는 게 저수준을 어느정도 커버하는 고수준 언어니까 그런 언어적 특징을 하드웨어적 특징이랑 잘 연결해가면서 이게 이런 원리로 동작하는 이런 기능이란다~ 를 적절히 이론적으로 잘 설명하면서 가르치는 양반이 잘 가르치는 교수여. 니가 말하는 건 땔깜 양성하는 학원강사고.
C++11 기능중에 가장 우려했던게 이런 놈들 꼭 생긴다는거. 새로운 기능 자체는 다 필요한 곳이 있다고 생각한다. 선택의 여지가 있다면 익숙하고 많은 사람들이 알만한 방법을 사용하는게 좋다.
개씹어그로 수준 ㄷ 대학에 C++ 배우러 댕기냐 지금 시대가 어느땐데 글고 교수가 시대에 맞춰가며 새로운 라이브러리나 함수 공부해서 늬들한테 가르치고 댕기겠음? 나라도 내 아는거 풀어설명해내고 걍꿀빨지 그리고 python 합시다 우흥
말하는 이가 맞다고 생각하는대
현실은 실무에서도 c++ 로 된 코드는 대부분 99년 버전이고 컴파일은 11로 할지 모르겠으나 실제 11의 기능은 거의 안쓴다는거..