如何在毕业三年完成技术跃迁
这篇讲的是在毕业招聘季的宣讲中,作者分享了程序员如何在职业初期实现关键技术跃迁的经验思考。 他借用量子力学“跃迁”的概念,将技术成长描绘成一个从新手到单领域专家的非连续性跳跃过程。作者用一条清晰的曲线指出,大部分程序员会经历一个漫长的“稳定期”进行知识积累,只有当离散的知识点有意识地联结成网,构建起个人的技术知识体系,才能完成向专家的第一次跃迁。 文章以开发一个App登录功能为例,生动展示了具备知识体系的工程师会如何系统性地进行设计:从确立可靠性、安全性的目标,到考虑架构、网络、多线程、存储等层面的具体设计,而非一上来就编码。 对于如何实现跃迁,作者给出了方法论:持续夯实包括操作系统、网络、算法、架构设计在内的基础知识体系,并在项目中积累平台知识,最后通过不断的反思与总结,将点状经验编织成网。对于即将步入职场的工程师而言,这提供了一份清晰而务实的成长路线参考。
技术跃迁书单推荐
作者结合自身8年互联网行业经验,分享了一份带有个人色彩的技术书单,核心观点是:读书是形成体系化知识的关键,其作用无法被工作、看博客等碎片化学习所替代。 书单主要覆盖编程基础、设计与架构、网络三大领域。在编程基础部分,推荐了被誉为“一部神书”的《代码大全》,以及《重构:改善既有代码的设计》;设计架构部分,推荐了讲解深入浅出的《设计模式之禅》、免费的《Software Architecture Patterns》电子书以及经典著作《Software Architecture in Practice》;网络部分则推荐了入门读物《图解HTTP》与《图解TCP/IP》、案头常备的《HTTP权威指南》以及实践派的《Web性能权威指南》。 作者对每本书都给出了直白的个人评价,例如指出《代码大全》能帮读者“大概率超越80%的程序员”,而《重构》则“看起来厚,读起来很快,忘得更快”,更适合当作常备工具书。这份书单会不定期更新,为处于不同阶段的开发者提供了清晰、具体的阅读指引。
iOS并发编程(Concurrency Programming)系列之一:Run Loop
这篇讲的是iOS并发编程系列开篇的Run Loop深度解析。作者没有从线程基础讲起,而是直接切入实际开发中更需要理解的线程管理机制。他用了一个工厂流水线的生动比喻:线程是流水线,而Run Loop就是决定何时启动、何时暂停的主管,避免资源空转或浪费。 文章重点剖析了Run Loop的核心作用——它本质上是一个事件处理循环,负责在“有事做时保持线程繁忙,无事时让其休眠”。作者指出,在大多数异步任务中,我们无需手动管理线程生命周期,但当需要长驻线程处理持续事件时,Run Loop就是关键的控制枢纽。 值得注意的实战细节是:启动Run Loop前必须先为其添加输入源或Timer事件,否则`run`方法会立即返回,线程无法保持。这个常见的初学者陷阱被明确点出。文章还简要对比了Run Loop与其他平台(如Android Looper)的共通机制,说明它是多线程编程中的普遍需求。作为系列首篇,它为后续探讨Operation Queues、GCD和锁等主题奠定了重要的概念基础。
iOS到Android到底有多远
这篇讲的是一位在iOS开发四年后,重拾Android开发并独立上线应用的作者,分享从iOS转向Android过程中的核心差异与思考。 作者发现,最大的挑战始于编程语言。他对比了Objective-C与Java,指出OC在泛型、枚举和抽象类等现代语言特性上已显落后,这也是Swift应运而生的背景;而Java在Android平台依然稳固,Go语言暂无取代之势。在系统平台层面,作者深入分析了Android独有的Context概念——这个贯穿于各种API中的“上下文”参数,与iOS更为模块化、去中心化的资源访问方式形成了鲜明对比。 文章不仅停留在技术点的罗列,更延伸出一个核心观点:平台有生死,但开发者应超越具体平台,去掌握多线程、算法、设计模式等那些不会随平台消亡的通用思想。这对于计划拓宽技术栈的开发者,尤其是iOS工程师,提供了非常切实的视角和路线参考。
由App的启动说起
这篇讲的是从用户点击App图标到程序真正运行起来,这电光火石的一瞬间里到底发生了什么。作者从“我是谁”的哲学拷问切入,带我们深入App的“新生儿”阶段,探寻那些看不见的启动奥秘。 文章把焦点对准了构成iOS应用的核心——Mach-O文件格式。它细致地拆解了App Bundle的结构,解释了Universal Binary(胖二进制)如何通过一个巧妙的Fat Header将支持不同CPU架构的代码打包在一起,以兼顾兼容性和性能。比如,文中就提到新浪微博的执行文件支持多种架构,而QQ和微信为了控制包体积则没有支持全部新架构。 作者的解读从文件组成到加载机制,层层递进。核心在于揭示那个从二进制文件到活生生应用的“炼金”过程,帮你理解Xcode编译、链接、打包之后,系统是如何接手并启动这个程序的。这种对底层机制的梳理,能让开发者超越日常编码,更透彻地理解App的运行本质。
iOS安全系列之二:HTTPS进阶
这篇讲的是在iOS开发中如何让HTTPS连接更安全,作者从实际遇到的HTTPS问题出发,深入剖析了中间人攻击的几种常见形式。文章首先模拟了最简单的钓鱼式攻击,通过Charles代理工具详细演示了攻击者如何利用伪造证书窃取HTTPS流量,直观暴露了许多App仅依赖系统默认校验的安全隐患。 在此基础上,作者对比了SSL剥离等更具隐蔽性的攻击手段,并针对性地指出了防范关键:不仅要依赖系统校验,App内部更应对服务器证书进行本地的、硬编码的对比校验。文中还延伸讨论了iOS 9引入的App Transport Security(ATS)特性,以及如何使用Wireshark调试SSL/TLS通信,将理论与开发实践紧密结合。 对于希望加固应用网络安全的开发者而言,文章从攻击原理到防御代码都提供了具体思路,特别是关于WebView中易忽略的URL协议校验等细节,具有很强的实操参考价值。
iOS安全系列之一:HTTPS
这篇讲的是HTTPS,但不是泛泛而谈。作者从iOS开发者普遍对安全不够重视的现状出发,指出即便是未越狱设备,网络安全依然是不可回避的课题。文章的核心,是厘清HTTPS并非什么新协议,其本质只是在HTTP之下增加了一层SSL/TLS加密。 最硬核的部分在于对SSL/TLS原理的拆解:它通过四次握手交换三个随机数来生成安全的“对话密钥”,并依赖数字证书体系(PKI)进行身份验证。文章用清晰的逻辑讲透了证书的签发与验证流程——接收端如何通过哈希对比和递归验证,最终追溯到操作系统内置的根CA。这解释了“为什么信任链的起点如此重要”。 在实现层面,文章没停留在理论。它具体展示了如何在iOS的NSURLConnection中处理证书验证回调,利用Security Framework的API完成Trust Object的评估。无论是使用系统默认验证,还是为自建证书等高安全场景进行更严格的本地匹配校验,都给出了可落地的代码思路。对于想用AFNetworking简化流程的开发者,也有明确的指引。 从概念辨析到原理图解,再到代码级实践,这篇文章提供了一条清晰的路径,帮助开发者完成从HTTP到HTTPS的安全升级。