iOS 독학을 시작하기 전에 보면 좋은 이야기



보기 좋은 노션링크 입니다.


개발을 하다보면 특히 iOS 개발을 하면 누군가에게 배우는 환경이 쉽지는 않아, 결국에는 독학을 하게 됩니다.

독학을 하다보니 이렇게 하지말껄, 다음에는 이렇게 하면 더 좋겠다 할 만한 내용들을 적어두었습니다.

왜 개발자?

매년 연초에 개발회사 전직원 연봉상승 뉴스는 개발자들 사이에서도 흥미로운 기사입니다. 뿐만 아니라 네카라쿠배당토, 주문같은 단어들도 생겨났습니다. 그래서 그런지 개발자가 되고싶은, 그리고 개발을 배우고 싶은 사람들이 많이 보입니다.

왜 개발자가 되고싶은지 살펴보면 크게 3가지 이유로 보입니다.

  • 높은 연봉
  • 좋은 복지
  • 차오르는 뽕

물론 이런 것을 추구하는게 나쁘다고 생각하지 않습니다. 일을 하면서 돈을 많이 벌고 싶은 것은 너무나 당연한 것이고 좋은 복지와 남에게 자랑할 수 있는 직업을 가지는 것은 기분 좋은 일 일테니까요.

하지만 이렇게 좋은 모습에는 이면이 있습니다.

  • 공부 할 것들이 엄청 많음
  • 빠르게 변하는 기술
  • 매우 큰 스트레스

컴퓨터 공학과의 의미를 담은 전공이 있고 대학에서 4년동안 공부할 만큼의 많은 지식이 필요합니다. 당장 개발 강의에서는 6개월만 공부하면 당신도 개발자! 라는 글을 자주 접하지만 실제 공부를 시작해보면 6개월만에 개발자가 되는 것은 맞지만, 개발자가 된 뒤에도 해야할 공부가 대학 4년치보다 많은 것은 변함없는 사실입니다.

그리고 애플 생태계에서는 매년 WWDC에서 공개되는 수백개의 영상이 있습니다. 매년 새로운 기술, 빠르게 변하는 트렌드는 늘 공부해도 뒤쳐지는 느낌이 듭니다.

눈에 보이지 않는 작업을 머릿속으로 해야하기도 하고, 마감 기한을 맞추기 위해 밤을 새야 하는 일도 자주 일어날 수 있습니다. 또한 업무 시간 이외에도 공부에 많은 시간을 쏟아 붓는 것은 스트레스가 심한 일이죠.

어디로 가야하죠?

막상 개발을 시작했더라도 강의를 하나 정도 다 듣고나면 여러 의문이 생깁니다.

  • 지금 내가 무엇을 해야하지?
  • 이 것을 안하면 어떻게 되지?
  • 할게 너무 많은데 어떻게 하지?

질문에 하나씩 답을 해 보도록 합시다.

나는 지금 무엇을 해야할까요?

개발을 해야합니다. 개발을 앉아서 하기 때문에 머리로 한다라고 생각하기 쉽지만, 사실 운동과 같은 거라서 직접 반복해야합니다. 파스타를 만드는 동영상을 보고 나도 이제 파스타를 만들 수 있어 라고 말하는 사람을 본다면 어떤 느낌일까요? 한 번도 안만들어보고 저런 말을 하다니… 라는 생각을 하겠죠?

개발도 마찬가지 입니다. 같은 것을 여러번 만들 필요가 있나? 라는 생각이 들 수 있지만, 네 맞습니다 여러번 만들어야 합니다. 같은 것을 만들어도 상관 없습니다.

하지만 뭐라고 해야하서 하는 개발은 아니었으면 좋겠습니다. 내가 개발을 시작한 이유가 돈 뿐이라면 개발자로 오래 살아남기 어려울 것 이라고 생각합니다. 개발하는 것이 즐겁고 재미있어야 오래 할 수 있고 길게 할 수 있습니다.

그런 의미에서 내가 하고 싶은, 만들고 싶은 것들을 만들어보세요. 강의를 보고 따라만드는 것은 처음에는 도움이 되지만 어느 정도 시간이 지나고 나서는 본인이 만들고 싶은게 없다면 왜 내가 개발자가 되려는 것이지? 라는 생각을 해보시고, 내가 지금 만들고 싶은게 과연 무엇일까? 라는 질문에 답을 찾아보세요. 그러면 하고 싶은 개발이 생길꺼에요!

이런 것들 안하면 어떻게 되지?

  • 알고리즘, 자료구조
  • 컴공 전공지식
  • 클론코딩, 강의듣기
  • Git, Github
  • 문법공부
  • 블로깅

알고리즘, 자료구조

알고리즘, 자료구조 분명이 필요합니다. 기초 체력이라고도 생각합니다. 하지만 내가 하고 싶은 것이 있고 그것을 더 잘하기 위해 기초체력이 중요한 것이지, 언젠간 나도 잘하고 싶은게 생기겠지 라는 생각으로 기초체력만 기른다면, 그 보다는 잘 하고 싶은 것을 찾아보는게 어때요? 라고 질문하고 싶어요

컴공 전공지식

졸업을 한 분들도, 비 전공자 개발자들도 전공지식에 대한 필요성을 느낍니다. 하지만 처음부터 하지는 않았으면 좋겠어요. 한 학기에 3개월 혹은 그 보다는 적은 시간을 들여서 수업을 듣긴 합니다. 하지만 우리가 전공지식이 필요하다고 느끼는 부분을 공부하는게 좋습니다. 404 에러를 이해하지 못했을 때 네트워크 책을 펼쳐서 처음부터 공부하는게 아니라 필요한 부분을 공부해야 효율적으로 지식을 습득할 수 있습니다.

클론코딩 강의듣기

따라하면 재미있고 다 만들면 결과물이 나오지만, 내가 고민하지 않은 코딩은 내 것이라고 보기 힘듭니다. 분명 내 손가락도 움직이긴 했지만, 내가 고민하지 않은 결과물은 내것이 되는데 또 다른 노력이 필요합니다. 그래서 강의를 듣는 것은 재미도 있고 도움도 되지만 꼭 내 것이 되었는지 확인하는 과정이 필요합니다.

Git, Github

코딩을 하지는 않지만 많은 곳에서 필수라고 합니다. 혼자 개발할 것이 아니라면 꼭 익혀두셔야합니다. 개발을 하는데 아무런 어려움이 없어서 간과하고 넘어가다가 나중에 동료가 생겼을 때 이 두개를 자유자재로 쓸 수 없다면 큰 문제를 만들어 내거나 어려움에 빠질 확률이 매우 높습니다.

문법공부

전공지식과 마찬가지 입니다. 책을 처음부터 끝까지 다 본다고 내가 문법의 마스터가 되는 것은 아닙니다. 그래서 이 문법을 공부해서 내가 만들고 싶은것이 무엇인가가 있어야 합니다. 내가 만들고 싶은것을 위해 필요한 문법을 공부해서보세요. 좀 더 효율적으로 공부할 수 있습니다.

블로깅

블로깅을 꼭 외부에 해야하는 것은 아닙니다. 내 컴퓨터에, 드라이브에, 아이클라우드에 해도 됩니다. 다만 내가 공부하고 정리 해 둔다면 미래의 나 그리고 그 글을 보는 누군가에게 도움이 됩니다. 5시간 동한 한 삽질에 30분에 블로깅만 더하면 다음 번 삽질이 블로깅 한 글을 읽음으로써 해결될테니 조금만 더 투자해서 이득을 챙겨가보는 것은 어떨까요?

할게 너무 많은데 어떻게 하지?

처음에 말씀드린대로 개발자를 계속 하려면 공부해야할 것이 너무나 많습니다. 이 것들을 모두 다 공부한다는 생각보다는, 내가 지금 처한 문제가 무엇인지 살펴보고 그 문제를 해결하는데 필요한 것들을 나열하는 연습을 해보세요.

나열된 요소들을 학습하고, 내 것으로 만드는 루틴을 만든다면 지속적으로 학습하고 성장하는 개발자가 될 수 있을 것 입니다. 그리고 모르는 것에 대해서 불안함을 느끼는 것을 당연합니다. 나의 에너지는 한정되어있고 모든 분야의 마스터가 될 수는 없습니다.

이 점을 이해하고 인정하면서 나에게 필요한 스킬, 지식들을 습득해 나간다면 성장하는 것을 느끼고 문제가 해결되는 경험을 할 수 있을 것 입니다.

댓글

이 블로그의 인기 게시물

[IOS] AppDelegate는 뭐하는 녀석이지?

[git] git의 upstream과 origin 헷갈리는 사람 손!

[git] Github 이슈 라벨(issue labels)