V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
banxi1988
V2EX  ›  Python

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

  •  
  •   banxi1988 ·
    banxi1988 · 2012-11-24 12:48:09 +08:00 · 12870 次点击
    这是一个创建于 4416 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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呢?


    所以。
    59 条回复    1970-01-01 08:00:00 +08:00
    Radeon
        1
    Radeon  
       2012-11-24 12:50:30 +08:00
    Java当然比Python好
    mercurylanded
        2
    mercurylanded  
       2012-11-24 13:16:13 +08:00
    python适合新手还有一个原因是构建应用比java要简单。可以很快让新手看到学习的成果。
    lesscome
        3
    lesscome  
       2012-11-24 13:18:02 +08:00
    java是静态语言吗?
    notedit
        4
    notedit  
       2012-11-24 13:27:09 +08:00
    1, python的错误都有一个错误栈的 不是你说的只抛出Invalid Syntax.
    2, python对unicode 哪里支持不好?
    3, python的学习资料也很多. 至于你说身边的人数量问题,python是相对小众一些,但是你遇到的问题一般都可以通过google解决.
    sNullp
        5
    sNullp  
       2012-11-24 13:36:18 +08:00
    python3对unicode支持已经相当完美了。
    另外我觉得python对缩进的严格要求是对新手很有帮助的。
    kid7st
        6
    kid7st  
       2012-11-24 13:38:40 +08:00
    我觉得C和Pascal都很好,想不通为什么java会比python适合新手
    ooscrewyou
        7
    ooscrewyou  
       2012-11-24 13:40:38 +08:00   ❤️ 6
    无力吐槽了
    首先確定你的目的是什麼
    如果目的是系統地科學地從零開始學習編程,那麼從scip開始吧。跳出作爲工具的語言的框架,學習编程最基礎的概念。http://www.eecs.berkeley.edu/~bh/sicp.html
    如果你更加關注industry,注重於build things,Java是一個選擇。個人更加喜歡Python,Ruby這類語言。Because they make my life easier.repl,高阶函数,duck typing這些特性大大提高效率,另外Python和Ruby都是很流行的語言,社區很活躍,各種第三方庫,有很好的package manager(pip,rubygem)

    另外關於樓主說的三點:
    1 我没發現你說的都是Invalid Syntax的錯誤提示,是不是因爲你不熟悉python,老是寫出錯誤的語法來。
    2 python對unicode支持確實存在問題,不過這點和學編程沒有關係,只是處理某些實際問題會麻煩點。至於縮進純屬個人喜好。我就很喜歡,不太喜歡Ruby裏面各種do end。
    3 如果想進入IT行業,還是Java比較合適,可能吧,我不關心IT行業,我只是想成爲一個更好的程序員。Python的學習資料絕對不少。對程序員來說英文很重要,我在某本Java書上看到的維特根斯壇的一句quote,原話忘了,大意是If I spoke a different language, I would peceive a different world.語言不僅僅是交流的工具,還是表達思想的媒介,不同的語言有不同的表達能力,學習語言,不管是自然語言還是編程語言,會拓寬人的思路,幫助你思考,當然思想是先於語言的,我遇到過英文很差,但是數學思維很好理科學得很好的人。在CS的世界裏,英文是通用語言,如果是初學,強烈建議直接讀第一手的資料,早點習慣英語的學習環境。
    khotyn
        8
    khotyn  
       2012-11-24 13:50:32 +08:00
    对于新手只有一个建议,挑一门语言,然后坚持,与其纠结是用 Python 还是 Java,不如马上动手。
    banxi1988
        9
    banxi1988  
    OP
       2012-11-24 14:15:11 +08:00
    @ooscrewyou 首先我觉得你的回复很有质量。感觉高我好几个层次。
    我要说明的一点是:场景是新手。
    (1)因为是新手,所以容易出现Invalid Syntax错误。
    另外 @noteedit 对于语法错误来说,异常栈,常常让人觉得更奇怪。新手会想,
    出来一堆东西,真令人讨厌。
    (2)unicode对于学编程还是很有影响的,要知道很多新手竟然喜欢用中文命名。
    而且新手开始会经常进行IO方面的操作。所以。
    (3) 关于英语学习环境,虽然我个人经常看英文文档,也首选英文文档,甚至强迫自己看英文文档,即使有中文文档。 但是当我看到文档中的中文还是很开兴,很兴奋。也许这就是对母语天然的爱。
    但是E文就不同了,对于新手来说,E文就是墙。我学django看到是官方文档。但是如果是新手我会推荐中文的。愿望虽然好,但路还是需要人性化。
    吃得苦中苦,方为人上人。这不是人性化的学习方式。
    ooscrewyou
        10
    ooscrewyou  
       2012-11-24 14:40:20 +08:00
    @baxi1988 有些東西是天生的 或者是受早期生長環境影響 變成潛意識紮根於性格 就我自己来说 我從小就喜歡外語 高中的時候不太寫作業 一般都是先做英文作業 因爲不用動腦筋 尤其是閱讀理解 就當是看故事 我也從來不刻意背單詞之類的 主要是給自己創造一個英文的環境 比如操作系統用英文 玩魔獸世界用美服客戶端 現在至少在cs方面 讀實用技術之類的原文沒什麼大的障礙了 我看书都是直接看英文 沒買過一本中文書 出於自負 我才不信譯者的水平有我高呢
    zenomac
        11
    zenomac  
       2012-11-24 14:45:33 +08:00
    想尽快找工作糊口的新手 当然java

    楼主所谓的那几个坑 其实真不算坑。。
    Muninn
        12
    Muninn  
       2012-11-24 14:46:38 +08:00
    不说别的了 每次看到有人说unicode 的问题 都无力吐槽
    学个语言玩 还要学旧版本的 然后痛斥新版已经解决的问题
    和那些现在还在吐槽xp的人一样
    jjx
        13
    jjx  
       2012-11-24 16:31:04 +08:00
    善用工具,像非法语法之类的 只要用linter之类就可以解决,如sublime text2装个sublimelinter 输入show error list就可以看到了
    pycharm /pydev 都集成的

    出错一堆信息,比java好多了,python的出错时最容易定位的,因为python调用层次少,不想java/dotnet ,一大堆无关的堆栈


    用中文命名的我就不评论了

    python现在的中文书籍,现在出的更多了,买python 标准库,cookbookm核心编程,然后再啃英文,已经很好了,不像前几年了
    AntiGameZ
        14
    AntiGameZ  
       2012-11-24 16:48:33 +08:00
    各有各的方法论。你说到IDE有错误提示功能,Word对语法错误也有提示功能,但是我也听过无数英语老师大力谴责用Word练写作(虽然我不这么认为)。

    只是不同的人不同的说法罢了。Python有Python的好,C也有C的优势。别忘了,大多数时候人们所谓的学编程,不过是学某种语言的语法罢了。就这个层面上来说,C真的是最简单的了。至于运用,完全是另外一回事情。
    VYSE
        15
    VYSE  
       2012-11-24 17:19:14 +08:00
    不先学C?
    ant_sz
        16
    ant_sz  
       2012-11-24 22:43:33 +08:00
    不喜欢Java,它让人感觉不到编程的乐趣

    本来就是适用与大企业大组织的语言,使用起来不是很灵活。

    对于初学者来说,最好的学习方式就是进行一些小的项目,Java在这方面的方便性不如 Python,日常编写小工具也不适合。

    总之,Java这种东西日常无论是初学还是使用都不推荐。连 Hello World 都要写一个类的语言实在是不能让人萌发兴趣,尽管 Java 的确是我学习的第一门编程语言。

    如果单指的是在大学里开课的话,我也同意初学 C 会比较好,Python 和 Java 封装了太多的底层,过于远离硬件。学习C有助于不光是对学习编程语言有帮助,对于理解操作系统、内存管理等等都很有用。
    yetone
        17
    yetone  
       2012-11-24 23:48:28 +08:00
    先学机器码,再学汇编!嗯,就是这个样子!
    shaufan
        18
    shaufan  
       2012-11-25 00:05:35 +08:00
    我看過一本書叫《黑客與畫家》,PG寫的。裏面對JAVA的有很獨到的見解和分析(其實多數是吐槽),大部分我都覺得很有道理。

    對我來說,如果想作爲個人或者企業做大PROJET的話JAVA應該是不得不學……
    但如果是出於興趣自學,短期內希望實現一個小PROJET的話,PYTHON應該是最優先的選擇之一吧。

    總的來說,我覺得編程語言應該是越接近人類語言、越抽象化的,會越適合無編程基礎的新手學習。最蠢的方法是比較一下各自HELLO WORLD程序的實現語句行數……?

    -------------------------------Java----------------------------------------
    public class HelloWorld {

    public static void main(String[] args) {
    System.out.println("Hello, World");
    }

    }
    ------------------------------Python----------------------------------
    print "Hello, World!"


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

    如果是用来操作计算机干点编程的零碎活,挑一个能实现你目标最简单的编程工具
    loading
        32
    loading  
       2012-11-25 16:40:15 +08:00
    个人感觉写单片机的汇编最好,特别是那种连乘法都没有的,一共几个语法,曲指可数,内存回收?自己陪的地址,随便重用,要多高效有多高效
    ywencn
        33
    ywencn  
       2012-11-25 16:47:27 +08:00
    这种讨论是没有结果的。。。
    wuShiJingZuo
        34
    wuShiJingZuo  
       2012-11-25 19:07:07 +08:00
    人生苦短!
    jamiesun
        35
    jamiesun  
       2012-11-26 13:49:05 +08:00
    学VB吧
    zyAndroid
        36
    zyAndroid  
       2012-11-27 09:49:58 +08:00   ❤️ 1
    “不喜欢Java,它让人感觉不到编程的乐趣。”
    恩,人生苦短,大家快拯救下LZ的GF
    :)
    neek2000
        37
    neek2000  
       2012-11-27 09:55:31 +08:00
    Python是把利器,给小孩玩刀,总是会割到手的
    money
        38
    money  
       2012-11-27 10:40:34 +08:00
    与其在这里讨论这个问题,不如马上行动,记得我开始时也在纠结过这个问题,但是无果
    banxi1988
        39
    banxi1988  
    OP
       2012-11-27 12:45:13 +08:00
    @neek2000 这个说得很中肯。虽然Java也是把利器,但是是传统利器,就好比是火,大家都知道他的危险。
    但是Python不是主流的武器,大家对它的伤害不好接受。
    banxi1988
        40
    banxi1988  
    OP
       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看起来更合适,因为是精心设计的。
    iwege
        41
    iwege  
       2012-11-27 13:13:59 +08:00
    那按照楼主所说:

    我觉得,最好的还是javascript。

    主流,开源,资料一大把,绝对够资格了吧?

    想要研究?网页另存为,多happy? chrome自动格式化,所有调试都可以在浏览器里面完成?

    你是新人? 想研究什么?特效?javascrpt配合dom,底层?server?nodejs也提供面向桌面的。

    移植性不如java?你都要跑eclipse了还跑不起一个chrome?

    至于错误神马的,有各种代码可以copy研究。并且同时熟练同步异步编程、桌面、服务器端。

    然后楼主还想要比性能么?对一个新人来说,都跑eclipse了还在乎性能?开玩笑吧?

    类的继承?原型继承?统统一网打尽。

    想玩其他的源码风格?coffee-script typescript 还不够你嗝屁的?


    最后说了这么一大堆,其实新人最终成为码农的时候,大家都知道会用类似ror一样的玩意快点完成任务然后去玩自己的东西。

    至于把Java当作实力语言,一个很严肃的问题:

    10个码农人有5个玩Java,职位只有一个,竞争多么激烈啊?
    l0wkey
        42
    l0wkey  
       2012-11-27 13:17:00 +08:00
    学VB [捂嘴笑]
    banxi1988
        43
    banxi1988  
    OP
       2012-11-27 13:24:07 +08:00
    @iwege 这个确实,我觉得javascript+html+css是一个很好入门道路。
    我想我可能会采取这个方法的。
    chrome+sublime text2加一些插件,就很不错了。
    但是不能Copy。要真的学javascript还是得自己手写来学,应该学习《Javascript高级程序设计》
    css也是一样,应该完整的学习《CSS权威指南》。
    对于界面有足够的思考。前端能够很快让人做出一些可以看得到的东西,能让人有成就感,
    女生入门之后做前端也是一个很好的方向。
    cpylua
        44
    cpylua  
       2012-11-27 15:05:30 +08:00
    A quote: "Java is write once, run away." 个人不推荐让新手接触Java那种OOP
    yangxiaoyong
        45
    yangxiaoyong  
       2012-11-27 15:10:44 +08:00
    Java 没有认真去接触过, Python, 嗯,那真是写的一个叫爽。

    真心建议楼主花点时间在 Python 上。 BTW, Java 真不是静态语言。
    Narcissu5
        46
    Narcissu5  
       2012-11-27 15:38:16 +08:00
    还是java好点吧,写错什么编译器首先就不答应
    cpylua
        47
    cpylua  
       2012-11-27 16:25:34 +08:00
    @yangxiaoyong Java真是静态显式强类型语言,语言的静态动态一般是按在什么阶段enforce type system constraints划分的
    ant_sz
        48
    ant_sz  
       2012-11-27 17:12:20 +08:00
    @banxi1988

    也许是我们看问题的角度不同,你更多的是从产业化的角度来看问题的,因为java规整和严格的语法,程序员在参与大型项目的时候是有必要了解他的。而我则主要从极客的角度来看问题,像java这样的特性就没必要。

    java的精心设计并不意味着python的代码不是精心设计的。实际上,java的代码可以写得很丑,而python则精心设计了语法,让一切都很自然,强制缩进规则实质上是强制你写出至少形式上是规整的代码。必须要牢记,程序员和码农只是一线之遥。因为语法上的规整而认定大部分人都适合什么语言是不正确的。

    在黑客与画家一书中提到,动态语言等适合在开发过程中动态的更改需求,更适合现在瞬息万变的市场竞争,实际上我们看到,从twitter开始,各种成功的创业公司都在采用开发效率更高的语言,其中包括基于jvm的scala等。这表明现在的程序员对工作时的工具提出了更高的要求,同时也更加强调创造力和舒适度。语法规整的重要性已经下降很多了。

    其次对于底层和效率的问题,我承认现在的分工很细致,但也并非没有涉及底层的程序员。实际上,现在的上层程序员实在是过于泛滥,反倒是底层的比较抢手。实际上,即使是java程序员也需要对底层有所了解,并不是把一切交给虚拟机来优化就万事大吉了。同样的java程序不同的实现方法效率会有很大差别。因此有必要从一开始就把这些基础打好,因此学好c是很重要的。

    我希望我们这里讨论的至少是有理想的程序员,大学中是有很对人基础的操作系统等知识都没学好,但这并不意味着这种现象是合理的。这不光是个人的原因,也有教育等诸多因素。虽然抛弃这些基础,也能来开发软件,可是日后发展必将遇到瓶颈,就像当初java盛行时有一种观点认为以后编程不在需要数学功底算法了一样,认为只需要学习表面的技术就可以的看法是完全错误的,你将局限于作为一个简单的开发程序员,而很难进一步发展。等到年纪大了如何跟年轻力壮的青年竞争。

    在互联网时代,难以复制的才是有价值的,google,facebook这些巨头的核心竞争力还是在算法和底层,能够做表层应用则门槛太低,真心不缺人,腾讯随时都有大把这样的开发人员闲置,坐等新潮流来复制,而且这条道路并不好走。所以一个程序员要有更大的发展,底层的基础在早期是一定要打好的。

    此外,推荐c的一个原因还有他几乎是包括java在内大多后来编程语言的前辈和学习者,学好c以及理解c的编程思想有助于学习其他编程语言,而一个程序员如果只会一门语言,即使再精通也不可能有太大发展。程序员有必要不断提高自己才不会落后,尤其是在大学里的预备程序员,大学里空闲时间那么多,学多少东西都够了。因此c依然是初学者首选这个观点是很有道理的
    liuyanghejerry
        49
    liuyanghejerry  
       2012-11-27 22:56:59 +08:00
    为啥我觉得PHP编程入门最简单呢= =

    @ant_sz 最后一个观点我不是很认同,编程语言会多少跟自身发展没什么直接关联,语言之后的实际背景、环境、模型、生态体系等等才是关键。学习PHP、RoR重要的在于理解B/S模型,C/C++重要的在于系统编程,Erlang、JS重要的在于并行并发。当然有些语言配套库很多,一门语言就能搞定多个领域。依靠多学语言来获得发展,难以逃脱整天啃语法糖、纠结语法细节的结局。

    C的内存模型相对来说最简单,特性也比较少,从这一点来说适合新手入门确实没错。
    banxi1988
        50
    banxi1988  
    OP
       2012-11-27 23:01:59 +08:00
    @ant_sz 对于有理想的程序员来说,你说的很有道理,值得学习。
    真正学好编程也真不是一年两年的事。对于减少新手入门,希望能看到你深入的见解。
    我的一个简单的想法就是:人性化,不要太geek,减少入门的痛苦,增加入门的甜蜜。
    yegle
        51
    yegle  
       2012-12-07 22:06:53 +08:00
    有句话说出来可能有点刺眼。

    9楼说自己是个新手。新手给另一个新手推荐入门语言,不觉得很可笑?
    banxi1988
        52
    banxi1988  
    OP
       2012-12-07 22:58:19 +08:00
    @yegle 因为同是新手,没有什么代沟。
    young
        53
    young  
       2012-12-07 23:22:18 +08:00
    唉~~ 楼主又挑起了战争
    语言就是一种工具,主要还是自己的思维能力
    hxgdzyuyi
        54
    hxgdzyuyi  
       2012-12-07 23:28:30 +08:00
    不知道几年以后lz看到这个帖子会是什么想法
    Mutoo
        55
    Mutoo  
       2012-12-08 00:07:29 +08:00
    我就不跟大家争了。难得LZ女朋友想学编程,推荐 processing ,简单易懂,以图形交互为主,比传统的字符界面或窗体程序都要好玩,女生比较容易喜欢。我GF学完表示非常有意思。
    jarlyyn
        56
    jarlyyn  
       2012-12-08 02:26:34 +08:00
    python可能不是最适合程序员的语言,但肯定比java合适。
    首先。楼主,只要你想写程序,缩进是必须要养成的习惯。
    其次,请自行比较helloword程序员长度。
    第三,ide?除了写c#我用过monodeveloper,实际工作中使用的都是kate……
    第四,可能我学过写过的语言太杂,但是作为程序员,用的什么语言重要么?项目需要的话,换语言开发很正常吧。关键还是经验--之大什么是错的,查找文档的能力,熟悉各种库,以及
    jarlyyn
        57
    jarlyyn  
       2012-12-08 02:29:41 +08:00
    转我自己以前的某贴,或许你见过。
    其实,就我用过的这10来们语言来说,一门完备的编程/脚本语言,基本都能完成你所需要的部分功能,差别无非在效率的高低,公共库的多少而已。撇开生态环境,就语言本身来说,不少主流语言都有其鲜明的特点。比如lua突出本身的简单,比如我所没有接触过的perl所推崇的用多种方法解决同一个问题。而python给我的感觉,就是规范,易读。

    python的优点:

    语法里强制缩进,强制命名空间,不使用容易产生魔幻效果的花括号和分号,使得不同程序员写出的代码风格高度的统一。能让人从一开是就养成良好的的习惯,也让你能很容易的学习别人写的python程序
    作为一门出色的脚本语言,有着极出色的使用范围。web有django,web.py,GUI有pygtk/pyqt,一抓一大把的范例程序,就算用来维护系统,也是很好的选择。大部分发行版都预装python,yum甚至都是用python写的。不光学习的资源多,学好了用途也非常广泛。
    跨平台做的很不错。linux下自不用说,win的python表现也还说的过去。magoo,android上也有pytho的身影。不至于让人当心觉得学了后派不上用处
    主流语言的元素齐全。学好后转任何一门程序都不会很吃力。
    很简单的就能出可见的成果,这样在学习的过程中不断的有使用价值的产品出现,能不停的激励自己提供动力。
    总的来说,我认为最适合初学者的理由,还是第一点。从我的角度来说,语言只是门工具,过多的把创造力放在语法上,反而不容易集中在开发本身上。撇开这点,对于初学者来说,就如同学写字要从方方正正的字体开始一样,脚步走的踏实了是最重要的。如果什么时候觉得pyhon限制的你的天赋的发挥,再换语言也不迟。反正编程这东西,是一理通,百理明的。

    所以,我推荐,新学编程的人,从python入门。
    ccming
        58
    ccming  
       2012-12-08 07:28:56 +08:00
    学lisp
    pepsin
        59
    pepsin  
       2012-12-08 08:38:56 +08:00
    个人觉得与其说那么多不如随便拽本教程开始学。

    过程碰上问题就搜。就是搜,看,写代码,搜,看,写代码的循环。这个好那个好的,其实都差不多。无非是多几个轮子少几个轮子而已。

    一旦你嘴巴不动开始用脑子和手指了,哪种语言都不重要了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2797 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:20 · PVG 11:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.