다음의 포스트를 참고하여 작성하였습니다.
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

ios_skills_matrix.png