일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코딩교육봉사
- 파이썬
- 백준알고리즘
- java
- python
- CJ UNIT
- kotlin
- programmers
- 프로그래머스
- SQL
- 1과목
- 백준
- 데이터베이스
- 자바
- 코딩봉사
- 소프티어
- 스프링
- 시나공
- C++
- 정보처리산업기사
- 백준 알고리즘
- 문제풀이
- 공부일지
- BFS
- 코틀린
- SW봉사
- 알고리즘
- softeer
- 회고
- MYSQL
- Today
- Total
JIE0025
[Section2] 개발자의 학습방법을 익히는 과정 본문
CODESTATES BE 42th
Section 2
(22.11.17 ~ 22.12.13)
섹션2를 한문장으로 요약하면, 개발자의 학습방법을 몸에 익히는 과정이었다라고 할 수 있을 것 같다.
✅ 이전의 나보다 성장한 점
⏺ 알고리즘
✔️ 과거의 나
이전에 알고리즘을 공부할 땐 동작과정과 코드로 구현하는 방법 정도만 익히고 많은 문제를 풀어봤었다.
이방식의 문제점은 심화학습에 도전하기가 너무 어렵다는 것이었다.
코드를 외우고, 익히고, 적용하는 수준의 문제만 풀어서는 알고리즘문제 푸는 실력이 절대로 증가할 수 없다.
(심지어 파이썬으로 풀었었다. 파이썬은 코드가 간결해서 암기하는게 정말 쉬웠다.)
✔️ 알고리즘 문제풀이의 근본적인 목적은 무엇인가?
또 근본적으로 알고리즘을 푸는 목적이 효율적인 코드를 짜는것에 있는데, 그런건 하나도 고려하지 않고 단순히 구현하기만 한다면 그건 과연 잘하는 개발자로 정의할 수 있을까?
당연히 구현능력도 수반되어야하지만, 동작하는 코드를 개선을 통해 얼마나 내가 복잡도를 줄일 수 있는지가 백엔드 개발자의 역량이라고 생각한다.
따라서 알고리즘 문제를 푼다는, 작은 문제에서부터 우리는 복잡도를 고려해야한다.
✔️ 현재의 나
이런 생각을 하고나니 나는 현재 이런 변화를 마주했다.
- 알고리즘 문제를 풀 때 무조건 worst case와 시간복잡도에 대해 고려해보고 있다.
시간이 많이 걸리더라도 필요하다면 그림을 그려보고, 계산을 손으로 해본다. - 비슷한 난이도의 같은 유형을 풀기만 했던 과거의 나를 넘어서고자 어려운 문제에 도전하면서 새롭게 배운 내용들을 정리하고 있다.
✔️ 현재의 내가 부족한점
- 복습을 해야겠다고 다짐했지만 제대로 실천은 못하고 있다.
학습할 내용이 너무 많아서 새롭게 배운 내용을 공부하는데에도 시간이 거의 다 소모된다. 이 부분은 앞으로 어떻게 복습에 시간을 투자할것인지 고민이 좀더 필요하다. - 파이썬을 써서 문제 풀던거를 아예 안하고 있는데 시간이 난다면 한문제라도 파이썬으로 다시 풀어야겠다.
⏺ 스프링
✔️ 과거의 나
코드의 흐름만 알고 복사 붙혀넣기식으로 스프링 게시판을 만들었었다. 물론 그 당시에도 어떤 기능이 필요하다 싶으면 사고하고, 응용하는 과정을 경험하기는 했다. 그렇지만 이게 왜 이렇게 작동하는지는 하나도 모른채, 단순 구현만 가능한 코더의 수준으로밖에 남지 못했었다.
✔️ 현재의 나
나는 아마추어가 되었으려나? 좀더 나은 코더가 되었으려나?
프로젝트를 진행하면서 앞으로 더 성장하리라는 확신은 있다.
그떄의 나와 지금의 나는 지식의 깊이가 완전히 다르다.
프로젝트를 객체지향적으로 생각하고 작성할 수 있게 객체지향이 추구하는걸 생각하면서 개발해나가야겠다.
⏺ 개발자의 학습
개발자의 학습은 결국 직접 쳐보고 만나는 문제들을 통해 성장한다.
글을 쓰는것에 집중했던 section1을 극복하고 실습을 최대한 많이 하고자했는데,
실습의 비중을 늘리긴 했음에도, 블로그에 글 쓰는것을 놓지는 않았다. 기록이 생각보다 기억에 오랫동안 남아서 어쩔수 없었다.
나는 이후 섹션에서도 같은 방식으로 진행할 것이다.
일단 따라하면서 이건 무슨 역할을 하는지, 여기에 적용된건 무엇인지 먼저 이해를 하고
이후에 새롭게 파일을 만들어 레퍼런스 없이 다시 한번 적용해보고.
이후에 생각을 확장할 수 있게 추가적으로 생각이 필요한 문제들을 경험해보는 과정.. (당연히 구글링은 필수적이다)
더 나아가 섹션 3에서는 프로젝트를 진행하면서 <개발자의 학습>보다 <엔지니어로의 발돋움>을 목표로 더 도전적인 과제들을 직접 사고하고 구현해봐야겠다
⏺ (기타) 기획과 디자인, 커뮤니케이션을 위한 연습
쉬는시간에도 코딩을 하는 사람을 따라갈수는 없다.
그사람은 코딩에 미쳐있는사람이다.
물론 나도 요즘 계속 하루종일 컴퓨터 앞에 앉아있긴하다. 진짜 엄청난 양의 공부를 하고있다.
쉬는시간에는 틈틈히 잠을자거나, 유튜브를 보거나, 산책을 나가거나, 달리기를 한다.
하루종일 IT 개발 공부와 이런저런것들을 하고 나서,
잠을 자기도, 유튜브를 보고싶지도, 산책을 나갈 마음의 여유도 없다면 그때의 나는 무엇을 하면 좋을까?
이런 상황에 나는 기획과 디자인을 한다.
피그마로 작업하는건 예전부터 해왔던거라 오래걸리지 않아서 실제로 머리아플때 하기 딱 좋다.
솔직히 본업이 아니라서그런건지 모르겠는데 재밌다.
나의 모든 경험은 어디로든 나를 성장시킬것이니 쉬는시간의 투자는 나쁘지 않은것같다.
섹션 2를 마치며
주변인의 고민과 걱정을 듣고나서 최근 며칠동안 많은 생각을 하게 되었다.
몇년전에 제가 봤던 괴물같은 실력의 선배들은 당시에 본인은 많이 부족하다고 하셨고, 2022년 이미 취업을 하신 이후에도 나는 아직 부족하다라는 말을 똑같이 하시고 계신다.
나 또한 그때 당시보다는 지금 훨씬 성장했음에도 아직 많이 부족함을 느끼고 있었다. 어디까지 해야 우리가 신입으로 잘 취업할 수 있을까에 대한 고민이 생기고, 내가 잘하고 있는건가, 내가 이정도로 해서 될까하는 생각이 들 수 밖에 없는 상황이다.
결국 부족함은 성장욕을 가진 사람이라면 언제나 느낄수 밖에 없기 때문에 각자의 속도를 가지고 달려가는게 정말 중요한것 같다.
한번에 모든걸 깨우치는건 불가능한 일이고, 내가 아무리 잘 아는 지식이더라도 100% 그걸 알고있다고 확신할 수 있는건 이세상에 없다고 생각한다.
그렇기 때문에 신입으로서의 역량에서 전체를 다 알려고 하지 않아도 된다.
이미 취업을 하신 주니어, 시니어분들도 모르는게 있으니...!
전 회사 팀장님도 항상 그러셨다.
회사는 신입을 뽑을 때 실력을 최우선순위로 고려하지 않는다고, 기본기는 분명 중요하지만 완벽함을 가질 필요는 없다고..
우리는 그저 오늘의 나는 어제의 나보다 성장했음을 꾸준히 상기시키면 된다!
혼자서 공부했다면 이 짧은시간동안 여기까지 못왔을것이고 이미 나는 최상의 몰입이 가능한 최고의 환경에 있는거니까!!
동기만 그대로 가져갈 수 있다면 분명 수료할 때엔 엄청 성장해있을것이 분명하다. 오늘을 밟아나가면 오늘 밟은 이 걸음들이 모여서 목적지에 도달해있을테니
오늘로서 섹션 2가 끝났다. 힘들고 외로운 자신과의 싸움이지만 서로 같이 의지하면서 섹션3도 열심히 달려봐야겠다.
+ 사실 우리는 진정한 외로움을 모른다. 진짜는 취업시장에 나를 내보낼 때니까 그때를 대비해서 더 갈고 닦아야지
섹션3을 진행하는 동안 2023년이 될텐데, 졸업과 취업이라는 환경 변화가 이뤄지면서
진정한 사회인으로서 성장하는 한 해가 될 것 같다.
모두가 행복한 23년이 되었으면
'백엔드 부트캠프 > 메타인지를 위한 회고' 카테고리의 다른 글
[Section6] 프로젝트를 리딩하며 (0) | 2023.04.05 |
---|---|
[Section5] 좋은 팀, 커뮤니케이션 (0) | 2023.03.02 |
[Section4] 선택과 집중 (0) | 2023.02.09 |
[Section3] 자리가 만드는 책임 (2) | 2023.01.12 |
[Section1] 동기를 유지하며 몰입했다 (1) | 2022.11.16 |