个人觉得新手学编程还是先Java等静态语言为好,而不是Python

2012-11-24 12:48:09 +08:00
 banxi1988
RT:
以前我在ubuntu论坛的时候,见到有不少人觉得Python适合初学者。
有些时候,我也那么觉得,但是现在我的观点改变了。因为前两天我GirlFriend说她想学编程。
然后我仔细想了下,学什么能够直接切入主题些,不能在开始时就被各种问题折腾。

(1)我承认python有ipython这么一个非常不错的学习工具。
但是还是不如Eclipse这个优秀的IDE。也许因为Java是静态语言吧。写代码的时候,各种错误,什么的都有很好的提示,语言也很规范。
python的错误提示,常常就是一句"Invalid Syntax" 然后没有了。这对新手来说几乎没有什么用。
但是还有一个很重要的一点就是,我个人很喜欢重构这本书,然后,想想,支持python重构的ide,几乎还不成熟或者支持的重构很少。

(2)对于中国人说更是如此了,Java对unicode支持不用说,但是python就不一样了。
我都为此,折腾到心碎了,更别说新手了。
还有python中的tab和space工,缩进啊,这个对于新手肯定不友好。

(3)很多新手以前也放学过C类的语言,如此再想进入IT行业,还是Java类语言比较合适。
各种学习资料,视频资料。懂的人也多,也许我们身边10个就有5个是会Java的。但是Python呢?


所以。
12601 次点击
所在节点    Python
59 条回复
dingstyle
2012-11-25 12:48:29 +08:00
@ivanlw 手动内存管理,指针,段错误这些C中的概念,都和现代操作系统是息息相关的,建议你看看CSAPP这本书,理解会更深刻
tioover
2012-11-25 13:04:54 +08:00
先学C比较好
aisk
2012-11-25 13:30:17 +08:00
到底哪个好,让你妹子写一个读写文件的程序就知道了
chloerei
2012-11-25 13:57:14 +08:00
看多了这些讨论之后发现大学的课程还挺好的,门电路、汇编、C、C++、Java、数据结构与算法一波啦全学了,额外再参加数学建模用了 Lingo 和 Matlab 这样的工具箱。当然各门掌握都不高,不过不用困扰「先学」什么的问题了,统统都学。
banxi1988
2012-11-25 14:46:59 +08:00
@shaufan 单纯一个helloworld是不能说明问题。我想要说明的是,学那个,在开始的时候,不会遇到那么多奇怪的问题。
遇到问题了也好解决。
同时,@aisk 你知道java的IO大量使用了设计模式。所以。对于新手这也不是问题。
对于这些普通的问题,直接Copy现成的代码就可以了。
banxi1988
2012-11-25 14:51:10 +08:00
@Muninn 我知道py3解决了很多问题,关键是用py3,支持py3的不多,至少目前是。
至于你举例说的xp就更是如此了。你应该知道xp在国内的还有多少粉丝的。
至少现在来说py2.7还是主流,接下来一大段时间也会是。
我个人使用py也有好几年了,会什么我现在还觉得py的unicode支持困扰我。
你可以说我是小白,但是问题确实存在。
banxi1988
2012-11-25 14:56:06 +08:00
@ant_sz 嗯,我感觉是写熟悉的喜欢的代码就开心。
就算是Java,我想,当你喜欢上《重构》这本书之后,你也会觉得 写Java代码也是艺术设计 。
也会开心的。
同时 @insraq 写Java也可以很开心的。就好比,英语好的人说英语也开心。
如果写的时候,想到Java的性能比Ruby可能好一个数量级,可能也会很开心的,因为自己写的代码,就好比自己的孩子,自己的孩子性能比较好,是不是会开心呢?
LionRoger
2012-11-25 15:07:17 +08:00
从逻辑上讲,刚觉都没说到点上,如果说新手适合的是Python,JAVA不适合,那意思就是如果不是新手那就是和JAVA不适合Python? @ooscrewyou 说的很好啊,重要的是思想。话说回来,真的想学编程一开始不是应该把什么是编程搞懂?可以尝试用各种不同的语言写出HELLO WORLD,再大致了解原理与系统的时候,用大局观念去判断自己更喜欢或者说更适合哪种语言,而不是一开始就到处去看人多口杂的别人的观点呢?
reus
2012-11-25 15:09:42 +08:00
如果是专业程序员,那应该什么语言都学,从哪个开始并不重要。
如果是业余程序员,那要明确学习的目的。因为要达到某些目的,是不需要学习通用的编程语言的
REBOL,AutoIt, AutoHotKey, excel这些脚本语言或者编程环境,有时更适合非专业的爱好者学习使用
kran
2012-11-25 16:15:47 +08:00
c cpp
BigZ
2012-11-25 16:36:45 +08:00
看你学来干什么,要是准备投身程序员,靠这个吃饭,建议你从c学起,码农入门不建议选择动态语言

如果是用来操作计算机干点编程的零碎活,挑一个能实现你目标最简单的编程工具
loading
2012-11-25 16:40:15 +08:00
个人感觉写单片机的汇编最好,特别是那种连乘法都没有的,一共几个语法,曲指可数,内存回收?自己陪的地址,随便重用,要多高效有多高效
ywencn
2012-11-25 16:47:27 +08:00
这种讨论是没有结果的。。。
wuShiJingZuo
2012-11-25 19:07:07 +08:00
人生苦短!
jamiesun
2012-11-26 13:49:05 +08:00
学VB吧
zyAndroid
2012-11-27 09:49:58 +08:00
“不喜欢Java,它让人感觉不到编程的乐趣。”
恩,人生苦短,大家快拯救下LZ的GF
:)
neek2000
2012-11-27 09:55:31 +08:00
Python是把利器,给小孩玩刀,总是会割到手的
money
2012-11-27 10:40:34 +08:00
与其在这里讨论这个问题,不如马上行动,记得我开始时也在纠结过这个问题,但是无果
banxi1988
2012-11-27 12:45:13 +08:00
@neek2000 这个说得很中肯。虽然Java也是把利器,但是是传统利器,就好比是火,大家都知道他的危险。
但是Python不是主流的武器,大家对它的伤害不好接受。
banxi1988
2012-11-27 12:59:12 +08:00
@ant_sz
(1)我在之前有说,其实懂得好的写软件的技术,如重构啊,设计模式啊,写这些都有乐趣,
当然我也是从读了重构一书,才感觉到不少乐趣的。因此觉得乐趣这种东西,跟语言有一点关系,
但不是决定因素,也不是主要因素。
(2)我发现很多人都建议从底层学起,但是只是说对操作系统等等有了解。
但是,有时候觉得这种想法有点一厢情愿。就说我身边的一些很多的大学同学吧,学了C,C++,操作系统,照样对这些没有什么了解。对于这些东西 ,其实底层的就是高层的,深层的东西 。
虽然有对于理解计算机系统有些帮助 。但是这将软件开发层次停留在80-90年代。
(3)现在的软件开发,已经到了分工细化的时代了。有了更多的积累的软件开发技术,
也有了更多的软件开发积累。在软件开发也产生比较显著的分工。就好比一个前端,不需要知道C也可以是一个好前端。因为没有多大的关系。
(4)对于一个新手来说,站在巨人的建立的台阶上,对于大部分人来说,各有分工,各有所专,才是时代的潮流。
(5)当然,还是需要一些创造者,一些重复造轮者。

回到Python Or Java上面来说。
Python相比Java来说,就是不规整,对于正常的一般人来说,Java看起来更合适,因为是精心设计的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/53193

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX