专栏名称: i小声读书
「电子书支援计划」是一个以电子书为核心的自我学习计划, 以 Telagram 社群为主要载体,致力于促进中文互联网圈内 的知识交流和资源共享,帮助诸位获得更好的阅读资源和阅 读体验,同时鼓励社群内成员输出优质内容。
51好读  ›  专栏  ›  i小声读书

如何做好一枚程序员(中文翻译版)

i小声读书  · 公众号  ·  · 2018-12-02 00:27

正文

How to be a Programmer 中文版

原文

https://github.com/braydie/HowToBeAProgrammer

译文

https://github.com/ahangchen/How-to-Be-A-Programmer-CN

现在已经生成了gitbook,适合阅读,并且可以方便地导出PDF。

如果你想要一起来改进这份翻译,可以给我提PR,不过希望翻译时尽量保持作者的原意。

文章中出现的一些词汇往往有特殊的含义,可以在4-词汇表找到注释。

引言

做一个好的程序员,困难而高尚。将一个软件工程集体愿景变为现实,最困难的地方在于与你的同事和顾客相处。编程很重要,这需要强大的智力和技能。 但在好的程序员看来,相比构建一个让客户和各种各样的同事都满意的软件系统,(纯粹的)编程真的只是小孩子的玩意。在这篇文章里,我尝试尽可能简洁地总结那些当我21岁时,希望别人告诉我的事。

这可能很主观的,所以,这篇文章注定不适用于所有人,并且有的内容有点武断。我尽量写一些程序员在ta的工作中,非常可能会遇到的事情。大部分这些问题以及它们的解决方案在人们的环境中如此普遍,以至于我(说的)可能有点唠叨。尽管如此,我还是希望这篇文章是有用的。

我们在课堂上学习编程。 那些著作: The Pragmatic Programmer [Prag99], Code Complete [CodeC93], Rapid Development [RDev96], 以及 Extreme Programming Explained [XP99] 都传授编程(知识),并阐述做一个好的程序员这个大话题。 在读这篇文章之前,或者就是现在,你当然也应该读一读Paul Graham [PGSite] 和 Eric Raymond [Hacker] 的文章。 但与那些著作不同,这篇文章强调社交问题并且总结了整套我所知的必须的技能。

在这篇文章里,boss这个词指的是任何一个交给你工程去做的人。 除了一些语境外,我会同义地使用交易,公司,集体这些词,比如,交易意味着赚钱,公司意味着现代的工作空间,集体一般是那些你一起工作的人。

欢迎来到这个群体。

目录

  1. 入门

  • 为什么预估很重要

  • 如何预估编程时间

  • 如何搜索信息

  • 如何把人们作为信息源

  • 如何优雅地写文档

  • 如何在垃圾代码上工作

  • 如何使用源代码控制

  • 如何进行单元测试

  • 没有思路的时候,休息一下

  • 如何决定下班时间

  • 如何与不好相处的人相处

  • 学会Debug

  • 如何分离问题debug

  • 如何移除错误

  • 如何用Log来Debug

  • 如何理解性能问题

  • 如何解决性能问题

  • 如何优化循环

  • 如何处理I/O开销

  • 如何管理内存

  • 如何处理偶现的Bug

  • 如何学习设计技能

  • 如何进行实验

  • 个人技能

  • 团队技能

  • 进阶

    • 如何权衡开发质量与开发时间

    • 如何管理软件系统依赖

    • 如何评判一个软件是否太不成熟了

    • 如何决定购买还是构建

    • 如何专业地成长

    • 如何评估面试

    • 如何知道何时实施昂贵的计算机科学

    • 如何与非工程师交谈

    • 如何管理开发时间

    • 如何管理第三方软件风险

    • 如何管理咨询

    • 如何适度交流

    • 如何直言不赞同以及如何避免

    • 如何保持充满动力

    • 如何才能被广泛信任

    • 在时间和空间之间该如何权衡

    • 如何进行压力测试

    • 如何权衡简洁与抽象

    • 如何学习新技能

    • 学会打字

    • 如何进行集成测试

    • 交流语言

    • 重要的工具

    • 如何分析数据

    • 个人技能

    • 团队技能

    • 评判

  • 高级

    • 如何发展才能







    请到「今天看啥」查看全文