효율적인 개발자? [1/2]

Moon·2023년 5월 19일
0
post-custom-banner

해당 글은 '이펙티브 엔지니어(에드먼드 라우)'를 읽고 작성한 저의 일기에 불과합니다.


개발이라는 세계에 뛰어들었지만 정작 '개발자'에 대해 모르는 게 너무나 많다는 생각이 들었다. 다른 분야긴 했지만, 연구원으로 있을 때도 책에서 던지는 질문을 똑같이 던진 적이 있다.

어떻게 하면 더 효율적인 OOO(개발자)이 될 수 있을까?

책은 시작과 동시에 나에게 이런 말을 한다.

'메타 기술(meta-skill)'을 간과하지마라. (그래서 메타 기술이 뭔데..?) 메타 기술은 시간과 에너지를 어디에 집중해야 들어간 노력 대비 더 큰 효과로 이어질지 알아내는데 도움이 된다고 한다. 메타 기술이 무엇인지 책을 읽으며 찾아봐야 하는 거 같다.

저자는 신입 개발자가 적응할 수 있도록 온보딩 프로그램을 짰는데, 프로그램이 되게 인상 깊었다.
신입에게 멘토가 해야 할 일은

  1. 코드 리뷰
  2. 배워야 할 기술 개괄적 소개
  3. 페어 프로그래밍
  4. 세션 진행
  5. 기술의 트레이드오프 알려주기
  6. 업무 우선순위를 잘 설정하는 방법 소개
  7. 다른 팀원들과 협업하는 방법 지도 등등

신입 개발자가 될 '나'에게는 매우 도움이 될 것 같다. '내가 작성하고 있는 지금 코드들이 정말 좋은 코드일까?' 라는 생각이 항상 든다. 카이스트 정글에서 첫 프로젝트로 백엔드를 담당했었다. 이후 취업을 준비하며, 인프런에서 혼자 수업도 듣고 컨퍼런스들을 찾아 듣다보니 그 때 작성했던 코드가 정말 엉망이라는 것을 느끼는 순간들이 왔다.(물론 지금 코드를 작성해도 나중에 보면 엉망이겠지?) 누군가 내 코드를 '엄격하게' 봐준다면 정말 감사할 일인 것 같다.

(당시 작성했던 백엔드 코드.. index.js가 알이 꽉찼다..!)

저자는 현직 개발자의 1%의 시간 투자가 나머지 99% 근무 시간의 생산성과 효율성에 더 큰 영향을 미칠 것이라고 이야기한다. 신입 개발자에게 유용한 유닉스 명렁어를 알려주거나 디버깅 도구를 알려주는 것만으로 개발 시간이 크게 줄 것이라고 한다.

이와 너무나 유사한 경험이 있어 와닿았다. 처음 vscode를 접했을 때, 디버깅을 사용할 줄 몰랐다. 계속 값을 확인해보려고 print를 찍어보고 있었는데 옆자리에 앉아 있던 친구가 툭 던지듯 디버깅 툴 사용법을 알려줬고 (3분도 안 걸렸다) vscode와 우분투 GDB 연결방법을 알려준 다른 친구(좋은 친구들이 많다) 덕분에 C 과제를 수월하게 수행했던 기억이 난다

당시 도움이 되었던 친구의 게시글 : VSCode와 Ubuntu GDB연결하기(C Debug)


1장에서 마인드셋과 관련하여 가장 인상 깊었던 일화는 박스(Box)의 타마르 베르고비치(Tamar Bercovici)가 신입 개발자에게 해준 조언이었다.

"경로를 이탈한 이력에 대해 사과할 것이 아니라, 자신이 어떤 사람이고 어떤 기술을 배웠으며 앞으로 어떤 일을 할지 기대하는 바와 기대하는 이유가 무엇인지 자신의 이야기를 들려주어야 합니다"

종종 내가 비개발 학과를 나온 탓에 우려되는 점들에 시달릴 때가 있다. 개발자로서 커리어를 시작하길 희망하지만, 이전까지 개발과 관련 없는 분야에서 연구원으로 일하고 있었다. 연구에 참여하던 분야의 한계를 인지했고, 현대 사회에서 개인에게 다방면으로 제공할 수 있는 기술의 필요성을 느꼈기에 개발에 발을 들였다. 다행히도 개발이라는 직종이 기술이나 사용성 측면에서 프로젝트에 하나씩 안정성과 효율성을 더해가는 프로세스가 나와 잘 맞았다. 신입 개발자로서 프로젝트에서 담당할 부분이 크지는 않겠지만 건강한 사회를 꾸미길 기대하며 성장하고 싶다!

profile
안녕하세요. Moon입니다!
post-custom-banner

0개의 댓글