상황상 필요해서 깊게 파거나, 순수한 컴퓨팅적 호기심에 파고들어간다면 환영이지만
취업을 해야한다면서 언어 깊게 파고들어가는사람 보면 뭔가 안쓰러움...
차라리 어느 언어에서나 통용되는 자료구조나 알고리즘을 더 공부하는게 좋을텐데..
상황상 필요해서 깊게 파거나, 순수한 컴퓨팅적 호기심에 파고들어간다면 환영이지만
취업을 해야한다면서 언어 깊게 파고들어가는사람 보면 뭔가 안쓰러움...
차라리 어느 언어에서나 통용되는 자료구조나 알고리즘을 더 공부하는게 좋을텐데..
나는 정 반대 입장임, 6년차 풀스택(프론트시작 백엔드지만..)인데 파이썬만 해서 입사함. 언어를 깊게 팠다고 생각하고, 나보다 파이썬 잘짜는사람 없다고생각함. 입사후에 자바/스프링을 처음했지만, 전체적 틀은 비슷하고 문법정도만 잘익히면 돼서 오히려편함. 자료구조, 알고리즘은 뭐 다 똑같지않나....싶음. 언어를 깊게 판다는게 a라는 문제(오류)를 해결하기위해 또는 더 효율적으로 접근하기위해 코딩을 한다는걸넘어서, 함수 메서드나 각종라이브러리에서 필요한 기능들을 호출해서 쓰는거에서 정말 간단하게 어떤거가 더 효율적이고, 메모리를 덜잡아먹고(효율적으로)를 알려면 그 밑단으로 내려가서 어떤식으로 작동하는지를 알아야 최적화를 할 수 있어서 한 언어만 깊게파는게 좋은거같음
순수 컴퓨팅적 호기심이아니라, 어떤 traffic을 관리하는데 평상시 성능test시에 100,000명의 traffic을 감당할만하게 코딩을 했다치자. 함수,메서드,라이브러리(필요하다면 직접 만들어쓰고..)마다 각각 만들어진 목적이 다른데 최적의 상황에 쓸 수 있는것은 깊게 들어가지 않는이상은 모름. 성능을 10% 개선하면, 10,000명의 traffic 을 감당하는 서버비를 아끼는거고 단순 A_a기능을 10%업그레이드하는걸넘어서 리뉴얼 수준이되면 최종적으로는 15%를 넘는 성능향상도 기대할 수 있음(기존 infra구축상태에선 어렵지만)
현업에서 코드 리뷰를 받다보면, cto나 tech lead가 여기선 B대신 A를 쓰는게 x측면에서 더 나을것 같다 하는데 이유를 들어보면, 나는 그냥 이렇게하면 버그없이 굴러가길래 짠건데 그사람들은 그 함수나 메서드의 정확한 목적을 알고쓰는거라서 효율적으로 나옴. 지금은 나도 많이배우고, 일할때 슬랙으로 질문도 많이받고 공유도하는데 이렇게 성장했다고보면됨.
그 부분은 한 언어의 심오한 깊이까지 들어가서 알게되는게 아니라 다중 트래픽에 대한 문재 해결 방법, 개선 방법에 대한 개념 탑재가 되어있으면 가능한 부분이라 봅니다. 언어만 파서는 모르는부분이에요 말씀 하신 부분들은요.,. 경험의 영역에 훨씬 더 가깝다고 봅니다. 그리고 이런 요구사항을 해결하기 위해 깊이 들어가신거잖아요 그리고 한 언어에서 문제를 해결하면 다른 언어에도 유사한 문제들이 나오고 유사한 해결 방법이 있기 마련입니다. 근데 구현의 경험과, 문제 해결 없이 그냥 언어적 깊이만 달달달 파고들어가면 아무짝에 쓸모없죠
또한 솔직히 A메서드, B메서드가 한 언어에서 비슷한 동작을 하는데 이 차이를 명확히 구분하려들지 않는 사람은 언어의 깊이를 떠나서 개발자의 자질이 부족한게 아닌가.. 하는 생각이 듭니다.
마치 스프링에서 String 객체를 쓰다가 StringFomat 도 써보고, StringBuffer, StringBuilder 도 써봤는데 서로 비슷한 역할을 하는걸 보고도 그냥 똑같은놈이야~ 하고 넘어가는 사람은 더더욱..
스프링이래.. 자바
언어만 판다 라는걸 그.. 공부만 한다는게아니라 저는 경험을 하다보면(일) 어쩔수없이 깊게 들어가게 된다는 말이었습니다.
맨 앞줄에 한 말이 '상황상 필요하거나' 였읍니다....
오히려 정 반대입장이 아니시라.. 저는 취업준비 하시는분들이 이러면 안된다고 한것이죠..
제목을 길게 쓸 수 없어서 앞 뒤 잘랐더니 오해가 있었나보군요...
저는 비전공에 고졸이라... 대학수업을 들어본적이없지만, 코세라가서 강의들어보니까 깊게 배우던데 대학생들은 그렇게 배우는게 아닐까요?? 기초를 탄탄하게하는건 좋은거같은데
ㅇㅎ 그거는 동의합니다. 언어, 메서드,함수,라이브러리 등의 역사부터 발전과정을 아는정도로 공부하는건 학자도아니고.... 취업하려면 자료구조,알고리즘부터해서 간단한 구현부터시작하는게 맞죠 ㅋㅋ
프갤이 인터넷상이라그런가 허세를부리고싶어서 그런가 모르겠지만, 유독 그런성향이 있는거같드라구요. 물론 훌륭하신분들도 많음
대학에서 강의는전 전문대 수준이라서 4년제는 어떤지 잘 모르지만제가 배울땐 실용적으로 필요한 자료구조와 알고리즘을 이론으로쭉 알려주고 이거로 중간고사를 치르고나면프로그래밍 언어로, 앞에서 배운 로직들을 처리하는 기능이 미리 구현 되어있다.까지 알려주며기말고사때는 프로그래밍을 해서 구현하는 실습이었습니다.결국은 메소드를 알려주자가 아니라A라는 문제를 풀기위해 어떤 자료구조, 어떤 알고리즘이 필요한지 스스로 찾아보고 응용하는법을 가르쳐주는 것 이지요
저는 파이썬만해서 입사했는데, 자바/스프링써서 입사전까지 대강 문법만 대충 슥 본다음 토이플젝 몇개완성하고 과제내준거 하고...하느라 대충배워서 애먹었습니다. 그 뒤로 자바의정석 혼자때려박고, 김영한 강의 보면서 사람구실할수있게된듯함
그런데 이제 실무에 가보니 이론상 배운걸 써먹을 때가 왔는데 실상 제가 쓰는 언어에, 코드 변환 알고리즘이 구현되어있지 않더군요 이럴때 배워먹은 이론을 실현화시키는게 큰 도움이 되었죠 메소드에만 의존했으면 불가능했을 일 이었을겁니다.
그래서 지금 회사에서는 거의 뭐 언어 3개를 저글링굴리듯 다루고있어요 스트레스는 받는데 프로그래밍적 개념은 모두 동일하게 적용되다 보니 저같은경우는 어느 한 프로그래밍 언어에 종속되는게 더더욱 안될 일 이었죠..
그러면서도 깊이 또한 요구되고 있어서 머리가 아픕니다 허... 그래도 그만큼 남들보다 성장이 두세배 빨라진다 생각하면 나쁜것도 아닌거같아요
ㅎㅇㅌ