# 软技能2: 软件开发者职业生涯指南
# 提出问题
作者心中的软件开发者是什么样的?
职业生涯应该怎么规划?
工资,副业,健康等能获得什么样的规划?
# 读书笔记
# 如何成为软件开发者
在自动化某一个过程之前,你必须知道手动完成这件事情的全过程。
你需要具备的职业技能:
- 数据结构与算法
- 一门编程语言
- 面向对象设计
- 数据库基础知识
- 源代码控制(git)
- 构建与部署
- 测试
做中学,学后教
选择哪门编程语言不重要。
在任何谈判中,谁先出价谁输(或者至少是处于明显劣势的地位)。在任何情况下,你都不应该透露你目前的工资信息,并且你永远不要说出你期望的工资水平,直到你拿到录用通知书为止。
因此,如果你只谈薪水,那么你在谈判桌上的筹码会大打折扣。重要的是,一定要记住,一笔交易的不同方面对不同的参与者有着不同的价值。
# 编程语言
- C语言工作在非常底层的位置,它允许开发者直接访问计算机的内存,操纵计算机的许多底层部件。你会发现C被广泛应用在操作系统、底层硬件、嵌入式系统等方面,甚至还有很多老款游戏。C语言通常被认为是面向系统的编程语言。
- C++;从技术上讲,C++是C的超集,这意味着C程序可以在C++编译器编译成功
- C#是一种面向对象的语言,表达方式类似于C++,但是要比C++简单得多,而且现在还具备许多函数式特性。
- Java也是面向对象的语言,主要语法基于C和C++,但是与C#一样,Java也非常简洁,不允许直接对内存进行操作,也不允许其他可能带来麻烦的对底层构造的操作。
- Python可以以面向对象的方式编写,也可以以过程式甚至函数式的方式编写,它是一种解释型语言,这意味着实际上它不被编译。与C、Java和C#相比,
如何正确地使用分支。
持续集成(CI),即每次有人签入新代码都要构建软件。
伟大的开发者都会编写可维护的代码
我每天都花一定量的时间阅读和学习,让自己能够掌握整个行业的动向,借此保持我对技术的敏感性。”
太多的员工无法与老板恰当相处,并不是因为他们故意让这事变得困难,而是因为他们没有掌握要点。他们没有透过老板的眼睛看世界。他们不知道老板对下属的真实期望是什么,也不知道如何从老板的角度来区分好与坏。要想真正了解你的老板,你就需要了解老板的衡量标准是什么,要知道老板的衡量标准与你自己的衡量标准可不是一回事儿。
创业 迈克尔·格伯的《突破瓶颈》
事实上,我通常建议,大多数软件开发者要去完成的第一个兼职项目就是那些已经存在的项目的复制版本。
Take Action( 采取行动 )
# 读后感
这本书大而全的讲述了一个软件开发者一生中会遇到的大大小小的事,并尽量的给予了自己的建议,我从里面学习了很多知识,尤其是一些知识是碰壁后获得的经验,特别的感同身受,可惜当时没有早点阅读。但是也许是英文书翻译的原因,很多地方写的其实不是很吸引人,有点生硬的感觉。可惜英文不好,有能力还是要尽量读原著,加油。另外入手了《代码大全》和《代码整洁之道 》 ,今年一定要在成为伟大的程序员的路上更进一步,另外希望自己的兼职副业能产生想法,而且能付诸行动。Take Action !
# 读书记录
2021.2.25 - 2021.2.26 阅读时长4个多小时,因为很多地方速读的。作为大而全的一本书,个别章节值得后面回来翻阅下。