对初学者究竟从什么语言学起剖析

本文探讨了初学者应该如何选择编程语言。建议根据个人目标及时间安排来决定学习路径,推荐从C语言开始培养过程化思维,或从VB6.0入手快速上手编程。

先自我介绍,好给非相关专业的人一点信心:本人英语系出身的。学程序设计时间也不短了,自视总算有了入门水平吧,目前做了一个月不到的C#程序员。

这是个争论不休的话题,网上经常会有《初学编程从什么语言开始》等文章被顶到无以复加的地步。不用我说,大家也都明白,因为已经入门的人的观点非常不统一。每个人走过的路不一样。

好了,上面对问题做了一个粗略的介绍,下面对问题进行分析,并试图给出结果:

首先我们看到,初学都被推荐的语言种类是比较有限的,似乎没有人推荐从matlab这样的语言开始学习吧?粗略统计一下,给初学者推荐的语言大约有这么几种:Pascal、C、Visual Basic、C++、Java、C#
其实也就可以分为两类:过程语言和面向对象语言
过程语言:Pascal、C,还有Basic?
面向对象:Visual Basic、C++、Java、C#,对VB面向什么大家有争论,可以暂且搁在一边,因为这不是本文要讨论的内容

当今时代是面向对象的时代,最终程序员多数是要使用面向对象语言的。但是究竟从什么语言学起呢?

其实这两种语言是两种思想的对象(也叫实例?),编程者要学的仅仅是编码吗?显然不是。要学的是什么?我想聪明的人已经猜到了:思想。对!就是思想。其实建议直接从面向对象语言学起的学者们,主要是怕人们从过程语言过来,会无法接受面向对象的观念。而推荐从面向过程语言开始学习的学者主要是考虑到过程方法在程序设计中的基础性地位,以及由此形成的思维对于程序设计思想严谨性的影响。

我这里要大放一下厥词:这些顾虑都是多余的!人是活的,他可以接受任何思想,only if他愿意。这就如同使用DOS和使用Windows一样,有人先学DOS,有人先学Windows,谁见过先学一者后无法学好后者的?如果见到的话,这样的人是不是对后者具有一种抑制心理呢?好了,答案我想聪明的读者都已心中有数。这里问一个问题:程序员学习语言会有抑制心理吗?如果有,他还适合干这行吗?

Fine!我想大家已经站在同一边了。于是:学习什么语言不重要,重要的是掌握思想,搞懂语言的思维方式。

下面具体分析究竟如何选择初学语言。

马克思说:具体问题,具体分析。是很有道理的。中国人是善于综合的民族,我们的观点怎么可以只是集中在小小的语言本身之上?我们应该根据多方面的因素综合考虑才对。

从简单的语言学起,逐渐学习更复杂(复杂并不一定难,只是内容多,有时反而简单)的语言,这样一步一步,逐渐增加自己的编程思想。因为简单的语言相应的包含的思想也少些,因而更易于去揣摩。先学习一门过程语言,再学习一门面向对象语言。
下面对不同群体给出不同的建议:

想成为专业编程人员的:
很明显,想成为专业人员,第一关就是要过意志关,C语言是不错的选择,对于初学者,它是够难地。同时,它的内容也较少,思想严谨,很适合初学者学习过程化的思想和思维方式。
在熟练了C语言之后,可以再扩展到C++语言,此时会发现:C++怎么如此象C语言?但随着学习的深入,就会发现两者的巨大差别,不久就会遇到新的思想:面向对象。在初步掌握了C++语言以后,就具备了自己选择下一步路怎么走的能力。(比如是深入学习C++还是转学其它?)

对于只是偶尔借用一下编程工具的人:
学习C或Pascal感觉非常困难,怎么办呢?此时笔者的建议是:先学习VB6.0,因为它非常简单,易有成就感,提高学习者的兴趣。对于没有意志的人,尤其有效,而且它的功能是非常强大的,基本可以满足简单的编程要求。此处还特别推荐有用到数据库的朋友使用VFP,它的编程风格和VB是一模一样,又很容易对数据库进行操作。这样以后可以由它直接跳到VB.NET,它是一个完全面向对象,功能强大的语言。

当然了,对于学习者来讲,还有一个时间问题,有人可能有四年时间,有人可能只有一个月或一周,该如何抉择呢?

对于有足够时间的人,依照我前面的建议应该是差不多了。当然,也可以自已选路来走,因为时间充足,可以把感兴趣的一一学习,不必考虑顺序。

对于时间紧的学习者来讲,首先要确定自己要用哪种语言(即要进行哪些应用)。不同语言有不同的特性,根据要用到的特性来选择学习什么语言。(各种语言的特点,可以自己百度)如果没有特定的方向或目的,笔者建议使用VB6.0,它简直是一学就会,一拿就能用。如果要用到数据库就用VFP。有时间的话学习一下C语言后学习VB.NET/C#/C++/Java等中的一门面向对象语言。

一句话:初学什么语言不重要,重要的是学和思。
 

<think>好的,用户问的是初学者应该从哪个编程语言学起。这个问题挺常见的,但每个人的情况可能不同,我需要先考虑用户可能的背景和需求。首先,用户可能是完全没有编程经验的新手,也可能有一些相关领域的基础,比如数学或者逻辑思维。不过问题里没有提到这些,所以我得保持回答的普适性。 接下来,我要回想常见的推荐语言,比如Python、JavaScript、Java、C++等。通常Python被推荐为初学者的首选,因为它的语法简洁,接近自然语言,容易上手。不过用户可能有不同的目标,比如想开发网站、做数据分析、游戏开发或者硬件相关,不同的领域可能适合不同的语言。但用户没有具体说明,所以需要涵盖常见的情况,并给出建议。 然后,我需要考虑回答的结构。可能先给出总体建议,再分情况讨论。比如先推荐Python,然后根据不同的兴趣领域推荐其他语言。同时要解释为什么推荐这些语言,比如语法简单、社区支持、资源丰富等。 还要注意避免使用专业术语,保持语言通俗易懂。同时要提醒初学者不要纠结于选择,而是开始学习后坚持实践。可能还需要提到学习资源,比如在线课程、书籍、项目实践等,但用户的问题主要是选择语言,这部分可以简要带过。 另外,需要检查是否有常见的误区,比如是否需要从C语言开始学习底层概念。虽然C语言有助于理解内存管理等,但对于完全新手来说可能较难,容易打击信心。因此,可能建议根据兴趣选择,如果对系统编程感兴趣,再考虑C或C++。 最后,总结一下,强调选择语言后坚持学习的重要性,并提供一些鼓励的话,让用户有信心开始学习。</think>初学者选择编程语言时,建议根据目标领域和学习难度综合决策。以下是分步建议: ### 一、优先推荐:Python(通用性强) 1. **适合人群** 零基础、无明确方向者,或对数据分析、人工智能、自动化感兴趣者。 2. **优势** - 语法简洁直观,如计算平方: ```python x = 5 print(x ** 2) # 输出25 ``` - 社区资源丰富(如Codecademy、Coursera课程) - 应用场景广泛(Web开发、机器学习等) ### 二、按目标领域选择 1. **前端开发 → JavaScript** - 核心语言:浏览器唯一原生支持语言 - 示例代码: ```javascript console.log("Hello World"); ``` - 学习路径:HTML/CSS → JavaScript → 框架(React/Vue) 2. **移动开发 → Kotlin(Android)或 Swift(iOS)** - Kotlin代码示例(Android按钮点击事件): ```kotlin button.setOnClickListener { println("按钮被点击") } ``` 3. **系统/游戏开发 → C++ 或 C#** - 适合对内存管理、高性能计算感兴趣者 - C++示例(输出斐波那契数列): ```cpp #include <iostream> using namespace std; int main() { int a=0, b=1; cout << a << " " << b << " "; for(int i=0; i<10; i++){ int temp = a + b; cout << temp << " "; a = b; b = temp; } return 0; } ``` ### 三、关键学习建议 1. **实践重于理论** 通过LeetCode(算法)、FreeCodeCamp(项目)等平台实战 2. **理解计算思维** 重点掌握:变量控制、循环结构、函数封装、错误调试 3. **避免常见误区** - 不要纠结"哪个语言最好"(工具服务于目标) - 不要死记语法(可通过IDE提示辅助) ### 四、学习资源推荐 1. 入门书籍: - 《Python编程:从入门到实践》 - 《Eloquent JavaScript》 2. 免费平台: - Codecademy(交互式学习) - 菜鸟教程(中文实例丰富) > **提示**:编程本质是解决问题的工具。选择语言后,建议用3个月时间专注学习基础语法+完成1-2个小项目(如计算器、个人博客),逐步建立信心后再拓展知识体系。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值