7월
확률로봇 공학과 이와 관련된 개념들을 찾아 본 후에
내가 어떤 방향으로 공부해 나가야될까 싶어 고민하다가
알고리즘에서 계산 복잡도를 자주 다루어야 하므로 계산 이론과
실제 알고리즘을 구현하는 파이썬 알고리즘에 대해서 정리하려고 했었다.
그런데 이 부분들을 다 살펴보기에는 혼자서 공부하기 너무 힘들고, 지역적으로 보는것 같아 멈추고
확률적 로봇공학을 복습하였으니 이제 할수있을것같아 파이썬 로보틱스를 다시 살펴봤다.
- 히스토그램 필터 위치추정, 가우시안 그리드 맵핑, 광선 투사 그리드 맵핑, 라이다 스캔 맵핑, EKF SLAM, FastSLAM까지
중간 중간에 확률적 로봇 공학의 내용 일부와 SLAM 파트에서 FastSLAM과 GraphSLAM을 다른 자료를 참고해서 추가로 정리할 수 있었다.
3개월 그러니까 1학기와 비슷한 시간 동안 알고리즘, 이산수학, 제어공학, 로봇공학, 임베디드 등
상당히 많은 분야들을 한번 훑어봤다.
제대로 이해하거나 활용해보았다고 하기는 힘들지만, 그래도 공부하면서 막힌 부분들은 많이 뚫렸다.
하지만 공부하면 할수록 배워야 될게 늘어나는것 같다.
전에는 뭘해야할지 몰랏다면, 로보틱스를 정리하면서 내가 뭘 모르는지 조금 더 알게되었고
조금 더 이해도를 높이려면 어떤걸 공부해야할지 이제서야 조금 감은 잡힌다.
추후에는 인공 지능 이론과 수치 해석, 최적화 이론, 회귀/다변수 해석,
데이터 마이닝 등의 분야를 공부해 나갸야 될거같긴 하다.
머신러닝과 영상처리, 경로계획 같은것들도 보기는 해야하는데
정말 공부해야할 내용들이 끝이 없다.
아무튼 내가 3개월 간 블로그에서 공부한 내용은 이정도로 정리할수 있을것같다.
공부한 내용을 정리하다보니 원래 어떻게 할까 생각정리하려고 근황글을 시작했는데 잊고있었다.
그래서 내가 이런 분야들을 두루두루 공부하는게 맞는지가 조금 걱정된다.
작년에 그렇게 아는게 부족한 상태로도 정말 감사하게도 취업 기회가 올수 있었던건
그만큼 두루두루 경험해본 개발자가 부족해서 그런것 같다.
지난번에 "능력있는 개발자는 어떻게 알아볼수 있나?"라는 글의 리뷰를 적었었는데
https://throwexception.tistory.com/441?category=849462
드레퓌스 모델에 비교하면 대부분의 단기(6개월~1년) 속성 교육을 받는다 해도 아주 열심히 해서 Advanced Begineer까지 도달할지 몰라도, Competent 수준의 능력을 갖추기는 힘들어 보인다.
다른 연구실이 어떻게 운영되지는 모르나
컴퓨터 구조, 컴파일러, 운영체제, 이산수학, 알고리즘, 네트워크, 데이터베이스, 리눅스, 계산이론,
소프트웨어 공학, 전기, 전자, 설계, 확률 통계, 회귀분석, 다변량분석, 미적분, 수치해석, 해석학,
영상처리, 로봇공학, 인공지능, 제어공학, 회로이론, 동역학
같은 학문들을 다 할수 있는 사람이 얼마나 될까?
한번은 항공우주학과 학생이 블로그에다가 직접 드론 회로부터 제어 알고리즘까지 구현해서 안정적으로 호버링을 하도록 만든걸 본적이 있는데, 정말 대단하다고 밖에 할수가 없다.
링크 : https://blog.naver.com/ejtkddl/220396626106
내 딴에는 수렁에 빠져서 삽질하는 시간을 줄이려고,
중간 중간에 공부 근황과 앞으로 뭘 해야할까 생각하는 시간을 갖고는 있지만
여전히 어떻게 해나가야될지 잘 보이지 않고,
다방면으로 보다가 다방면으로 계속 헤매고만 있을까봐 걱정이 되기도 한다.
이전에 "왜 지금 로봇 공학을 공부할까"라는 글에서
팬더 님의 글을 얘기한 적이있었는데 다시 정리해보면
https://throwexception.tistory.com/354?category=849462
소프트웨어 분야의 전문화, 계층화에 따른 직업경로의 변화
1. 초창기 소프트웨어는 가지도 별로 없는 어린 나무였고,
대부분의 개발자가 비슷한 지식들을 공유하고, 뛰어난 사람은 모든 분야를 섭렵할수 있었음.
2. 시간이 흘러 소프트웨어가 수직 수평적으로 폭팔적으로 팽창
but 우리의 학습 능력은 확장되지 않음.
3. 소프트웨어는 실생활의 더 많은 문제들을 다룰수 있도록 많은 추상화 계층이 추가됨.
- case of web
모든 것을 메모리 포인터로 다루던 C -> 추상적인 수준에서 해결하기위한 C++ -> 메모리 관리 해결을위한 가상머신에서 구동되는 언어(ex.자바) -> 웹 저수준 문제를 해결하기 위한 서블릿 컨테이너 -> 웹 서비스를 구축하기 위한 프레임워크
4. 추상화가 많아지는 이유는 개발자의 수준이 떨어져서가 아니라.
메모리 관리같은 저수준의 내용보다 위에 어렵고 중요한 문제가 많기 때문
5. 위 나무는 가지도 많아지고, 키도 커졌지만 잎의 면적은 변하지 않음.
잎의 면적은 개발자 개인의 능력에 달렸기 때문.
+ 천재가 아닌 이상 뿌리부터 모든 잔가지를 보는건 불가능
6. 근본 지식만 있으면 다할수 있것이라 생각할수도 있으나
가지가 아주 많고, 나무가 높으므로 힘듦
7. 실무 지식만 있으면 된다고 생각하는경우
나무 한끝자락에서 협소하게 머무를것임.
8. 뿌리부터 보기보다는 나무 전체를 멀리서 보고, 크기를 파악한다음 가지들을 파악.
그 다음 원하는 부분을 찾아 친숙해져야함.
9. 단기 속성으로 배워서 투입되는 경우. 나무의 특정 한 가지 끝 어디에서만 머물고,
기술의 깊이나 폭을 넓히기 위해 방향을 잡지못하는 경우가 많음.
10. 이러한 한계를 느낄때 무턱대고 뿌리 부근에 있는 주제에 덤비다가
포기하다가 실무와 연관성을 찾지못해 실망하는건 안타까운 일.
11. 지금은 과거와는 달리 뿌리부터 시작해서 여러 끝에 도달하기는 불가능해진 시대.
12. 시작하는 지점에 따라 문제의 성격과 우선순위가 달라짐
뿌리 근처의 개발자에게는 자료 구조 성능을 빅오 표기법이 중요할 것이나.
중단 근처의 개발자에게는 배열리스트가 컬랙션의 어디에 있고 왜 인터페이스를 구현하는지 이해하는게 중요.
13. 지금 시대에는 모든 개발자가 같은 위치에서 시작되지 않고, 시작 지점에 따라 수준이 정해지는것도 아님.
개발자의 수준은 어디서 시작하건, 시작위치로부터 깊고 넓은 영역을 다룰수있느냐로 결정.
그 영역을 넓히기 위해 시작점 위든 아래든 강하게 관련된 내용 순서대로 익혀가는게 최적의 방법.
정리한다고 정리하긴 했는데 더이상 줄이기가 힘들다.
아무튼 요즘 이 글의 내용을 신경쓰면서 공부 중이고
내가 너무 깊이 내려가는게 아닐까 걱정 되기도 한다.
지금 당장은 다음의 두 가지 경우를 고민하고 있다.
1. SLAM을 정리했으니 경로 계획을 한다.
2. 다시 이론으로 돌아와 다변량 분석을 살펴본다.
원래 경로 계획에 대해서 공부하려고 했으나,
경로 계획 알고리즘의 dynamic window approach나 다익스트라, a*, 포텐셜 필드 같은 내용들을 공부하기가
준비가 많이 부족한것 같다.
그나마 확률적 로봇공학은 이전부터 여러 차례 반복해 오다보니 지금만큼 온거지만
이 상태에서 바로 경로 계획 파트를 들어간다면 오랜 시간 삽질해버릴거같아
관련된 이론들에 대해서 더 학습해야 덜 해맬것같은 기분이 들더라.
아니면 내가 참고하려고 한 자료가 너무 공부하기에 좋지 않은 자료들이라 그런 걸수도있고
일단 다변량 분석을 생각하게 된건
내가 예전에 잠깐 학점은행제로 학점을 모으려고 방통대에 등록을 한적이 있었는데
졸업 하지는 못하고 시간이 지나 재적 처리가 됬었다.
지금 방통대 재입학 신청기간이라 문자가 왔길래
방통대의 정보통계학과와 컴퓨터학과 커리큘럼을 보다가
내가 공부한 과목들도 많지만 공부 해야될 과목들도 많이 보이더라.
방통대 정보 통계학과 커리큘럼
방통대 정보 컴퓨터 학과 커리큘럼
아무튼 경로 계획 알고리즘을 보기 전에 관련성 있는 과목들을 빠르게 훑어보고 나면
파이썬 로보틱스 예제들을 그나마 수월하게 정리했던것처럼
지금 바로 보는것보다는 사고의 폭이나 이해도를 높이는데는 훨씬 나을거같다.
그나마 위안되는건
쓴 글 갯수가 500개에 가까워지는 중이고,
방문자 수도 꾸준히 늘어나고 있다.
'그외 > 로그' 카테고리의 다른 글
넓고 얕게 배우는 컴퓨터 구조 자료구조, 알고리즘, 운영체제 by 최호성 (0) | 2020.07.13 |
---|---|
비전공자가 개발자로 취업하려면 컴공기초과목들을 공부해야하나요? by 서윤 TV (0) | 2020.07.13 |
공부 근황 (0) | 2020.07.09 |
낮 한강 (0) | 2020.07.07 |
밤 한강 (0) | 2020.07.07 |