2008-7-5 20:43
imdemon
对初级软件开发者的一些建议(1)
对初级软件开发者的一些建议(1)
y$Da5]u T }2Tm
l6S
G(f}U&L#g8UoK
这是我对初级开发者在学习编程过程中的一些建议,针对的对象主要是大学前期对编程感兴趣的新手。
|-F0lk1}vQ
a
q|R+t+h-e9jA
选择一种能够快速见效的编程语言和平台
d(f%`u*`
"KiK*\(~(MX`K
你需要选择一个既实用又喜欢的平台,让它保持您的兴趣,激励您快速扩展您的知识,最重要的是你要喜欢。l*C3Q0GxU7w2h.}
FE%ir!X7}
有的文章建议初学者首先学习C语言,因为它是必需的、基础的语言;但是有些人会让您先学习Lisp,因为它有坚实的理论并通过一种简单的方式教给你许多编程概念。
u5wol(F3`/`
.R-]&zSd[
这些都是好的建议,只不过思考问题的角度不同。但是对于“第一种”要学习的语言,我认为选择一种你喜欢而且能够激发潜力的语言是比较重要的。Lisp和C语言都很好,但在更高版本中更容易欣赏到这些特点。
/Ew$q![o1Q)W b
我建议您将VisualBasic.NET作为首先要学习的语言。微软提供了免费完整的IDE,你只要安装包文件就可以了。重要的是,平台里包含了创建桌面程序和web程序的快速可视化设计器,你不需要学习整个图形工具而只需要熟悉编程环境就可以了。学习的代价是非常小的,同时你会学到很多以后学习其他编程语言的编程技巧。从教学的角度考虑,VB.NET不是特别的令人讨厌的陋习,它简单有趣,让您在一周内就可以做出实用的程序。-fYQFIu&E
1wq(g\%{I)rb
另外一种语言选择是Python。这种语言和VB.NET有许多相似之处,有terser语法。选择Python的唯一原因是它有一个较小的内置库和不提供固定的、标准的创建桌面程序或基于网络的应用服务设计器和框架。您可以单独下载这些工具包,但它不是立即见效,没有设计器您将在启动和运行上花费不少时间。y#vc;],j3e4l
JGnd4^1mK.ZM
参加论坛和在线社区
b h4]
stHM
+kt Bj(C}
通过加入论坛你会学到很多东西,坚信知识就是力量,在发问、解答问题或者仅仅是参与讨论的过程中你都会获得他人的尊重。
vqS%\@-Reu1]
*CLQ7Dr&Y
不要陷入“政治”讨论
x[4i7jEf7dFl[
]*Z.UV t
Q2AK
参加您喜欢的编程语言社区或论坛,不要陷入编程的宗教讨论。许多程序员对他们的行业有强烈的偏见,包括丰富的经验。他们大部分的争论围绕个人喜好、语言适用的不同领域,技能和知识水平而展开。这些争论会浪费你的时间,还不如利用这些时间去学习或写软件。
3unOao
6B2|;wa-MW$l3NH^
耐心、自信、谦逊
*}XRL&k9S^
D
RqA(zf y
了解你知道的以及不懂的,对不知道的知识不要灰心,只要不断的改进和学习,你就会变得更好。8`n?~ bw)k;e h
a*_ylEF}[;p
学习技术正如你学习编程
x+|W)x+K
sRJ gJ:]?
为您最喜爱的游戏或应用程序去学习数据库、XML、网络协议、提供编写插件的具体的API等。用你学习的第一种语言作为基础,去拓展需要的技术知识、尝试不同的东西,而不要太在意你的代码是否完美。't&s$eu8b oy#f
f-w.b#Y7@sv
不要忽视理论
+|.r9v4@`1l1q&[
1DuYq"?#r
最初的焦点是作事情并且让它有乐趣,这样做的过程中要明确知道你的工作意义。学习语言细节和相关的技术理论是很重要的。
3OV:}b v(oA
2{dE&W9[
hl
k
购买其他编程语言书籍Jk}F5J _(g,M
,q/o@Oe)A4ZIP6q
有些书籍看起来可怕又好像不是您需要的类型,其实并非如此,这些都是应该购买的。和其他书籍相同,前面提到的知识是一样的,但他们是有深度的并提供了很多更深入的语言运用。当你在寻求一本书时,要确保它能在解释如何做和实际上做什么之间提供良好的平衡。
f,v3N*}o;p(E$g[O
mE.zbG#nG!e
购买编程技术书籍B Gau.L&{I ]
Sy'PK:XA6T~Tp
在这个阶段,您不应该买那些与行业相关以及教你如何成为“专业开发者”的任何书籍了,应该买一些像编程实践、编程技巧方面的书籍等。我强烈建议您购买《Code》,作者是Charles Petzol。这本书内容翔实,有启发性,易懂,并会指导你正在做的东西。
^$O/YtYjC@x
P$[2l)n)vt4q"U
如果可以,找一位“领路人”Q/DD+`.D#Qz7f ~V
$E,Q`(w/kK"j
找一个聪明、热情并有经验的程序员做指导。即使他们只能抽出极少的时间帮你解决疑问,但是对你的学习也是极有帮助的。尊重他们的时间,只发问在其他地方你不能容易找到答案的问题。