Google 工程师亲授:菜鸟开发者一定要投资的十大目标



身为软件开发者,有什么是一定得投资的? Google 软件工程师 Emanuel Saringan 整理了十项他认为必要的投资,第一项就是身体健康,英文与数学也都是必备能力吗?来看看他怎么说。(以下文字以作者第一人称撰写))

你的健康

无疑地,软件开发者是世界上最久坐不动的职业之一。

每天连坐八到十六小时,休息时间只有一点点,绝对会让你的鲔鱼肚肆无忌惮的生长。肥胖容易扩大罹患其他疾病的风险,例如心脏病等。要避免这种情形发生,尽可能分配时间运动或花点小钱在健身房上。

用不符合人体工学的方式长时间打字也让开发人员的肢体容易重复损伤,如腕隧道症候群。要避免这种情形,每打字几小时就要伸展一下你的手腕,并未你的鼠标与键盘都买个腕枕。

长期盯着屏幕看也会为你的眼睛施加压力,也因此如果你有配戴眼镜,最好配副防眩光眼镜,而不只是普通眼镜。

增进你的数学能力

数学能力能够改善你的逻辑思考能力、面对问题的态度、甚至是你的耐心。

某些数学技巧可以直接应用在软件开发,例如离散数学;其他能力则视领域而定,有不同的功用。举例来说,游戏开发者会很频繁的用到物理与微积分,但企业开发者则几乎不会用到。无论如何,数学能让你变得更好。

o 增进你的英文能力

程序设计/脚本/标记语言都是英文的,常见的开源计划如 Linux 也都是英文的。全世界的开发者都在使用英文,为跨国客户工作的开发者更是被逼得一定要会英文,才能为他们的需求找到解决办法。

发现了吗?英文之于人类,就像二进制之于计算机。

个人域名与网站

比起 OOOOOO@yahoo.com.tw 或 XXXXXX@gmail.com ,不觉得有自己的电子邮件地址酷多了吗?拥有自己的域名只需要一点点年费,却能让你脱颖而出。

个人域名也能让你潜在客户与同事立刻认知到你的自信与专业:你的品牌就是你自己。当然,前提是你的个人域名不能是什么「猛男爱小鸡」之类的(hotmale-loves-chicks.com)。

一个活跃的 GitHub 账号

对开发者来说,GitHub 账号就像是艺术家的作品集。

一台可靠的机器

你有听过没机器的开发者吗?我也没听过。身为软件开发者,如果没有一台自己开发用的机器,就像星际大战中的绝地没了光剑一样。这里说的好机器至少要有 4GB 的 RAM,最好能有 8GB。我可以推荐 4000 美元的 Mac Pro,但那些有极端需求的例外还是不适用。

快速的网络

网络是开发者的氧气。长时间不能上网就像被切断了氧气供给一样,让人无法忍受。拥有稳定的网络联机让你有观看网络教学、餐与论坛、跟上最新科技新闻的优势。

多读信息科学的经典书籍

以下是我推荐的软件开发者圣经:

1. Structures and Interpretations of Computer Programs(PDF)

2. Code Complete 2

3. Pragmatic Programmer

4. Refactoring

5. Introduction to Algorithms (The MIT Press) (PDF)

6. Discrete Mathematics and Its Applications (PDF)

7. Mythical Man Month

学士学位

无论你是应届毕业生,或是刚离职要寻找新工作的人,学士学位都能大大提升你找到工作的机率。你想想看,假设有数以百万计的研究生都争先恐后的抢着应征,那大学毕业生的履历被丢弃的机率有多高?

证照(自由选择)

证照考试能够看出应征者在特定科技的技术。通过一个证照考试代表这个人有资格深入了解组织的核心价值。

有些公司特别注重拥有证照的开发者,给予较高的薪水;有些公司则完全不在意。例如,如果你是个有证照的 Java 设计师,代表你透彻了解 Java 语言,但不保证你解决问题的能力有比较强。有些公司会把批判思考看得比程序语言的专业来得重,毕竟程序语言可以学,但问题解决是学不来的。
 

看完之后,散仙列下自己的topN:

1,健康  健康肯定是第一位
2,英文能力
3,优秀经典的书籍
4,一个活跃的github账号
5,一台配置差不多的机器和良好的网速 

No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts