최근에 더 좋은 Software Engineer가 되려면 어떻게 해야 할까 고민이 많아졌다. 그러다 우연히 좋은 글을 발견했다. 이를 기록하고 공유하고 싶어 글을 쓰게 되었다.
이 글은 원본 글을 한국어로 해석하고 마지막에 내 의견을 덧붙인 글이다. 나와 비슷한 고민을 하시는 분들께 조금이라도 도움이 됐으면 좋겠다.
원문 : https://www.linkedin.com/pulse/16-things-practice-become-better-software-architect-ahad-khan-csm/
16 things to practice to become a better software architect
Dear Curious Learners, Richard Monson-Haefel famously quoted as below in his book. "One thing most software architects fail to realize is that a software architect is also a leader" Last year in 2019, I finished reading book named Software Architect's Han
www.linkedin.com
더 좋은 software architect가 되기 위해 연습해야 할 16가지
1. 계속 배워라
전문적인 software architect가 되기 위해서는 끊임없이 자신의 기술 포트폴리오를 향상시켜야 한다. 소프트웨어 산업에서는 항상 기술과 개발 접근론이 바뀐다. 따라서 지금 가진 지식도 시간이 지나면 구식이 된다. 그러기에 항상 겸손해야 하고 자신이 모르는 게 많다는 걸 인정할 줄 알아야 한다.
그저 그런 software architect와 좋은 software architect를 구분 짓는 큰 차이는 끊임없이 자신을 향상시키기 위해 노력하는지이다.
2. 지식의 넓이와 깊이를 향상시켜라
계속 배우는 과정에서 지식의 넓이 또는 깊이를 향상시키는게 아니라 둘 다 향상시켜야 한다.
3. 배울 시간을 찾아라
일과 일상에서 배울 시간을 찾기가 어려울 수 있다. 하지만 네가 소프트웨어에 열정이 있다면 새로운 지식을 배우는데 시간을 사용하는 것을 즐거워야 할 것이다. 너무 무리한 목표를 세우기 보다는 정말로 달성하고 싶은 현실적인 목표를 설정해야 한다. 정말 시간이 없다면 멀티태스크를 하더라도 시간을 만들어라!
4. 오픈 소스 프로젝트에 참여하라
사람은 공개될 코드일수록 더 잘 쓰는 경향이 있다. 따라서 오픈 소스 프로젝트에 참여하면 네가 더 좋은 소스 코드를 작성할 수 있게 될 것이다. 또한 개인을 브랜드화 할 수 있고 이는 너의 커리어를 향상시킬 수 있을 것이다.
5. 너만의 오픈 소스 프로젝트를 만들어라
네가 만약 사람들이 겪고 있는 문제를 알고 있다면, 이에 대한 솔루션을 개발하고 다른 사람이 사용할 수 있게 공개해라.
6. 너의 블로그를 작성해라
블로그는 네가 더 배우고 싶은 기술을 더 배울 기회를 제공한다. 배우고 싶은 기술을 배우고 글을 써라. 글을 쓰는 행위는 네가 배운 것들을 더욱 강화시켜줄 것이다. 또한 이 글을 통해 다른 개발자에게 도움이 된다면 충분히 가치 있는 노력이다.
7. 다른 사람을 알려주는데 시간을 사용해라
다른 사람에게 지식을 알려주면 네가 모르던 지식을 공부할 수 있고 까먹거나 얕게 알고 있던 지식을 깊이 있게 이해할 수 있게 된다. 그리고 다른 사람에게서 새로운 지식을 배우고 다른 사람을 알려주는 과정에서 소프트 스킬도 배울 수 있다.
8. 멘토가 되어라
멘토가 되어 멘티를 도와준다면 기분도 좋아지고 리더십 스킬과 동료의 신뢰를 얻을 수 있다. 무엇보다 멘티의 말을 잘 듣고 멘티가 내게 무엇을 배우고 싶은지 정확히 이해하는 게 중요하다.
9. 새로운 기술을 사용해보자
이 말의 의미가 새로운 기술의 얼리어답터가 되라는 소리가 아니다. 하지만 기술의 트랜드를 알고 이해하는 것은 중요하다. 더 많은 기술을 알수록 너에게 더 많은 선택지가 생긴다. 이는 네가 문제에 직면했을 때 더 좋은 솔루션을 말할 수 있게 도와줄 것이다.
10. 계속해서 코드를 작성해라
software architect로 계속해서 성장하고 싶으면 계속 코드를 작성해야 한다. 코드를 작성하지 않다 보면 결국은 작성하는 능력을 잃을 것이다.
11. 코드를 읽어라
어쩔 수 없이 코드를 많이 작성할 수 없다면 다른 사람의 코드를 많이 읽어 감각을 유지해야 한다. 오픈 소스 프로젝트는 이런 행위를 하기 좋다. 흥미 있는 프로젝트를 골라서 코드를 읽어라.
12. 사용자 그룹 및 컨퍼런스에 참여해라
컨퍼런스에서는 다양한 주제에 대해 발표한다. 이를 통해 다양한 경험을 배울 수 있다. 또한 컨퍼런스에서 배운 내용을 조직에 공유할 수도 있다.
13. 새로운 사람을 만나라
같은 업종에 종사하는 새로운 사람을 만나라. 이는 너에게 새로운 통찰력과 아이디어를 줄 것이다.
사용자 그룹 및 컨퍼런스에서 이런 기회를 얻을 수 있다.
14. 너의 일에 책임감을 가져라
일이 잘 진행될 때는 책임을 갖기 쉽지만 일이 잘 진행되지 않을 때도 책임감을 가져야 한다. 누구를 비난하는 데 시간과 에너지를 사용하지 말고 문제를 해결하는데 집중해야 한다.
15. 너의 평온에 신경써라
소프트웨어 개발 외적인 부분도 중요하다. 외적인 부분들이 너의 일에 긍정적인 영향을 주는지 부정적인 영향을 주는지 알고 있어야 한다. 따라서 정신적, 신체적 건강을 유지하고 적절한 휴식과 다른 것들을 하는 데 사용하는 시간도 중요하다.
16. 너의 일을 자랑스러워해라
소프트웨어 개발은 재밌고, 보람 있지만 스트레스를 받기도 어렵기도 하다. 하지만 소프트웨어로 세상에 좋은 영향을 줄 수 있다. 때로는 누군가의 일을 더 쉽게 해주고, 평범한 일을 더 빠르게 할 수 있게 해주고 기쁨을 주기도 한다. 즉, 충분히 가치 있고 자랑스러운 일이다.
정리
위에서 언급한 16가지는 모두 실천하는 게 말처럼 쉽지는 않다. 하지만 이를 모두 실천해 좋은 software engineer가 되고 싶다.
마지막으로 원본 글 마지막에 저자가 언급한 문구가 있는데 인상 깊었다. 이를 마지막으로 글을 마무리하겠다.
Be Curious Learner Always!