자바 기초 다지기

프로그래밍의 가장 기초가 되는 프로그래밍 언어 공부다. 현재 알고리즘 공부를 하고 있는데, 알고리즘을 이용해 계속 문제를 풀다 보면 조건문, 반복문에서 도달하지 못하는 코드가 생긴다거나 변수 선언 위치 등 언어에 대한 기초적인 이해가 부족해 발생하는 현상들이 있다. 또한 코드가 너무 길고 복잡해져 모듈화가 필요할 때에 큰 틀에서 보는 습관이 필요하다는 것을 느꼈다. 프로그래머스가 아닌 백준 문제를 풀 때도 main 메서드 아래에 전부 즉석으로 코딩을 하다 보니 마찬가지의 문제가 발생했다. 또한 입/출력이라든지 프린팅 시 포맷팅 등등을 할 때도 언어에 대한 부족함이 많이 느껴졌다.

자료구조 -> 알고리즘 -> 문제풀이

자료형과 자료구조에 대한 이해가 부족하다고 느낀 건 생각보다 초반이었다. int <-> Integer 를 오갈 때 분명히 같은 정수에 대한 것인데 내림차순 sorting을 하는데 온갖 것들이 다 튀어나오고.. 변환을 하는 데도 구글링을 매번 하는 수준에 이르르니 틀림없이 기초가 부족한 것이렸다..

알고리즘은 가까이 보면 코딩테스트 준비다. 멀리 보면 자료구조를 더 깊게 이해하고 더 효율적으로 활용하기 위한 연습이라고 생각한다. 언제 HashMap을, 언제 배열을, 언제 List를 사용해야 하는지를 빠르게 파악하기 위한 것이다. 또한 비지니스 로직을 구현할 때에 어느 알고리즘을 차용하면 좋은지에 대한 연습도 될 것이다. 결국 이 모든 것은 문제풀이를 통해 완성된다. 현재 매일 꼬박꼬박 프로그래머스 문제를 깃헙에 커밋하는 스터디를 하는 중인데, 문제풀이는 매일 꾸준히 하는 것이 중요하다고 생각하는 와중 가끔 다른 강의나 고민에 매몰되어 시간투자의 효율이 적어질 때 스터디의 존재로 인해 리프레시를 할 수 있어 감사하다고 느끼는 중이다. :)

현재까지의 나는

여기까지는 나의 계획이고, 사실 어느정도 역방향으로 굴러갈 때가 있다. ㅠㅠ 문제를 보고, "어 이거 어떤 알고리즘 문제인데.. 방식은 아는데 구현을 어떻게 했더라.." 이후 구현 방식을 공부하다 자료구조에 대한 이해가 부족해 "이 자료구조로는 구현이 안됐었나.." 하고 다시 자료구조로 내려가는 일이 왕왕 있다.. 이런 경험들이 공부 계획을 이렇게 세운 이유다.

더 먼 미래

우리의 목표는 결국 최종적으로 백엔드 개발자가 되는 것이다. 나를 포함한 많은 분들이 당장 스프링이나 플라스크, 장고 등 프레임워크를 공부해야 될 것 같다는 생각과, 백엔드 로드맵을 봐도 당장 어디서부터 시작해야 하는지 방황하고 있을 것이다. 나도 지금 공부를 하면서 "아, 이런 것들 때문에 자료구조와 알고리즘이 웹 개발 공부에 도움이 되는구나!" 라는 생각이 번뜩 들지는 않는다. 하지만 숱한 구글링과 주변 사람들은 전부 현재 내가 하고 있는 것들이 개발자가 되기 위해 매우 중요하다고 말한다. 따라서 내 눈 앞의 현재에 열심히 몰두할 생각이다.

profile
개발자를 향해

0개의 댓글