본문 바로가기

카테고리 없음

백엔드 신입 개발자가 쌓아야 하는 역량은?

도서관에 책들이 놓여있는 모습을 상상해보자
아무렇게나 책을 정리하게 되면 나중에 책을 찾을 때 시간이 오래 걸리게 될 것이다.
쉽게 책을 찾기 위해 분야별로 그리고 가나다 순으로 책을 놓는다고 생각해보면..

이후 원하는 책을 찾을 때, 책이 정리되어 있는 규칙을 알기 때문에
어떤 분야인지 그리고 어떤 초성으로 시작하는지 확인하면 빠르게 찾을 수 있을 것이다.
이때 책이 정리되어 있는 규칙은 자료구조, 책을 찾는 가장 빠른 방법은 알고리즘이 되게 된다.

 

 

(출처: https://velog.io/@guswnee00/%EB%B0%B1%EC%97%94%EB%93%9C-%EC%8B%A0%EC%9E%85-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%8C%93%EC%95%84%EC%95%BC-%ED%95%98%EB%8A%94-%EC%97%AD%EB%9F%89%EC%9D%80)

 

아직 코딩을 시작한지 얼마 안된 나도, 이 비유를 보고 와닿아 인용했습니다!

 

자료구조를 알면, 문제해결을 할 때, 가장 효율적인 자료구조를 이용해 가장 효율적으로 문제해결이 가능하다.

알고리즘은 문제해결의 단계적 절차로, 문제해결의 절차를 설계하는 것이다.

즉 자료구조와 알고리즘은 보다 효율적인 문제해결을 위해 반드시 필요하다!

 

단순히 자료구조의 종류를 알고 알고리즘의 종류를 알고, 이를 구현하는 것에 그치면,

문제에 맞닥뜨렸을 때, 이를 활용하지 못한다.

이를 위해 코딩테스트를 하는 것이다.

가령 코딩테스트를 볼 때, 내가 가장 베스트인 자료구조와 알고리즘을 이용하지 못해도,

개념적으로만 알고있는 자료구조와 알고리즘을 떠올려 활용함으로 다음의 코딩테스트에선 더 효율적인 문제해결이 가능할 것이다.

그리고 모범 코드와 비교해가며 다음의 코테에선 더 좋은 코드를 작성할 수 있을 것이다.

현재 나는 자료구조를 어떤 경우에서 이용해야되겠다 수준의 단계이며, 알고리즘은 떠올리지 못한다!

알고리즘의 개념을 계속해서 복습하며, 알고리즘을 활용한 쉬운 수준의 문제를 풀며 이를 최대한 활용하는 것이 현재의 목표이다.

 

 

       🧚🏼백엔드 신입개발자가 갖춰야할 역량

   1. 커뮤니케이션 능력

   2. 구현 능력

   3. 주도성

   4. 풍부한 CS 지식

   5. 당연한 것에 의문 품기