如何学习编程(一):入门广陵散仙(wwwcnblogscomjunzhongxu)

本篇将是一个系列,重点讲述在外力很少的情况下如何自学编程,以及需要注意的一些地方。

一般来说,一些所谓的『高手』或者老师会告诉人们算法是非常非常重要以至于会不会算法就是你会不会编程的唯一标准。不过事实上并非如此。掌握算法固然是好,只是大部分程序并不需要高深的算法,而且招人的时候仅仅要求会算法的公司也是很少的(而且很难进)。我并不是学院派的人,所以虽然我本人也推崇学习算法,但并不推崇一开始就学习算法。

刚开始学编程的人总是不知道自己应该从哪里入手。实际上这是一个相当重要的问题。在我看来,学好变成有若干条件:·兴趣·数学/英语·财力

首先谈一谈兴趣。那些为了生计而寻找捷径学习编程的人并不在本篇的考虑范围之内,这些人我通常是不管的。兴趣是非常重要的一个条件,但是兴趣也是可以培养的。对编程的浓厚兴趣可以让自己自发地寻找各种各样的书籍、发现自己知识结构上的弱点、跟同行有效地进行交流等等。那些没有兴趣的人遇到了一个问题只会上论坛或者QQ群上要代码(而且多数脾气暴躁)。

数学和英语在一开始并没有什么影响,但是在你学有所成之后,开始接触复杂的内容的时候,数学能力就开始起作用了。很多计算机论文都是使用数学语言写的,对数学没有热情或者不够敏感的人将会很难跨过这个门槛学习一些书本上没有的东西。英语同样也是重要的,因为并不是所有的文章或书籍都会翻译成中文,或者及时翻译成中文。

财力并不是重点,不过至少在养活自己的同时要有闲散资金来不停地支付网络费用、书籍、电脑、外围设备等必须物品。

至于知识结构方面我个人的见解可能跟流行的观点有所出入。目前人们总是把知识结构比喻为一个金字塔,最下面是基础,上面一层一层更加深入而且更加专业的知识,最上是领域知识。老师们会说要学好基础,首先学好语言和算法,然后慢慢往上走。我自己并不这么认为。个人认为『从左到右』的学习方法是更加有效而且不会错过什么东西的,只是不能速成。

从左到右是什么意思呢?想象一个金字塔,最左边仍然是最底层的【基础】,再往左就涉及到更多的【基础】以及更多的上层内容了。这样一步一步下去就会有【基础】--【上层】--【基础】--【上层】这样的不断循环。这么做的好处是成果快,能够培养起兴趣和成就感,而且基础随着应用的需要慢慢积累,等到学有所成的时候,基础也覆盖完了,上层的东西也看得差不多了,就可以超越金字塔自己翱翔了。

好了,那么如何培养兴趣呢?

人总是对有趣的东西比较感兴趣的,而且这种东西如果不难入门的话,那么接受起来更加容易,跟容易培养成就感,也就更有兴趣了。根据实际情况,个人推荐刚开始接触的时候应该学习C#,理由如下:

·C#的书籍非常多,语言内核简单易懂,类库丰富·C#制作界面简单·C#屏蔽了有关操作系统和底层的大部分事情,可以让学习的人专注于自己感兴趣的内容

如果不是特别着急的话,一开始就对着C/C++的数组啊指针啊什么乱七八糟的东西我觉得没什么必要,反正将来自然就知道了。我在这里推荐C#的另一个重要原因是Microsoft Visual Studio .NET的C#编辑器有一个无敌美好的提示列表(按了一个“.”之后弹出来的),这对于初学者来说是相当好的一个工具。

学习GDI+是有很多好处的。不过在学习之前应该找本相关的书来看。GDI+有一些比较高级的功能如半透明效果和画刷等等,容易组合出一些非常漂亮的图形来。学会GDI+的基本操作之后,就可以慢慢接触一些图形滤镜、分形、三维的内容了。使用平面工具绘制简单的三维图形是一件非常有意思的事情,而且非常锻炼数学能力,所得到的效果也是『令人震撼』的。

随后应该学习字符串处理。典型的字符串处理有分析INI文件、对一个四则运算式子进行操作等等的内容。虽然C#处理器字符串出来比C++稍微蹩脚一点,不过在这个时候忽略这个问题是相当有用的,至少不用陷入无穷的指针漩涡里面去。

等图形和字符串都少有涉猎之后,就可以开始开发有趣的程序了。譬如用C#些动画、开发画函数图的工具、自己设计一种高度简化的HTML然后进行渲染制作自己的帮助程序、或者开发简单的图像处理软件之类。稍微聪明一点的人,如果每天都有机会写很多代码的话,大概半年到一年就可以走到这里了。

为什么我会选择图形和字符串两种东西呢?为了培养兴趣,首先要有成就感。图形跟字符串都是跟操作系统本身没关系的东西,而且操作起来也没什么注意事项,因此入门比较简单。如果渐渐深入的话会激发起学习数据结构、算法、甚至是数学英语的热情。如果可以使用这条主线贯穿整个编程的初级阶段的话,得到的将会是扎实的基础以及灵活的头脑。

好了,今天就先说到这里。下次再写续篇。在此解答一下大家有可能提出来的疑问。

·数据库和网络都很热门,要不要学呢?--这两门技术掌握了也是很好的一件事情,而且作为入门的话也未尝不可。只是如果一开始就往数据库和网络的路走的话,将来可能会错过一些学习操作系统底层以及复杂的算法的机会,因为这两种东西不会让你有学习大部分有深度的知识的动力。

·算法为什么不一开始学习呢?--学会了算法,但是没有有趣问题给你解决的话,那学来干什么?而且学习算法的最终目的是让自己拥有设计算法的能力,很多人都忽略了这一点。

·学会了GDI+和字符串之后能不能找工作呢?--不能。做人切勿急躁,学编程没有个三五年还是不要把自己看得太厉害的好。

THE END
0.Python编程实战:从入门到精通的全方位指南python 学习目录 第1章 搭建开发环境实战 1.1 安装Python环境 范例01-01:在Windows系统中下载并安装Python 范例01-02:在Mac OS系统中下载并安装Python 范例01-03:在Linux系统中下载并安装Python 1.2 安装开发工具 范例01-04:使用Python自带工具IDLE 范例01-05:安装PycharmjvzquC41dnuh0lxfp0tfv8okcngo9>4ctvodnn4fgvgjn|434479:=>:
1.2025零基础编程初学者入门指南(超详细),带你从入门到精通,收藏这篇就够这些基础知识是编程的基石,只有牢固掌握了它们,才能更好地进行后续的学习和开发。基础不牢,后面的学习会越来越吃力,从而跟不上,导致对编程失去信心和兴趣。 可以通过阅读相关的教材、在线教程或参加编程课程来学习基础知识。在学习过程中,要注重实践,通过编写代码来加深对知识点的理解和掌握。同时,要养成良好的编程习惯jvzquC41dnuh0lxfp0tfv8kn{akowv4ctvodnn4fgvgjn|4368783:6;
2.自学编程入门,先学什么语言好?零基础入门到精通,收藏这篇就够了第一门编程语言学什么? 如果你是一名刚入门的学生,大学通常都会上一门 C 语言课,无论是计算机专业,电子通信等理工科类专业都会学习作为基础入门语言,因为 C 语言是很多语言的母语言,很多语言都是借鉴的 C 语言,比如 C++,Java 都是 C 语言发展而来的高级语言,吸收了 C 语言的优点,并且在此基础上有新增了自己jvzquC41dnuh0lxfp0tfv8qgcj7388ftvkimg8igvcomu86648793A=
3.异步编程场景C#教程文章 高级主题 .NET Compiler Platform SDK (Roslyn API) C# 编程指南 其他C# 文档 下载PDF Learn .NET C# 使用英语阅读 通过 Facebookx.com 共享LinkedIn电子邮件 异步编程场景 如果代码实现 I/O 绑定方案以支持网络数据请求、数据库访问或文件系统读取/写入,则异步编程是最佳方法。 还可以为 CPU 绑定场景jvzquC41fqit0vnetqyph}3eqo5{j6hp1fuupny1eunbty4rtqmscvrkpi3hwrig1euoenuvu1gt{wh1
4.使用Async和Await的任务异步编程(TAP)模型Windows 运行时还包含许多可与 Windows 应用中的async和await一同使用的方法。 有关详细信息,请参阅适用于 UWP 开发的线程和异步编程以及异步编程(Windows 应用商店应用)和快速入门:如果使用早期版本的 Windows 运行时,在C# 或 Visual Basic 中调用异步 API。 jvzquC41fqit0vnetqyph}3eqo5{j6hp1fuupny1eunbty4rtqmscvrkpi3hwrig1euoenuvu1gt{wh1vcyl/jx{pensqwtwu/vsqpwcooooi6rqfgr