개발자 홍대병

x10 engineer·2023년 11월 20일
4

🤔무슨 홍대병?

요즘 주니어 개발자들이 많은 커뮤니티를 가면 자주 나오는 얘기가 있다.

  • 개발자라면 cs 공부해야해요.
  • 개발자라면 알고리즘은 필수 소양입니다.

이런 소리 좀 하고다니지 말아라

혼자만 생각하면 괜찮은데 커뮤니티에 지껄이고 다니는 것이 문제인게 같이 잘 모르는 주니어들이 그런 말들을 보고 핵심적이지 않은 것들에 집중한다.

특히 큰 회사 다닌다고하면 말의 신뢰성(?)은 더 올라간다. 사람은 권위에 너무 쉽게 굴복하는 것 같다.

재밌는건 저런것들이 중요하다고 하는 개발자들중에 그나마도 해당 지식들을 제대로 아는 사람을 본적이없다. 이건 아래 설명할 내용을 보면 당연하다고 생각이 들 것이다.

한두번도 아니고 가는곳마다 보이니 어처구니가 없어서 이렇게 몇자 남겨본다. 누군가는 보고 깨닫는게 있겠지.

😡제발 코딩이나 많이 해라

당장회사에도 해결해야할 부채가 넘쳐나고 자동화 안된부분들이 산더미일텐데 그런거 해결안하고 홍대병걸릴거같은 주제들만 공부하고있으니 실제 실력이 늘어날 턱이 없다.

mz답지않은 회사의 노예마인드인가? 그러면 사이드프로젝트를 하면서 코딩을 많이하고 다양한 문제들을 접해보면 된다.

아이디어가 없는가? 그러면 그냥 제대로 쉬고 운동하고 건강챙겨라. 은근 건강안챙기더라.

🤔왜 이런 현상이 발생하는가

요즘 다들 가고싶어한다는 네카라쿠배 공채에서 코딩테스트를 보고 깊은 CS지식(깊은지도 모르겠다) 같은 것들을 많이 물어본다고 한다.
항상 체리피킹 좋아하는 한국인들이라 주니어들 사이에서 그런 경향이 많이 도나보다.

근데...그놈의 네카라쿠배에서 뽑고싶은 신입이 어떤 신입인지 생각해봤는가?

바로 알려주자면 똑똑하고 금방금방 배우는 신입이다.
그럼 이 똑똑하고 금방금방 배우는 사람을 어떻게 거르는가?

대충 기업입장에서 보는 신입을 4가지 타입으로 나눌 수 있다.

  • 열심히 공부하고 똑똑한 사람
  • 열심히 공부하지 않고 똑똑한 사람
  • 열심히 공부하긴하는데 그리 똑똑하지 않은 사람 (애매한 사람들도 포함이다)
  • 열심히 공부하지도 않고 똑똑하지도 않은 사람

기업 입장에서는 위 둘을 뽑고싶고 아래 둘은 거르고싶다.
어차피 맨 아래는 알아서 걸러질거고 세번째 체리피커를 뽑는것이 기업 입장에서는 가장 큰 문제라 할 수 있다.

하지만 매년 공채는 치뤄지고 문제는 유출된다, 그러면 비슷한 수준의 문제를 내면 들어오게 되는 체리피커들의 비율은 늘어난다.

해답은 간단하다, 매년 신입공채 코딩테스트 난이도를 올리면 된다. 똑똑한애들은 기출변형을 내도, 난이도를 올려도 잘 풀테니까. 체리피커들은 기출변형이 있거나 난이도가 갑자기 오르면 떨어져나갈테니까.

참고로 이렇게 걸러도 체리피커들이 많이 들어오니 HR입장에선 미치고 팔짝 뛸 노릇이겠다.

번외로 병특이나 전문연 족쇄를 차는게 아닌이상 진짜 똑똑한애들은 해외 빅테크를 가거나 고수들만 모여있는 스타트업간다. 네카라쿠배 잘 안감.

뭐 그렇다고 체리피커라도 되보겠다는걸 막으려는건아니고 내가 막는다고 막아지는것도 아니다. 또 열심히 해서 뚫으면 운좋게 들어가는거고 뭐 그런게 아니겠나.

다만 왜 신입공채에서 자꾸 어려운 알고리즘 내고 복잡한 CS문제를 내는지 핵심을 생각해라. 적어도 홍대병 걸린 친구들이 홍대병히스테리 부리면서 다니라고 내는것은 아니라는 것을 기억하자.

알고리즘, cs공부의 허상

상식적인 수준의 알고리즘(dfs, bfs까지 가지도않는다, 기본 자료구조들 굴러가는 수준에 대해서 이해만 해도 충분하다)이나, 상식적인 cs지식정도는 도움이 된다.

하지만 대부분의 개발자에게 실제로 요구되는 알고리즘이나 cs역량은 도메인지식 수준이다.

도메인지식 수준이 뭐냐고? 예를들어 회계 프로젝트를 한다고 치면 감가상각비, 고정자산평가손익, ifrs, 세금계산법 같은 용어들이나 로직들에 대한 이해를 뜻한다.

회계프로젝트가면 좀 굴러본 개발자들은 이런거 빠꼼이다, 근데 그 개발자들보고 회계사로 인정해주는 사람은 아무도없다. 라이센스를 떠나서 지식수준조차도 비교가 안된다. 회계사가 너무 거창하면 재경직원이라고 하자, 근데 그 개발자들을 누가 재경직원으로 인정해주겠는가, 그냥 프로젝트에 필요한 정도만 알고있을뿐이다.

알고리즘이나 cs지식도 딱 그러하다, 컴파일러나 운영체제나 DB를 개발해야하는 사람들이 아니고서야 해당 지식이 어디서 왜 필요한지 진정으로 이해하기 힘들고 그 지식수준도 공부해봐야 깊은 이해까지 가기 힘들다. 똑똑하다면 경험이 없더라도 어느정도는 사고의 확장이 가능하지만 보통 홍대병걸린 녀석들은 위 제품들을 개발하는 사람들이 아니고(애초에 포지션도 적다) 별로 똑똑하지도않다. 애초에 똑똑했으면 저런 홍대병엔 안걸린다.

대규모 트래픽 처리할때 중요하다고? 그런곳에서 발생하는 어려운문제 해결하고 다니는 사람들은 위에 말한 상식적인 수준의 CS지식 하에서 다양한 상황과 경험들을 조합해서 처리한다. 잘 모르겠으면 그들이 어떻게 문제를 해결하는지 보라. 핵심은 CS지식이 아니란걸 잘 관찰하면 알게 될 것이다.

결국 CS지식은 관련 제품을 개발하면 자연스레 필요해서 찾아보게 되는것이고, 멀어진 제품을 개발하면 까먹기도하고 잘 모르기도한다. 제품을 만드는데 있어서 실제로 들어가게 되는것은 너의 코드다, 알량한 이론지식 자랑이 아니라.

이쯤되면 왜 홍대병걸린 개발자들이 막상 CS지식은 제대로 알고있지 못한지 알 수 있겠다. 단순하다, 그들은 CS지식을 직접적으로 다루는 일을 하지않고 있고 해당지식이 심화될 경험 자체를 해보지 않았기 때문이다.

어떻게 아냐고? 그냥 몇마디 나눠보면 안다. 조금 자세히 얘기해보면 책에 나온것만 조금 외우고 있는 정도일뿐이고 경험이 없으니까 핵심적인 질문 몇마디만 해보면 인사이트 있는 얘기가 나오지 못하고 밑천은 금방 드러난다.

그럼 뭘로 실력을 키우죠?

그냥 코딩이나 많이해라. 왕도는 없다.
회사를 다닌다면 눈 앞에 있는 문제들이나 잘 해결해라.
지적인 주제들을 공부한다고 너가 지적이게되는건 아니다.
근데 대부분 코딩을 안한다. 이런 글을 봐도 90%는 안할거라고 장담한다.

Talk is cheap. show me the code.

profile
마음에 안드는 것이 많은 x10 engineer

0개의 댓글