读书时间 05/29/2011 - 2

【社会科学】【管理科学】 第二十六章 评价管理——企业中通过评价实现人的管理方法和策略及行为01 编号类型领域评价人被评价人评价方法和策略评价控制的逐步推理思考的方程式及语言/话术/表情/姿态/动作/脸色/眼色关联知识法律法规和底线要求1绩效结果导向型评价绩效管理直接上级全体员工关键绩效指标法(KPI)与季度/年度复盘会推理方程式:核对期初目标(量化)→ 分析实际数据与目标差距 → 归因(外部/内部、能力/意愿)→ 共识下阶段改进点。 话术:“来看下我们Q2的业绩面板。你负责的A指标超额完成,值得肯定。但B指标有10%的缺口,你分析主要是什么原因?” 表情/姿态:坐在会议桌同侧,电脑屏幕或文 阅读详情

 

《Linux环境下C编程指南V2》杨树青

 

注:本书对于gcc/gdb/make等开发工具讲得比较详细。

 

0. 杂问

Q:wait()返回第一个已返回的子进程status,其它如何处理?

Q:当父进程没有捕获子进程信号,导致其它子进程阻塞,这些子进程就成为zombie进程???

 

1. TCP三次握手过程

 

* Server:调用listen(),并调用accept(),等待Client发起请求

* Client:调用connect(),向server发送SYN1请求

* Server:回复ACK1,并发送SYN2请求给Client,此时,连接被放进一个”未完成连接“对列中

* Cllient:回复ACK2

* Server:接收到ACK2,完成连接,并将连接放进”已完成连接队列“中

* Server:从”已完成连接队列“中取得已建连接的socket

 

注:监听socket有2个相关的连接队列,”未完成“”已完成“

 

2. 几个系统调用

int shutdown(int sockfd, int how);

int getsockname(...)

int getpeername(...)

 

3. 并发服务器实现一个特殊考虑

子进程:close(listen_fd),父进程:close(com_fd)

解释:

父子进程都有文件描述符副本,其本质是对应到一个”打开文件列表“中的一个表项

close(fd)实际动作是删除当前进程中相关表项

另,文件的真实存在由内核中的文件内核对象来表示,close(fd)每执行一次减少内核对象引用计数而已!

 

4. I/O模式:5种类型

 

* 阻塞式

等待I/O操作完成,被唤醒并继续执行

socket默认为阻塞式I/O,recvfrom()需要等待数据从内核copy到用户进程空间数据准备好,才会返回

 

* 非阻塞式

立即返回,若未准备好,则返回error

一般需要轮询数据

 

* I/O复用模式

通常使用select()

 

* 信号驱动I/O模式

内核准备好数据后(复制到用户空间),发出SIGIO

在SIGIO的handler中,调用类似recvfrom()等语句来处理数据

 

#info SIGIO

 

24.2.4 Asynchronous I/O Signals
-------------------------------

The signals listed in this section are used in conjunction with
asynchronous I/O facilities.  You have to take explicit action by
calling `fcntl' to enable a particular file descriptor to generate
these signals (*note Interrupt Input::).  The default action for these
signals is to ignore them.

 -- Macro: int SIGIO
     This signal is sent when a file descriptor is ready to perform
     input or output.

     On most operating systems, terminals and sockets are the only
     kinds of files that can generate `SIGIO'; other kinds, including
     ordinary files, never generate `SIGIO' even if you ask them to.

     In the GNU system `SIGIO' will always be generated properly if you
     successfully set asynchronous mode with `fcntl'.

 -- Macro: int SIGURG
     This signal is sent when "urgent" or out-of-band data arrives on a
     socket.  *Note Out-of-Band Data::.

 -- Macro: int SIGPOLL
     This is a System V signal name, more or less similar to `SIGIO'.
     It is defined only for compatibility.

 

* 异步I/O

效率最高,一直到等待与复制(到用户空间)工作完成后,内核才通知进程

 

5. 几种主要的高级I/O方式(注:此话题需要稍后详细研究 )

 

Q:这些东东只和TCP socket有关吗???

 

* select()

以前比较流行的多路复用方式,尤其对于并发网络服务器编程

 

但是:

一个进程中对打开的FD数目有限制,默认Linux下为1024,对于大并发系统明显不够用

使用多process方案虽然可缓解此问题,但process相比thread带来的开销在大并发下不可小视

效率随socket数目增加而线性下降,原因是select()要对所有socket进行扫描

 

* poll()

非阻塞式I/O,采用了轮询

Q:效率方面和select()比如何?更少用吗?

 

但是:

缺点方面主要仍是随FD数量增加效率线性下降,同select()

 

* epoll()

实现了“伪"AIO

只扫描”活跃“socket,效率明显高于select()/poll()

最大socket数目无静态限制,主要和内存大小有关,在偶的机器上VMWare/Redhat Enterprise中,数字如下:

 

[root@localhost ~]# cat /proc/sys/fs/file-max
44281

 

6. UDP编程

Q:当数据包发生丢失,将导致客户阻塞于recvfrom(),从而形成zombie process?

提供可靠机制的唯一办法是在发送端设置超时重传机制

Q:服务器未启动,但客户端无法检测?异步错误?

 

7. 原始socket编程

可处理ICMP协议数据?

注:研究一下ping程序的实现

 

 

 

 

 

 


 

 

 

 

 

 

Cursor Pro版保姆级开通教程:绕过7天试用,支付宝一步搞定(附地区报错解决方案) 本文详细介绍了Cursor Pro版的订阅流程,包括支付宝支付步骤和解决区域报错的实用方案。针对开发者常见的网络问题和云服务器配置需求,提供了从本地环境调整到云端部署的完整指南,帮助用户高效解锁Pro版的代码补全、私有代码库等核心功能。 阅读详情

相关推荐

UE4 Instanced Mesh 半透明渲染顺序不对解决

以绿色方块为Instanced Mesh为例。 正确的半透应该是这样的: 这是一般蓝图Actor方块,其半透是正常的。 然而Instanced Mesh因为过多,UE4不给你缓存正确的渲染顺序。所以,在不改代码的情况下,想解决Instanced Mesh半透问题,是不可能的。不正确的半透如下: 注意到错误发生在Instanced Mesh的方块与方块之间。 但我就是要解决,...

qq_41524721的博客 5569

读书时间 05/29/2011

《Linux环境下C编程V2》杨树青   1. gcc -pipe有何用? -Wall:提供N多警告信息   2. gdb Q:core dump的分析,似乎比较有用   3. 进程组 leader进程:进程组号=进程号 setgpid(pid_t pid, pid_t pgid);  // 当两号相等时即创建新进程组   4. 共享内存 int shmget(key_

printf1998的专栏 361

【STM32学习】(29)STM32实现595驱动三个数码管(标准库和HAL库实现)

我选用的单片机型号为:STM32F103系列 74LS595是一个串转并行输出的芯片,它能为单片机节省很多的IO口,应用场景广泛。 现要求三个数码管动态显示,常规设计都是并行实现,需要8个IO数据口,然后还需要3个IO片选数码管接口,这样大大占用了IO口,导致连接的外设变少。因此我们引入74LS595芯片。电路设计如下: 只需要三个共阴极数码管与三个595芯片级联即可完成,通过RCLK,SCK,SER三个IO即可完成对数码管的动态控制并显示。电路焊接的实物图如下: 要求完成功能:实现数.

XiaoCaiDaYong的博客 8263

计算机系一班班会,天津科技大学计算机学院读书节10102i1班班会.ppt

天津科技大学计算机学院读书节10102i1班班会计算机学院读书节 网络(1)班主题班会 书香沁人 ---读书节活动策划 ...

weixin_39895684的博客 241

2025.03.14【读书笔记】|GWAS分析神器:BOLT-LMM工具介绍与快速安装

在生物信息学领域,全基因组关联分析(GWAS)已成为揭示遗传与疾病关系的强有力工具。BOLT-LMM作为一款专为大规模样本量设计的GWAS分析工具,将极大地提高研究人员的工作效率。大家好,今天我们来聊聊一个非常强大的生物信息学工具——BOLT-LMM。它是基于线性混合模型(LMM)的全基因组关联分析(GWAS)分析工具,通过快速的方差近似方法在计算效率上实现了显著的提升。BOLT-LMM的高效性能使其成为大规模样本GWAS分析的理想选择,它将进一步推动生物信息学和遗传学研究的发展。

1093

【深度学习】基于BERT模型的情感分析(附实战完整代码+数据集)

情感分类是一个快速发展的研究领域,尽管众多模型和数据集在二分类任务中显示出很高的准确性,但细粒度的情感分类任务仍然是一个很大改进空间的领域。分析SST-5数据集,Munikar等人的先前工作表明,嵌入工具BERT允许使用简单的模型来实现最新的准确性。

aaaa_hsjsueu的博客 2万+

《Data-intensive Text Processing with MapReduce》读书笔记(入口)2011.7.23最后更新

本文是《Data-intensive Text Processing with MapReduce》一书(豆瓣链接)读书笔记博文列表。 这是我的第一个读书笔记,其中翻译与表述不当之处,望广大网友不吝赐教。 目前的状态:正在看书,边看边写,随着看书进度更新读书笔记。 虽然进度上没有绝对保证,但将读书笔记以博文的方式发布出来,是对自己的督促。 无论如何,我将认真研读并撰写报告。更新速度为3天左...

weixin_34290352的博客 119

Cadence公司的数字IC设计工具:综合工具(Genus)——(2)

介绍Cadence公司的数字IC设计工具Genus

qq_42922513的博客 1943

python-flask计算机毕业设计校园社交读书App(程序+开题+论文)

该App旨在打破物理界限,为学生提供一个便捷、高效的平台,促进书籍资源的共享与交流,丰富校园文化生活,增强学生之间的互动与联系。通过该平台,学生不仅能够方便地获取图书资源,参与各类读书活动,还能结识志同道合的朋友,共同分享阅读的乐趣与收获,从而激发阅读兴趣,提升综合素养。本研究的意义在于,一方面,通过校园社交读书App的开发与应用,能够有效促进校园内图书资源的流通与利用,降低信息获取成本,提高学习效率;此外,该项目的实施还将为移动互联网技术在教育领域的应用提供新的思路与案例,推动教育信息化的进一步发展。

655

华为od 面试八股文_前端_03_含答案

华为od 面试八股文_前端_03_含答案

MISAYAONE的博客 2130

G120变频器抱闸逻辑在提升机上应用

一、前言: 对于提升机、起重机、堆垛机、升降机等提升机构,负载为位能性负载,在设备启动和停止阶段,由于重物作用,可能会出现“溜车”现象、控制变频器与电机抱闸时许可以解决此问题 使用具有矢量控制功能的变频器 二、参数设置 抱闸控制时序: 启动: 1、变频器接收到启动命令时-----输出电流对电机进行励磁,经过P346电机励磁时间(==丹佛斯 设置启动电流延时0.5S)------达到一定的转矩 2、变频器输出开抱闸命令,经过P1216延时打开抱闸时间(==PLC延时控制打开抱闸) 注意:抱闸

fenglingxicao的博客 1万+

(2011.10.19-2011.11.15)二十八天的学习小记

二十八天的学习小记(2011.10.19-2011.11.15)         继上次写学习小记(http://blog.youkuaiyun.com/neicole/article/details/6887312)又过了二十八天了,这些天的学习状态,感觉还行,也终于把想完成的任务完成了,在2011.10.25(大二的学习计划) http://blog.youkuaiyun.com/neicole/article/d

Neicole ~~ 学习旅程(大学) 1074

揭秘大厂 Unity 红点系统设计:别小看右上角那颗小红点,它能把你项目搞崩

本文详细探讨了游戏大厂如何设计高性能红点系统。红点作为提升用户活跃和转化率的重要工具,需要支持多级联动、动态判断和全局一致性。系统采用观察者模式和树形结构,分为数据管理、逻辑判定、订阅通知和UI展示四大模块,通过事件驱动方式实现高效刷新。文章特别强调了解耦设计、配置化管理和性能优化,并提出了热更新、数据分析等高级应用场景。最终指出,优秀的红点系统需要架构标准化、自动化配置和团队紧密协作,是大型游戏项目的关键技术基础。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 377

4点起床:最养生和高效的时间管理-中岛孝志

doc_type: weread-highlights-reviews bookId: '31595333' author: 中岛孝志 cover: >-

lsc_android的博客 163

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

记录读书一:JAVA的发展史

JAVA的发展史 Java发展的时间表。 (版本号 名称 中文名 发布日期) JDK 1.1.4 Sparkler 宝石 1997-09-12           JDK 1.1.5 Pumpkin 南瓜 1997-12-13           JDK 1.1.6 Abigail 阿比盖尔–女子名 1998-04-24           JDK 1.1.7 Brutus 布鲁图–古罗马政治家和将军 1998-09-28           JDK 1.1.8 Chelsea 切尔西–城市名 1999-

qq_37432174的博客 236

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android源码内核设计思想读书笔记

【读书笔记】 第一篇 Android编译篇读书笔记 第一篇 Android编译篇 第一章 Android系统简介 1Android各版本代号及发布时间 2 Android系统的特点 3 Android系统框架 第二章 Android源码下载 第三章 Android编译系统第一章 Android系统简介1.1Android各版本代号及发布时间: Code Name Version Api

在路上 805

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【敏捷个人俱乐部-北京】及【免费敏捷结果线下练习】报名帖

在今年春节后开始敏捷生活练习,得到了很多人的响应,为了继续推广敏捷个人,现在成立了第一个敏捷个人俱乐部-北京。俱乐部的一个持续的主题将是敏捷结果30天练习。线下活动一个月一次,时间均安排在周末,将通过线下交流分享的形式进行练习,每次进行30天练习的3次练习。 怕人多了效果不好,所以现在计划最多不超过40人。参加的人必须先加入敏捷个人俱乐部。每次必须参加,如果未经请...

weixin_30602505的博客 137

(转)一位存储研发者的图书清单

一位存储研发者的图书清单 所谓“行千里路,读万卷书”,读书应该算作是最好的学习方式。本人有个不好的习惯,就是不大喜欢看电子书,小论文也喜欢打印出来研读,图书就更不用说了,总是喜欢买书和藏书,尤其是经典图书。时间一久,书架上堆积满了琳琅满目的各种图书,心中突然有种莫名的满足感。闲暇之余,对杂乱无章的书架搞了一下整理工作,顺便选择了其中一部分杂凑成这个图书清单,期望给正在学习之路上的同学们提

zhangfanlong的博客 500

[开题报告]FLASK框架小学生课外阅读小程序28fh0(源码+论文)

程序界面:源码、数据库获取↓↓↓↓。

睿渊计算机毕业设计 617

一位存储研发者的图书清单

所谓“行千里路,读万卷书”,读书应该算作是最好的学习方式。本人有个不好的习惯,就是不大喜欢看电子书,小论文也喜欢打印出来研读,图书就更不用说了,总是喜欢买书和藏书,尤其是经典图书。时间一久,书架上堆积满了琳琅满目的各种图书,心中突然有种莫名的满足感。闲暇之余,对杂乱无章的书架搞了一下整理工作,顺便选择了其中一部分杂凑成这个图书清单,期望给正在学习之路上的同学们提供一点参考。这个图书清单分为五个类别

刘爱贵的专栏 2万+

存储书目

所谓“行千里路,读万卷书”,读书应该算作是最好的学习方式。本人有个不好的习惯,就是不大喜欢看电子书,小论文也喜欢打印出来研读,图书就更不用说了,总是喜欢买书和藏书,尤其是经典图书。时间一久,书架上堆积满了琳琅满目的各种图书,心中突然有种莫名的满足感。闲暇之余,对杂乱无章的书架搞了一下整理工作,顺便选择了其中一部分杂凑成这个图书清单,期望给正在学习之路上的同学们提供一点参考。这个图书清单分为五个类别

谭琦文的专栏 828

(转)长到40岁学到的41件事

本文是从41 Things I've Learned By 40这篇文章翻译而来。   6月8日标志着我进入40岁。下面的是我这一路走来学到的41条建议:   41. 不要太在意别人如何看你。   40. 是人就有自尊。小心行事,不要伤害他们的自尊心。   39. 没有什么能比实干能给你更多的收获。   38. 不要嚼舌根。你所说出去的最终会以某种方式落回到你自己身上。   37....

weixin_30273501的博客 133

优秀程序员的45个习惯

态度篇 1. 做实事 不要抱怨,发牢骚,指责他人,找出问题所在,想办法解决。对问题和错误,要勇于承担。 2. 欲速则不达 用小聪明、权宜之计解决问题,求快而不顾代码质量,会给项目留下要命的死角。 3. 对事不对人 就事论事,明智、真诚、虚心地讨论问题,提出创新方案。 4. 排除万难,奋勇前进 勇气往往是克服困难的唯一方法。 学习篇 5. 跟踪变化 新技术层出不穷并不...

weixin_30632883的博客 56

高效程序员的45个习惯 --敏捷开发修炼之道

高效程序员的45个习惯 --敏捷开发修炼之道 分类: 程序员2011-05-23 10:53 95人阅读 评论(0) 收藏 举报 敏捷开发敏捷单元测试编程测试工作 看了一本书《高效程序员的45个习惯》,写的蛮好的,可以看看,对自己的工作会有提高的   前面的序言觉得写得蛮好的,摘抄一段吧   一般误认为敏捷就是快,越快就是越敏捷--字典上的名词解释是其依据。岂不知

legend_x的专栏 636
上一篇: 读书时间 05/29/2011
下一篇: 测试自动化 2011/06/04 - 1
printf1998
博客等级 码龄16年 14粉丝 196原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值