현재 안드로이드 프로그래밍 공부가 90%이상 끝났다. - 깡샘의 안드로이드 프로그래밍
그래서 다음 공부할 것을 정하려 한다. 세 가지 정도를 동시에 해보려 한다. 가장 먼저 결정한 건 kotlin이다. kotlin으로 개발할 생각이기도 했고, java 문법도 제대로 모르는 상태이기 때문에 kotlin 문법을 깊게 보려고 한다. "둘 중 하나는 잘해야 하지 않을까?" 하는 마음이다. java 문법을 몰라서 "힘들었다"까진 아니고 "아쉬웠던" 건 어노테이션과 rxjava이다. rxjava는 아예 모르고 어노테이션은 아직도 와닿지가 않는다. 사용해본 언어가 한두가지도 아니고... 서너가지 아니고... 그 이상 다뤄봤기 때문에 공통적인 부분은 금방금방 넘길 수 있을 것이다.
두 번째로 결정한 것은 알고리즘이다. 알고리즘의 경우 이전에 취미로 했던 것도 있고 앞으로도 취미 수준에서 한두 문제씩 꾸준히 풀어나가면 괜찮을 것 같다. 올해는 실력도 안 되고 휴학생이기 때문에 참가를 못 하지만, 내년에 있을 icpc, ucpc, scpc는 기회가 된다면 준비해서 참여해볼 생각이다. 컴공 나와서 알고리즘 대회 수상 이력 하나쯤은 트로피로 갖고 싶다. 아니면 바운티 헌터... 그리고 요즘은 블라인드 코딩 테스트(카카오 포함!!!)도 많이 하기 때문에 알고리즘을 공부하는 것은 괜찮은 선택인 것 같다.
세 번째로 결정한 것은 node.js이다. 처음에는 안드로이드가 java를 사용하고, 스프링도 java를 사용하니 안드로이드의 서버는 스프링을 사용할 거라고 생각했다. 한 가지 언어로 풀스택 개발하면 좋은거 아닌가? 잘 모르겠지만 데이터를 json으로 많이 주고 받기도 하고 뭔가 모바일 서버도 node.js로 많이 하는 것 같아서 이것을 공부하는 방향으로 노선을 바꿨다. 서버 개발자로 스프링 사용하는 사람 되게 많던데 뭘 (어떤 클라이언트를 대상으로)개발하는거지..? 그나저나 스프링을 쉽게 사용하기 위해 만든 게 스프링부트인데, 스프링부트를 하려면 스프링을 먼저 공부해야한다는 게 어떻게 된 일이죠?
그 전에 공부하고 싶은 게 너무 많아서 아마 안 하게 될 것 같지만, 어플을 하이브리드로 개발할 수 있는 Dart + Flutter 에도 관심이 있다. 개인적으로는 하이브리드라고 부르는데 '노마드 코더'는 크로스 플랫폼이라고 부르는 것 같다. 그 유튜버는 내가 웹앱이라 부르는 것을 하이브리드라고 부르는 듯 하다. 근데 난 계속 내가 부르던대로 부를 거다.
알고리즘은 오랫동안 여유 있게 공부할 예정이다. 알고리즘을 제외한 두 가지 공부를 끝냈을 때 공부할 것들도 많다. 사실 공부하고 싶은 게 너무 많다. 하고 싶은 건 풀스택 개발 뿐만 아니라 리버싱(해킹)까지 공부하고 싶다.
코드는 산으로가서는 안 되고 스파게티가 되어서도 안 된다. 그리고 코드를 짤 때 큰 그림을 볼 줄 알고 유식한 척 하고 싶다. 그래서 디자인 패턴과 클린 코드가 공부하고 싶다. 여기에 추가로 리팩터링까지... 내 코드에 결함이 없다는 것을 증명하기 위해 TDD(테스트 주도 개발)를 공부하고 싶다.
위에서 말했듯이 node.js를 먼저 공부할 것이지만 나중에 스프링부트도 배워보고 싶다. 그리고 풀스택 개발자가 SQL을 모르는 것도 이상할 것 같다. 주력으로 사용하지는 않더라도 여기저기 쿼리가 많이 사용되기 때문에 MySQL로 SQL을 공부하려 한다.
클라이언트 개발하면서 항상 느끼는 건데 나는 사실 미적 감각이 없는 게 아닌가 싶다. 모바일 UI/UX 디자인 책을 구입했는데, 책을 받고나서 보니 개발자가 아니라 디자이너가 봐야할 책인 것 같다. 흠... 일단 해보지 뭐... 집에 있는 책 중에 데이터베이스 책과 "API정복"이라는 책이 있는데 API는 이미 인테리어로 사용하고 있고 데이텁이스 책도 인테리어로 사용하게 될 것 같다.
잘 기억이 안 나서 인터넷 서점 장바구니를 보고 왔다. 위에서 언급하지 않는 것 중 개발과 관련된 책으로 다음과 같은 책들이 있었다. AWS, 딥러닝, 함수형 사고, 리눅스, 컴퓨팅 시스템.
졸업하기 전까지 다 해보는 게 목표이다. 내년 1학기 복학 전까지의 최소목표는 kotlin과 node.js이다. 하나 더 하게 되면 ... 그때 가서 고민해야겠다. (후보 : TDD, 디자인 패턴, 클린 코드, 컴퓨팅 시스템, MySQL, 리눅스, 함수형 사고 - 하고 싶은 게 너무 많아)
'공부' 카테고리의 다른 글
컴퓨터공학과 대외 활동 (21.07.24.) (0) | 2021.03.03 |
---|---|
코딩은 Hello, World! 가 전부라고 생각한다. (2) | 2021.02.06 |
카카오톡 클론 - 이미지 크기 (0) | 2020.11.02 |
코드에 대한 올바른 질문 - 코딩 질문 (2) | 2020.06.28 |
컴퓨터공학 적성에 맞을까? (3) | 2020.04.14 |