2021. 10. 30. 17:34ㆍ코딩(JAVA)
세상에는 코딩을 잘하는 사람들이 참 많다. 그중에서는 얼마 배우지도 않았는데 이해력이 남들보다 훨씬 빠른 사람들, 흔히들 코딩에 재능이 있다고 하는 사람들도 있다. 나는 코딩을 잘하는 사람들을 열심히 관찰하고 따라 해보려 노력하고 있다. 오늘은 내가 지금까지 그들을 관찰하며 느꼈던 코딩을 잘하는 방법에 대해 이야기해보려 한다.
혼자서 해결하는 능력
프로그래밍이란 끊임없이 오류와 마주치고 그 오류를 해결하는 과정의 연속이다. 이 오류들을 혼자서 해결할 수 있느냐 없느냐에서 실력이 갈린다. 가끔 『모르면 물어봐야지』라는 생각을 가진 개발자들이 있다. 나는 이 생각에는 동의하지 않는다. 이러한 생각은 사람을 의존적으로 만들어 문제를 스스로 해결할 수 있는 능력의 발전을 막기 때문이다. 영화를 제대로 보려면 중간중간 스킵 하지 않고 처음부터 끝까지 다 보아야 한다. 중간중간 내용이 영화의 결말을 이해하는데 중요한 단서가 되기 때문이다. 코딩도 그렇다. 중간중간 문제 해결을 위해 여러 가지 방법을 시도하는 것 자체가 자신의 실력의 밑거름이 된다. 또 기어코 그 문제를 해결했을 때 얻는 깨달음도 더욱 크고 기억에도 오래 남는다. 문제 해결을 위한 여러 가지 시도 없이 능력 있는 사람들에게 도움부터 받는다면 영화를 처음부터 보지 않고 결말만 보는 것과 같다. 이렇게 되면 왜 이런 현상이 발생되었고 어떻게 해결했는지 잘 설명을 해준다 한들 와닿지도 않을뿐더러 설명을 들어도 제대로 이해하지 못한다. 결국에는 또 다른 문제가 생겼을 때 또다시 도움을 요청해야 하는 악순환에 빠지게 된다. 의존적인 사람은 결코 좋은 개발자가 될 수 없다.
스스로 하는 습관
코딩에 재능이 있는 사람들은 뭐든지 스스로 해결하려고 노력하는 습관을 가진 사람들이다. 그들은 일상에서마저 스스로 하는 습관을 가지고 있다. 그것이 어떤 것이든, 사소한 것 하나라도 혼자서 문제 해결을 위해 탐구한다. 컴퓨터가 고장 나더라도 AS 센터에 맡기기보다는 혼자 고쳐보려고 애를 쓴다. 이렇게 스스로 하는 습관이 쌓여 뭐든지 잘하는 사람을 만든다. 스스로 하는 습관을 가진 사람들은 뭐든지 빨리 배운다. 빨리 배운다는 것은 개발자의 역량을 판별하는데 매우 중요한 요소이다.
빨리 배우는 능력
하루하루 다이내믹하게 바뀌는 IT업계에서 빨리 배운다는 것은 매우 큰 의미가 있다. 기업에서도 점점 잘하는 사람보다 빨리 배울 수 있는 사람을 선호하는 추세이다. 최근 취업시장에서 알고리즘 능력이 중요도가 높아지는 이유가 여기에 있다. 종종 여기저기 움직이며 신기술을 배우는 개발자들이 있다. 마치 그 신기술을 알아야만 더 좋은 개발자가 될 것이라 생각한다. 하지만 나는 이것이 비효율적인 공부 방법이라고 생각한다. 하루하루 수많은 신기술이 쏟아져 나오는 IT 업계에서 그 신기술 중에 훗날 어떤 것이 살아남을지 알 수 없으며 사람은 망각의 동물이라 신기술을 배웠다 한들 써먹을 곳이 없으면 빠르게 머릿속에서 잊어버리게 되기 때문이다. 우리는 신기술이 필요로 할 때 필요한 것만 빠르게 습득할 수 있는 빨리 배우는 사람이 되어야 한다.
많이 해보는 것
코딩은 학문이 아니라 기술이다. 학문은 책으로 공부하는 것이지만 기술은 직접 해보고 배워야 한다. 코딩을 수영에 비유할 수 있을 것 같다. 수영은 책으로만 배워서는 결코 실력이 늘 수 없다. 수영장에 가서 팔도 저어보고 다리도 저어보고 해야 실력이는다. 코딩도 마찬가지다. 코딩 실력을 늘리고 싶다면 코드를 계속 짜봐야 한다. 수영실력이 물에 뜨는 원리를 깨닫는 순간 실력이 급격히 느는 것처럼 코딩도 특정 원리만 깨닫게 되면 실력이 부쩍는다. 코딩을 잘하려면 많이 해보아야 한다.
경험이 많은 사람
코딩을 많이 하면 경험이 쌓인다. 직장인이 되고 가장 밑에서 선배들을 보는 순간 확실히 느낀다. 경력이 올라갈수록 실력도 정비례한다는 것을 말이다. 개발자에 있어 경험은 매우 중요하다. 나 역시 누군가 나에게 이 기능이 되는지, 이 방법이 되는지 물어볼 때면 내 경험에 기인하여 대답한다. 내가 해본 적이 있다면 그것은 되는 것이고 아니라면 확신 없는 대답을 할 수밖에 없다. 경험이 많이 쌓이다보면 이 기능을 추가하는데 몇시간, 몇일이라는 추상적인 소요시간도 대충 알 수 있게 된다. 이렇듯 경험은 판단의 확실한 근거가 된다. 우리는 다양한 경험을 해보아야 한다. 개발자들의 이직이 필요한 이유도 여기에 있다. 다양한 경험이 필요한 개발자의 인생에 있어 이직이란 새로운 경험을 해볼 수 있는 기회가 될 수 있기 때문이다. 새로운 경험을 할 기회가 있다면 어릴수록 좋다. 우리의 두뇌도 나이를 먹는다. 어릴 적 배우는 영어와 지금 배우는 영어의 배우는 속도가 차이나듯 나이 든 사람이 새로운 경험을 하는 것과 젊은 사람이 새로운 경험을 하는 것은 배움의 효율이 다르기 때문이다.
의존적인 사람이 되려고 하지마라 스스로 풀어보려고 노력해라.
부딪혀봐라.
'코딩(JAVA)' 카테고리의 다른 글
복제와 참조. (0) | 2021.10.06 |
---|---|
자바파일 이클립스에 불러와서 여는법(Import) (0) | 2021.08.09 |
내가 직접 만들어본 프로그램 (0) | 2021.08.02 |
Scanner로 스위치문 작성하기 (1) | 2021.08.02 |
자바의 Scanner 메서드 (0) | 2021.08.02 |