2023년을 돌아보며 - 멘토의 목표 찾기

이미지
더 편하게 보시려면  여기 를 눌러주세요. 어느덧 2023년이 다 지나가면서 올 해 한해를 되돌아보게 되었습니다. 올 한 해는 기구한 운명(?)을 가지고 살아가고 있다고 생각하게되는 한 해 였습니다. 한 해 얻었던 것을 놓치지 않고 앞으로 더 많은 것들을 얻기위해서 정리해 보았습니다. 멘토로 성장하기 정리를 해보자면 한 해동안 많은 고민과 시행착오를 겪었던 멘토로 성장하기가 가장먼저 떠오릅니다. 비슷한 직종들은 많지만 실제 이야기를 해보면 다 다른 느낌의 멘토. 작년에 처음으로 멘토가 되어서 많은 시행착오를 겪었고 올해는 좀 더 방향을 잡은 느낌을 받았습니다. 저는 iOS개발자였기 때문에 멘티들에게는 사수와 같은 느낌으로 작년을 보냈다면 올해는 테크 멘토가 해야할 역할과 길러야 할 역량들을 확인하면서 보냈습니다. 가장먼저 역할은 길잡이와 조력자 입니다. 멘토가 가진 속성중에 하나는 교육자가 있습니다. 그래서 처음에는 내가 학습한대로 사람들을 학습하도록 했다면 지금은 그들이 필요한 학습이 무엇인지를 보게 되었습니다. 왜냐하면 멘티의 인생은 멘티 스스로가 만들어 걸어가야 그 의미가 있음을 알게되었기 때문입니다. 멘토가 정답이라고 그리고 세상이 올바른 길이라고 했던 길 이어도 결국에 멘티 스스로가 걸어가고자 하는 길이 아니라면 언제든지 후회하고 방향마저 바꿀 수 있습니다. 바뀐 질문들을 나열해보자면 다음과 같습니다. 이런 것들을 알고있고 이정도를 만들 수 있으면 개발자가 될 수 있습니다. 라는 이야기를 했었다면 지금은 개발이 언제 재미있는지 그리고 개발자가 되고 싶다고 생각하는 이유가 무엇인지를 물어봅니다. 또한 본인이 왜 아직 개발자가 아니라고 생각하는지 어떤 것들을 할 수 있을 정도면 개발자라고 생각하는지 그리고 그 정도 수준을 달성하기 위해서는 무엇을 공부하고 싶은지 물어보게 되었습니다. 많은 사람들이 이 순서대로 이것도 공부해야한다고 하는 것들을 공부하는게 즐거우면 그리고 가능하면 다행입니다. 하지만 사람에 따라서는 공부하기 너무 힘들...

아무것도 모르는 사람은 어디서 부터 시작하면 좋을까요?

이미지
더 편하게 보시려면  여기 를 눌러주세요. 개발을 처음 시작한 사람에게 공감하기에 저는 너무 많은 개발을 했습니다. 그래서 개발을 처음 배우시는 분들을 다시 개발을 가르쳐드리면서 시작할 때 초심자가 어떤 어려움을 겪는지 배워서 정리 해 보았습니다. 정리를 해 보자면, 개발을 처음 시작하시는 분들이 iOS 개발을 시작하는데에는 크게 3가지가 없어서 시작을 하지 못했습니다. 프로그래밍적 사고 기초 문법지식 UI를 그리는 방방법 중요한 포인트는, 개발을 처음 배우는 사람은 본인이 위의 것 중 어떤 것을 몰라서 개발을 못 하고있는지 알지 못합니다. 이 글을 읽고 그 빈 부분을 알아갔으면 좋겠습니다. 혹시나 제가 놓치고 있는 부분이 있다면 알려주세요! 빈 부분에 채워서 정리해 놓겠습니다 🙂 프로그래밍적 사고 프로그래밍적 사고의 정의를 찾아보면 “ 문제를 정의하고 그에 대한 답을 기술하는 것이 포함된 사고 과정 일체 ”라고 나옵니다. 우리가 마주하고 있는 현상에서 문제를 정의해놓고 그 문제를 해결하기 위한 방법을 찾아내면 일련의 순서가 있는 것을 발견할 수 있습니다. 이 순서로 문제를 해결하면 되겠다라는 생각이 든 시점에 우리는 순서도라는 것을 그려야 합니다. 순서도를 단계별로 그리면서 로직을 짜게 됩니다. 순서도를 짜는 훈련이 되어있지 않으면 개발을 할 수 없습니다. 왜냐하면 프로그램을 만들려면 로직,즉 순서도가 존재해야하는데, 이 로직을 만들 힘이 없으면 진행이 불가능하기 때문입니다. 문제는 이러한 상황에 처해있는 사람이 있다면, 스스로가 어떤 점이 부분이 부족한지 모르는 상태일 확률이 높고 무작정 개발을 시작하면서 지루함이나 괴로움을 느끼고 있을 확률도 높습니다. 자연스럼게 힘든 경험을 하고 개발을 그만두게 될 것 입니다. 희망적인 소식은 프로그래밍적 사고를 할 수 있는지 없는지 아는 방법은 매우 쉽습니다. 우리 주변에 있는 기계를 하나 떠 올리고 종이에 그 기계가 돌아가는 로직을 그리고 실제 내가 사용자가 되어서 문제없게 사용할 ...

계속해서 성장하는 개발자가 되는 방법 - 동기편

이미지
더 편하게 보시려면  여기 를 눌러주세요. 우리는 목표를 가지고 살고 있습니다. 그리고 대부분의 나의 시간과 노력은 이 목표를 달성하기 위해 사용합니다. 앞으로 나아가고 더 나은 미래를 바라보면서 움직이는 것은 너무나 자연스러운 모습입니다. 그리고 시간이 지나면 더 잘 해질 것이라는 기대도 하고 있죠. 개발을 잘해지는 미래에 도달하려면 학습하고 연습할 에너지와 시간이 필요합니다. 즉 동기가 필요하다는 뜻 입니다. 동기의 정의를 살펴보면 행동하게 만드는 힘입니다. 더 자세하게 적보자면 “동기는 행동을 시작하게 만들고 방향을 설정하며 행동을 유지하게 만드는 힘” 입니다. 그러므로 내가 목표하는 바를 이루기 위해서는 에너지가 필요하고 그 에너지의 정체는 동기였던 것 이죠. 그리고 이 동기에는 2종류가 있습니다. 바로 외적동기와 내적동기 입니다. 내적동기와 외적동기 내적동기란 내가 하는 활동이 즐겁기 때문에 행동하게 만드는 능동적인 힘입니다. 보상이 주어지지 않아도 내가 즐거워서 하도록 만드는 힘입니다. 예를 들면 책임감, 성취감, 보람, 재미와 같은 것들이 있습니다. 행동과 활동 자체에 만족감이 있기 때문에 여러 방면으로 관심을 가지게 됩니다. 그렇기 때문에 활동에 지속해서 관심을 가지고 오랜 시간 유지할 수 있는 모습을 그리게 됩니다. 활동을 하면서 겪는 경험과 배움 자체가 의미가 있고 재미를 느끼며 새로운 동기를 찾아냅니다. 개발을 하는데 내적동기가 있다면 이 코드는 왜 이렇게 동작하는 걸까? 라는 호기심이 생기거나 다른 방법으로 문제를 해결할 수는 없을까? 내가 드디어 이 문제를 풀었어와 같은 성취감 재미를 느끼고 있을 것 입니다. 이와는 반대인 외적동기입니다. 활동의 즐거움과는 별개로 활동의 결과로 따라오는 것들이 주는 즐거움 때문에 활동을 하도록 만드는 힘입니다. 보상에 따라 발생하기 때문에 수동적인 힘입니다. 예를 들면 결과에 따른 보상받기 혹은 벌을 피하기 위한 것들이 있습니다. 외적동기는 외부에서 주어지기 때문에 언제든지 사라...

변수가 없으면 안돼요?

이미지
더 편하게 보시려면  여기 를 눌러주세요. 문법을 공부하면 아마도 가장먼저 배우는 것들이 변수일 것 입니다. 우리는 변수를 배우고 나서 어디에 그리고 왜 써야하는지 고민하기 시작합니다. 그렇기에 가장먼저 배운다는 것이 이유없이 가야할 필요는 없습니다. 개발을 할 때 변수가 없으면 어떤 일들이 일어날 지 그래서 변수로 해결하고 있는 문제들이 알아봅시다. 그리고 납득을 하지 못한다면, 변수를 건너뛰고 공부합시다! 데이터 관리 데이트를 관리해야하는 방법과 그 이유를 아주 쉬운 일상생활에서 예시로 찾아봅시다. 레시피를 따라 요리를 한다고 생각해봅시다. 레시피에는 다양한 재료와 그 양이 명시되어 있습니다. 이 재료들과 그 양은 "변수"와 같습니다. 만약 레시피를 따라 요리를 하다가 손님의 수가 늘어났다고 가정해봅시다. 재료의 양(변수)을 조절함으로써 쉽게 더 많은 양의 음식을 만들 수 있습니다. 반면, 재료의 양을 고정된 상수로 다루면, 변화하는 상황에 유연하게 대처하기 어렵습니다. 이 처럼 한 가지의 상황만 대처한다면은 변수가 필요하지 않습니다. 그래서 처음부터 변수를 넣기 보다는 필요가 없다면 고정된 값을 쓰다가 여러가지 상황에 대응하면서 필요한 부분에 변수를 넣으면 됩니다. 이제는 좀 더 코드로 예제를 만들어 보겠습니다. print ( "직사각형의 면적은 \(4*8)입니다." ) 위의 예제는 면적을 구하는 코드이고 32라는 면적을 계산합니다. 우리의 가로와 세로 변화에 대응 할 필요가 없다면 변수를 쓰지 않아도 됩니다. let length = 4 let width = 8 let area = length * width print ( "직사각형의 면적은 \(area)입니다." ) 이렇게 변수, 저장하는 공간에 다른 데이터들이 들어온다면 대응을 하기위해 변수를 써서 계산하면됩니다. 코드의 재사용성 레시피를 생각해보세요. 레시피는 다양한 재료와 그 양, 조리 방법을 제공...

주니어가 모른다고 못한다고 말하지 못 하는 이유는 팀에 있을지도 모릅니다

이미지
더 편하게 보시려면  여기 를 눌러주세요. 올해의 저의 관심 키워드는 불안감과 심리적 안정감입니다. 개발을 더 잘하기 위한 환경, 더 잘 공부하기위한 환경을 만드는데 고민을 하고 있다가 문득 어떤 현상을 목격했습니다. 팀에 요구에 “잘 모르겠어요”, “못하겠어요” 라고 말하지 못해서 결국 사고가 터지고 팀원간의 신뢰를 잃는 모습이었습니다. 사실 저도 겪었던 일이고 주니어 때 안겪어 본 사람이 없을 만큼 흔한 일이기도 합니다. 지나고 나보면 그 때 다들 그렇지. 그럴 때가 있었지. 라는 생각과 함께 그런데 왜 저런 현상이 벌어지는 걸까? 어떤 이유로 그러는 것이고, 어떻게 해소하거나 더 나아가서 막을 수 있을까? 라는 생각을 하게되었습니다. 일단 스스로의 과거의 기억으로 돌아가서 생각해보면, “잘 모르겠어요”, “못하겠어요”를 이야기 하지 못했던 이유는 동료들과 상사에게 저평가 되고 싶지 않다. 능력없는 사람이다 라는 인식을 심어주고 싶지 않아서 이었습니다. 그리고 실제 현상에서 물어보았을 때에는 대 다수의 분들이 팀에게 피해를 주고 싶지 않은 마음에 그런 말을 하게되었다. 라는 것을 듣고 놀라움을 느꼈습니다. 사실 저 위의 “모르겠다, 못하겠다”라는 말들은 자신의 솔직한 현재 상태를 공유하는 방법입니다. 하지만 개인이 느끼고있는 기대감과 부담감에 말을 하지 못하고 결국은 자신이 하고싶지 않은 팀에 피해를 주고 싶은 결말에 도달해버리는 안타까운 상황이 발생합니다. 스스로의 경험을 비춰보았을 때 두 가지의 상황을 가장 많이 걱정했었던 기억이납니다. 팀에게 도움을 요청하는 것이 팀의 퍼포먼스를 저해하는 것이 두려움 나에게 맡겨진 일을 완수하지 못 하면 더 이상 기회가 오지 않을지 모른다는 두려움 물론 스스로의 벽을 허물고 한 층 성장해서, 적절히 스스로의 한계를 뛰어넘고 적절히 도움을 요청하는 것이 제일 이상적이지만, 마냥 주니어 혼자서 극복 하기를 기대하는 것이 현실에서는 잘 동작하지 않는 것을 많이 보았습니다. 그래서 바깥에서 ...

내가 iOS 커뮤니티에 바라는 것들

이미지
더 편하게 보시려면 여기 를 눌러주세요. 최근에 여러 행사들을 열어보며, 느끼고 생각한 것들을 정리해보았습니다. 커뮤니티에 도움을 받아서 성장했고 스스로의 성장을 위해 커뮤니티에 기여하고 있습니다. 저의 기여를 통해 성장하시는 분도 있을 것이고, 저 또한 기여를 하면서 성장을 하기에 모두에게 좋은 방향이라고 생각하고 활동을 이어왔습니다. 최근에 있었던 어려가지 주장과 의견들을 들어보며 그에대한 저의 의견을 적는 것 보다는 그래서 나는 어떤 커뮤니티를 원하는지와 이런 커뮤니티를 함께 만들어 갈 사람들을 찾아야 하는 구나 라는 생각을 했습니다. 또한 다른 커뮤니티와 비교하는 것이 언제나 좋지는 않지만 배울 점들은 배워서 더 나은 방향으로 개선을 하는 것도 필요하다고 생각하고 있습니다. 커뮤니티 ≠ 컨퍼런스 커뮤니티라는 것은 결국 사람들이 모인 공동체라는 뜻 입니다. 지식을 구하기 어려웠던 예전에는, 미국에서 오프라인으로 진행되었던 WWDC의 발표를 듣고 한국에서 못 들은 분들을 위한 세션을 열었다고 합니다. 그 이후로도 공부하고 정리한 내용들을 공유하는 자리를 커뮤니티에서 많이 가졌습니다. 모든 iOS 커뮤니티를 알지는 못하지만 adiOS, AsyncSwift, Let’Swift, let us:GO! 심지에 KWDC 도 위와 같은 형태를 갖추고 있습니다. 물론 지식을 구하고 싶은 사람들을 위한 자리가 도움이 안되는 것은 아니나 항상 사람들이 모이는 형태가, 커뮤니티 컨퍼런스의 형태여야 하는 것 인가에 대한 의문점이 생겼습니다. 그래서 참가한 모든 사람들이 하나, 두개의 세션을 듣고 시간을 가지고 개발을 해보는 형태의 커뮤니티 이벤트를 열어보았고 결과적으로는 많은 참가자들이 만족했습니다. 평소에 해보지 못 했던 개발을 누구나 해보고 집에 돌아간다는 경험을 컨퍼런스, 세미나의 형태에서 조금 벗어난 핸즈온이 포함된 형태에서도 할 수 있다는 것을 알 수 있었습니다. 이 처럼 커뮤니티의 행사가 컨퍼런스여야 할 필요는 없다고 생각합니다. 더군다나 인프런, 토...

매일 매일 주접 떨면서 살고 싶어요

이미지
앱에 하나쯤은 있는 명언을 보여주는 앱들 다들 하나쯤 있으시죠? 그런데 그 앱들 앞에서면 힘이날 때도 있지만 잘해야한다는 압박감과 스스로 반성만하게되는 자신을 발견했습니다. 그래서 나의 자신감과 자존감을 도와줄 문구를 보고싶다라는 니즈가 생겼고, 마침 지하철에서, 버스정류장에서 끝없는 팬들의 사랑을 받으며 생일축하를 받는 연예인들이 생각났습니다. 물론 이 또한 압박감이 될 수는 있겠죠. 하지만 나도 저런 칭찬과 축하를 매일매일 받고 싶다라는 생각에 아주 간단한 앱을 만들 생각을 했습니다. 바로 매일매일 나와 같이 주접을 떨어주는 오늘의 주접! 앱의 기능과 내가 해결한 문제 큰 기능은 없습니다 다만 내가 마음에 들 수 있게 위젯을 꾸미는 기능과 문구 업데이트에 대한 설정이 전부입니다. 이전에 만들었던 앱들에 비하면 너무나 작고 하찮은 기능들입니다. 배경색상을 바꾸고, 폰트를 바꾸고, 주접을 떨어준 사람이 누구인지 보여주는 것들이 대부분입니다. 말 그대로 주접 꾸미기입니다. 문제를 해결하는데 필요한 것 들 자기 효능감, 자존감 회복을 위해서 꼭 커뮤니티를 만들 필요는 없다고 생각합니다. 물론 전문 의사의 소견이나 나와 비슷한 사람들의 위로를 들으면 좋겠지만 그 것들을 만들어 주는 사람은 없고 내가 만들자니 너무나 큰 노력을 해야하기에 더 작은 해결방법을 선택했습니다. 바로 내가 찾을 수 있는 힘이나는 문구였습니다. 그리고 그 문구들을 더 잘 볼 수 있도록 선택한 것이 바로 위젯입니다. 그리고 그 정보들을 더 잘 볼 수 있도록 도와줄 수 있다면 락스크린 위젯의 도움도 받을 수 있겠죠. 하지만 처음의 시작은 아주 작은 정보를 제공하는 것 부터 했습니다. 이 것이 힘이나게 해준다면, 나의 가설이 검증된다면 그 다음 단계들도 힘내서 할 수 있기 때문입니다. 더 보기 편한 링크는  이곳  을 눌러주세요. 내가 만들고 싶은 앱을 개발을 해서 만들고 싶어 일단 작은 것들을 만들어야 한다고 생각합니다. 그리고 그 가설이 맞았을 때 ...