文号
t49579
阅读
9151
回复
18
收藏
9
【杂谈】新人的一点随感,编程以及其它
2012/08/13
IP:北京
来到这个坛子已逾一个星期的时间,期间偶尔也会参与一点讨论,更多的时候是默默浏览一些帖子。思前想后,觉得还是写一篇文,算是报道也好,发表一点看法也好…有时候我觉得,这就好比是一个变量的声明,从此算是让自己存在于这里 XD
不谈我之前领域内的积累和经历,来到这里,我是一个纯粹的新人,绝对没有来两天便指点江山激扬文字的意思,我能做的就是将自己的一点积累,转化成文字之后平淡的娓娓道来,浅显而轻松。
作为一名普通的开发人员,关注编程版更多一些,在这边除了看热闹,偶尔也许还能凑个热闹。
推算起来似乎上次写文还得是上个夏天或者更早以前,技术本身就是一个抽象类,在没有切入点的时候,很难将其形象化的定位。
于是我在写这篇文字的时候思绪也并不那么连贯,随性更多一些。

那么就从坛子里现在的一些比较主流的内容讲起吧。
首先就说说研究心态。关于边缘领域知识的深入,这个并不能算误区,激发一点兴趣也是颇有好处。
但我自身认为,编程是一件以实用为基础的学科,钻研是技术人员应有的基本素质,但猎奇却并不可取,
尤其是对中初级的编程人员,认为自己涉猎的东西让别人越难以理解越能体现自己的深邃,那还不如去读易经。
分享知识或者寻找答案,本身就需要带着一个虔诚的态度,例如分享源码,注释的意义相信更不需要我来多说。。

其次是关于基础知识,
坛子水多深,我不敢妄断,姑且贸然谈一谈技术层面的东西。
基于我自身的所学有限,就用我相对熟悉的领域简单举两个例子,
如一个C语言工程,从编写代码到最后生成exe文件需要经历哪些个过程,
常规的来讲,应该是6个过程,
分别为编辑coding、预编译precompiling、编译compiling、链接linking、加载loading、运行running
这六个过程分别是做什么呢?
编辑就是coding的过程,人为编写代码
预编译实际上就进入了编译阶段,只不过在此阶段处理宏定义
编译是代码转化阶段,将代码从可读码转化成为机器码,也就是我们所说的二进制码
链接阶段,编译器通过链接器将工程中的.c文件链接同时生成.obj文件,linux系统为.o文件
加载阶段,将转化链接好的工程载入计算机内存
最后的运行阶段,cpu读取机器码执行程序。
这便是十分基础的一部分知识,也许很多朋友也都知道。
但是,有些新人会费解,了解它们又有什么用呢?它们不可能让自己瞬间跃居高手行列。
而且这些知识全然不能吸引眼球,不能生成华丽的界面,也没有深邃的逻辑…
这便是传说中“基础知识”的真实形态,枯燥、乏味。
但是将他们铭记于心,如果未来走上编程路,总有一天会有奇效,救你于茫然无措之间^^

甚至连一个makefile都写不好,就大谈特谈linux,geek,安全,之后抱着黑客秘籍入眠。。这样的就不评论了。。。
有这样的时间不如默默的研究研究基础数据结构,就比如链表和数组的具体区别,我们无法拆开我们的内存,
但是我们至少可以通过编译器,看一看数组成员和链表节点在内存中的存储形式……肯定会带来很多的启发。

赘述这么多,可能有一点说教口吻,但无非就是希望大家来到这里,不要带着太强的目的性和追逐炫耀的心态,
心止如水。。自然得道
+99
科创币
wesker
2012/08/13
...赞成
+100
科创币
phpskycn
2012/08/13
学习了……
+101
科创币
十九
2012/08/13
....很有禅意....
+38
科创币
acmilan
2012/08/13
但是GCC编译完还有汇编这一步骤,因为编译输出的是汇编文件*.s
14年5个月前IP:未同步
438898
10楼
回 4楼(acmilan) 的帖子
阁下说得很对。 是这样的。
同时回复9楼朋友所说的,

的确,我在编译和链接这两个步骤中的描述有一些不清晰,[s:275]
准确的说编译环节win和linux都是有将C/C++代码转化为汇编码的步骤的,vc中也是可以看到的。
而链接环节则是对编译好的源代码,.obj或者.o文件执行链接命令,我们在链接阶段看到的.obj/.o文件严格的说产生于编译阶段的结尾。

.obj/.o的内容主要为机器码,太过细节的部分我了解的也不堪详细,不敢在没有把握的前提下再往下一个深度去讲了。呵呵。
引用
评论
14年5个月前IP:未同步
438899
11楼
回 1楼(phpskycn) 的帖子
感谢阁下支持~
引用
评论
14年5个月前IP:未同步
438900
12楼
今天骤然忙叨起来了才算透口气 。。
上边要求本周五出一本程序,处理优先级为高,评定级别居然还是hard level的
心碎。。

不过看到大家的回帖感到很高兴~~
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的