📌 메타학습을 시작하기 위한 3가지 질문
단기적인 방법
프로젝트 시작전, 일정기간 동안 메타학습을 증진시키는데 초점을 맞춰 탐색을 할 수 있다.좋은 프로젝트는 훌륭한 재료를 가지고 무엇을 배워야 할지가 명확하며 공교육보다 빨리 배우게 해준다.
언어의경우, 그 언어환경에 푹빠져서 공부하는 것은 지루한 수업을 듣는 것보다 낫다. 코딩은 몇 달 동안 집중적으로 코딩을 배우는 부트캠프를 통해 익히는 것이 더 직업적인 경쟁력을 갖출수 있다. 이것은 규격화된 방식도 좋지만 스스로의 필요와 능력에 맞춰 자신만의 프로젝트를 하게 해준다. 그러나 한편으로는 현명하지 못한 선택을 할 수 도 있다는 것을 명심하자.메타학습은 바로 이런 문제를 피하고 현상유지 이상을 얻을 수 있는 지점을 찾아준다.
장기적인 방법
ULP를 해내가면서 일반적인 메타학습 기술들을 더욱 향상시킬 수 있다. 자신의 학습역량, 시간을 잘 사용하는 법, 동기를 잘 관리하는 법을 알게되고, 공통적인 문제들을 다루는 검증된 전략들을 갖게 된다. 더 많이 배울수록 자신감이 생기고, 이로서 좌절감이 줄어들고 학습과정을 스스로 즐기게 된다.
장기적인 이득은 단기적인 이득을 상회한다. 가면 갈 수록 더 빠르고 효율적인 학습이 가능한다.
📌 학습동기의 이해
1. '왜' 그것을 배우려고 하는가? ( 도구적 동기 & 본질적 동기 )
도구적인 학습은 자신이 학습하지 않은 대상, 다른 결과를 주는 대상을 공부하는것. 본질적인 학습은 그 자체를 자신만의 목적으로 공부하는 것이다.
도구적 프로젝트일 경우 , 탐색단계를 한번 더 거치는 것이 좋다. 문제의 기술을 배우는 것이 실제 목표 달성에 도움이 될지 알아보라는 것이다.
→ 나는 예체능을 전공하고 직업으로 삼고 있다. 그렇기에 기본적인 의식주 자체를 불안해하는 경우도 있었다. 경기가 안좋아지면 난 바로 수입에 치명적 타격을 입는다. 몇번 반복하고보니 미래전망이 있는 직업이 필요했고, 개발자의 영역이 음악을 공부하는 것과 흡사한 과정을 갖고 있는 것으로 보였다. 그리고 새로운 것에 대한 호기심이 많아 꼭 해봐야하는 성격이 많은 도움이 될 것이라고 생각이 들었다.
탐색 단계 → 전략 : 전문가 면담 ( 배우려는 것을 이미 얻어낸 사람 )
2. '무엇'을 획득해야하는가?
브레인 스토밍해서 써 넣자. 목록이 완벽하게 완성 or 정확성은 중요하지않음. 나중에 얼마든지 수정가능
현재 단계에서의 목표는 대략적으로 이 지점을 통과하는 것이다. 일단 공부를 시작하고 실전을 경험해보고 수정하자.
모두 기입하면 가장 어렵고 학습정체를 일으킬 것 같은 것에 밑줄친다.
📌 개념 (이해해야 할 것)
- Object, Class, Method, instance Variables 등등 개발분야에서 전반적으로 사용하는 개념들
- SWIFT 문법의 용도
- Kit의 종류와 활용방법
- 백엔드 구성하기
📌 사실 정보 (암기해야 할 것)
- IT 기본 단어 및 기술문서 영어 단어 암기
- SWIFT 문법의 구성요소
- 구글링하는 기본적인 방법
- 애플 앱의 코딩구조
- Object C
- 스위프트 문법의 삼대장 Array, Set, Dictionary
- IOS Road Map (출처 코드스쿼드 )
- Swift Road Map (출처 코드스쿼드 )
📌 절차 ( 연습해야 할 것)
- 스위프트 문법을 적재적소에 응용하기
- 맨땅에서 앱 기본구조 떠올리기
- Human Interface Guideline 에 따른 UI 구성하기
- 영어로 검색해보기
- 영어로 된 기술문서들을 이해하기
- Stack Overflow에서 QnA하는 과정
- 다른 사람과의 협업
3. '어떻게' 학습할 것인가?
📌 벤치마킹 ( 대부분의 사람이 이 분야를 배운 공통적인 방식 )
- 부트캠프에서 강조하는 커리큘럼들 살펴보기
- raywenderlich 사이트 튜토리얼 보기
- 애플 공식사이트 튜토리얼 배우기
- 컴퓨터공학과 커리큘럼중 필수적인 과목(다 중요하지만 직업에 직결되는 것
- 부스트코스 교육과정
- 패스트캠퍼스 국비지원 과정
- 코드스쿼드 ios 마스터과정 → 협업
부스트 코스 커리큘럼
Chapter 1 스위프트 기초
명명법 콘솔로그 문자열 보간법
상수와 변수
데이터 타입
Any, AnyObject, nil
컬랙션 타입(Array, Dictionary, Set)
함수 기본
함수 고급
조건문
반복문
옵셔널
옵셔널 추출
스위프트 기초 개념 퀴즈
데이터 타입퀴즈
함수 퀴즈
제어구문 퀴즈
옵셔널 퀴즈
Chapter 2 다양한 표현 및 확장
구조체
클래스
열거형
클래스 vs 구조체 / 열거형
클로저 기본
클로저 고급
프로퍼티
프로퍼티 감시자
상속
인스턴스 생성 / 소멸 ( init / deinit )
옵셔널 체이닝과 nil 병합
타입 캐스팅
assert / guard
프로토콜
익스텐션
사용자정의 타입 퀴즈
스위프트 클로저 퀴즈
프로퍼티 퀴즈
클래스 퀴즈
옵셔널 심화 퀴즈
빠른 종료 퀴즈
타입 확장 퀴즈
Chapter 3 오류처리 및 고차함수
오류처리
고차함수
IOS 앱 프로그래밍 프로젝트
음원재생기 애플리케이션 만들기
회원가입 화면 구현
기상정보 애플리케이션
내사진 관리 애플리케이션
영화정보 애플리케이션
패스트캠퍼스
나만의 ios 앱개발 입문 (국비지원)
Swift & Xcode 학습
- 스위프트기초
- 플레이그라운드
- 코멘트
- 튜플
- Boolean
- Scope
스위프트 Flow Control
- while
- for loop
- switch
스위프트 Function and Optional
- 함수 소개
- 고급기능
- 옵셔널
- 스위프트 Collection
- Array
- Dictionary
- Set
- Closure
스위프트 Structure
- 구조체와 클래스의 차이
- 프로토컬
- 프로퍼티
- 프로퍼티 vs 메소드
- 매소드 확장
- 클래스 개념
- 클래스와 스트럭트를 쓰는 기준
- 상속개념코드
- 생성자이해하기
패스트캠퍼스 ios 앱구현 코스
- 원피스 현상금랭킹앱
- Todo리스트 앱
- 애플뮤직 음악앱
필수 UI Design
- Human Interface Guide
- 피그마와 친해지기
- 디자인 시작하기
- 로그인페이지 디자인
- 콘텐츠리스트 디자인
- 앱아이콘 디자인
- 스플래시 디자인
- 프로토타이핑
Final Project
- 간단한 카카오톡 채팅목록 만들기
📌iOS 올인원 패키지 (35시간) →정가 319,000원, 할인가 : 175000원
첫앱만들기
- View Controller 개념
- 알럿 띄워보기
- 뷰구성하기
- 앱 동작방식의 이해
- 오브잭트 이해하기
- String Variable 이해하기
- 아웃렛 연결하기
- 변수와 상수 이해하기
- 메소드 작성하기
- 타입추론
- 로컬 변수 - 인스턴스 변수
- 클로져 - 기초
- 스타일링
- 오토레이아웃
스위프트 기초
- 플레이그라운드
- 코멘트
- 튜플
- Boolean
- Scope
스위프트 Flow Control
- While
- for loop
- Switch
ios 초격차패키지 (30개 프로젝트로 배우기) →399,000원 할인가 171,000원
Part 1 Theory
- Swift 기초 문법정리
Part 2 Basic
- ViewController 활용
- Auto Layout
- Part 3 Intermediate
- Firebase활용
- Swift UI, 네트워크
Part 4 Upper Intermediate
- Animation
- Collection View
- URLSession
- RxSwift(기본내용)
- 아키텍쳐 : MVVM 패턴
Part 5 Advanced
- AVFoundation
- UITest / Unit Test
- CI/CD, RxSwift(심화)
- 아키텍쳐 : MVVM패턴실습
RxSwift, MVVM?
- RxSwift를 통해 Apple SDK 내의 API, 사용자 입력, 네트워크 활동, 기타 OS 이벤트와 같은 다양한 외부 요인에 따른 복합적인 비동기 코드를 효과적으로 처리합니다.
- MVVM: 모델-뷰-뷰 모델(model-view-viewmodel, MVVM)은 하나의 소프트웨어 아키텍처 패턴으로-마크업 언어 또는 GUI 코드로 구현하는-그래픽 사용자 인터페이스(뷰)의 개발을 비즈니스 로직 또는 백-엔드 로직(모델)로부터 분리시켜서 뷰가 어느 특정한 모델 플랫폼에 종속되지 않도록 해준다. (출처 위키백과)
코드스쿼드
코코아과정 (프리코스) 5주과정 → 5주 33만원
- 주 2회 라이브 수업 (화, 목)
- 주 2회 모각코 (월, 수)
- 알고리즘 문제 풀이 (금)
코드스쿼드
마스터즈 코스 4주단위 66만원 ✕ 6달 = 396만원
- 기간 6개월
Ray Wenderlich → 병행용
iOS and SwiftUI for Beginners → 6강
- Your First iOS and SwiftUI App: An App From Scratch
- Your First iOS and SwiftUI App: Polishing the App
- Your First iOS and SwiftUI App: Designing the App [OPTIONAL]
- Programming in Swift: Fundamentals
- Programming in Swift: Functions and Types
- Your Second iOS and SwiftUI App
iOS User Interface with SwiftUI → 4강
- SwiftUI Fundamentals
- SwiftUI: Layout & Interfaces
- SwiftUI Animation
- SwiftUI Maps & Location Fundamentals
iOS Data and Networking → 5강
- Saving Data in iOS
- Beginning Core Data
- Networking with URLSession
- iOS Concurrency with GCD and Operations
- Reactive Programming in iOS with Combine
iOS IDEs and Tools → 3강
- iOS Debugging Fundamentals
- Xcode Tips and Tricks
- Publishing to the App Store
Software Engineering for iOS → 3강
- Beginning Git
- Command Line Basics
- Beginning App Asset Design
iOS User Interfaces with UIKit → 6강
- UIKit Fundamentals
- UIKit: Layout
- Table Views
- Collection Views
- UIKit Animation
- Integrating UIKit & SwiftUI
그밖의 많은 비디오 클립
- Watch OS 강좌 꼭 보기
📌 강조∙제거 (벤치마킹 중 자신의 목표와 부합하지 않는 요소들을 제외하거나 미루기)
탐색의 첫단계에서 규정한 목표에 부합하는 학습 부문을 찾아서 집중하기
나의 ULPD Course
📌 나의 울트라러닝 코스📌 (노션으로 이동)
개발자라면 무조건 공부해야하는 것들
- Data structures & Algorithms →데이타 구조 자료구조
- 기본적인 터미널 사용법
- Git - Version Control → 깃기반의 버전 컨트롤
- SSH → 시큐어 쉘 사용법
- HTTP/ HTTPs and APIs 호출하는 방법
- Learn to Resarch 자료를 찾아서 학습하는 방법
- Character Encodings → 기본적인 아스키코드 부터 유니코드 인코딩이 어떻게 되는지
- Github → 깃허브를 어떻게 사용하는지
- IOS Full Cycle
Learn the Basics
Xcode IDE → 개발환경 에디터로 코드 실행이나 디버깅 할 수 있는지
- Playground
Language Grammer → 서로 어느정도 영향을 준다.
Swift → 개발언어
- Functional Programming (펑셔널 프로그래밍 패러다임)
Object C → 개발언어
- Object-oriented Programming (OP)
- Objective C++
기본적인 학습 로드맵
Common Topics
1. Human Interface Guideline
→ Mac OS 등 각각 있다. 메뉴 구성요소, 컨트롤러 등의 원리를 이해하고 사람들이 생각하는 디자인을 이해, 접근성이 부족한 사람들이 접근하는 방법또한 존재
2. iOS Technologies
홈페이지에서 최신정보로 공부할 것(잦은 업데이트), 전부 사용한다기 보단 확장해 나아갈 것
- App Architect
- App Life-cycle
- View-ViewController Programming
- AutoLayout
- Multi-touch Event Handling
3. Cocoa Design Pattern (얽매이기 보단 어떤식으로 사용하는지 정도만 학습)
코코아라고 불리우는 프레임워크에서 사용하는 디자인패턴
- MVC → 말이 많지만 가장 영향력있음
- Singleton → 시스템 레벨에서 싱글톤으로 존재하는 클래스
- Delegate → 뷰의 델리게이트 패턴
- ResponderChain → 멀티터치 이벤트 등등을 다룰 때 리스폰더체인으로 구성해서 힛테스트부터 어떤 뷰가 어떤 계층으로 이루어져있는 뷰들이 꼭 최상의 뷰가 아니더라도 하위의 뷰, 뷰컨트롤러, 앱 델리게이트 수준에서 이벤트 들을 어떻게 체인해서 쓸 수 있는지
- Observer
4. Network Programming
- RESTful APIs
- (TCP/IP Socket APIs)
- RESTful API를 호출하기 위해 url관련된 url로딩시스템 이라고 불리우는 API세트들을 익히고, get post put 등 방법 익히기
- network.framework → 최근에 생긴 더 로우레벨한 프레임워크 (TCP/IP Socket APIs)를 사용하는 거보다 정리가 잘 되어있다.
Getting Deeper
Swift
- Protocol - Oriented Programming ; POP 쉽지않다 OP를 같이 공부하면서 확장해 나갈 것
- Value Semantics 스트럭트와 클래스의 차이를 이해하고 깨지는 경우(예외사항)을 공부할 것
- Generics
- Concurrent Programming
- DispatchQueue (Object C 에서의 GCD에 해당하는 부분)
- Advanced Design Pattern
- VIPER
- MVVM
- ReactorKit
Object C
- Manual Memory Management
- ARC 아크 어떻게 동작하고 강한 참조 약한 참조 순환 참조 문제를 어떻게 해결해야하는지
- Concurrent Programming
- Block → GCD를 사용하려면 block를 꼭 사용해야한다
- GCD Queue
- ( GCD Event )
- ( Runtime )
System Framework
- Objective C
- ( Core Foundation )
- Cocoa Touch
- Swift
- Swift Standard → import를 안해도되는 애 구분하기
- Swift Foundation → import 해야 되는 애 내부에 들어가보면 objective C에 있는 클래스를 부른다. 대부분 브릿지가 되어있다. 스위프트는 막혀있고 구현된건 objective C인 경우가 많다
Reactive Programming
- Combine
- SwiftUI
- RxSwift (핫함) 초반 진입장벽 있음
- ( Reactive Cocoa )
Data Persistance
뷰를 보여주기위해 필요한 데이타 구조 비즈니스 로직
- Core Data
- ( Sqlite )
- Realm
- Serialize
- Keychain
- JSON
- PList
- KeyedArchiver
- Cloud
- iCloud
- Firebase
Project & Worspace
- Build Config
- Scheme
- Target
Package Manager
- Swift Pakage Manager
- CocoaPods
- Carthage
Instruments 접근법 익히기
- Allocations
- Leaks
- Network
- Activity
- Energy
- Layout
- System Trace
- Time Profile
Testing 아무리강조해도 부족x
- XCTest
- TDD
- Quick/Nimble
- UITest
- Code Coverage
Debugging
- Tool & Tips 찾아보고 익히기
- LLDB 에 있는 명령어들
- Break-Pointer Xcode에서 다방면으로 사용가능
- Gaugaes 어떤 상태에서 바뀌는지 정도만 보기
- Visual Debugging
- Sanitizer 세니타이저 스레드세니타이저 메모리 세니타이저 등 기존의 멜로크 앞뒤에 붙여서 스레드 충돌을 보는 것보다 가벼운 방법
- Diagnostics → 점점 덜 사용하지만 Mac개발할 땐 봐야함
Start Building
Build & Deployment 빌드와 배포단계
- CI 하나는 알아야한다.
- Xcode Server → 버려진 듯
- Fastlane 가장 핫한거
- bitrise 선택적
- Travis 선택적
- Jenkins
- Analytic Tools
- GA
- Firebase 이벤트 수집하고 사용성 분석
- Crashlytics
- TestFlight
- UserHabit 국내 스타트업
App Store
- Review Guidline 리젝을 먹느냐
- iTunes Connect
- Lucky Reviewer 어떤 리뷰어를 만나느냐 (ㅋㅋ)
코코아과정 (프리코스)
마스터즈 코스 6달
계획은 얼마나 많이 세워야 할까?
10퍼센트의 규칙
- 프로젝트를 시작하기전 예정기간의 10퍼센트 이하를 탐색해 투자하자.
- 수많은 학습자원에 지쳐버리면 안된다.
프로젝트를 하는 중에도 수정가능
- 학습과정에서 반드시 재평가를 거친다.
- 수준이 올라가며 효율이 떨어지는 것을 느낀다면 새로운 방법이 있는지 찾아보고 몇시간 실천해서 비교해본다.
첫번째 프로젝트는 메타학습능력이 낮기 때문에 가시적인 효과가 나타나지 않을 수 있다.
- 해냈다는 자신감을 얻었다는 것부터 천천히 느껴가자.
'긱코드 사용법' 카테고리의 다른 글
[법칙 3] 직접 하기 → 실천편 (0) | 2021.09.27 |
---|---|
[법칙 4] 특화학습 : 취약점을 공략하라 (0) | 2021.09.27 |
[법칙 3] 직접 하기: 목표를 향해 똑바로 나아가라 (0) | 2021.09.25 |
[법칙 2] 집중하기 → 실천편 (0) | 2021.09.25 |
[법칙 2] 집중하기: 짧은 시간에 집중도를 높여라 (0) | 2021.09.25 |
[법칙 1] 메타 학습: 먼저 지도를 그려라 (0) | 2021.09.24 |
울트라러닝의 9가지 법칙 (0) | 2021.09.22 |
울트라러닝 (Ultra Learning) 에 앞서 (0) | 2021.09.17 |