找回密码
 立即注册
楼主: luckstar

[学术/精华文章] 苦逼程序员必读基础

[复制链接]
发表于 2012-12-30 19:18 | 显示全部楼层 |阅读模式

程序的基础是什么


作为一个程序猿,至少60%的工作时间是在与代码打交道,不管是自己写代码还是读别人的代码,还是学习新的技术,都会花大部分的时间操作代码。

试问一下,作为一个程序猿,你写代码的目的是什么?当然养家糊口是必然的。但是除了这个之外,很多人应该会觉得:写代码当然是为了实现程序功能!

我们都学过很多计算机基础课程,什么计算机原理啊,编译原理啊很多。我们可以回忆一下代码的工作方式:

1. 首先,我们会选择一种编程语言,不管这个语言是什么,对计算机来说最终的结果是一样的:二进制文件

2. 选好了编程语言之后,我们会选择一款合适的IDE,比如Eclipse,Visual Studio,然后在里面敲代码,敲完代码之后让IDE编译成一个二进制文件

3. 运行二进制文件,执行程序功能

从上面的工作流当中,以程序猿的逻辑来看,实现程序功能的并不是代码,而是由二进制文件实现的。代码的主要作用是告诉编译器,我需要一个实现这些程序功能的二进制文件。

所以代码的主要功能是把功能需求翻译个编译器

但是编译器是很牛B的,你把你的所有代码写成一排,或者按照要求的缩进换行,对它来说没区别

不过写成一排的代码可能没有人能看懂,包括作者自己
基于上面的分析我们再来回忆一下我们的日常工作:

1. 我们需要实现一个功能,大概想一下怎么实现

2. 实现这个需要使用到系统接口A,我们跳转到接口A去查看它的使用方法

3. 使用接口A需要传递一个参数B,获取参数B需要使用另一个人的模块里面的方法C

4. 跳转到方法C去查看方法C的定义

5. 写下一条语句获取参数B传递给方法A
从上面的流程我们可以大概看到,我们的日常工作当中大概有20%的时间在想,20%的时间在写,60%的时间在看代码
因此:

代码的主要作用是给别人看的,实现功能只不过是顺便而已

程序猿的基础


很多人可能觉得程序猿的基础是编程语言,什么Java,C#,C++,C语言,甚至汇编

其实这些内容都很简单,只要你熟练掌握了其中一种,要学习其他的语言都很快,基本不需要经过所谓的学习过程,查一下语法手册就可以开始了

也有人觉得程序猿的基础是算法,思想

这些确实很重要,在学习这些内容的时候可以慢慢的把你的思维向程序猿的方向转换,变成一根筋

但是我觉得最重要的都不是这些

程序猿的基础应该是意识,意识到写出来的代码是需要给很多人看的,包括同事,自己或者以后需要维护这些代码的程序猿们,为了方便这些人,就需要把代码写得清晰,简单,易懂,没有歧义,易于扩展,易于修改

有了这样的意识,在写代码的过程中,为了追求对自己代码的要求,自然就会去查阅代码规范,设计模式,算法等等内容,经过一段时间之后自然就会培养出程序猿的思想

总结


写代码的时候不要为了快速实现功能就胡乱编码

不要为了少敲几下键盘就用简写,现在IDE的自动补全功能如此强大,你少打的几个字母没有任何意义,唯一的作用是让其他人看不懂

变量名取不出来名字的时候多斟酌一下,总会找到合适的名字

程序结构上,如果自己觉得不妥了,多推敲一下,设计模式的书就是这个时候用的

不要害怕重构,重构的目的就让你的代码和你的技术一起变得更好

当你对我上面提到的这些内容感到厌烦的时候,回忆一下你以前看别人的代码的时候想砸显示器的心情
发表于 2013-1-21 16:58 | 显示全部楼层
楼主说的很对,总之就是多练,100000000000000000000行代码写下去自然就牛B了~
发表于 2013-4-7 09:48 | 显示全部楼层

不错 不错 不错{:soso__3922851084632044791_6:}
发表于 2017-3-20 11:52 | 显示全部楼层
楼主是超人
发表于 2017-3-20 12:31 | 显示全部楼层
顶顶多好
发表于 2017-3-20 12:28 | 显示全部楼层
说的非常好
发表于 2017-3-20 12:08 | 显示全部楼层
很好哦
发表于 2017-3-20 12:41 | 显示全部楼层
LZ真是人才
发表于 2017-3-28 17:12 | 显示全部楼层
很不错
发表于 2017-3-28 17:40 | 显示全部楼层
好帖就是要顶
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 10:36 , Processed in 0.095401 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表