程序员修炼之道读后感(二)

《程序员修炼之道》 程序员修炼之道--读后感章节重点序我的源码让猫吃了软件的熵石头汤与煮青蛙足够好的软件你的知识资产交流重复的危害正交性可撤销性曳光弹原型与便笺领域语言估算纯文本的威力shell游戏强力编辑源码控制调试文本操纵代码生成器按合约设计死程序不说谎断言式编程何时使用异常怎样配平资源 章节重点 《程序员修炼之道》,作者是Andrew Hunt、David Thomas。 作者简介为摘抄内容~ “亨特(Andy... 阅读详情

重复的危害
DRY原则(Don't reapeat youorself):系统中的每一项知识都必须具有单一,无歧义,权威的表示
四种重复:
加强的重复(impsed duplication):环境似乎要求重复(信息多种表示,注释,文档与代码,语言问题)
无意的重复(inadvertent duplication):没有意识到信息的重复
无耐性的重复(impatient duplication):开发者偷懒,似乎那样更容易
开发者之间的重复(interdeveloper duplication):大家重复同样的东西
复用是解决重复一个最好的方法
Make it easy to Rease.让复用变得容易

正交性
如果两个或多事物中的一个发生变化,不会影响其他事物,这些事物就是正交的。
Eliminate Effect  Between Unrelated Things.消除无关事物之间的影响。
自足(self-contained)的组件:独立,具有单一,良好定义的目的。
正交的好处:提高生产效率,降低风险。
经常问问自己:如果我显著地改变某个特定功能背后地需求,有多少模块会受影响。
编码:让代码保持解耦,避免使用全局数据;避免编写相似地函数

可撤销性
如果某个想法是你的唯一的想法,在没有什么比这更危险的事情了。
一个灵活的框架随时适应变化的需求。
“薛定谔的猫”——任何结果都是可能的。
需求随时在变,而软件就变不起了,如果连软件框架都变来变去,那软件一定会失败。

曳光弹
做软件的时候可以时不时地抛出一个曳光弹,看看打中目标没有。
Use Tracer Bullets to find the Target.用曳光弹找到目标。
曳光弹代码并非用过就扔的代码,你编写它是为了保留它。
曳光弹代码有点:
用户能够及早看到能工作的东西;
开发者构建了一个他们能在其中工作的结构;
有一个集成的平台;
有了可用于演示的东西;
能感觉到工作的进展;
原型制作生成用过就扔的代码;曳光弹虽然简约,但却是完整的,最终构成系统骨架一部分。

原型与便笺
为工作流和应用逻辑等动态事物制作原理,便笺是一个很好的选择。
应制作原型的事物:
1.架构;2.已有系统中的新功能;3.外部数据的结构或内容;4.第三方工具或组件;5.性能问题;6.用户界面;
怎样使用原型:
在制作原型时可忽略的细节:正确性,完整性,健壮性,风格;
用一些“胶合剂”把组件粘起来
用便笺、索引卡片在白板上将系统建模;
原型嘛,又不是曳光代码,用完就扔了它。

领域语言
语言的界限就是一个人的世界的界限;
用业务的语言去描述业务问题,而不用编程语言,这样就不会钻牛角尖。
举个例子:在一组X.25线路上侦听由ABC规则12.3定义的交易,把它们转译成XYZ公司的43B格式,在卫星上行链路上重新传输,并存储起来,供

分析使用将来。
剪裁后的小语言:
From X25Line1 (Format=ABC123){
  Put TELSTAR1 (Format=XYZ43B);
  Store DB;
}
用户又添加一个需求:不应存储余额为负的交易,而应以原来的格式在X.25线路上发送回去:
From X25Line1 (Format=ABC123){
  if (ABC123.balance<0){
    Put X25Line1 (Format=XYZ43B);
  }
  else{
    Put TELSTAR1 (Format=XYZ43B);
    Store DB;
  }
}
Program Close to the Problem domian(靠近问题领域编程)
使用小型语言扩展现有语言

估算
Estimate to avoid surprise(估算,以避免发生意外)
130工作日和6个月,哪个显得更精确呢?
估算来自:
理解提问内容,注意问题域的范围;
建立系统的模型;
把模型分解为组件;
给每个参数制定值;
计算答案;
追踪估算能力;
Iterate the Schedule with the Code.(通过代码对进度表进行迭代) 

【读后感】程序员修炼之道——通向务实的最高境界 最近读了一本书——《程序员修炼之道》,颇有感悟。你别被这个名字吓到了,程序员的修炼之道,听起来很悬,其实非常实用。这本书,就是一个清单手册,有100条,每一条都是一个使用原则。如果你去读的话可能都不相信这是程序员写的,字里行间透露着幽默感。就比如其中有一节的标题是“我的源码被猫吃了”,这不是告诉你程序员养猫会咬坏键盘,其实是说,如果某一天你不小心把代码删掉了,别着急找借口甩自己的猫,而是要积极的寻找替代方案,这样幽默感在书里到处都是。我读的是第二版。这本书的出版日期是2020年4月,第一版是在20年前出版的 阅读详情

相关推荐

多尺度变换(Multidimensional Scaling ,MDS)详解

介绍多尺度变换基本原理

5213

程序员的修炼之道读后感

程序员修炼之道读后感 本周阅读了《程序员的修炼之道》,这本书一共8章。针对编程的实效进行一系列的阐述,详细的介绍项目开发中程序员担当的角色,读完本书丰富了自己对一名程序员工作的认知,也让我认识到自己以前的认识知误区,本书从多角度来讲述编程之道,介绍从程序员甚至到项目管理者在一个项目开发的过程中责任和义务,并总结了很多值得我去学习的“方法”,也可以说是前人积攒的财富,给我带来强烈的启发,以下几点是...

weixin_30719711的博客 421

ArcGIS图解建模工具与DEM提取山脊、山谷线(水文分析、表面分析)

参考汤国安、杨昕等编著的《地理信息系统空间分析实验教程第二版》 利用水文分析(流量)和表面分析(坡向变率)得到山脊和山谷线 文章目录1、基本概念1.1 正地形1.2 负地形正负地形的影响2、水文分析方法2.1 基本思想原理2.2 技术路线2.3 操作步骤2.3.1 正负地形的提取2.3.2 利用水文分析思想和工具提取研究区域的山脊线2.3.3 利用水文分析思想和工具提取研究区域的山谷线2.3.4 利用水文分析提取山脊线和山谷线结果3、表面分析方法3.1 基本思想原理3.2 技术路线3.3 操作步骤4、图.

fungis 1万+

读编程好书,内化并运用

文章是我在读《程序员的修炼之道:从小工到专家》这本书的时候看到的一篇我觉得比较优秀的序言,所以分享出来,也便于自己阅览,序言如下如下: 程序员心底的小声音 编程大约有三个境界,新手、高手和高不成低不就的中手。这三个境界,大致和王国维先生划定的做学问的三个境界一一对应。一般来说,如果不经过几十万行的代码的锤炼(衣带渐宽终不悔,为伊消得...

小Q的博客 420

S32K3双核实战:手把手教你用EB配置CAN与CANFD(附中断/轮询代码对比)

本文详细解析了NXP S32K3双核处理器在CAN/CANFD通信开发中的实战应用。通过Elektrobit配置工具链,从双核通信架构设计到EB tresos Studio配置全流程,再到中断与轮询模式的代码实现对比,全面指导开发者优化S32K3 FlexCAN模块性能,提升汽车电子系统的通信效率与可靠性。

weixin_30955617的博客 439

Vivado 18.3安装全攻略:从下载到配置的完整指南

本文详细介绍了Vivado 18.3的安装全流程,从下载准备到配置优化,特别适合FPGA开发者。文章包含硬件要求、版本选择、组件配置等实用技巧,帮助用户避免常见安装问题,确保稳定运行。重点解析了License配置和系统优化设置,提升开发效率。

weixin_28331555的博客 565

读《程序员修炼之道》有感

最近一段时间,自己在项目开发过程中出现了很多问题,于是根据同事的推荐读了这本书。读完后,自己最大的感受就是:在项目开发中,一定要规范自己的行为。 一个完整的开发流程应该有这样四步:分析→设计→编码→测试。我们不应该之把关注点放到编码这一步,而忽略了其他步骤。在接到开发任务时,应该先对需求要有一个分析,再写代码前,要对代码逻辑有个大致的归纳和总结。不要拿到需求就开始写代码,写着写着发现有问题,要么是遇到一个难点解决不了,要么是发现要返回修改以前写过的代码,要么是发现有大量的重复代码,又不能再次封装只能将错就

qq_39332031的博客 1467

记一次wireshark抓取QQ好友IP和火绒抓取微信IP

事情是这样的,,上个周,手机离奇的被盗,但没有关机,为了找回手机,粗学了一手QQ抓ip的手段。 这里我就直接做个演示,解析关键的点。 三种思路i. wireshark 抓取手机在线IPii 火绒抓取 微信在线接听IPiii 火绒抓取 微信在线不接听IP i. wireshark 抓取手机在线IP wireshark抓好友QQ的ip要求和对方打语音的时候要手机在线。 这里说一下,打语音和视频是直接能和对方建立连接,如果发文件,是直接发给腾讯的,抓不到包。 1.打开wireshark,通过电脑Tim给对方打语音

qq_29437513的博客 1万+

程序员修炼之道读后感1

通过阅读这本书,看到了一个道理就是如果要成为一个好的程序员,其实所需要的道理也多不了多少。只不过当水平不够时。永远不能认识到那些朴素道理的重要性。看到这些年中不少自己犯过的错误,我相信这也是一本经得起时间沉淀的数,只不过需要多点耐心。 如今,随着计算机的飞速发展,程序员这一职业应运而生。如何做好一个注重实效的程序员并拥有该哲学思想,我想这大概就这本书第一章教会我们的知识。身为程序的编写...

angshi0310的专栏 471

看完就会!手把手教您如何正确开启飞牛Nas 虚拟机的 IOMMU 硬件直通,让虚拟机的性能飙升!

看完就会!手把手教您如何正确开启飞牛Nas 虚拟机的 IOMMU 硬件直通,让虚拟机的性能飙升!

XiaoqiangClub的博客 1万+

【Python】解决 ERROR: Exception:Traceback (most recent call last):(亲测有效)

1、遇到问题2、问题解决

Fanjufei的博客 1万+

《程序员修炼之道--从小工到专家》读后感(二)

  读了《程序员修炼之道--从小工到专家》给我留下印象比较深刻的还有“石头汤”的故事,士兵开始煮石头汤利用村民的好奇心,一步步的引诱他们加材料,从而完成了以前从未有过的项目,这是一个关于温和而渐进的欺骗的故事。它讲述的是过于集中的注意力。村民想着石头,忘了世界的其余部分,我们也是这样,每一天。事情会悄悄爬到我们身上。大多数的软件灾难都是从微不足道的小事情开始的,大多数项目的拖延都是一天一天发生的...

weixin_45040144的博客 55

嵌入式视频应用开发者必读:嵌入式Linux+FFmpeg硬件编解码实战指南

在嵌入式Linux上,FFmpeg支持多种硬件加速API,比如VAAPI、VDPAU、CUDA,以及针对特定平台的专用接口(如NVIDIA的NVENC、Intel的QSV、ARM的Mali)。FFmpeg的硬件解码通过-hwaccel参数启用,咱们以常见的H.264和HEVC(H.265)格式为例,展示如何用VAAPI和V4L2实现高效解码。: FFmpeg硬件加速需要额外的库,比如libva(VAAPI)、libv4l2(V4L2)或libnvcodec(CUDA)。

大模型大数据攻城狮的专栏 2201

java程序员修炼之道 pdf_?活动丨和大咖云风来场1对1交流,分享《程序员修炼之道》心得...

曾经获得无数赞誉,畅销20年经久不衰的IT领域经典著作——《程序员修炼之道》,多年来频繁出现在众多行业大咖和广大读者的推荐书单中。如今,这本广受推崇、好评无数的经典之作出新版啦!▊《程序员修炼之道:通向务实的最高境界(第2版)》4月22日,本书译者云风与多位业内大咖作客博文视点直播间,进行了一场关于传奇程序员程序修炼之道的精彩对谈。上次的直播活动结束后,我们收到了超多热情读者的积极反馈,并纷纷分享...

weixin_39717704的博客 82

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深度学习工具包 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")

程序员修炼之道 pdf_活动丨想和大咖云风来场1对1的亲面交流吗?!快来分享你的《程序员修炼之道》学习心得!...

曾经获得无数赞誉,畅销20年经久不衰的IT领域经典著作——《程序员修炼之道》,多年来频繁出现在众多行业大咖和广大读者的推荐书单中。如今,这本广受推崇、好评无数的经典之作出新版啦! ▊《程序员修炼之道:通向务实的最高境界(第2版)》 4月22日,本书译者云风与多位业内大咖作客博文视点直播间,进行了一场关于传奇程序员程序修炼之道的精彩对谈。 (扫码获取直播回放) 上次的直播活动结束后,我们收到...

weixin_39591455的博客 94

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

程序员修炼之道-从小工到专家读后感

最近3周,利用早上的时间,阅读了《程序员修炼之道-从小工到专家》,这本书写得非常好,深有感触。可能由于水平有限,对于其中一些珠玑理解没有那么强的感受。这里主要讲一些我感触特别深的点。一、关于知识资产的概念 对我而言这是一个全新的概念,想想这么长时间以来,我一直没有让自己的资产增值,放着大好时间全部都浪费了,为此前不认真读书,感到难过。幸运的是,现在能认识到这个观点,并为后面的人生努力奋斗。哈哈,不

u013819292的博客 1646

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

活动丨想和大咖云风来场1对1的亲面交流吗?!快来分享你的《程序员修炼之道》学习心得!

曾经获得无数赞誉,畅销20年经久不衰的IT领域经典著作——《程序员修炼之道》,多年来频繁出现在众多行业大咖和广大读者的推荐书单中。如今,这本广受推崇、好评无数的经典之作出新版啦! ▊《程序员修炼之道:通向务实的最高境界(第2版)》 4月22日,本书译者云风与多位业内大咖作客博文视点直播间,进行了一场关于传奇程序员程序修炼之道的精彩对谈。 (扫码获取直播回放) 上次的直播活动结束后,我们收到了超多热情读者的积极反馈,并纷纷分享了自己的学习笔记。博文菌看后感动的不行!由此萌生了这样的想法: 读过此书..

博文视点(北京)官方博客 601

做一个优雅的程序员—《程序员修炼之道》读后感

之前读过的一本书,摘录些内容和感想和大家分享。这本书英文名字是:《The Pragmatic Programmer》,译名为《程序员修炼之道》,直译为《注重实效的程序员》。这是一本讲编程哲学的书,内容覆盖非常广泛但又言简意赅,300页的篇幅可谓全部是浓缩的精华。不知道你读过以后会不会像我一样顿觉相见恨晚、想一读再读?

做一个优雅的程序员 1万+

《高效程序员的修炼》读后感

本文来自http://blog.youkuaiyun.com/liuxian13183/,引用必须注明出处! 首先非常感谢陆经理的赠书,如有想购买的同学,可到当当购买,地址:http://product.china-pub.com/3768291 这本书讲的并不是通常市面所见到:教你如何使用一个类,研究它的内存与引用之间的关系;也不会教你如何实现一个功能或者一个界面;其实这本书是面对一个技术总监的书,如果你有志于CTO,那么我可以负责任的告诉你:你可以去购买它! 这是stackfl

劝学 3443

程序员修炼之道读后感

程序员修炼之道读后感   本书一共8章 针对编程的实效进行一系列的阐述,以前自己总是看一些偏向于纯技术的书籍都是针对代码技术的实现,并没有详细的介绍项目开发中程序员担当的角色,读完本书丰富了自己对一名程序员工作的认知,也让我认识到自己以前的认识知误区,本书从多角度来讲述编程之道,介绍从程序员甚至到项目管理者在一个项目开发的过程中责任和义务,并总结了很多值得我去学习的“方法”,也可以说是前人积攒

zzzEcho的博客 2860

高效能程序员的修炼—第一次读后感

高效能程序员的修炼—第一次读后感         最近利用在地铁上的时间看完了《高效能程序员的修炼》发现自己还是存在的很大的不足之处,或者说成为程序员就需要不停的学习,而我在一段时间很自满以为没有自己不能解决的问题,直到跳出了那个城市来到了北京才发现自己不过是一个很菜的菜鸟,在这里我那点知识根本是不够用的额,我突然发现了如果这么下去我们之间的差距就会变得很大,然后么我就每天花一点时间研究一些深入

雪域飞鸿 810

《程序员修炼之道》读后感

看到这个书名的时候,会不自觉的想起周星驰在《喜剧之王》中的经典桥段,手拿一本《演员的自我修养》激励着很多懵懂青年。 就像这本书的自序所讲的,这是一本包含有许多朴素的经验,写给注重实效的程序员的一本“演员的自我修养”。 刚刚步入编程队伍的我,正需要这样一本书给予我经验,也因为是多年精心耕耘的结果,一时不能全盘收入囊中,只能让思想先入为主,在开发中加以理解。 如何提问? 1:确切地知道你想要问什么,并尽量明确具体;2:小心而得体地组织你的问题,记住你是在请求帮助;3:发邮件时请使用有意义的主题;4:坐回椅子上,

a631464421的专栏 1014

程序员修炼之道第一章读后感

首先我读了序言,明白了这本书可能现在还是读不懂,但是书中的有些知识可能会帮助我以后开发软件少走点弯路, 所以,可能我现在还不太懂,但是我一定会好好阅读,尽量多理解书中的一些经验和内容,这是我对自己读这本书的要求。 求。 接着我读了第一章的内容,虽然第一章篇幅不多,但整体读下来还是收获很多的。在第一章的一开始,就教会了我做一 个做一个程序员的原则,那就是诚实和负责任。如...

weixin_30902675的博客 214

读书之《程序员修炼之道》

读书分享《程序员修炼之道》 0.0几篇序 读书之前首先看到的内容,让大家知道这不是一本烂书,本书从项目管理,软件架构和设计、代码编写和测试,各方面都有精彩的阐述。序中的重点内容: 《领悟程序员的哲学》 l 这不是一本只要读一遍的书 l 给程序员做培训的首选材料 《再次阅读,感受颇多》 l 公司新人的必备学习材料 l 看似朴素的道理,实际是若干经验的总结 n 看到了“破窗户” n

书读的太少,想的太多 3276

读不完《程序员修炼之道》,至少可以读完这70条

当我在图书馆看到这本《程序员修炼之道》的时候,直觉告诉我应该看看这本书,或许对我的成长有帮助。读完之后更加肯定了自己的直觉是对的。当时我虽然没有实际项目的开发经验,不能一时领悟其意,但我明白,这本书中总结的原则和方法对我来说是极为宝贵的,于是买了一本放在床头。

howard2005的专栏 1707

程序修炼之道读后感1

今天阅读了程序员修炼之道这本书的部分内容,内心有很多感触,所以写下这篇读后感,希望自己能有所提高。 文章讲了很多方面,谈到了工具的问题。就像伐木工人有很多工具,软件开发者也需要工具,伐木工具在随着时间的流逝不断演变,使得工作效率越来越高,同样时代也在要求我们掌握甚至开发更先进的工具。作为软件开发的初级学者,我深感自己对这个行业的理解远远不够,所以在日后更要要求自己深挖工具的使用...

146
上一篇: 需求管理
下一篇: 在优快云上我们能讨论技术吗?
interhui
博客等级 码龄22年 8粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值