알고리즘 떡밥 돌았는데 파티에 늦게 와서 억떡 굴려봄
온갖 소팅 알고리즘을 다 완벽하게 알고 있는 사람이 있어도 프로덕션에서는 그냥 갖다 쓸거라고 생각함
그래서 현실적으로 그 소팅 알고리즘을 알고 있는게 그 알고리즘을 알고 있는 것자체에 의의를 두는게 아니라 다른 어떤 가치를 중점으로 보는 거라고 생각하는데
그 다른 가치가 그 사람의 실력에 의미있는 차이가 생긴다고 생각하니까 알고리즘을 중요하다고 생각하는거잖아
이런 경우에 알고리즘을 구현할줄 아는게 그 사람에게 어떤 가치를 만들어줌?
누구나 얘기할 수 있는 피상적인 내용말고 정말 본인이 현실에서 느꼈다거나 본인은 어떤 가치를 위해서 공부한다 이런게 있음?
해당 포스트의 목적은 개인적으로 알고리즘은 내부 구현체가 아니라 인터페이스를 잘 이해하고 있는게 더 중요하다고 생각하기 때문임
어차피 개발자라는 직군 특성상 가장 똑똑한 놈조차도 논문을 쓰는게 아니라 논문을 통해 구현체를 작성하는 역할이니까.
결국 어떤 상황에서 어떤 방식을 쓸지 결정하는 것이 개발자가 가질 수 있는 아이디어의 최대 아웃풋이라고 생각함
물론 이는 알고리즘이라는 분야 내에서만 한정해서 하는 이야기고 (수학적 정의를 컴퓨터로 옮기는 역할)
다른 분야로 넘어가면 개발자가 온갖 방식으로 미쳐날뛸 수 있는 방법이 훨씬 더 많다고 생각하는데
굳이 거의 반드시 다른 사람(수학자)의 똥을 받아먹어야 하는 알고리즘에 목매다는 사람이 이렇게나 많은 이유가 뭘지 궁금함
알고리즘을 구현하는 것을 암기해두는게 그 사람의 실력을 결정한다고 생각함?
현실적으로 수많은 빅테크들이 이 둘의 상관관계를 찾고 있는 것과는 상관없이 개개인의 의견이 궁금함
원리 알려주면 다 짠다로 결론났는데
난 정확한 구현법을 아는 게 중요하다기보단 해당 알고리즘이 동작하는 방식을 아는 게 더 중요하다고 생각함 c++의 벡터와 리스트는 거의 동일한 인터페이스를 제공하지만 그 구현이 달라 적합한 사용처가 다르잖아 그 사용처를 적절하게 가려내는 게 중요하다고 생각함
좆소 경험해본 결과 시간 복잡도와 공간 복잡도를 고려하지 않는 등신들을 걸러내는건 필요함 다만 헬조선화되서 알고리즘 빡세게 점점 나오는듯
되서->돼서
알고리즘을 코드로 구현하는건 그냥 실습인거고, 모르는 문제를 풀 수 있냐, 없냐를 판단하는게 중요하다고 생각함.. 그걸 위해선 기존 알고리즘을 분석해서 사고방식을 배워야하고
알고리즘의 쓰이는 스키마, 논리적 구조를 알고있는 것과 STL등에 최적화 떡칠로 이미 구현된걸 갖다 쓸줄 알면되는거지 구현을 왜함 물론 구현할 줄 아는 사람이 실력이 더 좋겠지 근데 그게 구현할줄 알기때문에 실력이 좋나? 아니지. 그냥 코딩 잘하니깐 구현할줄 아는거
내 빅데이터에 의하면 그냥 새로운 거 보여줬을 때 이해력 빠른 놈들이 일 제일 잘함
취지는 알겠는데 코드로 못짜는 사람 보면 좀 짜치는건 사실이잖음 - dc App
구현할 줄 아는 것 자체는 동작의 이해, 수학적 사고의 확장 등이 있겠고, 그게 중요하다고 생각하는 사람들은 대개 그 외의 장점들을 생각할거라고 봄 구현하는 것 자체보다 구현할 정도의 능력이 되기 위해 쌓았을 부수적인 능력들이 중요한거라고봄 ex) 코드 짜는 실력, 개발 언어 이해도, 수학적 능력 및 지능, 전체적 알고리즘 이해도 등등.. 약간 빗나간 이야기긴 하지만, 기업들에서 코테 보는 것은 면접 비용을 아끼기 위해서라고 생각함
알고리즘을 제대로 알고 쓰는거랑 적당히 쓸줄만 아는거랑 차이 확실하게 남
난 알고리즘 구현 잘하는 사람이 실무에서도 기능 구현 잘한다고 생각함. 특히 규모가 제법 큰 기능을 구현해야 될 때는, 로직 설계+구현 단계만큼은 그냥 코테랑 똑같은 작업이라고 많이 느꼈음.
구현 암기 없이도 그냥 술술 쨘다면 그건 잘하는거겠지 뭐