当移动客户端开发到一定阶段,比方说对于使用objective-c和swift的开发人员来说,如何进一步提高技能?比方说有些高级工程师的面试题是objective-c里面的__weak是怎么实现的?比方说高级工程师要做一些架构方面的实现,那runtime需要非常熟练。比方说要进一步优化工程或者是性能,那怎么加速编译速度,是否要对编译原理很清楚?怎么考虑开发语言的消息转发机制效率和swift的虚函数分发表效率,从而写出更加高效的代码?
以上,就是这个问题的背景,也许一个开发人员,已经到了熟练使用一门开发语言,对于开发平台的库也都非常熟悉,但是该如何进阶?需要再加强自己C/C++的素质吗?需要进一步学习编译原理么?需要折腾一下UNIX的编程么?需要读哪些书,做哪些事?已经突破瓶颈的大神能否给一些建议。
這個問題很奇怪耶。你都說了要學哪方面的東西了,接下來當然是去看書啦。學習嘛,除了看書,你還有別的辦法?你要推薦書還是讓別人幫你排序?書當然是得選好的,但排序我覺得不必的,遇到哪個學哪個。
當然我必須指出一點,你不用在學習這些東西的時候都帶個「行動端」的限定。只要你不是死記硬背的,學好了你能很自然地把知識應用到行動端的。
一段時期內專注於一個面向即可,不要齊頭並進。
例如我一個月內只專注
GCD
.去看文檔,寫源碼,寫項目。可以 多看國外的著作,講解的不錯
你列舉的這些,在你很努力的情況下,半年學完都算慢的,當然要精通還是要多花時間,更多的去實踐才行。譬如還有網路通訊、演算法,各種加密解密原理,最好帶著興趣學習。
你提到的這些知識點我推薦如下這本書來解答
《深入理解電腦系統》