0基础学编程,是选择python+mysql入手好,还是C#+sql sever好?
程序员文章站
2022-05-13 09:22:35
...
我是一名职高在校学生,刚刚接触到编程这个概念,第一门接触到的语言是C#,正在学,老师讲的很少,一天一个半小时,自学很烦,看不进去枯燥的书本,书上讲的很杂,苦于没有资料,而且网上说.NET前景不好,受制于微软,听说python很火,想转学python,求各位大神意见。
无论如何,要注重实效。 不是学什么好的问题,而是你需要学来做什么的问题。python和C#都很好,容易上手,但是两个的应用范围并不一样。推荐题主还是先了解一下各自的特点再结合自己的情况作决定。
当然,如果你真的觉得C#那么有趣的语言都很枯燥,,,那题主是否考虑转行? 嗯,确实比较麻烦,考虑到就业形势,还是学习Java比较靠谱。
对了,XML是核心,懂得越多越好,,,,,,(逃…… 朋友你这问题提的不好啊,你至少说清楚你想干嘛吧?
Python + MySQL
C# + SQL Server
既然都提到了 SQL 那么就假定你要学 SQL 技术,也就是数据库技术,但是你学数据库技术来做什么呢?
假设:
先确定你要写什么再去找适合的语言比较好吧?
还有就是,如果你只是为了求职,那么你上网搜下现在哪门编程语言最流行哪门编程语言招人最多就好,因为你是零基础啊,现在很多语言都有适合零基础的教程,不妨找找看看。
但是有个现实是:
往往受一门语言所限,你要*学习另一门语言。 还是学java吧,就业前景好,当然一定要学好xml啊,这是所有语言的基础 php+mysql
java+mysql
asp.net+SqlServer
mono+mysql
以上都可以。 ====2015-09-10更新====
评论里@王睿通 除了觉得我在装逼,还“建议”我干嘛不把《算法导论》写上,我思索良久,决定这么回答:
如果是装逼的话我大概真的会提《算法导论》和《数据结构》,但是我并不是。我考虑过要不要提算法和数据结构,但是我想了一下,如果学到OS这一块的时候自然会接触很多算法,也就没有特别强调。
我认为一个优秀的软件开发人员(偏工程)应该能够看到高级语言的代码后有能力想象得出来运行时的机器指令大概是长什么样子、以什么样的顺序执行、线程间的关系又是怎样,打个比方就是不仅能够用脑袋编译代码,还能用脑袋跑这些代码。这种能力重要吗?如果编译器、语言、操作系统完美无缺的话,仅仅依靠语言提供的抽象应该就足够理解程序在运行时的行为了。
可是现实世界并不是这样子。例如在微软,即便是应用程序的开发人员,也要时刻留意一个问题是否可能是因为如下原因导致:CPU(硬件问题)、操作系统的bug、编译器没有正确编译、某个语言的标准库没有正确实现一个函数、运行时的机制有问题。如果一个开发人员不对这整个Stack(技术栈)非常熟悉的话,他无法断定问题出现在哪一层,也就无从下手。又如有些性能问题,不了解底层的话根本不知道从哪着手、优化。
这个道理和调试网络问题一样的:如果不了解网络的各个层级和各个硬件设备如何协作的,诊断也就无从谈起。所以我罗列的学习顺序,大致也就是想让别人从下到上地了解一个程序到底如何在一台机器上跑起来的。
我之所以没有把汇编以下的东西罗列出来,出于两个原因:1. 现代计算机是依赖数字信号的,因此我觉得最多最多从数字信号起开始学习;2. 汇编以下需要了解的东西都很基础,即便之前不够了解,在学习汇编的时候都有机会一并了解到。真要说有什么值得单独看一下的话,也许就计算机组成原理吧。
如果还有人(包括 @王睿通 )还觉得我是在装逼的话,没有问题;但除了吐槽我,也请一并耐心给出一条不装逼的严肃回答,帮助所有关注这个问题的人。骂完了甩甩手就走了的话,就算不是装逼,也是一种毫无建设性的态度。
====原始答案====
我还是觉得0基础就从基础开始学习。基础打好了,语言对你来说只是工具。我曾经一个三个月的项目里用了5种语言,JavaScript/Ruby/Python/Java/PigLatin。真的,学习新的语言很快,因为原理都是一样,你只是学习语法和一些特别的用法,这些通过搜索都很好学习。
我建议这样的学习顺序:
如果上帝将一大腚黄金放在你面前,你的第一反应是什么?
正常的反应应该是立即捡起来,如获至宝。
提问者现在给我们的感觉是:冷冷地看着,盘算着这个黄金太重了,如果是一大块钻石就好了。铁达尼里面那个海洋之心,人家都说好。听说现在银器很火,还可以验毒……
如日中天的流行语言C#,全球前五,微软主推的开发语言。易学易用的语法和IDE,广泛的书籍和资料。有老师每天一个半小时的教授,有足够的空闲时间查资料和练习。对每一个0基础的编程爱好者来说,这就是“天堂”啊!
好吧,天堂有路你不走,你就继续“听说某某更好……”吧。Python和C#都比较易学,但Python也不见得更简单。
请留意,过一阵上帝将黄金也要收走了。 python只是粘合剂,没有其它语言的module支持,根本没什么用。考虑到适合你的前景,建议学java,主要是xml一定要学好。祝前途似锦。
回复内容:
选择在你当前处境下最能方便解决问题的语言。无论如何,要注重实效。 不是学什么好的问题,而是你需要学来做什么的问题。python和C#都很好,容易上手,但是两个的应用范围并不一样。推荐题主还是先了解一下各自的特点再结合自己的情况作决定。
当然,如果你真的觉得C#那么有趣的语言都很枯燥,,,那题主是否考虑转行? 嗯,确实比较麻烦,考虑到就业形势,还是学习Java比较靠谱。
对了,XML是核心,懂得越多越好,,,,,,(逃…… 朋友你这问题提的不好啊,你至少说清楚你想干嘛吧?
Python + MySQL
C# + SQL Server
既然都提到了 SQL 那么就假定你要学 SQL 技术,也就是数据库技术,但是你学数据库技术来做什么呢?
假设:
- 网页:PHP + MySQL / Python + MySQL / http://Asp.Net + MySQL / Node.js + MySQL 等
- Windows 桌面程序:C# + SQL Server / VC + SQL Server 等
- 跨平台程序:Python + MySQL / Java + MySQL / Mono +MySQL 等
- 跨平台桌面程序:Python + MySQL / Java + MySQL / C + MySQL 等
- Mac OS X 程序:没接触过不敢说
先确定你要写什么再去找适合的语言比较好吧?
还有就是,如果你只是为了求职,那么你上网搜下现在哪门编程语言最流行哪门编程语言招人最多就好,因为你是零基础啊,现在很多语言都有适合零基础的教程,不妨找找看看。
但是有个现实是:
往往受一门语言所限,你要*学习另一门语言。 还是学java吧,就业前景好,当然一定要学好xml啊,这是所有语言的基础 php+mysql
java+mysql
asp.net+SqlServer
mono+mysql
以上都可以。 ====2015-09-10更新====
评论里@王睿通 除了觉得我在装逼,还“建议”我干嘛不把《算法导论》写上,我思索良久,决定这么回答:
如果是装逼的话我大概真的会提《算法导论》和《数据结构》,但是我并不是。我考虑过要不要提算法和数据结构,但是我想了一下,如果学到OS这一块的时候自然会接触很多算法,也就没有特别强调。
我认为一个优秀的软件开发人员(偏工程)应该能够看到高级语言的代码后有能力想象得出来运行时的机器指令大概是长什么样子、以什么样的顺序执行、线程间的关系又是怎样,打个比方就是不仅能够用脑袋编译代码,还能用脑袋跑这些代码。这种能力重要吗?如果编译器、语言、操作系统完美无缺的话,仅仅依靠语言提供的抽象应该就足够理解程序在运行时的行为了。
可是现实世界并不是这样子。例如在微软,即便是应用程序的开发人员,也要时刻留意一个问题是否可能是因为如下原因导致:CPU(硬件问题)、操作系统的bug、编译器没有正确编译、某个语言的标准库没有正确实现一个函数、运行时的机制有问题。如果一个开发人员不对这整个Stack(技术栈)非常熟悉的话,他无法断定问题出现在哪一层,也就无从下手。又如有些性能问题,不了解底层的话根本不知道从哪着手、优化。
这个道理和调试网络问题一样的:如果不了解网络的各个层级和各个硬件设备如何协作的,诊断也就无从谈起。所以我罗列的学习顺序,大致也就是想让别人从下到上地了解一个程序到底如何在一台机器上跑起来的。
我之所以没有把汇编以下的东西罗列出来,出于两个原因:1. 现代计算机是依赖数字信号的,因此我觉得最多最多从数字信号起开始学习;2. 汇编以下需要了解的东西都很基础,即便之前不够了解,在学习汇编的时候都有机会一并了解到。真要说有什么值得单独看一下的话,也许就计算机组成原理吧。
如果还有人(包括 @王睿通 )还觉得我是在装逼的话,没有问题;但除了吐槽我,也请一并耐心给出一条不装逼的严肃回答,帮助所有关注这个问题的人。骂完了甩甩手就走了的话,就算不是装逼,也是一种毫无建设性的态度。
====原始答案====
我还是觉得0基础就从基础开始学习。基础打好了,语言对你来说只是工具。我曾经一个三个月的项目里用了5种语言,JavaScript/Ruby/Python/Java/PigLatin。真的,学习新的语言很快,因为原理都是一样,你只是学习语法和一些特别的用法,这些通过搜索都很好学习。
我建议这样的学习顺序:
- 汇编:这个可以教会你计算机最底层的编程接口,了解如何和计算机的硬件打交道;
- 操作系统:可以结合C和Win32 API写一些小程序,但重点是了解操作系统的一些概念,例如一个CPU如何被包装成多个进程、多个线程,如果进行网络通讯,如何读写文件,栈和堆的区别。
- 语言:C++/C#/Java,随意选择一个。结合语言的类库,看看他们是怎么把操作系统包装起来,再以一种更友好的形式暴露给使用该语言的用户。学习语言的过程中除了基本的变量、函数,还要学习面向对象的设计。
- 语言相关的框架:以C#为例,http://ASP.NET MVC, WinForm或者WPF。注意!如果要学习的是http://ASP.NET MVC,你还应该先至少理解HTTP协议。不了解HTTP协议就直接学习http://ASP.NET MVC是非常不明智的行为。
- 数据库、XML、JSON:这些都是锦上添花的东西,如果之前4个部分学习的很好,这些很快就可以上手。达到高效、熟练可能要很久,但是不会成为你做开发的障碍。
如果上帝将一大腚黄金放在你面前,你的第一反应是什么?
正常的反应应该是立即捡起来,如获至宝。
提问者现在给我们的感觉是:冷冷地看着,盘算着这个黄金太重了,如果是一大块钻石就好了。铁达尼里面那个海洋之心,人家都说好。听说现在银器很火,还可以验毒……
如日中天的流行语言C#,全球前五,微软主推的开发语言。易学易用的语法和IDE,广泛的书籍和资料。有老师每天一个半小时的教授,有足够的空闲时间查资料和练习。对每一个0基础的编程爱好者来说,这就是“天堂”啊!
好吧,天堂有路你不走,你就继续“听说某某更好……”吧。Python和C#都比较易学,但Python也不见得更简单。
请留意,过一阵上帝将黄金也要收走了。 python只是粘合剂,没有其它语言的module支持,根本没什么用。考虑到适合你的前景,建议学java,主要是xml一定要学好。祝前途似锦。