개발자의 기본 소양
개발자의 기본은 영어.
그 다음은 수학과 물리.
기본을 잘 만들고 프로그래밍 언어를 공부하고, 자료구조, 알고리즘, 운영체제, 하드웨어를 공부하면 된다.
개발자는 평생 공부하는 직업이다.
프로그램을 쌩쌩 돌게하려면 하드웨어를 알아야 한다. 하드웨어 이론뿐만 아니라 예를 들어 안드로이드 앱을 개발한다고
가정해보자.
그럼 제일 잘팔리는 최신 삼성 갤럭시와 샤오미 홍미노트를 직접 만져보고 소프트웨어를 동작시키고 싱생활에서 사용해 보며 하드웨어 기능과 특징과 성능을 익여햐 한다.
당연히 안드로이드 운영체제 버전 별 기능과 특징도 알아야한다.
다방면으로 알아야 제대로 지식을 쌓을 수 있다.
세상이 빠르게 변하므로 새로운 하드웨어, 운영체제, 프로그래밍 언어를 빠르게 익힐 수 있는 능력을 갖추는 데 집중해야 한다.
현업은 기본 위에서 이루어진다.
기본 지식을 잘 안다고 제로베이스부터 모든 걸 직접 만들어 쓰는 건 아니지만, 모든 소프트웨어는 기본 위에서 작동한다.
기본을 알면 아키텍처가 달라진다. 아키텍처는 소프트웨어 품질의 근본이다.
일잘러가 되기 위한 크리티컬 싱킹
크리티컬 싱킹을 우리말로 번역하자면 "비판적 사고"정도로 번역할 수 있다.
비판적 사고는 주어진 일의 앞뒤를 생각하는 습관이다.
왜 이 일을 해야하는지, 이 일을 도중에 멈추면 어떻게 될지, 어떤 방식으로 일하는 게 최선일지 등
문제의 상하좌우까지 고민하는 사고방식을 말한다.
예를 들어 같은 역량의 두명에게 한가지 같은 일을 시켰을때,
한명은 그냥 시킨대로만 한다면 숙련도는 올라가지만 지식이나 경험은 잘 쌓이지 않는다.
반면 비판적 사고를 가진 다른 한명은 '왜 이렇게 해야하지', '왜 이 도구를 써야하지? 다른 도구는 안되나?'
'꼭 이렇게 해야하나?', '이 과정은 왜 하는거지?' 등 다양한 질문을 스스로에게 하고 더 좋은 방법을 고민한다.
관리자 입장에서는 전자가 편하지만, 1년이 지난 뒤에도 전자에게 같은식으로 길게 설명을 해줘야한다.
'이걸 이렇게 만들기 위해 이걸 저렇게 하고 이렇게 하고 저렇게 해봐.' 라는 식으로 말이다.
하지만 후자는 항상 귀찮게 질문을 하지만 1년이 지난 후에는 짧게 해야 할 일만 설명해주면 된다.
'이걸 이렇게 만들어야 해'
그럼 후자는 좀 더 나은 방법으로 문제를 스스로 해결할지도 모른다. 비판적 사고로 인해 지식과 경험이 쌓였기 때문이다.
이렇게 비판적 사고방식을 가진 사람이 감당하는 업무 스케일이 계속 커지게 된다.
소프트 웨어를 개발하면서 why, how, what, who, when 까지 출시해야하는지 종합적으로 고려해야 한다.
how에 매물되면 좁은 영역에서 해결책을 얻을 수는 있지만 종합적인 관점에서 최고 혹은 최선의 해결책을 얻지 못한다.
비판적 사고는 종합적인 관점에서 해법을 구하는 습관이다. 같은 시간을 투자해도 상대적으로 더 큰 성장을 이루어낸다.
도구를 사랑하지 마라
개발자는 특정 언어나 도구와 사랑에 빠지면 안된다.
사랑에 빠지면 최적의 언어와 도구를 선택하지 못한다.
기술은 빨리 변한다.
프로젝트라는 과업 달성과 1 ~ 2년후를 고려해서 선택해야 한다.
A언어를 훌륭하게 다루는 개발자라도, 그것만 할줄 안다면, 후에 B라는 언어가 대세가 되었을 때, 환영받지 못할 것이다.
현업에 바쁘더라도 6개우러 주기로 새로운 기술과 도구를 확인하고 공부하는 기간을 갖는 것이 좋다.
개발자의 도구는 역할과 프로젝트마다 달라져야 한다. 기술 흐름을 조망하고 큰 흐름을 계속 따라가야 한다.
모든 개발에 신규 기술만 고집할 필요는 없다. 향후 5년 이상 유지할 서비스라면 최대한 미래를 고려해 선택하고
1년 미만 혹은 유지 보수 정도에는 기존 기술을 사용하면 된다.
파이자형 인재 되기
프론트엔드 개발자라고 해서 프론트엔드만 알면 안된다.
백엔드를 조금이라도 개발할 줄 알아야한다.
개발은 협업의 연속이다. 원활한 협업을 위해 알아야 한다.
한가지를 깊게 파서 잘하는 I자형 인재가 각광받던 시절이 있었다.
변화가 빠른 지금은 적어도 하나는 깊게, 나머지는 골고루 잘 아는 T자형 인재가 각광받고 있다.
T자를 넘은 요즘은 파이자형 인재라는 말도 나왔다.
하나가 아니라 두가지에서 전문성이 있어야 한다는 말이다.
부전공을 선택하자.
시작은 I자 이어서 T자 그리고 파이자
인사이트
모든 소프트웨어는 기본 위에서 작동한다.
기본을 알면 아키텍처가 달라진다. 아키텍처는 소프트웨어 품질의 근본이다.
기본기를 탄탄하게 다진 개발자가 되자.
비판적 사고로 같은 일을 하더라도 더 많은 지식과 경험을 습득하고 같은 input값으로 최고의 output을 도출할 수 있도록 노력하자.
빠르게 변해가는 기술 흐름을 조망하고 큰 흐름을 따라가자. 도구와 언어에 사랑에 빠져 그것들이 주체가 되게 하지 말고
도구는 도구로써, 내가 주체가 되어 상황에 맞는 도구와 언어를 사용하자.
특기는 깊게, 다른 것들도 두루두루 아는 개발자가 되기 위해 노력하자. 빠르게 변하는 기술 흐름 속 도태되지 않기위해
여러가지 가능성을 열어두자.
'내일배움캠프 iOS 5기' 카테고리의 다른 글
왜 모바일 앱 개발에서도 아키텍처가 중요한가? (2) | 2024.09.19 |
---|---|
개발자를 위한 정보검색 팁 (1) | 2024.09.19 |
비전공자도 개발자로 취업할 수 있을까? (0) | 2024.09.13 |
성장하고 싶은 사람이 해야하는 인지적 활동. (0) | 2024.09.10 |
내배캠 iOS 5기 스타터 노트 (3) | 2024.09.09 |
살아남는 iOS 개발자가 되기 위해 끊임없이 노력하고 있습니다.