如何正确地选择并加入编程领域(仅限windows系统编程)?

原创 2011年11月15日 17:37:28
[作者]
站点:
http://www.x86asm.com
Email   : pliceman_110@163.com
QQ      : 643439947
编程生涯: 2001~至今
职业生涯: 9年
曾经职业: 通用软件架构师 通用软件技术总监 通用软件研发工程师
开发语言: C/C++; x86asm; Object Pascal; C#;
开发工具: VC++; Delphi;
研发领域: Windows应用软件安全; Windows系统内核安全; Windows系统磁盘数据安全;
技能种类: 逆向 驱动 磁盘 文件
原创书籍:
Windows编程入门-<无名的微型书>

[序言]
如何编程,如何学好编程,这是编程行业讨论最多的话题,面对不少刚刚加入编程学习组的学员,我同样少不了要先回答这个问题.下面简单分享我自己想法.由于现在是效率时代,所以我写这篇文章力求简洁.

[什么样的人可以学好编程?]
很多人都对编程感兴趣,但是一直都无法学好,觉得很困惑.到底是不是基础太差或者理解能力比别人差一截.在我眼里只要具备几个基础条件就可以学好编程: 智商正常 坚强毅力 寂寞能耐 好奇心强
1>智商正常
:只要不被医学定位为弱智,白痴就行了.
2>坚强毅力
:学习是需要付出代价的,大家回想一下初中 高中自己班里的优等生,大多数都是刻苦学习,你玩的时候,优等生是不玩的,你睡觉的时候,优等生是不睡觉的.
PS:这里我不是提倡书呆子学习,主要提倡是时间的重要性,学习是一个消耗时间的过程.
3>寂寞能耐
:学会和寂寞做斗争的人,学习是很枯燥的,所以寂寞经常来袭你,这时要学会变通方式,跟寂寞做斗争,而不是因为寂寞而放弃了学习.
4>好奇心强
:学习一门技术,重要的是兴趣和好奇,这种强烈的好奇心才能让你的学习激情持久.

[4个基本条件我都有了,如何编程呢?]
很多人编程感兴趣,但无从下手.是什么原因呢?
这是因为你没有认真分析您的编程兴趣来由.在学习编程之前,你要好好思考你是因为什么兴趣才编程的?只有知道你的兴趣来由,才能决定你编程领域,编程领域明确了,才能知道如何针对这个领域学习编程.

[现在都有那些编程领域呢?]
编程领域很多,我没法一一举例出来,这里只列出关注度比较高并且热门的领域:
PS:科研领域的编程,我就不列举.因为这是面向初学者

// 白色产业
1> 游戏开发
2> 系统安全
3> 网络安全
4> 数据库
5> 网络开发
6> 手机应用开发
7> 系统应用开发

// 灰色产业
1> 网络入侵
2> 破解
3> 游戏外挂
4> 病毒
5> 木马
6> 恶意远程控制

[挑选你感兴趣的领域并决定你的编程语言学习.]
因为我是Windows系统的软件开发工程师,而且是面向大众化的开发,而不是科研型也不是黑客型.所以我就简单打个比方,介绍我熟悉的.比如: 我喜欢"系统安全"和"系统应用"开发,那么这些大部分是基于C语言和C++语言基础的,然后慢慢派生出其他语言也可以进行开发,比如C# JAVA VB DELPHI都可以.但是我想说,大部分领域(破解 游戏外挂 病毒 木马 远程控制 游戏开发 网络开发 杀毒软件......), C语言和C++语言是编程的基础,所以对于初学者,一开始定位C语言的学习是正确的方向,把C语言掌握了,下一个阶段就是掌握C++语言.只要你熟悉掌握C语言和C++,那么再去学习其他语言是非常轻松的.

[学习编程之前需要预先打好什么基础吗?]
也有很多人在担心这个问题,害怕基础不行,无法进入编程领域.其实这种想法是多余的.只要你智商正常,很多基础都可以后天弥补,而且可以同步进行.编程语言的英语关键单词量不多,只要你会自己手动查阅英文字典,对着看就OK了,没有必要说先让英语达到一定程度了,在去学编程.英语学习是可以同步进行的.再说到数学,文化在怎么低,也总得初中数学,初中数学的基础理论足够你去学习基本的编程语法(注意这里是指编程语法)了,因此没有必要等到把你的数学都补全了在去学编程,浪费时间了.应该学会同步.当然随着学习编程的不断深入,自觉的根据自身数学基础根基薄弱的地方进行补缺补漏,学习数学的原则是够你用就OK.因为你不需要成为数学家.

[熟悉掌握编程语言,如何深入提高自己的编程能力?]
要提高编程能力,跟自身知识理论有很大关系.下面我列举几个重要因素:
1> 英语
: 英语的好坏,决定你获取和消化国外技术文献的速度,很多先进的技术理念来自于国外,然后英文文献占用比例最大.如果你的技术来源渠道仅限于国内中文文档,那么你的技术提升会很慢.
2> 数学
: 这是非常有争议的话题,数学到底对编程起到多大作用,目前没有一篇文章解释得清楚.但我只能说,注意扬长避短.有些领域用到的数学理论非常多:比如视频编解码开发,模式识别,神经网络, 游戏引擎,但这些高深理论一般普通软件开发人员是不用去接触核心的.我个人认为如果不从事科研型的编程领域,那么本科4年的数学理论足够你用了.高端软件开发的数学理论重点是:离散数学.
PS:你们可以阅读我网站(www.x86asm.com)另外写的2篇文章: "不要因为英语和数学而害怕学习编程" "迈向高端软件开发的数学必经之路"
3> 数据结构+算法
: 这理论是关键的,掌握的程度越高,你写的程序效率就越高越漂亮越有技术含量.说白了这东西就是让你程序处理数据更加快.
4> 操作系统理论
:了解系统的运作原理,可以让程序运行的时候更加稳定更加安全更加健壮,让程序的质量得到最优质的保证.
5> 老师/师傅
: 三人行必有我师 这话是错不了的,正确的人给你正确的指点,对你能力提高是有非常重要的作用,会少走很多弯路.

[结束语]

如何学好编程,其实还是老经验:
1>兴趣 2>努力 3>老师/师傅 4>基础 5>持久
(PS:注意这里是有排名先后的)
学习编程首先还是兴趣第一,有兴趣你才会知道要努力的学习,然后学习是不能盲目,有老师、师傅指点你会学得更加快少走弯路.知道努力学习了,那么就要把自己薄弱基础打好打厚,剩下的就是要持久了,保持持久的学习状态.



80x86汇编小站站长简介-2014年08月23日

[人生格言] 1] 一生都用头脑而不是情绪解决问题 2] 只有偏执狂才会成功 3] 在最困难时都要保持一份幽默感 4] 吾生也有涯,而知也无涯,以有涯随无涯,殆已 [简历] 我的生日:...
  • Code_GodFather
  • Code_GodFather
  • 2010年01月16日 22:18
  • 22453

win32系统编程,比较经典的一本书

  • 2008年04月14日 10:22
  • 4.45MB
  • 下载

windows系统编程

  • 2015年10月29日 11:58
  • 36.42MB
  • 下载

Windows系统编程(原书第4版).pdf

  • 2013年11月28日 14:03
  • 41.9MB
  • 下载

windows系统编程源代码第四版

  • 2013年11月28日 13:43
  • 3.41MB
  • 下载

Windows编程

本文整理自百科、知乎与 科学家的世界、Windows编程基础 问题一:为什么开发windows应用程序不用c 而用.net,java,c++? 用 c+windows API  开发window...
  • bigpudding24
  • bigpudding24
  • 2015年10月04日 22:38
  • 1758

[Windows系统编程].李晓黎.扫描版.pdf

  • 2014年03月28日 21:04
  • 38.3MB
  • 下载

Windows系统编程之编写Windows服务(1)

一、Windows服务简介: Windows服务,也称NT服务,提供将服务器转换为可以用命令或者在启动时初始化的服务所需的管理能力,初始化发生在任何用户登录之前,服务可以暂停、恢复、终止、监控。 ...
  • liwuji930726
  • liwuji930726
  • 2014年01月14日 18:22
  • 2719

Windows系统编程(原书第4版)中文版本.pdf

  • 2014年12月21日 20:49
  • 41.9MB
  • 下载

Windows系统编程(五):Windows内存

作者:yurunsun@gmail.com 新浪微博@孙雨润 新浪博客 CSDN博客日期:2012年11月28日 ...
  • sunyurun
  • sunyurun
  • 2012年11月28日 20:26
  • 2187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何正确地选择并加入编程领域(仅限windows系统编程)?
举报原因:
原因补充:

(最多只允许输入30个字)