当移动客户端开发到一定阶段,比方说对于使用objective-c和swift的开发人员来说,如何进一步提高技能?比方说有些高级工程师的面试题是objective-c里面的__weak是怎么实现的?比方说高级工程师要做一些架构方面的实现,那runtime需要非常熟练。比方说要进一步优化工程或者是性能,那怎么加速编译速度,是否要对编译原理很清楚?怎么考虑开发语言的消息转发机制效率和swift的虚函数分发表效率,从而写出更加高效的代码?
以上,就是这个问题的背景,也许一个开发人员,已经到了熟练使用一门开发语言,对于开发平台的库也都非常熟悉,但是该如何进阶?需要再加强自己C/C++的素质吗?需要进一步学习编译原理么?需要折腾一下UNIX的编程么?需要读哪些书,做哪些事?已经突破瓶颈的大神能否给一些建议。
Soalan ini sangat pelik. Anda telah mengatakan apa yang anda ingin belajar, jadi sudah tentu langkah seterusnya ialah membaca buku. Untuk belajar, selain membaca buku, adakah anda mempunyai cara lain? Adakah anda mahukan pengesyoran buku atau biarkan orang lain menyusunnya untuk anda? Sudah tentu anda perlu memilih buku dengan baik, tetapi saya tidak fikir ia perlu diisih Anda harus mengkaji mana-mana yang anda temui.
Sudah tentu saya perlu menegaskan bahawa anda tidak perlu terhad kepada "terminal mudah alih" apabila mempelajari perkara ini. Selagi anda tidak menghafalnya secara hafalan, anda secara semula jadi boleh menggunakan pengetahuan itu ke terminal mudah alih.
Hanya fokus pada satu aspek untuk satu tempoh masa, jangan lakukan semuanya sekaligus.
Sebagai contoh, dalam masa sebulan saya hanya menumpukan pada
GCD
membaca dokumen, menulis kod sumber dan menulis projek.Anda boleh membaca lebih banyak karya asing, penjelasannya bagus
Perkara yang anda senaraikan, jika anda bekerja sangat keras, akan dianggap terlalu lambat untuk diselesaikan dalam masa setengah tahun Sudah tentu, untuk menjadi mahir, anda masih perlu meluangkan lebih banyak masa dan berlatih lebih banyak. Sebagai contoh, terdapat juga komunikasi rangkaian, algoritma, dan pelbagai prinsip penyulitan dan penyahsulitan. Adalah lebih baik untuk mempelajarinya dengan penuh minat.
Saya mengesyorkan buku berikut untuk menjawab mata pengetahuan yang anda sebutkan
"Pemahaman Mendalam Sistem Komputer"