상세 컨텐츠

본문 제목

365일동안 하루도 빠짐없이 알고리즘 문제를 풀었다.

카테고리 없음

by young1403 2023. 1. 24. 01:08

본문

https://kwiki.devserum.com/ko/articles/tech-articles/2021-05-31-518-consecutive-days-algorithm-challenge

 

518일동안 단 하루도 빠지지 않고 알고리즘을 풀었다.

 

kwiki.devserum.com

제목을 따라 해 보았습니다.

비전공자로 코딩(?)이란 공부를 시작하면서 개발보다 알고리즘을 먼저 접했습니다. 개발자 이전에 이미 다른 업계에 6-7년 정도 발을 들인 사회원 중 일부였지만 자유롭게 어떤것을 만들고 발전시키길 좋아하는 전형적인 이공계체질의 인간이었습니다. 때마침 현재 하는 일에 회의감도 들고 새로운 자극이 필요한 찰나 유독 개발이란 단어를 주위에서 많이 접했습니다. 휴무날에  '개발이란 거 한번 일단 취미로나 해볼까?'란 생각으로 아이티뱅크를 등록후 이 소식을 모 개발자 톡방에서 얘기를 꺼냈다가 다들 득달같이 달려들어 학원은 환불 받고 학원수업대신 생활코딩과 코테를 공부하란 말을 들으며 시작하게 되었습니다. (당시에 이해하기로는 코딩을 생활처럼 하래서 생활코딩인 줄...)

 

 백엔드, 프론트엔드, 자바 파이썬, html, javascript(자바사촌인가?) , 웹개발자, 앱개발자, 서버개발자 등등 아무것도 모르기 때문에 이와 관련된 정보도 출퇴근길에 매일 유투브로 접했습니다.  그리고 알고리즘 공부는 일단 언어의 벽이 가장 낮다는 파이썬이란 언어를 선택했고 '혼공파'라는 책으로 파이썬 사용법과 알고리즘 문제 풀기를 병행하였습니다.  '출력이란건 알겠는데, 그래서 print가 뭐야?' 로 시작해 ide의 사용법도 모르고 백준 사이트에 쌩으로 코드를 적으며 문제를 풀던 때 였습니다. 알고리즘 문제란 걸 몇 문제 풀자마자 직감적으로 느낀 건 '수학 같다'라는 생각이었고, 당시 칼질이 익숙하지 키보드 치는 것도 낯설 때라 '이 공부는 취업직전에 하면 망하겠다. 못 따라잡는다. 꾸준히 오래 하지 않으면 나락이다'라는 생각을 갖고 매일 꾸준히 풀던 게 어느새 1년이란 시간이 흘렀습니다. 

 

5월쯤 멋쟁이사자처럼 이라는 부트캠프를 시작하면서 매일 푸는 문제수가 줄어들긴 했지만 어찌 되었든 그래도 꾸준히 풀었습니다. 인생 한만큼 돌아온다라는 생각을 갖고 있기도 했고 비전공자이기에 느껴지는 뒤쳐짐? 때문에  '남들보다 코드 한 줄을 더 읽어야 하고, 남들보다 문제 풀이에 대한 생각을 하나라도 더 해야 하고, 남들보다 꾸준해야 개념이 심화되어 살아남을 수 있다'라는 생각이 컸습니다.

(사실 주방에서 귀아프게 듣는 말인 '남들보다 한 발자국이라도 더 뛰어 다니고 하나라도 더 맛보고, 새롭게 하는거 보기 위해선 더 일찍 출근해서 내일을 끝내놓아야 하고 더 적극적이어야 하나라도 더 배운다'를 귀 아프게 들었어요.)

 

앞선 사회생활에서 급성장이란 것을 몸으로 체득한 경험이 있기에 그 경험을 그대로 개발공부에 대입을 시켰습니다.  불필요한 인간관계를 정리하고 월, 분기, 연도별 목표를 세우고 개발공부에만 몰두할 수 있게끔 주변환경을 꾸렸습니다. 호텔 퇴사후 2월까지는 실업급여를 받기 위해 알바를 하고,  3월부터 풀 공부에 들어가며 대략적으로 보면 3월-5월 java, spring, ps, 6월부터 7월까지 부트캠프시작 , 8-9 팀프로젝트, 10-11 리팩토링 및 면접준비 & 부트캠프종료, 12월 면접준비등을 거쳐 23년 1월부터 작은 b2b회사에 출근을 하게 되며 어째 저째 커리어를 시작하게 되었습니다.

 

 부트캠프 마지막쯤에는 하반기채용 시즌이었기에 10월쯤부터 이력서를 보완 수정하고 지원하기를 반복했습니다. 11월쯤부터 연락이 오기 시작해  면접을 보러 다녔습니다. 면접을 보러 다니며 느낀점은 '내가 알고 썼다고 생각한 기술들이 알고보니 그냥 무지하게 쓴 것이구나. 왜 이걸 난 알아차리지 못했을까'라는 자책등의 많이 했던 것 같습니다. java, spring등 기초내용 뿐 아니라 프로젝트에서 사용한 jpa, jQuery, 등의 기술들은 기능구현에만 지나치게 초점을 맞추다보니 원리와 동작에 대한 개념이해 등 기초가 부족함을 많이 느꼈었습니다. 이 부분들을 하나하나 채워 눈높이(내가 만족할만한)에 맞는 회사에 들어가기 위해 개념공부와 면접준비등을 새로 하기엔 12월 당시 번아웃상태에 가까웠고 공부 효율이 많이 떨어진 상태였습니다. 취준이라는 매너리즘에 너무 오래 빠져있는 것 같기도해서 커리어를 일단 시작하자는 선택을 하였습니다.

 

 회사에 출근하고 적응기간을 거쳐 3주차때부터는 운영서버의 코드를 볼 수 있었습니다.  '언어가 다르다 할지라도 한눈에 보기에도 레거시 코드가 많고 아키텍처가 객체지향스럽지 않으며 주석이 없다는 점에서 협업을 위한 배려가 부족한 코드.'라는 생각이 많이 들긴 했지만 언어라는 도구만 바뀌었을 뿐 어떤 문제가 생겼을 때 그 문제를 해결하기 위한 접근법들은 비슷하다는 생각이 들었습니다. 그걸 해결하기 위해 시간이 오래 걸리면 제가 그만큼 부족하다고 느끼는 것이고요. 그리고 백엔드 학습위주로 했었기 때문에 script를 많이 쓰고 view쪽 코드를 많이 볼 수 있다는 점이 저에게는 장점으로 다가왔습니다.

 

23년도 상반기도 반폐관수련 느낌으로 살면서 java, spring의 기초를 좀 깊게 공부하고, 깔끔한 코드의 개인프로젝트를 완성 및 상용화까지 목표로 하고 있습니다. 사실 퇴근후 알고리즘 문제까지 풀기엔 시간분배가 좀 어렵긴 하지만.. 프로젝트 완성 전까진 난이도가 낮은 문제라도 일단 매일 문제를 풀지 않을까 싶습니다. 

 

혹시 궁금한 부분이나 제가 작게나마 도움이 될 만한 부분이 있다면 댓글 남겨주세요!

 

 

ps. 일반적인 취준레벨이면 상관없을 것 같은데, 목표가 카카오 코테 이상이라면 기간을 두고 알고리즘에 몰입하는 기간은 꼭 필요하다 생각합니다. 전공자라면 학부생때가 적기인 것 같네요. (23년도 카카오 하반기(2022년) 본인 3솔,  공채컷이 4~4.5라고 들었습니다.) 또 올해는 공채가 대폭 줄어들 것 같아 같은 시간을 input할거라면 코테보다는 프로젝트와 기술에 공부시간을 조금 더 쏟는게 좋아보입니다..(지극히 개인적인 의견입니다.)

밸런스 좋고
시간을 투자하지 못한 만큼 기울기가 완만해지는 곡선..

한달이라는 온전한 휴가가 주어진다면 노트북만 들고 하와이 해변에 가서 모히또나 마시며 알고리즘 문제나 주구장창 풀고싶다.. (꿈)

댓글 영역