개발자로 사는 것은 정말 쉽지 않다...!
푸념 1. IT 신기술은 다른 분야에 비해서 너무 빠르게 발전한다.
어느 분야든지 기술은 지속적으로 발전한다.
그러나 IT기술은 다른 기술들과 다르게 트렌드 주기가 빠르고 빨라도 너무 빠르다. (노양심)
프로젝트 2~3개 걸치면서 이제야 능숙해졌는데...
불과 3-4년만에 아무도 찾지 않는 구식 기술이 되어 있는 것을 쉽게 볼 수 있다.
개발 언어 또한 편의성 문법을 장착한 새로운 언어가 등장하거나,
기존의 언어도 버전이 올라갈수록 고급 문법을 지원하는 방향으로 발전하고 있다.
열심히 예약어 공부하느라 진을 뺐는데...
이제는 불편하게 이것저것 예약어 남발하는 언어를 다들 싫어한다.
농사로 치면 호미나 삽에 해당하는
개발 언어도
손에 다 익히기도 전에 새롭게 바뀐다. ㅆ...
개발 언어 못지않게 개발 플랫폼, 방법론이나 프레임워크의 경쟁도 치열하다.
기술은 불편함을 해소하는 방향으로 발전하는 것 같은데,
대세 플렛폼이 바뀌면 형식만 조금씩 다른 방법론이나 프레임워크가 우후죽순으로 쏟아 진다.
1년마다 대세 프레임워크가 바뀌고, 경쟁에서 뒤쳐진 프레임워크는 업데이트를 중단하기 시작한다.
이것저것 비교해가면 프레임워크나 기술 스택을 선정하는 것부터 일이다.
인사이트 또는 나의 다짐
(신) 기술에 목매지 말자. 나온지 오래되었는데도 살아남은 기술은 그만한 가치가 있다는 반증이다.
-> 기술 스택 정하느라 진빼지 말자..!
푸념 2. 공부하려고 했더니 분야가 너무 많다. 배울 곳도 많고, 좋은 자료도 널려 있어서 어떻게 공부해야할지 고민이다.
다른 분야는 잘 모르겠지만 일단 IT 지식은 배울 곳과 자료가 도처에 널려 있다.
IT 분야는 신기술이 많이 나오다보니, 분야도 계속 확장되어진다.
중심을 제대로 잡지 못하면 이것도 배워야할 것 같고, 저것도 익혀야할 것 같은 느낌 속에서 멘붕이 올 수 있다.
배울 것이 많다보니,
이것저것 조금조금씩 써볼려고 하지만,
어느 것 하나 능숙하지 못하다.
양질의 학습 자료는 효과적인 학습에 매우 중요한 요소이다.
그러나, 무작정 최고의 학습 자료를 찾으려고 애쓰다보면,
정작 학습하지 못하고 셀 수 없는 양질의 학습 자료에 압도되는 자신을 보게 된다.
인사이트 또는 나의 다짐
1. 필수 학습 분야와 내가 전문 IT 분야로 삼을 영역을 정해서, 학습의 가중치를 두자.
-> 모든 지식을 디테일하게 공부하지 말자..!
(가볍게 개념만 훑어서 이해하는 영역과 Deep하게 공부해야 할 영역을 구분하자)
IT 분야는 너무 방대해서 사실상 모든 지식에 분야에 통달하는게 불가능한 곳이다.
쿨하게 인정하고, IT 분야에서 필수 지식으로 여겨지는 영역과 전문 영역을 선정해서,
다른 학습 자료와 공부 전략을 선택해야겠다.
2. 자료가 중요한 것이 아니라, 어느 자료라도 꾸준하고 일관된 정리가 중요하다.(속도도 중요하다.)
-> 자료 찾느라 진빼지 말자..!
좋은 자료가 많다고 한들, 아무 의미 없고 하나라도 열어서 본 블로그 글이 내 것이 된다.
적당히 괜찮은 학습 자료를 찾았다면, 그것으로 꾸준히 공부해서 내 것으로 만들어야 한다.
3. 도구는 프로젝트 시작하기 전에 한번 또는 중간에 필요할 때 비교 정리한 후, 사용한다.
-> 도구 찾느라 진빼지 말자.
좋은 도구들 또한 많이 있고, 또 선택해야 한다.
이는 생산성이랑 연결되기 떄문에, 무조건 좋은 도구 & 단축키를 많이 써야 좋다고 생각할 수 있다.
그러나 너무 많은 도구는 학습의 짐을 가중시킬 수 있는 것 같다.
도구는 도구일 뿐이다. 먼저 불편함을 겪어봐야 도구의 편리함을 안다.
필요가 생기거나, 의문이 들 때 찾아보고 블로그에 정리해서 도구를 업무에 적용해보자.
자주 하는 Action을 쉽게 해줄 수 있는 순위대로 2~3 개의 도구 & 플러그인 & 단축키만 제대로 익히는 것이 오히려 좋다.
Minor한 도구는 사라지기 마련이다. (지속될 핵심 도구와 Minor한 도구를 구별해서 선택과 집중을 하자)
푸념 3. 기술을 익혀도 감가상각이 된다. (늙는다.)
이러한 특성은 개발자가 메인 분야를 선정할 때 많은 고민을 하게 만든다.
물론, 오래 살아남을 것 같은 지식을 잘 선택하고, 그것에 능숙해지는 것도 유익하지만, 결국은 모든 IT 기술은 언젠가는 도태되고 사장될 지식임을 인정해야 한다.
인사이트 또는 나의 다짐
1. 신기술 같은 경우, 핵심 개념 (어떤 필요에 의해 만들어졌는지) & 핵심 기술문법만 외우고 익힌다.
-> 나의 전문 분야로 설정한 지식이 아니면, 세부 기능에 연연하지 말자..!
모든 기술은 이전 기술의 단점을 보완하기 위해 등장하는 경우가 많다.
지금 내가 가진 기술 수준에 만족하고 있으면, 2-3년 뒤에는 어려움을 겪는 것이다.
2. 이름도 모르는 신기술보다, 내가 확실히 아는 기술이 더 가치 있다.
-> 하나를 배우더라도, 핵심 개념만큼은 확실히 배우자.
푸념4. 회사는 능숙한 자를 좋아한다... (능숙해지기 쉽지 않은 분야인데...)
"능숙하다"의 정의란 무엇일까?
회사는 본인들이 필요로 하는 도구, 기술 또는 지식에 능숙한 사람을 선호한다.
당연한 것이 교육 비용없이 본인들이 원하는 서비스를 품질 좋게 만들어줄 수 있는 사람이기 때문이다.
회사는 관련 기술셋 경험을 가진 사람을 우대한다.
시행착오로 인한 비용과 개발 소요 시간이 줄어들기 때문이다.
한 가지 기술에 대해 "능숙하다"라고 하는 것은 그 기술에 대한 핵심 개념 및 동작 방식을 이해하고 있고,
해당 기술의 핵심 문법을 거의 외울 정도로 익숙하고, 관련 에러 해결 경험이 많다는 것을 의미한다.
당연히 최소 3개월 이상의 프로젝트 경험 뿐만 아니라, 개인적으로 지식과 문법을 정리해나가는 작업까지 필요하다.
"능숙하다"의 모순
IT 기술은 타분야 기술지식과 다르게, 하나의 기술에 깊은 수준까지 자유자재로 쓸만큼 능숙해질려면
그만큼 신기술을 접할 수 있는 기회가 적어지고, 어느덧 레거시 기술이 되어 시장에서 도태될 리스크가 존재한다.
IT 기술의 다양성과 빠른 회전성으로 인해 한 가지 기술에 대해 능숙해진다는 것은 결코 쉬운 일이 아니다.
인사이트 또는 나의 다짐
그럼에도 회사가 등장한지 얼마되지 않은 기술, 언어, 프레임워크에 능숙한 사람을 찾는다는 것은
"스스로 배우고 익히는" 사람을 찾는다는 것이다.
결론. 노하우와 전략이 필요하다..!
뻔한 결론이지만...
선택과 집중
그것이 해결책인 듯 하다.
1개월에서 6개월 정도까지 특정 기술(개념, 언어, 프레임워크, 라이브러리)를 활용한 프로젝트를 뛰었다고 가정하자.
해당 기술에 대해서, 100% 이해한 것은 아니겠지만 50% 이상의 이해도를 바탕으로 기초 개념에 대해서는 이해하고,
구글 검색을 통해, 해결해 왔을 것이다.
그러나, 막상 몇 달 후 해당 기술셋에 능숙하냐고 묻는다면 당당하게 대답할 수가 없다.
나의 전략은 이렇다.
1. 신기술에 목매지 않는다. 오히려 나온지 5년 정도된 기술이 더 검증된 것이다. (기술 정하느라 진빼지 말자.)
2. 자료가 중요한 것이 아니라, 빠른 리서치와 정리가 중요하다. (자료 찾느라 진빼지 말자.)
3. 필수 학습 분야와 내가 전문 IT 분야로 삼을 영역을 정해서, 학습의 가중치를 두자.(모든 지식을 디테일하게 공부하지 말자.)
4. 도구는 작업 도중에, 한번 찾아서 비교 정리한 후, 사용한다. (도구 찾느라 진빼지 말자.)
5. 핵심 개념 (어떤 필요에 의해 만들어졌는지) & 핵심 기술문법만 외우고 익힌다. (세부 기능에 연연하지 말자.)
6. 하나를 배우더라도, 핵심 개념만큼은 확실히 배우자.
그래도 여전히 걷는다...
이것이 개발자들이 감당해야할 길이지만, 처음 개발을 시작했을 때처럼 부담감이 아닌 즐거움으로 개발을 해나가고 싶다.
오늘 한번에 최고가 될 필요가 없다.
오늘 한 줄이라도 새로운 지식을 익혔으면 그걸로 되었다.
'[DEV] Developer 회고' 카테고리의 다른 글
2023 IT 학습 계획 (0) | 2023.01.10 |
---|---|
[학습 전략] 개발자에게 필요한 3가지 능력이란? (0) | 2022.11.11 |
[DB] 공유기가 설치된 집 PC에서 서버를 실행시켜보자. (0) | 2020.11.27 |
gRPC란? (0) | 2020.11.23 |
Consul이란? (0) | 2020.11.23 |
최근댓글