너네 대학교나 혹은 일하다 보면, 좀 눈에 띄게 프로그램 잘만지는 사람들 있지않냐?
솔직히 내입으로 말하기 그렇긴 한데, 대학교때 전공만으로 4.2 넘는 학점 받았고, 6학기 부분장학금 꼬박꼬박 챙겼고..
(망할 교양때문에... 전공만 재면 전학기 전장이다)
학교에서 '누가 코딩 제일 잘하냐?' 물어보면 고민없이 원탑으로 내이름이 불렸었고
회사에서도, 언어 환경 안가리고 전방면 나름 해결사 역활 하고있고
입사한지 얼마 되도 않은 상태에서 처치곤란 문제 몇개 풀어주고 프러덕 하나 도맡아서 관리하고,
나름 인정 비슷한거 받고있는 개발자다.
내입으로 ㅄ같은 소리 하면서까지 내가 하고 싶은 말은
여기, 프로그램 어렵다. XX 프레임웤 좆같다. 이딴거 왜만들었냐. 하는 징징이들이 유독 눈에 많이 보여서, 해주고 싶은 얘기가 있어서다.
앞서 재수없는 말을 굳이 쓴 이유이기도 하고.
잘 생각해봐라, 니네들이 생각하는 그 고수 역시 처음에는
처음 포인터를 보고 미궁에 빠졌을 것이고,
소켓 대충 책에 씌여진거 이리저리 하다보니, 왜 됐는지도 모르고 버그가 있는지도 모르는데 어쨋든 동작하는 코드 소중히 다른폴더에 복사해서 간직해놓고,
스레드 동기 sleep으로 맞춰놓고 버그 해결했다 하고
엑세스 바이얼레이션 런타임에 터지는거 디버깅할때 안터진다고 옵티마이져 탓하고
APC 보고 윈도우 버그다하고, double free if문으로 막고, 복잡한 문맥 온갖 플래그로 처리해놓고 결국 더이상 손못대서 다시만들고
하지 않았겠냐?
솔직히 나도 코딩 초딩때 시작했는데
포인터 이해하는데 6년 걸렸고, (14살때 첨보고 20살에 이해했다.)
네트워크 플로우 머리로 미리 그려놓고 실체화 할수 있는데까지 6년 걸렸고 (역시 14살때 첨보고 20살때)
렌더 플로우 디자인 가능하게 되는데 4년 걸렸고 (WINAPI/GDI/OPENGL/DX 전부 합쳐서 한 20번은 만들어 본거같다. 물론 온전한 출력물이 뽑아진 것 기준으로)
상시 상호작용 하는 스레드 300개가 1달동안 죽지않고 돌도록 만들 수 있게 되는데 4년 걸렸고
DLL(process memory + dynamic loading) 이해하는데 3년 걸렸고
COM 이해하는데 2년 걸렸고
자료구조(교재)에 나오는 모든 구현 직접 가능케 되는데 3년 걸렸고 (RB tree는 아직도 안만들어봤다.)
여기 복수/부전공 혹은 비전공자들도 많이 오는것 같던데, 니네보고 포기하라 말하는게 아니고,
원래 오래 걸린다는걸 알았으면 한다는거야.
위 시간은 머리 드럽게 나쁜 나 기준이므로, 너님들이나 여기저기 이름 날리는 머리 오지게 좋으신 분들은 차이가 있을 수 있겠다 싶다.
근데 이게, 재미있는건, 반복이 되었을때 효과가 좋다는거야
중딩때 정말 외계인으로만 보이던 스레드가, 고딩때 그냥 외워서 쓸정도가 되다가, 대학생 첫수업에서 해탈을 하게 되더라.
물론, 알고싶다는 의지가 당연히 있어야겠지, 한번 완성해놓은 코드 복붙 백날해봐라 이해가 늘어나나
기본으로 알고있는게 하나둘씩 늘어 나면 점점 다른거 이해하는데도 가속이 붙는다.
OS/Network/Database/Algorithm 쪽 경험이 자꾸 붙는게 가장 좋긴 한데,
라이브러리/프레임웤 들도 뭐 하나둘씩 써버릇하면 새것 적응하는데 확실히 도움이 되긴 한다.
슬프게도 라이브러리/프레임웤은 개인적인 느낌상, 패턴으로 코드가 자꾸 읽히더라..
(web socket 오버헤드 줄이려고 통신 스텝을 이렇게 구현 했구나.. 머 이런게 읽혀야 되는데,
B 프레임웤도 이렇게 생겼네? A 프레임웤이 이랬었는데, 그럼 다른 구간도 이렇겠지? 오 그러네?
이런식으로..)
일단, 당장 이해 안되면, 되는데까지 이해 하려 노력하고,
업무상 급했거나 공부목적이더라도 더이상 이해가 불가능 하면 일단 한번 끊고
꼭 기록해놓고 나중에 다시 한번 읽어봐라. 비슷한 목적의 다른 라이브러리를 실습해 보는것도 좋고.
애초에 렌더플로우가 이해가 안되고, 백엔드 프론트엔드가 머리에 안그려져있는데, 클라사이드 코드를 니가 쥐어 잡을 수 있겠냐?
10번이고 20번이고 들어 올때까지 해야지. 그래야 이판에서 돈벌어먹고 살지 않겠냐?
그리고 가져다 쓰는 오픈소스 라이브러리들, 코드 좀 읽어보고 써라.
되도 않는 영어 어설프게 해석해서 딴사람들하고 대화할때 헛소리 삑삑하지 말고,
코드는 명확히 지가 무슨짓을 하고있는지 설명하고 있으니까
특히, react 배우고 싶으면 dirty component 추출 프로세스랑 render batch 프로세스 반드시 파악하고 쓰고..
이래라 저래라 훈수질하지말고 본인이나 잘하세요.ㅇㅇ
ㅇㅇ
너는 수학 얼마나잘했냐???? 컴공가기전 뭘 하면 잘할수있을까???
수학 솔직히 수능은 망해서 2등급나왔고.. 모의고사는 1등급 빈도가 더 높았었고... 글쓰면서 좀 삐질삐질하네..
갠적으로, 다시 중학교로 돌아가라 하면, 학교 공부는 여전히 걍 좋아하는 과목만 깨작깨작 할것같고, 친구랑 만들다 포기한 게임 완성 해보고싶다.
결과적으로 걍 재미로 깨작댓던 중고딩때 코딩이 내 인생에서 지대한 영향을 미치고있다고 생각해 대학때도 지금도
좋은글
niopq 내 카톡아이디인데 더 물어보고싶운데 친추해주면 안될까?????? 친구도없고 아무도없어서 물어볼사람도없구 싫으면 친구안해도 괜찮앙
추천
와드
첫댓 ㅂㅅ
존나좋은글인데..
sleep잼 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
ㄴ 안타까운건.. 지금도 sleep으로 동기문제 잡는사람들하고 같이 일하고 있다는거야..자주터지는 부분 sleep주고 빈도가 좀 적어지면, 가끔터지는 문제는 프로세스 모니터링하는 프로그램으로 재시작하도록 바꾸고
더 열불통 터지는건.. 저렇게 sleep 수정하는사람이 나보다 선임이라.. 어떻게도 못함.. 좋게 한번 얘기 나눈적 있었는데 "어쨋든 지금 안죽잖아?" 답변듣고 대화 시도 자체를 안하고있음
ㅠ ㅠ센세 - dc App
ㅠㅠ 고맙다 나는 지금까지 내가 댕청한줄만 알았다. ㅠㅠ
이 방법이 개좋은게..꼭 프로그래밍이 아니더라도 그냥 좋은 공부법이다. 사실 널리 알려진 방법이기도 하고. 몰라도 일단 정독해서 첨부터 끝까지 읽어보고 보다 보니 나중에 어? 왜때문에? 하고 그냥 이해되는 방법이다.