✏️
[TIL] iOS 개발자 Skills Matrix
January 09, 2022
다음의 포스트를 참고하여 작성하였습니다.
iOS Developer Skills Matrix, (2022.01.09)
우리는 우리 자신이나 잠재적인 팀원들을 평가할 때 항상 객관적으로 최선을 다해야 합니다.
불행하게도, 우리는 질문에 더 정확하게 대답하려고 노력할수록 진리에서 더 멀어진다.
이 skill Matrix는 iOS 개발자 후보에 대한 상대적인 요구 사항을 정의하기 위한 시도입니다.
추구하는 점
- 어느 영역을 개선해야 할지 알 수 있을 정도의 정확함
- 특정 지식을 정식화하는 것을 피할 수 있을 정도의 모호함
Areas
대부분의 개발자는 매일 이 Skills Matrix의 여러 영역을 건드린다. 우리 대부분은 직장에서 모든 영역을 건드릴 기회가 없기 때문에 어떤 기술은 오랫동안 사각지대로 남아있을 수 있다. 그렇기 때문에 일하면서 하지 않는 것을 이 지표를 통해 공부하면서 나아갈 수 있다.
How not to use it
응시자 평가를 위한 전용 도구나 학습 계획으로 사용하지 마십시오. 이것들은 단지 지식의 지표, 트렌드입니다.
Markdown Matrix
Junior | Middle | Senior | |
---|---|---|---|
Ability | can make a news app talking to a JSON API | can timely design and deliver fast and reliable chat module | can establish team behaviour standards with non-fanatical ideas |
Code Integration | uses git to move code around | has an opinion about GitFlow | has ideas how to build a CI process and automate chores |
Paradigms | got the idea of OOP | got hands dirty with FRP | brings value from other platforms and paradigms |
Dependencies | knows how to use Cocoapods | knows why apps can’t use SPM, but Carthage is an option | knows why it is essential to own/reduce dependencies |
Platform | uses Array, Dictionary and Set | knows Value/Reference types and Equatable/Hashable | knows the details of method dispatch of both Swift and Obj-C |
Client-Server Protocol | getting that JSON from the Internet is a piece of cake! | making a WebSocket-based real-time chat is feasible | building a video chat is an achievable challenge |
Reference | uses StackOverflow as a single source of truth | often uses official documentation | asks platform developers and can reverse engineer |
Memory | knows how to avoid and fix a memory leak | knows NSPointerArray and why structs increase binary size | has a strategy to reduce out-of-memory crashes |
UI | can build basic UI in the Interface Builder | has reasons to make UI in code | can take layout and diff calculation to non-main thread |
Multithreading | asyncAfter is a friend, @synchronize all the things | asyncAfter is an enemy, and thread synchronisation is a problem | understands multithreading problems beyond the deadlock |
Attitude | expects others to teach and guide during development | discusses design with the team to share decision | takes responsibility for design decision made by teammates |
Design Patterns | understands Delegation, Target-Action and MVC idea | is proficient at Observer, Facade and Mediator patterns | knows the sweet spot between dependency injection and service locator |
Product Quality | the app is tested if it works on my phone | writes unit tests and tried TDD and UI tests | defines a maintainable test pyramid with non-overlapping coverage areas |
Matrix Image