안녕하세요. 교육 프로그램 좀 검증 부탁드립니다.

anfl의 이미지

안녕하세요.

제가 교육 프로그램을 하나 기획하고 있는데 여기 계신 고수님들께 커리큘럼을 검증받고자 이 글을 올립니다.
이하 모 사이트에 올린 전문을 약간 수정해서 올립니다.

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

안녕하세요.

제가 사업을 운영 하면서 정말 공감가는 말이 하나 있는데
"사람은 많은데 쓸 사람은 하나도 없다."라는 말입니다.

지금까지는 운좋게도 뛰어난분들이 함께 해주셔서 사업이 잘 진행되고 있습니다.

하지만 내년도에 발생할 수 있는 일을 생각하면
훌륭한 개발자를 어떻게 모집해야 할지 앞이 깜깜하기만 합니다.

현재까지는 주로 소개 위주로 개발자들을 뽑아왔습니다.

공채로도 몇번 뽑아봤는데 현재 공채로 뽑혀 계신분들 혹은 회사 사정으로 못 뽑으신분들 빼고는,
기술 수준 또는 재능들이.... 하....

제가 사람 뽑는데 좀 까탈스럽긴 하지만 아무리 그래도 그렇지
그간 회사 공채에 응시했던 지원자들의 기술 수준은 좀 심하다라는 생각이 들었습니다.

회사분들은 이것이 공채의 현실적인 수준이다라고 말을 하는데,
저는 도저히 제 기준을 낮출수가 없습니다.

절이 싫어면 중이 떠나라고 했는데,
저는 절이 싫어 새로 짓기로 마음 먹었습니다.
그래서 개발자들을 직접 키우기로 결심 했습니다.

내년도에 회사 사정에 의해 훌륭한 개발자들이 많이 필요할 예정입니다.

겸사겸사해서 교육 사업을 지금부터 시작해서 미리 사람들을 키워놓을 생각입니다.
그래서 그렇게 키운 사람들이 회사에 입사하면 좋고,
아니면 국가 발전에 이바지 했다라고 생각하려 합니다.

때문에 다음과 같은 교육 과정을 개설하려고 계획중입니다.

- embedded system 전문가 과정
- hacking & security 전문가 과정
- server / client 전문가 과정

이러한 교육 과정들을 위해 아래와 같은 커리큘럼을 만들었습니다.
B모사처럼 3개월 수업, 3개월 프로젝트 형식입니다.

여기 계신 여러 전문가 분들께 해당 커리큘럼을 검증 받고자 이글을 씁니다.
지적해주실 부분 있으면 미리 지적해주셨으면 감사하겠습니다.

PS. 초안이라 생각나는대로 적었습니다.
이중에서 칠껀 쳐내고, 교육 기간 연장이 필요하면 연장할 생각입니다.
수박 겉핧기가 안되도록 강사진과 강의 수준에 많은 신경을 쓸 생각입니다.

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

1. Processor Architecture
- Advanced Processor Architecture Theory (Superscalar, Multi-core 등)
(Georgia Institute of Technology 대학원 수준에 준하는 강의)
- ARM Processor Architecture 이해
--- ARM Assembly도 같이
- x86_64 Processor Architecture 이해
--- x86 Assembly도 같이
- 실제 ARM Processor 설계 및 구현 (xilinx FPGA, verilog 등)
--- 실제 상용 프로세서 개발자 직강

2. Compiler
- Advanced Compiler Theory (RISC, VLIW 등)
(Georgia Institute of Technology 대학원 수준에 준하는강의)
- GCC Compiler 구조와 원리
- ELF Binary Format
- Linker & Loader
- Virtual Machine 이해 (OVM or MONO or JVM)
- 실제 ARM Processor Compiler 설계 및 구현 (Linux)
--- 실제 LLVM Committer, 가상머신 개발자 직강

3. OS
- Advanced Operating System Theory (Multi-core)
(Georgia Institute of Technology 대학원 수준에 준하는강의)
- RTOS 이해
--- 실제 상용 RTOS(김연아, 한가인이 선전하는 제품들) 커널 개발자 직강
- 실제 RTOS Kernel 설계 및 개발
--- 실제 상용 RTOS(김연아, 한가인이 선전하는 제품들) 커널 개발자 직강
- Linux Kernel 이해
--- 실제 Linux Kernel Committer(한국 기여도 2위) 직강
- 실제 Linux Kernel을 이용한 Embedded Home Network System 설계 및 구현

4. Network
- OSI-7 layer
- TCP/IP protocol 설명
- 각종 protocol 설명
- 고급 socket programming
- 실제 tcp/ip protocol 설계 및 개발

5. Hypervisor (VMM)
- Advanced Hypervisor Theory (para, full, HVM 등)
- Xen & KVM Hypervisor 이해
- 실제 Hypervisor 설계 및 구현
--- 실제 상용 Hypervisor 개발자 직강

6-1. Embedded System Software 전문가 과정
- make, cmake, autotools, git, svn, gdb 등
- JTAG, Debugger 구조와 원리 (실제구현?) (ELF, DWARF2 등)
- Linux System Programming
- Linux Device Driver
- Linux 부팅과정
- Linux Kernel proting
- initrd, root filesystem 제작
- MTD 및 flash memory
- System packaging
- iPhone Programming
- Android Programming

6-2. Hacking & Security 전문가 과정
- network hacking & security
- Reverse Engineeing
- Windows Kernel 내부구조
- system hacking & security
- Forensic
- Firewall 구조와 원리, 실제 구현
- Anti-malware 구조와 원리, 실제 구현

6-3. Server / Client 전문가 과정
- make, cmake, autotools, git, svn, gdb 등
- Linux System Programming
- Linux Device Driver
- Software Design methodology
- Win32 API
- MFC Programming
- .NET Programming
- ActiveX/COM
- Network Programming
- Network & System security
- XML & SQL Server
- Oracle

7. SE
- UML, 애자일
- 각종 개발 및 디버깅 툴
- 개발 프로세스

8. 공통
- 철학
- 심리학 (개론, 인지심리, 신경심리 등)
- 인지공학
- UI/UX

9. 프로젝트 (3개월간)

anfl의 이미지

어떤 조언이라도 좋으니 관심 부탁드립니다. ^^


semmal의 이미지

일단 모두 다 자세히 읽지는 않아서 잘 모르겠지만,

6개월만에 배우기에는 너무 내용이 많은 것 같습니다.

게다가 너무 실무 위주라, 이론지식은 별로 없는, 수박겉햟기로 싸구려 기술자를 만드는 느낌도 듭니다.

물론 관련 학교에서 제대로 공부를 했다면, 또 제대로만 배운다면, 매우 유용한 커리큘럼임에는 틀림 없는 것 같습니다.

다만, 이쪽 분야가 따지고 보면 관련 전공자가 많지 않잖아요.

이론 지식 없어도 밥 먹고 살기는 합니다만, 바탕이 없으면 짧은 시간내에 많은 지식을 배우기도 어렵고,

오랬동안 이쪽 일을 하면서 버티기에는 무리가 있지 않을까 싶기도 하구요.

그래도, 얼핏보기에도 꽤나 생각을 많이 하신 것 같아서 부정적으로 적은 글과 달리, 그렇게 부정적으로 보이지는 않습니다.

어디까지나 모든 일은 사람에 달린 것이니까요.

------------------------------
How many legs does a dog have?

anfl의 이미지

감사합니다.

초안이라 생각나는대로 적었습니다.
이중에서 칠껀 쳐내고, 교육 기간 연장이 필요하면 연장할 생각입니다.
수박 겉핧기가 안되도록 강사진과 강의 수준에 많은 신경을 쓸 생각입니다.

강사진은 문제가 없는데 강의 수준이 문제인것 같습니다.
주변에 보면 정말 뛰어나신 분들이신데도 표현을 잘 못하시는 분들이 많이계셔서...


semmal의 이미지

제 생각을 말씀드리자면,

같은 기술을 익힌 사람들이 나오는 학원이 아니라, 같은 철학을 익힌 사람들이 나오는 곳이 되었으면 합니다.

개인적으로는 언제든 새로운 것을 배우거나 불가능 한 것에도 도전할 수 있는 그런 철학이면 더 좋겠습니다.

요즘 20대들을 보면 이걸 원래 학교에서 깨우치고 와야 하는 건데 세상 다 산 사람들처럼 벌써 세파에 찌들어서 오는 것 같습니다.

그러니 자신을 바꾸거나 세상을 바꿀 생각보다는, 그저 자존심만 내세우고 환경탓 돈탓만 하는 것 같네요.

------------------------------
How many legs does a dog have?

anfl의 이미지

네. 조언 감사합니다.
저도 그런곳을 만들고 싶습니다.


태훈의 이미지

공감합니다.

Just do it!

세벌의 이미지

교육 과정 중에 단 5분만이라도 두벌식과 세벌식에 대해 얘기하는 건 어떨까요?

anfl의 이미지

제가 세벌식을 안써봐서 얼마나 좋은지를 잘 모릅니다.
그래서 이 부분은 제가 생각해볼 능력이 안되는것 같습니다.


세벌의 이미지

안 써 보신 분에게 좋다 나쁘다를 말씀하시란 건 아니었구요.
교육하실 때, 잠깐 시간을 내서, 세벌식이란 것도 있고 두벌식이란 것도 있다는 정도만이라도 언급하셔서
교육생들이 선택할 수 있도록 하자는 얘기였습니다.
강제로 세벌식 쓰라고 하자는 얘긴 아니고요...

워드프로세서 기출문제에도 세벌식이라는 용어가 등장하던데, 아직도 그 존재 자체도 모르는 사람이 많다는 게 안타깝네요.
사실 세벌식 자체가 여러운 건 아니예요. 접할 기회가 거의 없다 보니 많은 사람들에게 어렵게 느껴지는 거죠.

anfl의 이미지

네. 저 역시 강제로 쓰라라고 하신 말이 아니신지 알고 있었습니다.

두분이나 세벌식에 대해 말씀을 하시니 분명 무슨 이유가 있을것 같습니다.
다음에 시간내서 한번 알아보도록 하겠습니다.


semmal의 이미지

UI나 UX에서 세벌식 지원을 고려해볼 가치는 있다고 언급 하는 정도도 괜찮을 것 같은데요.

------------------------------
How many legs does a dog have?

anfl의 이미지

네. 확인해보도록 하겠습니다.


익명 사용자의 이미지

세벌식 홍보가 지나치신 것 같군요.

개발자용 코스 아닙니까? 누가 봐도 한글 자판을 소개할 만한 커리큘럼은 아닙니다.

사랑천사의 이미지

감동적입니다... 근데 알고리듬, 자료 구조도 넣으면 좋을 거 같네요. 그리고 임베디드 쪽이신 거 같으니 임베디드 시스템에서 효율적인 자료 구조에 대한 것도 있으면 좋을 거 같구요.

뭐 저야... 워낙 기본이 안 된 상태에서 전산 쪽이 좋다고 혼자 공부한 놈이라 저거 보니 쓰러지겠네요.

아무튼 사업도 잘 되시고... 능력자 양성도 잘 되시면 합니다. 그리고 저도 같은 기술을 아는 사람들이 아니라 함께 공유할 수 있는 공통된 철학을 가진 사람들을 양성할 수 있는 과정이면 좋겠다고 생각합니다.

사람천사

anfl의 이미지

이 커리큘럼의 철학은 간단히 말해 기본에 충실하자 입니다.
이후 탄탄한 기본위에 보다 상위 수준의 지식(embedded, security, server/client 등)을 쌓아 올리자라는 것입니다.

보다 더 상위 수준의 지식(예를들면 oop, 각종 서비스, platform 활용 등)도 넣고 싶지만 그러기엔 기간이 너무 짧기에 앞으로 무엇을하던 든든한 버팀목이 될수 있는 탄탄한 기반과, 방향을 스스로 결정할 수 있는 안목을 기르자라는 것이 본 커리큘럼의 요지입니다.


rgbi3307의 이미지

사랑천사님은 anfl님의 커리큘럼에 대해서 긍정적으로 보시는듯 합니다만,
자료구조와 알고리즘에 대한 내용이 없어서 이것에 대해서 언급한 것인데,
여기에 대한 시원한 답변이 없으신듯 하네요.
자료구조와 알고리즘보다 탄탄한 기본기가 또 있을까요?

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

anfl의 이미지

네. 있습니다.

뭐냐고 물으신다면 그냥 웃을 수 밖에 없을것 같습니다.
왜냐하면 아실분들은 다 아실테니깐요.


kyano의 이미지

정말 몇년만에 KLDP에 댓글 달아보네요... ;;

실컷 웃으셨으면 이제 그 탄탄한 기본기가 뭔지 알려주시겠습니까? 나름 CS로 박사과정까지 하다가 때려쳤지만...
자료구조와 알고리즘이 아닌 누구나 아는 탄탄한 기본기가 뭔지 모르겠네요.

정말 궁금합니다.

--
Have you ever heard about Debian GNU/Linux?

semmal의 이미지

기본기야 컴공이나 전산에서 배우는 기본 과목이 전부 기본기죠.
anfl님 과목명을 보자면 처음부터 architecture, compiler, os, network인데, 일단 교육목적에 맞는 기본기는 다 들어갔다는 생각이 드네요.
제가 지적했던 부분은 세부항목이 이론보다는 실무위주라는 것이었구요.
그런데 따지고 보면 이쪽 이론은 약간 뜬구름 잡아서 죽어있는 경향이 있기 때문에,
오히려 실무를 익히면서 살아있는 이론을 접할 수 있다는 생각이 들어서 별로 비관적이지 않군요.

그보다, 알고리즘이나 자료구조를 익혀야할 실력이라면 확실히 anfl님 강의를 들어서는 안될 것 같다는 생각이 드네요.
이걸 익혀야할 실력이라치면, anfl님이 제시한 강의내용을 전혀 못따라갈 것 같다는 생각이 드는 건 저 뿐인가요?

------------------------------
How many legs does a dog have?

anfl의 이미지


제가 생각하는 바를 정확하게 말씀해주셔서 감사합니다.


anfl의 이미지

저는 프로그래머라면 적어도 1+1은 왜 2가 되는지는 알고 코딩해야 한다고 생각합니다.

그렇다면 컴퓨팅 시스템 자체를 알아야하고요.
그러기 위해서는 processor architecture, compiler, os를 이해하는건 필수중에 필수입니다.

자료구조, 알고리즘은 그 이전에 당연히 알고 있어야하겠지요.
하지만 그리 많은 자료 구조나 알고리즘을 알 필요는 없습니다.

RB-tree, BM 매칭, AC 매칭, 그래프 컬러링과 같은 알고리즘들은
중간중간에 나올때 스스로 학습하는 되는것이죠.
그러한 자료 구조들을 이해하는데 시간이 많이 걸릴까요?
전혀 그렇지 않습니다.

아무리 복잡한 자료구조 알고리즘이라도 완전히 이해한 사람이 설명하면,
난위도에 따라 다르긴한데 구현을 제외하고 나면 보통 30분도 안걸리죠.

그리고, processor architecture, compiler, os, AM, DB(빠졌지만)등과 같이
실제 개발에 유용한 고급 자료구조와 알고리즘들을 많이 사용하고 있는 분야가
몇가지 특수 분야를 빼고 그렇게 많지 않습니다.

그런것으로 볼때 다시 본론으로 돌아와서

전산학의 기본이라면 자료구조, 알고리즘 이전에 컴퓨팅 시스템 자체이지 않겠습니까?
자료구조, 알고리즘은 그 위에 구현되는 것이고요.

덧글 : 이분야는 박사 과정 수료했다고 해서 뛰어난 사람이 될수 있는 분야는 아닙니다.
몇가지 분야 빼고는 진입 장벽이 워낙 낮기 때문에, 학력, 학벌에 관계없이
열정을 가지고 얼마나 많이 읽고, 많이 짜보고, 많이 생각해본 사람들이 더 잘할수 있는 분야가 이분야입니다.

CS 박사 과정 수료는 특정 기술에 대한 자부심은 될수 있지만 전체적인 큰 그림을
그릴 수 있는 능력에서는 본인 스스로가 자신의 분야 혹은 다른 분야에 대해서도,
많이 읽고, 많이 짜보고, 많이 생각해보지 않은 이상 자신의 분야외에는 내세울만한 것은 아닌것 같습니다.

박사 수료 아닌 분들 중에서 구루라 불릴만한 분들은 참으로 많고,
박사 "수료"가 아닌 국내외 명문대 박사 "졸업"하신 분들중에서도 자신의 분야가 아닌 컴퓨팅 시스템 전반에 대해서는 잘 이해하지 못하시는 분들도 상당히 많습니다.
해외 유학 박사가 70% 이상인 연구소에서 근무해본 제 경험담에서 말씀드립니다.


rgbi3307의 이미지

예를들어 compiler 과목에서
키워드(int, char, for, do, while, struct, enum...)을 심볼 테이블에 넣고 해싱하여 검색합니다.
여기에 관련된 코드는 대부분 키워드를 해싱하여 해시키를 생성하여 해시테이블에 저장하고 탐색하는 것으로 되어 있습니다.
그리고 연산수식 a = b + c * d; 과 같은 것은 스택이나 큐, 트리 자료구조를 사용하여 infix, prefix 방식으로 처리하구요.
그럼 이것을 강의할때 마다 그때 그때 해싱, 해시키, 해시함수, 해시테이블에 대한 자료구조와 알고리즘을 30분 설명하고
스택의 LIFO, 큐의 FIFO, 트리의 infix, prefix, postfix 탐색방식을 또 30분 설명하고... 이런식으로 그때 그때 수업하나요?
OS 과목에서 리눅스 커널의 프로세스 스케쥴링 수업에서
예전의 리눅스 커널에서는 스케쥴링을 Bitmap index 방식으로 O(1) 알고리즘으로 처리했는데,
요즘에는 프로세스 수도 많이 늘어나고 CFS(Completely Fair Scheduling)에서 대기시간을 공평하게 처리하기 위해서
Red-Black Tree를 사용하는데, 이때, Bitmap은 O(1)알고리즘으로 처리되고 Red-Black Tree는 O(log(n)) 알고리즘 효율성을 보이는데,
Bitmap에 비해서 Red-Black Tree로 처리하는 장단점에 대해서 설명할 필요가 있습니다.
이때 또, Bitmap index, Red-Black 트리에 대해서 한 30분 설명합니다.
그럼 수강생들이 쉽게 이해할 수 있을까요? 머리 아플 겁니다.

먼저, 자료구조와 알고리즘에 대한 선행수업과 학습으로 탄탄한 기본기를 다져놓으면 이런 시행착오를 줄일 수 있습니다.
그래서, 교육 커리큘럼에 자료구조와 알고리즘이 독립된 과목으로 있어서 수강생들에게 자세히 지식전달하면, 탄탄한 기본기를 좀 더 확실히 다질 수 있다는 것입니다.

왜, MIT 대학교에서 1,2학년 학부생에세 Introduction to Algorithms 부터 가르키고,
좀더 고급 알고리즘은 대학원 과정에서까지 연구하는지 한번 생각해 보시기 바랍니다.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

lmk378의 이미지

위 semmal 님의 댓글에 동감하는 입장으로써 또한 타 교육센터 임베디드 전문가 과정을 수강한 입장으로써 한글자 적으면
자료구조와 알고리즘을 선행해야하는 사람은 수강하지 못하게 하면 그만입니다.

>> semmal write:
>>그보다, 알고리즘이나 자료구조를 익혀야할 실력이라면 확실히 anfl님 강의를 들어서는 안될 것 같다는 생각이 드네요.
>>이걸 익혀야할 실력이라치면, anfl님이 제시한 강의내용을 전혀 못따라갈 것 같다는 생각이 드는 건 저 뿐인가요?

anfl의 이미지

오늘까지만 웃으며 넘깁니다.

님에 대해서 오래전부터 지켜봐왔고, 님의 행적에 대해서 누구보다 잘 알고 있습니다.
님께서 생각하시는것 이상으로 말이죠.

님께서 진행하시는 일들 때문에 지금까지는 님의 행동을 이해해드렸습니다.
하지만 앞으로 더 자극하시면 저는 님을 공격하겠습니다.
지금까지 쌓아놓았던 모든것이 무너져 내릴수 있으니 여기서 그만두시기 바랍니다.


rgbi3307의 이미지

혹시 이글을 처음 읽는 분은 님이 누군지 헤갈려 할 수 있으니,
rgbi3307님이라고 다시 한번 더 언급해 주시기 바랍니다.

저는 아무리 기분 나빠도 이런식으로 사람을 인식공격 하지는 않습니다.
KLDP에 anfl님이 무서워 개인적인 의견 표출도 못하겠습니다 그려...(^^)...

그동안 anfl님에 대한 막연한 동경심을 가지고 있었는데,
오늘 하루저녁에 무너져 내리는 군요.
슬픕니다.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

익명 사용자의 이미지

다행이라 생각합니다.
님의 그런 싸구려 동경심 바라지 않습니다.
앞에서는 웃고 뒤에서 뒷통수 치시는 그런 행위에 대해 참으로 치졸하게 생각합니다.

커널 연구회라하셨나요.
정말 뭔가를 연구하려고 하시려거든 님께서 그렇게 뛰어나지십시요.
커널 소스를 제대로 보지도 않으셨으면서,
커널 연구회라 칭하시는 자체가 제게는 아이러니 합니다.

rgbi3307의 이미지

싸구려 동경심을 바라지 않으셨다면 anfl님이신가요?
이런 말씀을 하실때는 떳떳하게 아이디를 밝혀주시는 것이 예의 아닌가요?
저는 S대 출신이 아니고 H대 출신이어서,
항상 S대 출신들의 배경에 대해서 동경심을 가지고 있었습니다만,
오늘 하루저녁에 무너져 내리는 현실이 슬픕니다.
그동안 6년 가까이 S대모대학병원에서 일하면서 S대 출신들에게 많은 연구용 자료를 뽑아주면서
인사를 많이 들으며 생활했지만, 한번의 의견 표출로 이렇게 사람의 인격이 무너져 내리는 경우도 있군요.
암튼 슬픕니다.
제가 앞에서 웃고 뒤에서 뒤통수 쳤다는 이야기는 또 무슨 말씀인가요?

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

anfl의 이미지

저 맞습니다. 로그인 안되있는 상태인지 몰랐네요.


anfl의 이미지

일단 잘못 이해하고 계신부분 말씀을 드리겠습니다.

"예를들어 compiler 과목에서
키워드(int, char, for, do, while, struct, enum...)을 심볼 테이블에 넣고 해싱하여 검색합니다."

- int, char, for, do, while, struct, enum과 같은 지정어 token들은 심볼 테이블에 넣지 않습니다. symbol이란 말의 의미는 주소를 가지는 모든 것들을 의미합니다. 때문에 전혀 틀린 이야기를 말씀하고 계신겁니다.

"그리고 연산수식 a = b + c * d; 과 같은 것은 스택이나 큐, 트리 자료구조를 사용하여 infix, prefix 방식으로 처리하구요."

- 여기서 "처리한다"는 말의 의미가 무엇인지 정확하게 이야기하실 필요가 있을것 같습니다. 무슨 처리냐에 따라 본문 내용이 맞고 틀리고가 결정될 수 있는 부분입니다.

"이때 또, Bitmap index, Red-Black 트리에 대해서 한 30분 설명합니다."

- 저는 이게 왜 30분짜리 인지가 이해하기 힘드네요.

"먼저, 자료구조와 알고리즘에 대한 선행수업과 학습으로 탄탄한 기본기를 다져놓으면 이런 시행착오를 줄일 수 있습니다."

- 컴퓨팅 시스템에 대해 알고나서 자료구조와 알고리즘 스스로 학습해도 않늦습니다.
- 가정하신 학생들의 수준을 지나치게 낮게 잡으시는 것은 아니신지요? 말씀하시는 내용을 보면 아마 비 전공자가 처음 프로그래밍을 배운다로 가정하시는것 같습니다.

"왜, MIT 대학교에서 1,2학년 학부생에세 Introduction to Algorithms 부터 가르키고,
좀더 고급 알고리즘은 대학원 과정에서까지 연구하는지 한번 생각해 보시기 바랍니다."

- MIT에서 가르치는게 알고리즘뿐인가요?


kyano의 이미지

컴파일러 구현까지 가르치면서 그에 상응하는 기본기는 당연히 갖추고 있어야 한다니 할 말이 없습니다.
그 정도 실력의 사람이면 이런 교육 안 받고 MS에서 VS2020(?)에 들어갈 컴파일러 만들고 있겠죠.

또 하나, 컴퓨터 시스템 자체는 자료구조, 알고리즘의 위에 올라간 녀석들 입니다.

왜 본인이 교육을 할려고 하시는지를 잊으신 듯 합니다.

지금 하시고자 하는 것은 직원을 뽑는 것이 아니라 교육 과정의 개설에 따른 그 수요 판단이 아니었나요?

p.s. 그리고 개인적인 공격을 하시는데... 저 박사 수료 아니고 수료도 하기전에 스카웃 당해서 나왔습니다. 충분하신지요?
그리고 저도 몇줄 안되지만 리눅스 커널에 커밋된 코드가 있습니다.
다른 것도 아니고 님께서 전에 구인광고에 올리셨던 디바이스 드라이버쪽입니다. 커널 git 로그 직접 확인해보세요.

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

아는 형중에 MS에서 VS에서 컴파일러쪽을 개발하고 있는 형이 있습니다.
정확하게 이야기하면 미국 MS VS 컴파일러 개발자 정직원이지요.
그리고 그 형과 같이 컴파일러 개발 일도 했었고요.

컴파일러. VS2020.
그게 뭐 그리 대단한 일인지요?

컴파일러 분야를 해보셨는지 모르겠지만 VS보다 GCC가 훨씬 더 대단하답니다.

그리고 커널 패치 올리는것 죄송하지만 제 주위에 그런분들 많이 계십니다.
저 역시 수백만명이 사용하고 있는 커널을 개발한 개발자 입니다.
그런게 뭐 그리 대단한 일인가요.

아는 사람들끼리 하는 이야기이지만
kernel 내에서 device driver bug 찾는건 그다지
내 세울만한 일도 아니지 않습니까.


kyano의 이미지

(p.s.) 이하 부분은 제 개인적인 신상에 대해 알지도 못하시면서 공격하신 것에 대한 제 대답입니다.
님보다 잘낫다가 아니라 “님이 알고 계신 저”보단 “실제 제 자신”이 잘낫다는 뜻입니다.
device driver bug를 찾은 것이 아니라 스펙이 공개되지 않아서 구현되지 않은 기능을 독일 친구와 둘이서 리버스 엔지니어링으로 구현해서 ALSA를 통해 커널 메인에 반영한 것입니다. git 로그를 읽어보신 것이 아니시라면 제 개인에 대한 이야기는 함부로 하지 말아주셨으면 좋겠습니다.

-- 이하는 원래 본문에 대한 내용입니다. --

gcc가 어떤 면에서 VS2010(이게 가장 최신 production 버전이니 이걸로 말하겠습니다.)의 컴파일러들보다 뛰어나다고 말씀하시는 것인지 그 근거를 알고 싶습니다.
전 파일시스템, 스토리지를 대학원에서 전공해서 컴파일러는 학부생 수준이라 관련 링크라도 찍어주신다면 열심히 보고 공부하겠습니다.
오픈소스 개발방법의 위대함과 가장 많은 아키텍쳐로 포팅됨 등의 이야기가 아닌...
님께서 본문의 교육을 받기 위한 기본기라고 주장하셨던 이론적인 접근에서 말씀해 주시면 감사하겠습니다.

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

"가장 많은 아키텍쳐로 포팅됨 등의 이야기가 아닌..."

인용한 말이 얼마나 힘들일인지 알고 쓰셨습니까?
여러 아키텍쳐를 지원하기 위해서는 IR이 잘 정의되어야 하죠.
하지만 그러다보면 특정 아키텍쳐에서 성능이 떨어져 버립니다.
여러 아키텍쳐를 지원하면서 성능도 왠만큼 나오는 컴파일러 만드는것이
얼마나 어려운 일인지 아시는지요?

이에 대한 이론적 백그라운드를 원하신다면 구글에서 retargetable compiler로
찾아보시기 바랍니다. 수없이 많은 자료들을 보실 수 있으실겁니다.


kyano의 이미지

모바일이라 길게 남기지는 못하겠습니다...

다양한 아키텍쳐의 포팅은 매우 중요한 장점이라는 것은 저도 알고 있습니다.
하지만 컴파일러의 퍼포먼스를 이야기할 때 가장 중요한 부분은 생성해낸 이진코드의 질 아닌가요?

제글에서 한줄만 보셨군요. 다양한 기종 이식외에는 어떤 pros가 있는지는 며느리도 모르는 것으로 이해하고 더 이상 언급하지 않겠습니다.

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

1. 다양하고 많은 최적화를 수행한다.

middle-end pass
IPA : einline, inline, static-var, pure-const

vcg, cleanup_cfg, final_cleanup, useless, lower, eh, cfg,
cplxlower0, veclower, fixupcfg, salias, alias1, retslot,
copyrename1, eustores, ccp, fre, dce1, forwprop1, copyprop1,
vrp, dce2, mergephi, dom1, phionlycopyprop1, phiopt1, alias2,
tailr, profile, ch, cplxlower, sra, alias3, copyrename2,
dom2, phionlycopyprop2, reassoc1, dce3, dse1, alias4, forwprop2,
phiopt2, objsz, store_ccp, store_copyprop, fab, alias5, crited,
pre, sink, loop, loopinit, copyprop2, lim, unswitch, sccp,
empty, ivcanon, cunroll, ivopts, loopdone, reassoc2, dom3,
phionlycopyprop3, cddce, dse2, forwprop3, phiopt3, tailc,
copyrename3, uncprop, optimized, nrv, vars, blocks

back-end pass

sibling, locators, initvals, unshare, vregs, jump, cse1,
gcse1, old-loop, bypass, cfg, bp, ce1, loop2, loop2_init,
loop2_unswitch, loop2_done, cse2, life1, combine, ce2,
regmove, split1, mode-sw, life2, lreg, greg, postreload,
gcse2, flow2, csa, peephole2, ce3, rnreg, bbro, sched2,
stack, compgotos, mach, elnotes, barriers, eh-ranges, shorten

2. 새로운 최적화 적용 속도가 빠르다.
ex) profile information based optimazition, LTO등

3. 여러 언어의 front-end를 제공한다.
C, C++, Objective C, Fortran, Java, Ada, Go

4. 여러 아키텍쳐를 지원하면서 비교적 성능이 빠르다.

http://gcc.gnu.org/benchmarks

컴파일러에 대해서는 아무것도 모르신다면서 아는척은 혼자 다하시네요.
여러 언어를 지원하고, 여러 아키텍쳐를 지원하는 일이 최적화보다 대단한 일이 아니다...?
참 놀랍고 엄청난 발언을 하고 계시군요.

이진 코드의 질만 중요한지 아십니까?
요즘 각 회사들의 프로젝트 소스 크기가 하도 커져서 컴파일링 속도도 중요하니 새겨들으세요.


kyano의 이미지

혹시 amd64(x86_64)에서 gcc, icc, vs2010 의 성능 비교(컴파일 타임, 생성된 결과물의 성능) 해보셨는지요?
아니면 vs2010의 opt. 루틴에 대해서는 보셨는지요?
아니면 저 수많은 front/back-end pass opt.이 어떤 알고리즘을 바탕으로 구현됐는지는 보셨나요?

전 안봐서 모릅니다. 그래서 님한테 링크 달라고 했더니 gcc.gnu.org의 벤치마크 자료를 주시는군요.
저도 gcc가 짱이라며 12년째 gcc를 제외한 c컴파일러는 써본적이 없는 사람이지만 gcc가 무조건 vs2010보다 더 위대하다고 말씀하신 근거를 알고 싶었을 뿐입니다. (해당 리플에는 관련 근거가 한줄도 들어가 있지 않습니다. 본인이 쓰신 글이니 다시 한번 확인해보시죠?)

p.s. 저에게 단 댓글이 모두 인신공격성이 있다는 것은 아십니까?
2011년 7월 23일 오후 3시 32분 기준으로 제게 단 댓글들만 모두 캡쳐했습니다.
새겨들으라구요? 그니깐 뭔가 말을 해주셔야 새겨듣던지 할거 아닙니까.

교육과정에 대한 피드백을 원하시는 거 맞긴 합니까?

--
Have you ever heard about Debian GNU/Linux?

익명 사용자의 이미지

벼는 익을수록 고개를 숙인다고 했습니다.
anfl님은 앞으로 사업을 잘 하실려면
지식보다 인격적인 소양을 좀더 쌓아야 겠습니다.
"아는척은 혼자 다하시네요", "새겨들으세요" 이런 표현은 사람의 인격을 폄하시킵니다.
속된말로 버릇없는 표현이지요.
지덕체를 두루 겸비한 교양있는 사람은 아무리 감정이 상해도 이런 표현을 않씀니다.
그리고, 자신을 합리화 시키기 위해서 과대포장하고 거짓말까지 하게 되면
이것을 무마 시키기 위해서 또 과대포장,거짓말을 반복하여 계속 악순환이 되지요.
아, 그리고 anfl님이 하시는 사업에 엄첨 호감을 가졌었는데,
이제는 호감을 떠나 관심조차 없어지네요.

anfl의 이미지

과대 포장, 거짓말 한것이 있다면 어떤 부분인지 말씀 좀 해주세요.

저 위에분께서 삐딱하게 말씀하시기에 저 역시 삐딱하게 말해봤습니다.

사실 제 벼가 익은게 아니거든요.
그래서 굳이 익은척 할 이유는 없을것 같습니다.


kyano의 이미지

빠뜨린 내용이 있어서 추가합니다. (앞에 단 댓글 수정하기에는 이미 읽으셨을지도 몰라 연이어 댓글로 달겠습니다.)
지인께서 MS에서 컴파일러 개발을 현재도 하고 계신다니 저보다 더 잘 아시리라 생각이 듭니다.

MS도 그렇고, 구글도 그렇고 사실 신입을 뽑을 때는 우리나라에서는 학부에서 가르치지도 않는(물론 S,K,P 수준에서는 강의하는 것으로 알고 있습니다.) 아주 어려운 자료구조, 알고리즘을 시험봅니다.
컴파일러 안 만들어 봤어도 “고급” 자료구조, 알고리즘에 대한 이해만 충분하면 뽑아다가 컴파일러, DBMS, OS 만드는 일을 시킵니다.

현재 리눅스에 들어가 있는 TCP congestion algorithm인 CUBIC의 논문은 읽어보고 그에 관한 최근의 반박 논문들, 개선 논문들은 혹시 읽어보셨는지요? 저런 내용들을 보면 차라리 알고리즘에 대한 이해가 빠삭한 사람이 저 논문 읽으면서 "OSI 7 레이어가 뭐더라... 긁적..." 하며 실무적인(?) 내용을 그때 그때 10분만 찾아보는 것이 나을텐데요...
(테크니션이 되어서는 절대 님의 주장처럼 30분만에 기초를 익힐 수 없습니다. 기초가 있는 사람이 10분만에 테크닉을 익히는 경우가 많지요. 이는 개발자 출신 경영자이시니 이 역시 저보다 잘 아시리라 믿습니다.)

p.s. 대학원생 이야기나 커널 커밋에 관한 개인적인 이야기로 자꾸 말을 돌리시는데 이번에도 그렇게 댓글 다시면 님 회사 소속 개발자분들의 커널 메인 트리의 커밋 라인수 세어서 공개할지도 모릅니다. (joke 입니다... ㅎㅎㅎ)

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

원하신다면 찾아서 공개해주십시요.
제 회사 소속 개발자들이 아닌 "제 주위 사람"들입니다.
그리고 제가 만든 SMK, LEO, AM-RTOS 커널도 찾아서 한번 라인수 공개해주시고, 어디에 사용되는지도 다 밝혀 주십시요.

그러면 제 입으로 제 자랑 같은 이야기를 하지 않아도 되서 참 좋을것 같습니다.
제발 좀 해주세요.


kyano의 이미지

역시 앞에 길게 쓴 본문에 대해서는 일언반구도 언급하지 않으시고 서로 농담임을 대놓고 언급한 한줄의 추신에 대해서만 이야기 하시네요. 저 교육과정에 대한 피드백을 얻고 싶으신 겁니까... 아니면 님 자랑을 하고 싶으신 겁니까?

여기서 오픈소스에 대한 기여도 자랑도 아니고 실력 자랑을 원하신다니... 더 이상 할 말이 없습니다.
그 커널들 대중에게 소스공개는 된 녀석들닙니까?

p.s. 말꼬리를 잡고 싶으시면 본문에 대한 답은 다 해주시고 마지막에 똑같이 p.s. 달고 하심은 어떨지요?

밑에 철학글에 대한 답도 여기서 하겠습니다. 전 철학 모릅니다. 제 질문의 요지는 본인도 어려움을 느끼면서 남들에게 저 커리큘럼의 기간동안 코딩할 때 철학이 반영되도록 가르칠 수 있겠냐입니다. 커리큘럼 칭찬이 아니면 본인과 저라는 사람의 비교만 하시는데...
더 이상 이 쓰레드에 댓글은 안달겠습니다. 저 교육에 관한 이야기는 글쓴이 본인부터 안하시는데 의미가 없겠군요.

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

===== 인용 =====
저 교육과정에 대한 피드백을 얻고 싶으신 겁니까... 아니면 님 자랑을 하고 싶으신 겁니까?
===============

- 아래 인용 글에서 님께서 자료구조와 알고리즘만 탄탄한 기본기라 하시기에
컴퓨팅 시스템(processor architecture, compiler, os등) 자체가 더 기본기라 했습니다.

===== 인용 =====
정말 몇년만에 KLDP에 댓글 달아보네요... ;;

실컷 웃으셨으면 이제 그 탄탄한 기본기가 뭔지 알려주시겠습니까? 나름 CS로 박사과정까지 하다가 때려쳤지만...
자료구조와 알고리즘이 아닌 누구나 아는 탄탄한 기본기가 뭔지 모르겠네요.
=============

- 먼저 삐딱하게 답글 다셨던 분은 님이시고요.

=============
"실컷 웃으셨으면 이제 그 탄탄한 기본기가 뭔지 알려주시겠습니까? 나름 CS로 박사과정까지 하다가 때려쳤지만..."
=============

- 제가 님께 자랑한것 없고요. 님께서 아래와 같은 경고성 문구를 다시기에 직접 찾아보라 한겁니다.
- 얼마나 위대하고 대단하신 분이신지는 모르겠지만 직접 찾아서 공개해주십시요.
- 한줄 부끄러움도 없으니 할테면 해보시라는 이야기 입니다.

=============
"p.s. 대학원생 이야기나 커널 커밋에 관한 개인적인 이야기로 자꾸 말을 돌리시는데 이번에도 그렇게 댓글 다시면 님 회사 소속 개발자분들의 커널 메인 트리의 커밋 라인수 세어서 공개할지도 모릅니다. (joke 입니다... ㅎㅎㅎ)"
=============

-자랑은 제가 먼저 아닌 님께서 스스로 먼저 자랑하셨죠.

=============
"님보다 잘낫다가 아니라 “님이 알고 계신 저”보단 “실제 제 자신”이 잘낫다는 뜻입니다."
=============

=============
"여기서 오픈소스에 대한 기여도 자랑도 아니고 실력 자랑을 원하신다니... 더 이상 할 말이 없습니다."
=============

- 저 먼저 실력자랑 행사한적 없고요. 님께서 먼저 실력자랑 행사하셨죠.

=============
"실컷 웃으셨으면 이제 그 탄탄한 기본기가 뭔지 알려주시겠습니까? 나름 CS로 박사과정까지 하다가 때려쳤지만...
자료구조와 알고리즘이 아닌 누구나 아는 탄탄한 기본기가 뭔지 모르겠네요."
=============

=============
"그 커널들 대중에게 소스공개는 된 녀석들닙니까?"
=============

- 상업용이니 공개가 되어 있겠습니까? 그래도 찾을테면 찾아보십시요. 찾아 질수도 있을것 같네요.

=============
밑에 철학글에 대한 답도 여기서 하겠습니다. 전 철학 모릅니다. 제 질문의 요지는 본인도 어려움을 느끼면서 남들에게 저 커리큘럼의 기간동안 코딩할 때 철학이 반영되도록 가르칠 수 있겠냐입니다. 커리큘럼 칭찬이 아니면 본인과 저라는 사람의 비교만 하시는데...
=============

- 적어도 남을 가르쳐줄 정도는 되는것 같네요.
- 마치 다 아시는듯이 물어보시더니, 이제는 하나도 모른다 말씀하시는것 같네요.
- 참 이율 배반적인 모습을 보이시네요.


kyano의 이미지

시간 순서 인과관계를 꼬아서 댓글을 다시는군요.

먼저 누구나 알고 있는 것을 모르기 때문에 실컷 웃을 수 밖에 없다고 한건 님이고, 그에 대해 다 웃으셨으면 이제 알려달라고 한 것이 저입니다. 거기에 대한 대답으로 저랑 생각은 다르지만 시스템이 알고리즘보다 먼저라고 말씀하신 것까진 정상적인 패턴이었다고 생각이 드는데요? 제가 동의하진 않지만 여기까진 제 질문에 대한 님의 생각을 정리한 답이니깐요.

하지만 박사 수료도 못한 저를 수료자라고 생각하시고 박사 수료는 커녕 학위소지자도 이 분야는 모르는 경우가 많으니 얌전히 있으라고 먼저 말하신 것이 님이고... 전 거기에 제가 학부 2학년 때 했던 이력을 말씀드려서 님보단 못났겠지만 님의 글에 언급된 아무것도 모르는 박사수료자는 아니라고 대답하면서 서로 꼬이기 시작한 것 같은데요.

님께서 가지고 계신 생각이 아래서부터 저와 다르기 때문에 제 피드백이 교육과정에 영향을 주진 않겠지만...
피드백을 피드백이라고 보지 않으신 건 님이 아닐까 합니다.

제안하신 교육과정을 마친 후 구글, MS 같은 회사에 데려가고 싶은 실력자가 탄생하기를 바랄 뿐 저도 님의 교육 관련 사업이 망하기를 바라는 사람은 아닙니다.

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

휴~ 네. 말씀 감사합니다.
이제서야 님과 저와의 관계가 왜 틀어졌는지 알수 있을것 같습니다.

============================
뭐냐고 물으신다면 그냥 웃을 수 밖에 없을것 같습니다.
왜냐하면 아실분들은 다 아실테니깐요.
============================

위 글에서 "그냥 웃을 수 밖에 없을것 같습니다."라는 표현은,
김상용 시인의 "남으로 창을 내겠소"라는 아래 시 구절을 인용한것입니다.

============================
왜 사냐건

웃지요.
============================

제 입장에서 너무도 당연한것을 그분께서 물어보시기에,
당연한걸 왜 물어시느냐라는 의미로 표현한 것입니다.

오해가 풀리셨으면합니다.


kyano의 이미지

한번 꼬인 이후에는 서로 감정이 상한 상태에서 하는 말이니 더 들춰볼 필요도 없을 것 같고... ^^;;
대학에서 조교로 님께서 보신 대졸 개발자들이 교육받는 과정을 보면서 자료구조, 알고리즘이 시스템에 대한 이해보다 먼저라고 생각이 들었을 뿐입니다.(특히나 소프트웨어 전문가라면...)

p.s. 시에 대해서 제가 무지해서 저도 오해를 한 듯 하군요. (_ _)

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

저 역시 감정이 격해져서 할말 안할말 다해서 죄송합니다.
제가 모자라서 그런것이니 너그러이 용서해주셨으면 합니다. (_ _)


rgbi3307의 이미지

자료구조와 알고리즘보다 탄탄한 기본기가 또 있을까요?

-- 답변 --

글쓴이: anfl 작성 일시: 목, 2011/07/21 - 8:59오후
네. 있습니다.

뭐냐고 물으신다면 그냥 웃을 수 밖에 없을것 같습니다.
왜냐하면 아실분들은 다 아실테니깐요.

----------

이 답변을 보고 제가 좀 황당했습니다.
이런 답변을 한 사람이 그래도 이분야에서 인지도가 있는 분이라는 것에 대해서 더 놀랬구요.
이곳에서 여러사람들의 다양한 의견들을 많이 접했기에 이런 답변이 있을 수도 있겠지,
애써 이해하면서 답변에 피드백 하는 것을 애써 참았습니다.
하루정도 지나고 kyano님의 피드백이 올라왔습니다.
저는 kyano님을 어제부터 알기 시작했습니다 - 지식과 인격적인 덕목을 두루 겸비하신 분이라는것을..

저는 이것으로 더이상의 답변은 하지 않겠습니다.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

익명 사용자의 이미지

학계/업계의 일반적인 인식으로 볼 때 최적화에 있어서 gcc는 icc나 vc에 비해 한 세대 가까이 뒤쳐진 것으로 알고 있었는데요. 저도 예전에 몇 번 직접 확인을 해봤습니다만, interprocedural한 최적화에 있어서는 내놓은 어셈 코드나 실제 퍼포먼스의 수준이 어느 정도 차이나던게 사실입니다. 물론 최근에는 gcc도 많이 발전해서 지금은 그 격차가 상당히 좁혀졌으리라 생각합니다만.

어쨌든 지금까지는 gcc가 훨씬 대단하다고 말하기에는 일장일단이 있지 않나 싶군요. 어쨌든 쓰는 사람 입장에서는 빠르고 올바르게 돌아가는 코드를 뽑는 것이나 이식성 등의 이슈들이 중요하지, 내부 구조가 어떤지가 중요한 건 아니니까요.

neocoin의 이미지

공감합니다.

전반에 위의 교육을 받고, 후반에 막상 프로젝트를 진행하려할때 못할것 같다는 생각이 듭니다.
대학을 성실하게 졸업한 졸업생들만을 위한게 아닐까 싶습니다.
단시간에 요약 정리해서 기억 되살리기 ..

익명 사용자의 이미지

제가 잘 모르는 것이 많고
위의 글을 위에서부터 쭉 읽어봐도 대충은 알겠는데 확실히 이해가 안되서
정말 순수하게 궁금해서 물어보는 건데

지금 위의 스레드들의 논란에서

anfl님의 주장이
알고리즘/자료구조보다 architecture/compiler/os가 더 기초적이기 때문에
architecture/compiler/os를 배운 후에 알고리즘/자료구조는 필요할 때 그때그때 배워도 늦지 않다는 의견이신건가요?

아니면,
알고리즘/자료구조는 기본이기 때문에
이미 알고리즘/자료구조를 모두 이해한 사람들을 대상으로 하는 커리큘럼이라서
알고리즘/자료구조는 커리큘럼에 필요없다는 의견이신건가요?

anfl님이나 semmal님이나 누가 설명 좀 해주셨으면 좋겠는데요

순수한 궁금함에서 질문드리는 것이니
혹 비꼬는 건가라고 생각하지 마시고
대학생한테 선배로써 답변주신다고 생각하시고 답변주세요

바쁘실테니 굳이 긴 답변이 아니더라도 전자/후자라고만 알려주셔도 좋을 것 같아요
물론 추가 조언주시면 더 감사하겠지요

semmal의 이미지

먼저 제 생각을 밝히자면, 오해의 여지는 있지만, 개인적으로 기본기에 서로 우선순위가 있다고 믿지 않습니다.
예로 드신, algorithm/data structure와 architecture/compiler/os는 서로가 서로를 필요로하고, 서로에 의존적이기도 합니다.
반드시 하나가 다른 하나를 포함하고 있는 관계가 아니라는 것이지요.
컴공이나 전산에서 제공하는 어느 과목 하나를 제대로 깨우치려면, 사실 거의 모든 커리큘럼을 깨우칠 필요가 있습니다.

그래서 말씀하신 두 가지 주장은 둘 다 맞기도 하고, 틀리기도 합니다.

알고리즘이나 자료구조는 다른 과목을 배우면서 배울 수 있습니다.
또한 알고리즘이나 자료구조를 모르면 다른 과목을 제대로 배울 수 없습니다.

다만, 보통 학교에서 알고리즘이나 자료구조를 과목으로 가르친다고 함은, 알고리즘이나 자료구조에 대한 지식 자체보다,
큐/스택/배열/리스트/검색/정렬이라는 간단한 도구를 이용해서 '컴퓨터처럼 생각하고 정리하는 방법'을 가르친다고 보는 편이 맞다고 생각합니다.
그렇기 때문에, 학원에서 이런 과목 자체를 배정한다는 것은 프로그래밍 초보자에게 필요한 과정이라는 뜻이라 생각합니다.

반면에 anfl님이 제시한 과목은 매우 어려운 난이도는 아니지만, 그리 쉬운 난이도가 아닙니다.
사실 초보자는 엄두도 못낼 정도지요.
아마 어느정도 경력이 쌓인 분들도, 또한 시간과 돈이 허락한다면,
심지어 임베디드와 연관없는 곳에 종사하는 사람이라도 한번씩 들어보고 싶은 매력적인 과목들이라고 생각합니다.

제가 커리큘럼을 보고 느낀 것은 anfl님이 가르치려고 하는 건 지식이 아니고(지식도 있지만), 현장이고, 경험이라고 보거든요.
이론은 학교에서 배웠던 책을 보면 거의 다 나와있지만,
anfl님이 가르치려고 하는 실무과목은, 사실 각각의 사람마다, 각각의 회사마다 다 다르기 때문이지요.
이런 경험을 학원에서 제대로 습득할 수 있다면, 이건 정말 어마어마한 행운이라고 개인적으로 생각합니다.
물론 당장 깨우치기는 힘들고, 현업에서 몇년 굴러봐야 느끼는 행운이겠지요.

결국, anfl님이 제시한 커리큘럼을 들으려면, 최소한 '컴퓨터처럼 생각하고 정리하는 방법'을 깨우친 사람들이나 들을 수 있습니다.
또한, algorithm/data structure/compiler/compiler/os/network 등에 대해서, 스스로 책을 찾아볼 능력은 갖추고 있어야 합니다.
앞에서도 언급했지만, 저 교과과정은 이론보다는 실무위주기 때문에, 실무에 적응하면서 모자란 이론을 스스로 깨우칠 수준은 되어야 합니다.

제가 보기에는 그렇네요.

ps. 주제 넘게 주저리 주저리 적었는데, 제가 적은 글이 실제로 anfl님의 의도를 전혀 반영하고 있지 않음을 아셔야 합니다.
혹시나 제가 넘겨짚은 생각때문에 anfl님이 곤란해 질까봐 걱정이 되는군요.

------------------------------
How many legs does a dog have?

anfl의 이미지

semmal님 생각이 제 생각과 거의 동일합니다.
algorithm과 data structure와 architecture, compiler, os와의 관계는 완전 동일합니다.

대상 수준을 전공 대학교 3학년생 이상으로 생각하고 있고,
실제 구현에 앞서 이론을 약 40시간 정도 할당할 예정입니다.

전공 대학교 3학년생 이상이라 할지라도 이런분들은 거의 모르고 있다고 보아야합니다.
그래서 대충 감만아는 이러한 분들을 어떻게 과정 내용을 쉽게 전달할 수 있을지
정말 고민 많이하고 있습니다.

결국 강사의 역량에 달린 문제라 생각하고, 최고의 강사분들을 모시려고 합니다.
다행히 제 주위에 그런분들이 많아서 일은 수월해질것 같습니다.


cnovice의 이미지

양이 많아 보이긴 하는데 괜찮을듯 싶네요
항목중에 개발방법론을 소프트웨어 공학으로 하는게 맞을것 같습니다
방법론, uml 등등 다 소프트웨어 공학에 포함된다고 봅니다 ^^

♣♣♣♣♣♣ 폼나게 살자. 아님 말고~ ♣♣♣♣♣

익명 사용자의 이미지

조언 감사합니다. ^^

익명 사용자의 이미지

각 내용이 실제로 돈이 되는 프로젝트들에 기초하여 필요한 사항을 열거한
것 같습니다만, 아무리 실력이 있는 강사진이 있다고 해도 교육의 받는
사람과의 임피던스 매칭이 되지 않으면, 왠만한 신입교육생들은 갑자기 넘치는 정보앞에 눈만
말똥말똥뜨고 있고 내용 정리가 알 될 가능성이 큽니다.

우선은 현장에서 필요한 기술의 나열이 아니고 교육을 받는 사람의 입장에서
기초적인 내용에서 고급으로이 이동이 될 수 있도록 레벨별로 정리를 한번더
하시는게 필요할 듯 해보입니다.

하시려고 하는 것처럼 좋은 사람길러내는 것도 하고 싶기는 한데
좀처럼 엄두가 나지는 않는군요.

좋은 결과가 있기 바랍니다.

anfl의 이미지

네. 조언 감사드립니다.
참고 하도록 하겠습니다.


namhw의 이미지

정말 듣고 싶은 교육과정이네요^^ 그런데 비트컴퓨터 처럼 전일제로 운영이 되겠죠?

회사에서 외부 교육들을 받을 수 있겠끔 지원을 해주어 삼성 멀티캠퍼스??와 같은 교육시설에서 많이들

교육을 받는데요. 그래서 제시해주신 각 세부교육과정들은 1주일 기간의 과목으로도 편성한다면

회사를 그만두지 않는한 시간이 없는 직장인들에게도 좋은 교육기회를 갖을 수 있을 것이라 생각합니다^^

촌놈.

anfl의 이미지

사람을 키우는것이 목적이기 때문에,
전체 교육을 다 받을 수 있는 사람을 먼저 뽑고,
인원 충원이 안된다면 말씀해주신바를 고려하도록 하겠습니다.


snowall의 이미지

이 수업을 듣기 위해 필요한 배경지식이나 경험이나 읽어볼만한 책이나 ... 그런 것들이 제시되면 좋을 것 같습니다.

10분전에 생애 처음으로hello, world!를 출력해본 사람이 멋모르고 듣거나, (설마 그럴것 같진 않지만) 구루급 고수들이 듣고 실망하거나 하는 일 없이 꼭 필요한 사람이나, 적어도 강의를 따라갈만한 배경지식과 최소한의 실력을 가진 사람들이 선택할 수 있도록 하면 좋겠네요.

이정도 커리큘럼 내용만 갖고도 어떤 배경지식이 필요한지 알 정도의 실력을 가진 분들이라면 대체로 강의에서 다루는 내용에 대해서는 초급 이상 중급 정도는 되지 싶습니다.

피할 수 있을때 즐겨라! http://melotopia.net/b

anfl의 이미지

네. 그동안 조언해주신 내용을 바탕으로 다시 정리해서 올리도록 하겠습니다.


세벌의 이미지

하겠스비낟. 이런 게 바로 두벌식에서 자주 나타나는 오타입니다. 세벌식에선 이런 오타는 잘 안 나요.(세벌식도 오타 날 수는 있지만 오타가 두벌식에 비해 적고, 오타가 나더라도 원래 뭘 치려고 했는지 추측하기가 좀 쉽습니다.)
* 세벌식 홍보가 과하다는 말 들을까봐 글 쓰기가 약간 두려워지긴 하지만 이왕 썼으니...

Kiva의 이미지

제 생각에는 기초가 어느 정도(?) 올라있고, 기본적인 센스(?)가 있어야 소화할 수 있을 것 같습니다.
최근의 졸업하는 학생들의 수준을 미루어 보아
저 교육을 소화해낼 사람을 찾는 것도 쉬운 일은 아니라고 생각됩니다.
제가 듣고 싶어서 그러는 건 아니구요(병특중만 아니면 정말 듣고 싶네요 ㅠㅠ)

정말 좋은 커리큘럼이라고 생각합니다.

아참... ARM 프로세서 설계 구현은 약간 선택적으로 적용하는게 좋지 않을까 싶습니다

흐르는대로..

anfl의 이미지


여러 조언들을 바탕으로 다시 수정해보겠습니다.


lmk378의 이미지

글에서 언급하셨듯이 모 교육센터에서 임베디드 전문가 과정 수강했었습니다.
6개월 과정이였고 3개월 이론 3개월 프로젝트 진행인 과정이였습니다.
개인에 역량차이가 있다고 생각하지만 무리입니다.
모 교육센터에서는 위 커리큘럼중 1,3,6 항목만을 했는데도 빠듯합니다.
수강생을 현직 개발자로 염두하고 사업 진행하시는건가요? 아니면 학생을 상대로 하시는 건가요?
모 교육센터의 경우 90% 이상 학생이였습니다. (15명 중 1명만 현직 개발자)
만약 첫번째라 하시면 수강생 모집조차 힘들지 않을까 생각됩니다.
두번째 경우라면 수강생은 어느정도 모집이 가능하겠지만 대학교 3학년 정도 끝내고 온 학생이
평균 10일의 기간에 하나의 과정을 익히기란 쉽지 않습니다.
게다가 프로젝트에 써먹을 수 있을 정도의 기술이라면 더욱 힘들겁니다.
분리되야할 과정이 많은것으로 생각됩니다.

anfl의 이미지

제가 그 모 교육센터에서 "임베디드 전문가 과정"을 대학교 3학년때부터,
모사에 근무한 시간빼고 교육했던 강사입니다.

2003년 학부생때는 "통합론", 2008년부터 2009년까지는, "고급운영체제"를 가르쳐서 상황을 매우 잘 알고 있습니다.
그러한 것들은 이미 다 고려하고 있습니다.


익명 사용자의 이미지

하고 싶은 말이 참 많은데 어디서부터 어떻게 이야기해야 할지 모르겠네요.

1. 컴파일러, 컴퓨터 구조에 대한 내용을 대학원 수준의 강의를 기본으로 생각하셨는데요. 그렇다면 도대체 수강생들의 실력을 어느 정도로 가정하시는 건가요? 전혀 여기에 대한 언급이 없습니다. 대충 추론하면 이제 취업을 준비하는 대학교 졸업생을 염두하시는 것 같군요. 그런데, 1, 2, 3의 내용을 제대로 이해하려면 탄탄한 전산학과 학부 정도의 실력이 있어야 합니다. 기초적인 알고리즘도 자료구조도 모르고 그 과정이 제대로 습득이 되지는 않겠죠. 학부도 그냥 졸업한 것이 아니라 제대로 열심히 공부한 학생이나 되어야 따라갈 수 있는 내용입니다. 그러하지 않다면 완전히 수박 겉핧기 시작으로 끝납니다. 대학원에서 배우는 과정을 너무 우습게 보시는 것 같습니다. 솔직히 말씀드려 보통 수준의 학생이 언급하신 과정을 심도있게 이해할 수 있을까요? 그것도 6개월에?

2. 제대로된 개발자가 왜 안나올까요? 본인이 스스로 인정하시고 계십니다. 안타깝게도 글쓰신 분이 말씀하신대로 개발자 스스로가 이 분야의 "진입 장벽이 워낙 낮기 때문에"라고 말하기 때문입니다. 이러한 분야에 똑똑한 친구들이 올까요? "여기는 공부 잘 할 필요도 없고 그냥 끈기 있으면 되요~ 6개월이면 됩니다~" 라는 분야에 잘 하는 사람들이 올까요? 구글이나 페이스북이나 아니면 잘 나가는 월스트리트의 금융 업체가 왜 최고 학부의 전산학과 학생들을 앞다투어 뽑아 갈까요? 개발자가 6개월만에 단기 숙성이 된다는 것 자체가 넌센스고 그렇게 믿고 있으니까 제대로된 개발자를 보기 어려운 것입니다. 혹시 유명한 미국 소프트웨어 업체가 이런 단기간 속성 과정 학생을 뽑는다는 이야기를 들어보셨는지요? 거의 모든 기업의 기본 조건이 4년이 걸리는 전산학/수학관련 학사 학위입니다.

3. "그간 회사 공채에 응시했던 지원자들의 기술 수준은 좀 심하다라는 생각이 들었습니다." 어쩔 수 없는 현실이죠. 기술 수준이 뛰어난 학생들은, 의학전문대학 등으로 갔거나, 유학을 갔거나, 유명 학교의 대학원에 갔거나, 아니면 대기업에 가고 없습니다. 안타깝지만 현실입니다. 지금 글쓰신 분이 주변에서 모을 수 있는 사람 중에서 언급하신 과정을 제대로 소화할 수 있는 사람을 찾는 가능성은 별로 높지 않다고 봅니다. 학력과 학벌이 중요하지 않고 끈기 열정이 중요하다고 말씀하시는데, 제 경험으로는 끈기와 열정이 많은 사람은 보통 좋은 학교에서 학점 잘 받은 학생이 될 확률이 높습니다.

4. 명문대 박사를 보시고 실망을 하신 것 같은데, 안타깝지만 글 쓰신 분께서는 그 사람들이 어떤 스킬을 가지고 있는지 못 보셔서 그런 것입니다. 님의 '구루'의 정의는, 추론컨데, 어떤 기술을 다양하고 어느 정도 깊이로 아는 것인데, 아쉽게도 박사는 그런 것 하라는 직업이 아닙니다. 박사는 매우 한정적인 분야를 깊게 파고든 사람들이고, 기존의 지식을 습득하는 것도 중요한데, 그 보다는 남들이 풀지 못(안)한 문제를 찾고 거기에 대한 해법을 내놓는 직업입니다. 한 마디로 요약해서 '연구'입니다. 박사가 모든 것을 심도있게 아는 것이 아닙니다. 컴퓨터 공학도 매우 다양해서, 박사라고 해서 다 컴퓨팅 시스템에 대해 아는 것도 아닙니다. 요즘 인기있는 머신 러닝을 전공한 박사라면 커널에 ㅋ도 모르는 경우가 허다합니다. 물론 학부 시절에 배웠겠지만 다 까먹은 것이죠. 사람은 항상 자신이 아는 것만 보게 마련입니다. (저도 그러하고요)

5. 컴퓨터 구조/시스템이 매우 중요한 기초 과목이라는데 절대 동감합니다. 그런데 위에서도 논쟁이 일어났듯이 그것이 기초적인 알고리즘을 뛰어넘는 것은 아닙니다. 알고리즘/자료구조는 컴퓨터 구조/시스템위에 구현된 것이 아닙니다. 컴퓨터 구조/시스템이 오히려 자료구조/알고리즘에 기초한 것이죠. 전산학은 순수한 계산 이론, 즉 수학에서 출발한 것입니다. 컴파일러 이론이야 말로 완전한 컴퓨터 알고리즘의 결정체이죠. GCC 소스 코드 브라우징(!!)이 컴파일러 구조와 원리를 알려주는 것이 아닙니다. 그냥 GCC 고급 사용법 정도가 되겠죠. 따분한 그래프 알고리즘이 안타깝게도 구조와 원리입니다.

물론 글 쓰신 분의 열정을 제가 폄하하는 것은 결코 아닙니다. 대단하게 생각합니다. 그런데 너무 현실과 이상의 차이를 제대로 이해 못하시는 것 같습니다. 현실적인 조언을 드리자면 일단 수강생의 능력을 어느 정도로 가정하고, 또 어느 정도 출력을 원하는지 그것부터 냉철하고 현실적인 설계가 필요하다고 봅니다. 그저 그런 대학을 겨우 졸업하고 먹고 살 길 찾는 친구들이 이 과정을 듣고 6개월 만에 '전문가'가 된다고 생각하시지는 않는다고 감히 믿고 싶습니다.

말이 좀 거칠었습니다. 깊은 생각하지 않고 그냥 마구마구 쓴 글이니 사소한 문장에 실수가 들어갈 수 있습니다. 그런데 4년에 걸쳐 해도 될까말까한 전분가를 6개월만에 만든다고 하니 너무 터무니 없어서 말을 하지 않을 수가 없었습니다. 휴우~

하시는 일이 늘 잘 되기를 간절히 기원합니다. 너무 쏘아대는 투로 썼는데, 그렇지만 글 하나하나에 좋은 개발자를 만들겠다라는 열정이 담겨있음은 느낄 수 있었습니다.

feanor의 이미지

Quote:
명문대 박사를 보시고 실망을 하신 것 같은데, 안타깝지만 글 쓰신 분께서는 그 사람들이 어떤 스킬을 가지고 있는지 못 보셔서 그런 것입니다. 님의 '구루'의 정의는, 추론컨데, 어떤 기술을 다양하고 어느 정도 깊이로 아는 것인데, 아쉽게도 박사는 그런 것 하라는 직업이 아닙니다. 박사는 매우 한정적인 분야를 깊게 파고든 사람들이고, 기존의 지식을 습득하는 것도 중요한데, 그 보다는 남들이 풀지 못(안)한 문제를 찾고 거기에 대한 해법을 내놓는 직업입니다. 한 마디로 요약해서 '연구'입니다.

아마도 이 부분이 의견 차이인 것 같습니다. 연구자도 필요하지만 기술자도 필요한데, 연구자는 대학원에서 교육하지만 anfl님이 말씀하시는 류의 구루는 어디서 교육하는지 모르겠습니다. (대학원에서 하는 것 같지는 않습니다.) 연구자가 아닌 기술자를 만드는 교육 과정을 만들겠다는 시도는 매우 해볼만한 일인 듯 합니다.

익명 사용자의 이미지

한국에서의 석사는 박사 과정의 전단계로 인식이 되는데, 미국 대학의 석사는 주로 전문가 양성에 더 치중해 있습니다. 물론 석사 과정에서도 논문을 쓰는 과정이라면 좀 연구적인 것도 해야하지만 보통은 다방면의 대학원 수업에 약간의 specialty를 추가하는 형태죠.

제가 왜 긴 답글을 달았냐면 적어도 anfl님이 원하시는 그런 구루를 6개월만에는 절대 만들 수 없다는 것입니다.

feanor의 이미지

A: 대학원에서 하는 것 같지 않다.
B: 대학원(석사)에서 해야 한다.
A: 대학원(석사)에서 해야 하는데 하는 것 같지 않다.

석사 과정의 목적이 원래 어떠했건 그 목적을 달성하고 있는 것 같지는 않습니다. 미국은 어떤지 모르겠네요.

anfl의 이미지

하고 싶은 말이 참 많은데 어디서부터 어떻게 이야기해야 할지 모르겠네요.

1. "컴파일러, 컴퓨터 구조에 대한 내용을 대학원 수준의 강의를 기본으로 생각하셨는데요."

- 대학 과정 중이거나 대학교를 졸업한 학생으로 생각하고 있습니다.

"학부도 그냥 졸업한 것이 아니라 제대로 열심히 공부한 학생이나 되어야 따라갈 수 있는 내용입니다. 그러하지 않다면 완전히 수박 겉핧기 시작으로 끝납니다. 대학원에서 배우는 과정을 너무 우습게 보시는 것 같습니다. 솔직히 말씀드려 보통 수준의 학생이 언급하신 과정을 심도있게 이해할 수 있을까요? 그것도 6개월에?"

- B모사라는 좀 유명한 IT 교육 기관에서 대학 3학년 시절부터 전문가 과정을 맞아 강의를 했었고, 이후에도 많은 강의를 했고, GT 석사로 있었고, 사 기업 멤버쉽에도 있었고, 현재는 국가 교육 기관의 멘토를 하면서 충분히 가능하다는 결론을 내렸습니다. 대학교 석사 과정 수준을 뭐 그렇게 높게 생각하시는지 모르겠습니다만 제 주위엔 고등학교만 졸업했는데도 그보다 더 뛰어나시고, 연구 능력도 더 뛰어나셔서 CGO나 OSDI, PLDI에 논문 내시는 분도 많이 있습니다.

2. "제대로된 개발자가 왜 안나올까요? 본인이 스스로 인정하시고 계십니다."

- 거의 10년 가까이 오프라인 스터디 그룹을 운영했었고, 여러 사람들의 인생을 지켜봐온 제 입장으로써 말씀드리면, 사람 인생 바뀌는데 6개월이면 충분합니다. 이후에는 그 사람이 얼마나 열심히 하느냐에 달렸고요.

3. "어쩔 수 없는 현실이죠. 기술 수준이 뛰어난 학생들은, 의학전문대학 등으로 갔거나, 유학을 갔거나, 유명 학교의 대학원에 갔거나, 아니면 대기업에 가고 없습니다."

- 대기업 그것도 한국 최고의 대기업에서 그 안에서 최고 연구기관에서 최고의 고과를 받으면서 다닌 제 입장에서 말씀드리면, 이분야는 감각이 있어야 합니다. 공부 잘한다고 잘할 수 있는 분야는 아닌것 같습니다. 그리고 저희 회사에 뛰어난데 대기업 가지않고 같이 연구하시는분들 많이 있습니다.

4. "명문대 박사를 보시고 실망을 하신 것 같은데, 안타깝지만 글 쓰신 분께서는 그 사람들이 어떤 스킬을 가지고 있는지 못 보셔서 그런 것입니다. 님의 '구루'의 정의는, 추론컨데, 어떤 기술을 다양하고 어느 정도 깊이로 아는 것인데, 아쉽게도 박사는 그런 것 하라는 직업이 아닙니다."

- 저 역시 박사의 역활에 대해 잘 알고 있고 저 역시 논문을 쓰고 있고 형들중에 교수로 계신분들이 많이 있습니다. 제가 생각하는 구루는 다양하게가 아닌 깊이 있으면서 다양하게 입니다. T자형 인간을 구루라 생각을 하죠.
근데 어차피 한구멍 뚫다보면 너무 깊이 들어가면 흙이 무너져 내리니 더 깊이 파려고 I자형 사람들도 결국 T자형이 되시더군요.

분명히 말씀드리지만 IT분야에서 스탠포드, MIT 외에 명문대 박사는 그다지 중요하지 않습니다. 개인의 열정과 재능이 더 중요하다 생각합니다. 그러한 모습을 많이봐와서 제 경험으로 말씀드리는 것입니다.

5. "컴퓨터 구조/시스템이 매우 중요한 기초 과목이라는데 절대 동감합니다. 그런데 위에서도 논쟁이 일어났듯이 그것이 기초적인 알고리즘을 뛰어넘는 것은 아닙니다. 알고리즘/자료구조는 컴퓨터 구조/시스템위에 구현된 것이 아닙니다. ... GCC 소스 코드 브라우징(!!)이 컴파일러 구조와 원리를 알려주는 것이 아닙니다..."

- GCC 구조와 원리를 팔겁니다. GCC IR에 대해서 논의할것이고, GCC 최적화 알고리즘에 대해서 논의 할것입니다. GCC 코드 브라우징은 생각도 안하고 있었습니다. 직접 코드 브라우징 해보셨는지 모르겠지만 직접 코드 브라우징 해본 입장에서 컴파일러가, 그중에 GCC가 코드 브라우징한다고 해서 이해할만한 분야는 아닙니다. 중요한것은 전체를 이해한 사람이 쉽게 설명해주는 것이지요. data flow analysis, control flow analysis, liveness analysis, graphe colouring 알고리즘을 학습 하는데 그깟 hash table 알고리즘이 뭐 그리 중요할까요? 혹은 위에서 어떤 분이 말씀하신 필요도 없는 bitmap 알고리즘이 뭐 그리 중요할까요?
당연히 그런것은 가볍게 설명하고 넘어가야 하는것 아닐까요? 그게 무슨 한시간 두시간을 두고 설명해야할 자료구조 입니까? 저 역시 자료 구조와 알고리즘에 대해서 매우 잘 알고 있습니다. 매칭, 서칭, 기타 많은 자료구조와 알고리즘을 알고 있습니다.
그것도 모르면서 이러한 커리큘럼을 내논것 아닙니다. 제 생각에 그건 기본중에 기본이라서 뺐습니다. 그보다 더 중요한 것들이 많아서요.

본 커리큘럼이 hashing 알고리즘이나 linked list에 대해 고민하고 있는 사람들에게 적합하다 보십니까? 그런 사람들은 본 커리큘럼의 강의를 들을 자격조차 없습니다.

그리고, 전산쪽 알고리즘, 자료구조는 컴퓨팅 시스템 위에 개발된게 맞습니다. 컴퓨팅 시스템이 없었다면 그다지 생각할 필요도 없는거죠. 그러면 따져봅시다. 자료구조, 알고리즘 이전에 수학과 반도체, 그리고 물리가 더 중요하지 않나요.

그리고 그 이전엔 철학이 중요하겠지요. 혹시 철학에 대해서는 좀 고민해보셨습니까?
철학 이야기 나왔으니 묻겠습니다.
전 님을 이해하는데, 님은 저를 이해하실 수 있으신지요?


kyano의 이미지

1. 예를 드신 자료구조는 아주 간단한 수준이네요. 혹시 탐색시간이 O(log_n)인 list형 자료구조에 대해서 들어보셨는지요? 아니면 알고리즘쪽으로 가서... 지금 당장 아무것도 없이 연필과 연습장만 주어진 상태에서 quick sort에서 random하게 pivot을 고를 경우 그 기대치가 worst가 아닌 best case에 근접하는 이유를 증명하실 수 있으신지요? 그냥 quick sort 쓰면 되지 이걸 왜 증명하냐구요? 그런 것도 생각해 보지 않은 상태에서 동일한 O(n*log_n) 소트만 수십개가 있는데 어떤 걸 쓸 지 고를 수가 없지 않을까요?

2. 철학, 심리학에 대한 이야기를 하셨는데... 혹시 본인이 인지심리학에 대해서 얼마나 공부하셨는지요? 심리학은 전산쟁이들이 취미로 한두달 공부해서는 고등학교 윤리 시간에 심리학자 이름 외워서 중간, 기말고사 치던 수준을 못 벗어난다는 것은 잘 알고 계시죠?

--
Have you ever heard about Debian GNU/Linux?

anfl의 이미지

1. kernel의 scheduling 알고리즘을 이해하는데, 굳이 sorting 알고리즘을 줄줄꾀고 있을 필요가 있을까요? AM의 matching 알고리즘을 이해하는데, 굳이 sorting 알고리즘이 필요할까요? sorting 알고리즘은 sorting이 필요할때 가르쳐야 맞는게 아닐까요?

2. 모 대학교 인지공학과 교수님께 부탁해서 모 대학원에 대학원생은 아니고, 그냥 그곳에 끼어서 공부하고 있는 사람입니다. 고등학교 시절부터 철학과 심리학에 대해 관심이 많아 항상 관심을 가져왔고, 제 철학도 서서 이제 철학이 뭐다 정도는 이야기 할수 있을것 같습니다. 문제는 안다고해서 되는게 아니라서 되기 위해 고민하고 있는 사람입니다. 계속 저에게 물어시니 저 역시 님께서 얼마나 철학과 심리학에 정통해서 이런 말씀을 하시는지 확인 좀 해보겠습니다. 성철 스님이 "산은 산이고 물은 물이다"라는 굉장히 철학적인 화두를 남기셨는데, 이 말이 의미하는 바를 한번 알려주시죠.


익명 사용자의 이미지

>>> - B모사라는 좀 유명한 IT 교육 기관에서 대학 3학년 시절부터 전문가 과정을 맞아 강의를 했었고, 이후에도 많은 강의를 했고, GT 석사로 있었고, 사 기업 멤버쉽에도 있었고, 현재는 국가 교육 기관의 멘토를 하면서 충분히 가능하다는 결론을 내렸습니다. 대학교 석사 과정 수준을 뭐 그렇게 높게 생각하시는지 모르겠습니다만 제 주위엔 고등학교만 졸업했는데도 그보다 더 뛰어나시고, 연구 능력도 더 뛰어나셔서 CGO나 OSDI, PLDI에 논문 내시는 분도 많이 있습니다.

궁금해서 그러는데 주위에 어떤 분이 고등학교만 졸업하시고 OSDI나 PLDI에 논문을 내시나요? (CGO는 2nd tier라 뭐...)
1저자가 아니면 가능할 것 같기도 하지만 보통 논문을 낸다고 하면 1저자로 내는걸 말하는데...
뭐, 1저자건 아니건 어쨋건 대단한 거니까 공개해도 될꺼 같은데, 어떤 분이 OSDI, PLDI에 논문을 내셨나요? 많다면 최소한 두명 이상이란 소린데...

anfl의 이미지

CGO 2저자 입니다.
성함은 제게 메일 주시면 알려드리겠습니다.

bckddn __엣__ gmail.com

OSDI와 PLDI는 고등학교 졸업하신분은 아닙니다.
이분도 원하시면 알려드리죠.

현재 제가 준비하고 있는 논문도 있는데,
OSDI 또는 PLDI에 낼것입니다. (분명 그만한 성과가 나올것 같아서.)
그기에 고등학교만 졸업하신 분도 참여하고 계시죠.

원하신다면 모두 알려드릴테니 제게 메일주십시요.


익명 사용자의 이미지

그래서 결국 거짓말한거 밖에는 안되는군요? 분명히 고등학교만 졸업하고 CGO나 OSDI, PLDI에 낸 사람이 많다고 바로 저 위에서 말해놓구서는...
낸 사람이랑 앞으로 낼 사람은 다르죠. 앞으로 말씀하실때에는 사실만 가지고 말씀하시면 좋겠습니다.

anfl의 이미지

OSDI, PLDI 학부 졸업한 사람입니다.
고등학교 졸업한 사람들이 다 쓴것으로 오해할만한 충분한 소지가 있었던것 같습니다.
대학원 석사 과정에서 배우는 수준이 그리 대단한게 아니란걸 말씀드리고 싶었습니다.


익명 사용자의 이미지

옆집 강아지 이름인가 봅니다. 거기 논문 1저자로 2개만 내도 대학교 교수가 되는데... 세상을 너무 우습게 아시는 것 같아요. 하면 다 되는 줄 아시는데 ㅠㅠ 대학원생인 나는 뭐지... 분명 그만한 성과 내서 저런 학회 내도 맨날 떨어지는데...

anfl의 이미지

논문은 성과도 중요하지만 그 성과를 어떻게 잘 쓰냐가 중요한것 같습니다.
좋은 학회 논문 잘 내시는 교수님께 노하우를 배우시는게 어떨지 쉽습니다.

PS. 하면 다 되는게 맞지 않습니까?


gurugio의 이미지


한가지 소견으로는 각 과목마다 최소 2개 단계로 나눠서 배경지식/개발실무로 진행하는게 어떨까 싶습니다.
생각나는 것은 많은데 글로 다 쓸수가 없습니다.
무조건 응원하겠습니다.

익명 사용자의 이미지

사업을 위한 신입 교육이 아닌

학원용이네요

사랑천사의 이미지

언젠가는 저런 깊은 곳 까지 공부해 보고 싶다고 생각하는 한 사람이긴 합니다. 근데 1에서 2년 전까지 스택, 큐, 해시 테이블, 리스트, 삽입/거품/선택 및 병합 정열 알고리듬도 모르고 살았던 저는 너무 비참해 지는 군요. 뭐... 전공도 아니면서 이런 거 알고 코딩하고 컴퓨터 가지고 놀아야 된다고 생각하는게 우스운지도 모르지만...

제가 알고리듬과 자료구조에 대한 이야기를 한 것은 어쩌면 알고리듬과 자료 구조에 대해서 빠삭하신 분들을 동경하고 있기 때문일 지도 모릅니다. 제 노력 부족인지 싶습니다만, 저는 트리 구조들에 대해서 거의 이해하지 못하고 있으며 퀵 정열도 잘 이해 못하고 있습니다. 대략 이해할 뿐이조. 뭐 코딩해 보지 않아서 모르는 걸 수도 있긴 한데...

어쨌든... 컴퓨터가 좋아서 혼자 공부했고 어떻게든 다른 방법을 써서라도 더 공부해 보려고 전공도 아닌 과에 가서 공부하고 그랬음에도 능력이나 환경 문제 같은 걸로 알고리듬이나 자료 구조 같은 부분에서의 기초를 제대로 이해하기 어려웠던 저같은 사람들도... 제시하신 커리큘럼과 같은 과정을 통해 뭔가 배우고 싶고 알고 싶고 공부해 보고 싶을 수 있다는 생각에 언급한 거였습니다.

그리고 rgbi3307, anfl님 두 분 다 나름데로 고수 분들인 거 같은데... 사실 제가 KLDP에 글을 남기지 않고 읽기만 하던 때 부터 계속 종종 두 분 글은 봐 왔습니다. 다른 분들의 글을 봤던 거 처럼 말이조. 나름데로 다 사정이 있으시고 생각이 있으실 텐대... 감정적인 대립각은 세우지 않으셨으면 좋겠습니다. 조금 더 넓게 생각해 주실 수는 없으신지요.

뭐.. 개인적인 느낌일 수 있는데... 아쉬운 점이라면 자칭/타칭 고수님들을 뵈면 웬지 모르게 경직된 사고를 하신다는 느낌, 본인들 주위에서 일어나는 일, 본인들이 격으신 일이 보편적이고 당연한 거라고 굳게 믿으시는 것 같은 느낌... 뭐 이런 느낌 들을 받습니다. 뭐 나름데로의 사상이나 의미가 있으시고 나름데로의 경험들에서 나오는 말씀 들이시겠지만, 때때로 이런 부분들이 너무 강하게 작용하면 저같은 평범한(?) 사람이 볼 때는 뭐랄까... 애해할 수 없는 거만함? 이런 걸로 보인다거나 도대체 자신과 수준이나 이해하는 것이 다른 사람들을 어떻게 바라본다는 건지에 대해서 상당한 의문이 들 때도 있습니다. 뭐... 그렇다는 거조.

솔직히 커널 패치, 드라이버 작성, 컴파일러의 구현에 대한 부분... 이런게 별 거 아닌 것 처럼 말씀 하시는데... 제가 보기에 이런 말씀 하시는 분들은 전부 천재로 보입니다. 그래서 천재는 못 되도 조금이라도 가까워 지고 싶은 건지도 모르조.

잡담이 길었습니다. 한편으론 비참해 지기도 하고 한편으론 생각해 본 것도 좀 있고 해서 별 내용도 없는 글 길게 적었습니다. 죄송합니다. 마치겠습니다.

사람천사

anfl의 이미지

취중에 엄청난 말들을 적어놓았군요.
위 교육이 힘들다는 말에 격해졌었나봅니다.

분명 대학을 갓 졸업한 학생들에게 만만하지는 않을 것입니다.
하지만 저는 그 정도 수준의 사람들을 여러번 가르쳐보아
불가능하지 않다는것을 누구보다 잘 알고 있습니다.
사람이 못할 일은 하나도 없습니다.

저 역시 여러말 필요없이 그냥 증명해 보이겠습니다.
이상입니다.


나그네나그네의 이미지

열정에 넘치는 분이군요 :)

저도 '그냥 증명해 보이겠다-주의자'라서 묘한 동질감 같은걸 느끼고 갑니다-_-;;

anfl의 이미지


조언해주신 모든분께 감사드립니다.
조언해주신 내용들을 바탕으로 새로운 커리큘럼을 짜고,
바로 수강생들을 모집하도록 하겠습니다.


익명 사용자의 이미지

제가 아는 것이 맞다면

꽤 많이 팔린 IT도서의 저자로 알고 있습니다

어느 독자 분이 모 인터넷 서점 서평에서 그 책 개정판에 대한 혹평을 남겼었나 봅니다
개정판이라고 별 새로운 내용이 없고 전판의 재탕이라는 식의 서평이었던 것 같습니다

제가 개정판을 직접 보진 않아서 잘 모르겠고
전판은 괜찮은 책이었다고 생각합니다

개인적으로는 개정판이 반드시 새로운 내용이어야 한다고 생각하지 않고
최신 버전에 맞게 그 부분만 수정되어도 충분하다고 생각합니다

그래도 서평이나 독자평가, 관객평가 등은 잘못된 비판이거나 심지어 터무니 없는 비판이라고 해도
그 독자, 관객으로써 어떠한 평가라도 할 수 있다고 생각합니다
좋은 지적은 받아들이고 잘못된 지적은 무시하면 됩니다

그런데 저자분이 자신의 책을 비판했다고
서평을 남긴 독자의 신상을 털어서 자신의 사이트에 공개하고
독자에게 이 바닥(IT)이 좁으니 앞으로 지켜보겠다는 경고성(?) 협박성(?)글을 올린 모습은 상당히 보기 안좋았습니다

독자가 실력이 안되서 책의 내용을 다 이해하지 못하는 거라느니
그 독자가 인터넷에 올린 글들을 다 살펴봤다면서
그 정도 실력이면 자신의 책의 내용을 이해못하는 것이 역시나라는 등

이거 서평 몇줄 잘못 올렸다가 무서워서 어디 살겠습니까

위에 있는 내용이 혹 누군가의 기분을 언잖게 하더라도 사실만을 써봤습니다

익명 사용자의 이미지

검색해서 안나오는게 없네요.. -0-

anfl의 이미지

네. 저 맞습니다.
아래와 같은 서평에 대해서 처음엔 도데체 누가 이런글을 썼는지 알아보려고 검색을 했었죠.

"""""""""""""""""""""""""""""
기대가 크면 실망이 큰법인듯.
기존판의 필수 유틸리티 소개에서 크게 벗어나지 않는 내용으로 대부분이 구성되어 있네요.
개인 적으로는 학창시절의 xx 전과가 생각나네요.
매년 팔기 위해서 xx년 최신 개정판으라고 광고 하지만 실제로는 똑같은 내용이라는 ㅡㅡ
"""""""""""""""""""""""""""""

왠만해서는 그러려니 하려고 했는데 "xx(동아)전과" 생각이 난다기에
누구신지 정말 궁금하더군요.

조금 검색해보니 서평쓴 사람의 신상 명세가 나오더군요.
신상을 털었다라기 보다는 저는 이미 제 신상이 공개되어 있었으니, 그분도 똑같이 공개해드린겁니다.

왜냐하면 그분과 그 이전에 제가 운영하는 사이트에서 이미 서로 설전이 있었고,
그리고 해당 사이트에 자주 온다는 것도 알고 있었거든요.

그런데,,, 참 애매한 사실은 그분의 활동 내역을 종합해보면
그분은 해당 서적의 내용을 완전히 이해하시기 힘든 상태시더군요.

그래서 당신이 그렇다라고 제가 생각하는 그대로 말해주었습니다.
이전에 그분과 설전했던 그 쓰레드에서 말이죠.

이 바닥이 좁다고한건 실제로 좁기 때문에 한말입니다.

대충 느낌 가는대로 전화 몇통 돌리니 제 지인중에
그분과 같이 일하고 있는 사람과 연결 되더군요.
그래서 아무말 않하고 그분에 대해 잠깐 묻기만하고 끊었습니다.

그래서 경고성, 협박성 보다는 사실을 그냥 있는 그대로 말해주었을 뿐입니다.
이 바닥이 워낙 좁으니 무슨 말을 할때는 한번 생각해보고 하시라고요.

해당 사항에 대해 부끄러운것도 없고,
잘못했다 생각하는 부분도 그다지 크다 생각하지 않기 때문에
해당 일에 대해 연연하지 않습니다.

그런데 글쓰신 분은 이런류의 비판글을 올리시면서 익명으로 글을 올리시군요.
떳떳하시다면 실제 ID로 올리시죠.


익명 사용자의 이미지

아무말 않고 끊었다?

전화 걸어서 물어본 자체가 이미 영향력 행사인 겁니다.

anfl의 이미지

지인들에게 평상시 하듯이 전화 좀 건것이 영향력 행사인가요?
만약 영향력 행사라면 이 바닥이 정말 좁다한 제말이 사실이되겠군요.

PS. 그렇게 억울하시면 그냥 실명 밝히고 글 씁시다.


익명 사용자의 이미지

이래서는 수강생들이 무서워서 교육을 못받겠군요

페이지