안녕하세요. 저는 앱 개발에 관심이 많고 이쪽으로 진로를 생각 중인 30대입니다.
젊은 나이도 아니고 제 인생에서 중요한 선택을 해야 하는 상황인 것 같아서 현직 개발자분들의 조언을 듣고 싶습니다.
먼저 저는 비전공자입니다.
코딩 관련 지식이 하나도 없어서 인프런 무료 강의, 국비 지원 한 달 수강 등 여러 교육을 받았습니다.
무료 강의는 오프라인 교육이 아니라서 따로 피드백을 주고받기 어려웠습니다. 국비 지원 교육은 짧은 기간과 iOS로 이직을 준비하는 현직 개발자분들에 맞춰 진행되는 빠른 수업이었고, 원래 코딩 교육이 이러한지 모르겠습니다만 강사님이 알려주시는 코드가 Xcode에서 번번하게 오류가 발생하면서 제겐 더 많은 혼란만 가져온 것 같습니다.
그 사이 스위프트 버전이 5로 업데이트되면서 야곰의 스위프트 5 교제를 구매해서 무작정 책 내용에 맞춰 Xcode에 작성하고 있습니다. 스스로가 발전이 없는 것 같고 제 공부 방식이 잘못된 것 같습니다.
현직 개발자분들은 어떤 방법으로 공부를 하고 경험을 쌓게 되셨는지 그리고 실무에서 어떤 점이 개발자에게 있어 제일 필요한 것인지 조언해주시면 정말 감사하겠습니다.
책 내용을 무작정 Xcode에 적어서 공부하는건 별로 도움이 되지 않습니다. 아마 책에 연습문제와 풀이코드가 있을텐데 풀이의 알고리즘을 완벽하게 이해하는 것이 중요하고, 풀이를 한 번 본 후에 책을 덮고 안 보고 다시 처음부터 짜보면 많은 도움이 됩니다.
또한 지금까지 공부한 내용을 토대로 ‘내가 지금까지 공부한 내용으로 이런 간단한 프로그램은 만들 수 있겠는데?’ 라는 생각으로 자신만의 프로그램을 틈틈히 만들어보는 것도 큰 도움이 됩니다. 저같은 경우 간단한 게임을 만들면서 공부했습니다. 예를 들면 오버워치라는 게임 영웅의 class를 정의하고 영웅 여러개를 정의한 다음에, 서로 공격을 하고 치유를 하는 함수를 class 안에 만들었지요. 사망을 했으면 Bool 값이 바뀌고요. 이런 식으로 공부하는 사이사이에 배운 내용을 토대로 자신만의 간단한 프로그램을 만들어보면 큰 도움이 됩니다.
이렇게 하셔도 Swift에 대해 감이 안 잡히시면 아이패드에 Swift Playgrounds 앱이 있습니다. 길찾기 게임을 하면서 코딩하는거라 공부의 부담감이 없어 여가시간에 하기에 적합합니다. 답변이 도움이 되었으면 좋겠네요.
제가 경험했던 느낌과 비슷하신거같아 허접이지만 자그마한 도움드리려 댓글남깁니다.
우선 위에 하신 말씀중에 "스스로가 발전이 없는 것 같고 제 공부 방식이 잘못된 것 같습니다. "
이 말을 하셔서 하나 말씀드리자면 제가 학원다닐당시 교수님께서 말씀해주신게있습니다.
" 공부를하고 개발을 할때 본인 성장이 느껴지지않아서 좌절을 많이하고 중도하차하는 사람이 많은데
성장이란게 계속해서 느껴지는게 아니라 꾸준히 하다보면 어느새 갑자기 점프하듯이 성장하고
또 다시 이전처럼 멈춘느낌 다시 성장 이런게 반복된다 그 좌절을 느낄때 그때 멈추면안되고 그걸 견디고 계속해야한다 "
하더라구요 저도 개발하면서 매번 멈춰있는느낌이들어 조급하지만 어느순간 보면 정말 조금이라도 성장해있더라구요
학원다닐 당시에도 취업을 위해서 포폴준비하면서도 느꼇구요
저는 경험상 뭔가 교재나 영상을 보고 따라하는건 저한테 맞지않더라구요
프로젝트를 진행하면서 알아가는게 훨씬 잘 맞고 알아가는데 도움이되었습니다.
진로를 정확히 어떻게 정하셨는지 모르겠지만 확실히 iOS개발자로 길을 정하셨다면
지금까지 공부하셨을때 다들 초반에 알려주는 기본적인 문법들 잘 익히시고
정말 간단하게라도 앱하나 직접 만들어서 포폴준비하셔서 신입으로 도전해보시는것도
나쁘지않다 생각합니다. iOS개발 커뮤니티에서 보면 신입에게 많은거 바라지않더라구요
위에 말씀드린거 준비하시고 열정만 잘 보여주신다면 괜찮을거에요
swift 는 4 이후로는 크게 변화가 없어서 변화가 많다는것도 옛말이라고 생각하고요.
ios 앱 개발을 생각하면 swift 로 입문하는것도 나쁘지 않다고 생각합니다.
4세대 언어중에 하나라 오히려 개발 배우기에 좋다고 생각합니다
swift 로도 data structure / algorithm 자료는 많아서 추천 합니다.
제가 드릴 말씀은 없지만 손에서 놓지 않으면 언젠가는 된다고 믿고 있습니다 화이팅하십시오~ 집이 가까우면 같이 스터디 하고 싶네요 전 여즈음 firebase로 공부 중입니다
단기적으로 실무 결과물, 혹은 포트폴리오 준비를 위한 러닝이라 한다면 언어 자체에 집중하지 마시고
개발 방법론에 집중하시는것이 효율적입니다. 요즘은 Rx, MVVM 개발이 대세를 넘어 필수가 되고 있는 추세라 그쪽에 집중하시고 SwiftUI , Flutter , RN 를 바라보시면 한큐에 빠른 속도로 습득 하실수 있으실 겁니다.
장기적으로 개발로 밥먹고 사는게 목표다 하시는 경우에는 방법론 이전에 언어 자체에 대한 노력이 필요합니다.
java , objc , swift 나아가서 javascript 까지 언어 자체로 접근해서 알고리즘, 데이터스트럭처를 통해 언어적 특성을 비교하면서 러닝하시면 한큐에 재미 있게 공부하실수 있으실 겁니다.
1. 몇달 정도 공부 하셨나요? 그리고 어느 정도 시간을 공부에 투자하고 취업 하시려는지 물어봐도 될까요?
2. 요즘은 그런지는 정확히는 모르지만, 위에서 말하시는 것처럼 iOS 개발 쪽은 경력자 위주로 많이 뽑습니다. 또한 상대적으로 안드로이드 개발자에 비해, 개발자 숫자가 적습니다. 5년에 제가 다니던 회사에서 같은 제품을 만드는데, 안드로이드 개발자는 10명 정도 투입하고 iOS 개발자는 1명이 했었습니다. (iOS 쪽에는 결제 관련된게 다 빠져서 기능이 좀 많이 적긴 했지만요)
3. 경력 있는 신입이 되는 방법.
방법은 하나 밖에 없습니다. 다행이 우리에게는 App Store라는게 있으니 경력을 쌓을 수 있습니다. 혼자 앱을 하나 기획해서 만들어보세요. (디자인이 필요하면 크몽 같은데에 돈주고 외주를 맞기 실 수 있습니다). 그렇게 앱을 출시하고 다운로드가 1,000 정도 되면, 뭔가 해본 신입 개발자, 10,000 정도 되면 경력 있는 신입 개발자, 100,000 정도 되면 모셔와서 내가 배워야 할 개발자가 되겠죠.
(사실 다운로드 1000 넘기기도 생각보다 쉽지는 않습니다.ㅠㅠ)
4. 기본 쌓기
컴공이나 전산과 나오면 필수로 들어야 하는 과목들이 몇개 있습니다. 앱을 개발하면서 틈틈히 그런 내용을 공부하거나, 스터디를 통해 공부하시길 바랍니다. 기초가 없으면 결국 할 줄 아는 것만 하게 되고, 막혔을 때 아무리 찾아봐도 원인이 뭔지조차 찾을 수 없죠. 자료구조, 알고리즘, 코딩 테스트 문제 풀기 같은데 시간을 쓰시길 추천 드립니다.