读系统程序员培养计划笔记

系统程序员的定义:

从事操作系统内核,DBMS,GUI系统,基础函数库,应用程序框架,编译器和虚拟机等基础软件开发的程序员。

 

软件开发的困难:

一是控制软件的复杂度。软件的复杂度越来越高,而人类的智力基本保持不变,如何以有限的智力去控制无限膨胀的复杂度?没有单个难题和技术细节是我们无法搞定的,而所有这些问题出现在一个项目中时,其呈指数增长的复杂度往往让我们束手无策。

二是隔离变化。用户需求在变化,应用环境在变化,新技术不断涌现,所有这些都要求软件开发能够射中移动的目标。即使是开发基础平台软件,在超过几年时间的开发周期之后,需求的变化也是相当惊人的。需求变化并不可怕,关键在于变化对系统的影响,如果牵一发而动全身,一点小小的变化可能对系统造成致命的影响。

 

技术能力与工作态度并重:

做一流的程序员,也要德才兼修才行。既要培养自己的技术能力,也要注重个人道德修养,为人处世的素养。

 

理论,思考,实践,勤奋缺一不可。

 

VIM和emacs是linux下最流行的代码编辑器。学习vim可以通过vimtutor教材。

掌握gcc,gdb

 

业余程序与专业程序员之分在于一种态度。

首先表现在代码风格上,专业程序员才能写出人能读懂或者易懂的代码。首先要从代码风格开始,从此养成一种严谨的工作态度。

 

专业程序员就要有一种精益求精的精神,朴实的态度。

 

什么是封装?(保护好内部的东西,不该让调用者知道的事,坚决不要暴露出来。)

为什么要封装?(1.隔离变化。2.降低复杂度。)

如何实现封装?(1.隐藏数据结构。2.隐藏内部函数。3.禁止全局变量。)

 

1.不要写重复的代码。尽量思考把重复的代码抽出来。不公共的部分用回调函数的方式让调用者来决定。

2.任何回调函数都要有上下文。(这个上下文就是回调函数额外的参数,这个额外的参数最好放在回调函数的第一个参数。虽然有时候这个上下文不一定用得到,留着以后方便扩展。)

 

缓冲区溢出是指将数据写到没有分配到的范围内,造成对随机数据的破坏,大部分问题都是缓冲区溢出引起的。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值