如何做一名程序员(一)

我要做一个什么样的程序员 2年前毕业误入程序员行业,是奔着传说的高薪水来的(绝大部分刚出校门毕业生的心态)。 自己不是一个甘于平庸的人,总觉得既然入这一行,就要在这行有一番作为,不能仅仅是为了赚钱,每天上班打卡似的工作,那不是我要的工作生活。 所以该做一个什么样的程序员,这个问题工作3年以来我一直在思考,探索。希望能给自己的技术生涯一个完美的规划。 阅读详情

如何做一名程序员

——一份简易但全面的个人总结

献给hire.com的全体程序员

作者:Robert L. Read

翻译:libtyger@gmail.com

 

原文链接:http://samizdat.mines.edu/howto/

作者的书:How To Be A Programmer

 

1. 简介

2. 入门

3. 进阶

4. 高手

 

第一章 简介

       成为一个好的程序员是困难、但同时也是有价值的。在实现一个软件项目中众人的愿景时,最头疼的就是要面对同事和客户。编程是一件重要而且需要大量智力和技能的工作,但和为做一款令客户以及各种对该软件负有部分责任的同事都满意软件而需要的其他技能相比,编程本身就是小儿科了。本文中我尽可能简洁的总结了一些自己希望在21岁时就有人讲给我听的有关上述其他技能的东西。

所以,这些内容注定会比较主观,甚至有一点点武断。我把讨论的范围限定在程序员工作中最有可能碰到的方面。其中很多问题以及解决方案都非常普通、大众化,所以我有时看起来会有些唠叨。尽管如此,我还是希望这篇文章能有所用处。

编程在课堂上就会教。很多优秀的书籍:The Pragmatic Programmer[Prag99],Code Complete[CodeC93],Rapid Development[RDev96],Extreme Programming Explained[XP99]都教我们怎么编程以及其他一些成为好程序员的话题。在看本文前或者阅读的同时,你应该读一下Paul Graham[PGSite]以及Eric Raymond[Hacker]的文章。与这些优秀的作品不同,本文更强调人们之间的关系问题并综合总结了我认为的必须技能。

文中的术语“老板”(boss)指代任何交给你任务的人。我等价的使用生意(business)、公司(company)、和部落(tribe)等词汇,除了以下一些区别:生意隐含着获得收益的行为、公司则指代现代的工作场合、而部落则是和你有着共同价值观的那群人。

 

注意:

如果你希望打印出来供私人使用,不打印后面的附录也许会节省一些纸张。

 

 

第二章 入门

1 个人技能

 

1.1 学会调试程序

 

调试能力(debugging)是成为程序员的基石。虽然动词调试(debug)的第一条意思是清除错误,但更意味这要能够检查并跟随程序的执行。不能进行有效调试的程序员是就像盲人一样。

 

那些认为设计、分析、或者复杂的理论、或者任何模糊的难以表述清楚的内容更加基础的理想主义者并非项目中承担工作的程序员。后者并不处于理想化的环境中。即使你是完美的,你仍然要接触由大公司或者像GNU这样的组织、抑或自己的同事写的代码。包括相应的文档,这些代码中的大部分并不完美。如果不能够跟随程序查看代码的执行过程,一点小问题都会让你摸不着头脑。通常这种能力只能通过不断的实验和调试实践获得。

 

调试是关于程序如何运行而非程序本身的。如果你的软件是从其他公司买来的,你通常获得不了源程序。但仍然会有代码运行和软件文档不一致(比较普遍和壮观的是你机器的崩溃),或者文档中并没有提到的情况出现。更加可能是,你创造了一个错误,检查代码后毫无头绪。毫无疑问,这意味着你做的假设并不完全正确,或者有一些你没有预期到的情况出现了。有时通过阅读源码你可以找到问题所在,但当这么做没有成效时,你就得调试了。

--------------

不太确定的内容用红色标出了。

GT-Power柴油机瞬态性能仿真与优化——基于EGR-VGT耦合控制策略【附案例】 本文探讨了GT-Power在柴油机瞬态性能仿真与优化中的应用,重点分析了EGR-VGT耦合控制策略的实际效果。通过案例研究展示了如何通过仿真优化提升柴油机的动力响应速度和排放性能,为车辆工程领域的工程师提供了实用的技术参考。 阅读详情

相关推荐

OriginPro实战:5步搞定碳材料拉曼光谱D峰G峰分析(附完整数据处理流程)

本文详细介绍了使用OriginPro进行碳材料拉曼光谱D峰G峰分析的完整流程,涵盖数据预处理、多图层可视化、高精度分峰拟合等关键步骤。特别针对材料科学研究中的基线漂移、多峰重叠等问题提供专业解决方案,帮助研究者快速完成从原始数据到科研级图表的全流程分析,提升碳材料表征效率与准确性。

vodka的博客 942

C++学习总结

C++:     钱能  C++程序设计教程              Stanley B. Lippman   C++ Primer              Scott Meyers  Effective C++              Bruce Eckel  Thinking in C++        设计模式:GoF Design Patterns 重构:

tyger的专栏 736

STM32CubeMX安装避坑指南:为什么你的Java环境总是报错?

本文针对STM32CubeMX安装过程中最常见的Java环境报错问题,提供了一套完整的诊断与解决方案。文章深入剖析了JRE版本冲突、环境变量配置错误、路径权限等核心原因,并给出了从系统级检查到手动修正环境变量的详细步骤,帮助开发者彻底解决安装难题,顺利开启STM32开发之旅。

prometheus9mon的博客 226

上班时间偷偷搞副业被抓,程序员惨遭解雇,还要退还所有工资 !

摘要:做副业的程序员并不少见,但一般情况下很少会有人在工作时间做,一是没时间,二是的确不太合适。然而,有个人在公司工作了十个月,最终被发现在上班时间做个人项目惨遭解雇,结果还被要求退还这十个月的工资,这是对是错?原文链接:https://levelup.gitconnected.com/my-junior-got-fired-and-sued-for-working-on-his-side-pro...

程序IT圈 348

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1658

速腾16线激光雷达(RS-16)在ubuntu18.04系统下跑SC-A-LOAM算法

说明: 简要记录一下速腾16线激光雷达即RS-16在ubuntu18.04系统下跑SC-A-LOAM算法的过程,因为SC-A-LOAM算法源码不支持RS雷达的数据,大致思想就是先将rs雷达发布的激光数据转换为velodyne类型的数据,考虑到接下来还要基于RS-16实时运行SC-A-LOAM算法,这里提前将RS_SDK驱动安装好。 1 搭建SC-A-LOAM算法运行环境 首先需要在电脑上搭建SC-A-LOAM算法的运行环境,见文章《ubuntu18.04搭建SC-A-LOAM环境并运行》 本文所使用的系统架

超爱吃小蛋糕的66的博客 2373

并不是所有的程序员都适合做技术管理

本文转载自:http://www.youkuaiyun.com/article/2014-06-13/2820217

不积跬步,无以至千里;不积小流,无以成江海 777

FPGA高速接口Aurora8B/10B协议实战:从IP核配置到数据流优化

本文详细介绍了FPGA高速接口Aurora8B/10B协议的实战应用,从IP核配置到数据流优化的全流程。通过Aurora8B/10B协议,开发者可以在FPGA间实现高效的数据传输,适用于高速接口设计。文章涵盖了协议基础、IP核配置、AXI4-Stream接口实战技巧以及性能优化策略,帮助读者快速掌握这一关键技术。

weixin_29280657的博客 268

程序员如何摆脱天天CRUD这种打杂状态?

小李毕业进了一家很大的传统软件公司面向企业的一个业务部门,和同期进来的6个应届生,一起从零开始,每天CRUD,吭哧吭哧“打杂”了两年。 和同期毕业的、进了互联网公司的同学一比较,小李发现自己的技术远远落在他人后面,心里焦虑重重,对当前“打杂”状态的不满越来越盛,于是他在某天中午找上司老周聊天。 小李:“老大,我打杂两年了,什么时候才能做点重要的事情?” 老周:“你说的打杂具体指什么?” ...

lamehd的博客 1215

docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

m0_55333789的博客 1557

R语言dlnm包避坑指南:手把手教你配置交叉基矩阵(附温度分层与滞后多项式设置)

本文详细介绍了R语言dlnm包在配置交叉基矩阵时的实用技巧与避坑指南,特别针对温度分层与滞后多项式设置提供了具体参数配置建议。通过解析`crossbasis()`函数的核心参数、温度分析的分层策略以及不同基函数的适用场景,帮助研究者高效构建分布滞后非线性模型,避免常见错误并优化模型性能。

weixin_34094282的博客 401

由《我也能做CTO》引起的作者与读者的交流

高老师:      您好!      很开心您能看到这封邮件      我是一名刚毕业的大学生,去年这个时候拿到了一些好企业的offer,但是一心考研,全部都放弃了。考研的失利让我不得不在一个五百多人的国企下属单位做ERP开发,有一种高不求低不就的感觉,但是我一直以来都是自学的Java,突然间放弃掉,让我很不适应,也让我很困扰,于是就捧起了高老师的这本书,给我了很多的启发,但仍然有一些自己解决

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

〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)

测试对象的定位和操作是我们利用 selenium 编写自动化脚本和 webdriver 的核心内容,其中 "操作" 这一部分又是建立在 "selenium" 元素定位的基础之上的。所以对元素对象的定位就显得越发的重要,接下来我们就学习一下常用的元素定位方法有哪些。......

易编橙 · 终身成长社群,相遇已是上上签! 4万+

写给《我也能做CTO》作者的一封信

Hi,亲爱的高老师,您晚上好~! 我在图书馆呆了两天,刚读完了您这本书,收获良多。今年的6月,我已经毕业了。来到社会,总觉得自己似乎少了点什么…… 我呢,有点害羞,有点好奇,有点天真。表面看,大学我似乎很忙,参加了很多社团很多活动,就只是玩玩没能很好的锻炼自己,五花八门的技术都找来看看,就没一样特别专的。看了您的书,便知道大学期间确实浪费了很多,最惨的是竟没有真正思考过自己的职业规划...

weixin_30359021的博客 104

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一名合格的程序员应该是什么样子

6 月 25 号,母亲打来电话,说妹妹的高考成绩离二本线差 9 分。我听完随口扔了一句,“在我的意料之中。”因为她平时的成绩也就在二本线上下徘徊。 这句话挺伤人的,尤其是对于高考失利的妹妹来说,她听完我的话,立马就哭了起来,情绪非常激动,质问母亲为什么要打电话告诉我(玻璃心)。 我参加高考了两次,两次都离二本差了 6 分,最后不得已上了大专——当时也陷入了人生的低谷,情绪很低落。一路走来,能体会到...

沉默王二 3万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

如何做一个理想的程序员

我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔。26岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭、害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有500万用户产品的后台主程。从前我对计算机技术心怀畏惧,认定技术高人一定有佛光笼罩,昼夜不息运键如飞日吐代码上万行。现在也算见过一些世面了,回首那段忐忑不安宛如初夜的过程,我...

zuihongyan518的博客 700

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

如何做一名优秀的程序员

------- android培训、java培训、期待与您交流! ---------- 如何成为一名优秀的程序员? 文章来源:vb大世界   -     一位仁兄说的“程序员写的程序不是算法+语法,而是要能够满足用户需求的工具”我非常赞同,要想达到用户需求就必须从各个方面来考虑如业务、人机交互、效率等方面,而不只是一个语言(语法)的问题,语言(语法)只是工具,只知语法不知其他那就真

liubin504的专栏 2059

作为一名Java程序员,我不接私活也能月薪38k

接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后跑滴滴一样,程序员私有时间接点活挣点钱不也很正常么,不过不要在上班时间就行,就跟你上班期间出去跑滴滴一样。但是我是不建议接私活的,接私活会浪费自己在一大部分的精力,就算不接私活,利用好工作后的...

weixin_34124939的博客 133

一名理想主义的程序员

01、 9 年前,我从象牙塔里走出来,正式踏入社会,懵懵懂懂地在一家日企开始了职业生涯。那时候,技术功底非常差,因为在学校的时候每天就一副吊儿郎当的样子,编程自然也没有好好学。 和我同一时间入职的新人有 19 个,大家都怀着一颗敬畏的心,因为生怕自己被淘汰出局。毕竟是实习期,如果工作表现不符合预期的话,是直接被辞退的,没有任何补偿。 所以在签正式的劳务合同之前,每天都紧张兮兮的。记得有一次,领导说...

沉默王二 6074

怎样做一名合格的程序员

怎样做一名合格的程序员 1、让自己的技术有竞争力 我想,对于这点,大家是毋庸置疑的,技术能力作为程序员的基础素质,也是我们首先需要关注的问题。 选择一门合适的语言。当然,这门语言需要有一定的市场,再结合你自己的兴趣进行选择,比如,你对人工智能,大数据感兴趣,那么你可以选择Python,如果你对Android或者服务后台感兴趣,那么你可以选择Java,尽量不要选择市场份额太小的语言,这样会限制你的选...

WX_timi的博客 687

怎么做一名合格的程序员? | 程序员有话说

作者 | 沉默王二 责编| 伍杏玲 6 月 25 号,母亲打来电话,说妹妹的高考成绩离二本线差 9 分。我听完随口扔了一句,“在我的意料之中。”因为她平时的成绩也就在二本线上下徘徊。 这句话挺伤人的,尤其是对于高考失利的妹妹来说,她听完我的话,立马就哭了起来,情绪非常激动,质问母亲为什么要打电话告诉我(玻璃心)。 我参加高考了两次,两次都离二本差了 6 分,最后不得已上了大专。当...

程序人生的博客 1669

如何成为一名优秀的程序员

很久写博客了,今天决定写一篇简单的感悟和分享,是一篇关于如何让自己更好的成长为一名优秀的程序员的文章,虽然目前本人还是一名渣渣,但我相信只要努力,终究会有成长和收获。相信每一个人都有自己的追求和向往,或许成为一名优秀的程序员正是追求之一,成为一名优秀的程序员也是我的追求之一,虽然追求的路途异常曲折但也要勇往直前。在讨论如何成为一名优秀的程序员之前,我们应该弄清楚优秀的程序员是什么样的,只有知道优秀的程序员是什么样子的,才能朝着这个方向努力,去提升自己。说到优秀的程序员,可能有的小伙伴说,牛逼的程序员不就是优

楠黎倾风的博客 2173

聊一聊程序员为什么都要做自己的产品!

这里的“产品”是广义的,它可以是你精心维护的开源项目,解决了一个特定技术难题,被同行使用和认可;在非AI的时代,优秀程序员和普通程序员之间的差距是巨大的,包括认知思维、技术能力、基本的谈吐等。这个过程,能让你对技术有更深的理解,对市场有更敏锐的洞察,甚至可能直接带来收入,实现某种程度上的“弯道超车”。因此,初级程序员需要主动学习,利用业余时间阅读技术书籍、参加线上课程或者参与开源项目,拓宽自己的技术视野,提升自己的技术能力。开始之前,大家可以先思考一下,在程序员的职业生涯中,一般都是如何提升自己的能力的?

测试开发技术 744

你为什么成为一名程序员?

兄弟姐妹们,还记得自己成为一名程序员的初心吗?遥想公瑾当年,不,遥想我当年,似乎是“命中注定”走上这条路的。因为不在计划之内嘛,所以走了很多弯弯路。 路漫漫其修远兮,我们就来上下求索一下,权当是一次复盘吧。我先来说道说道自己在程序员这条路上的点点滴滴,也许能够给颓丧或者迷茫中的你一些启发和感悟。在人生的不同阶段里,我们都需要和过去的自己认真地说一声“拜拜”,然后才能思索出未来前进的方向。 01、...

沉默王二 7709
上一篇: 对程序中的任何一点问题保持敏感
下一篇: 系统升级的准备
tyger
博客等级 码龄18年 15粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值