当移动客户端开发到一定阶段,比方说对于使用objective-c和swift的开发人员来说,如何进一步提高技能?比方说有些高级工程师的面试题是objective-c里面的__weak是怎么实现的?比方说高级工程师要做一些架构方面的实现,那runtime需要非常熟练。比方说要进一步优化工程或者是性能,那怎么加速编译速度,是否要对编译原理很清楚?怎么考虑开发语言的消息转发机制效率和swift的虚函数分发表效率,从而写出更加高效的代码?
以上,就是这个问题的背景,也许一个开发人员,已经到了熟练使用一门开发语言,对于开发平台的库也都非常熟悉,但是该如何进阶?需要再加强自己C/C++的素质吗?需要进一步学习编译原理么?需要折腾一下UNIX的编程么?需要读哪些书,做哪些事?已经突破瓶颈的大神能否给一些建议。
这个问题很奇怪耶。你都说了要学习哪方面的东西了,接下来当然是去看书啦。学习嘛,除了看书,难道你还有别的办法?你要推荐书还是让别人来帮你排序?书当然是得选好的,但排序我觉得不必的,遇到哪个学哪个。
当然我不得不指出一点,你不用在学习这些东西的时候都带个「移动端」的限定。只要你不是死记硬背的,学好了你能很自然地把知识应用到移动端的。
一段时期内专注一个方面即可,不要齐头并进。
比如我一个月内只专注
GCD
.去看文档,写源码,写项目。可以 多看国外的著作,讲解的不错
你列举的这些,在你很努力的情况下,半年学完都算慢的,当然要精通还是要多花时间,更多的去实践才行。譬如还有网络通信、算法,各种加密解密原理,最好带着兴趣去学习。
你提到的这些知识点我推荐如下这本书来解答
《深入理解计算机系统》