【游戏·数学】辅导电脑编程 Java/C++,3D图形,iPhone/Android 应用开发。为中小学生开设国际信息学奥林匹克竞赛,加拿大CCC比赛培训课程

本帖由 游戏数学2016-02-15 发布。版面名称:教育培训

  1. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    给程序员准备的逻辑思维题

    【1】假设有一个,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。

    [​IMG]

    【2】周雯的妈妈是豫林水泥厂的化验员。 一天,周雯来到化验室做作业。做完后想出去玩。 “等等,妈妈还要考你一个题目,”她接着说,”你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。你 能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来 吗?” 爱动脑筋的周雯,是学校里有名的”小机灵”,她只想了一会儿就做到了。 请你想想看,”小机灵”是怎样做的?

    [​IMG]

    【3】三个小伙子同时爱上了一 个,为了决定他们谁能娶这个姑娘,他们决定用手枪进行一次决斗。小李的命中率是30%,小黄比他好些,命中率是50%,最出色的枪手是小林,他从不失 误,命中率是100%。由于这个显而易见的事实,为公平起见,他们决定按这样的顺序:小李先开枪,小黄第二,小林最后。然后这样循环,直到他们只剩下一个 人。那么这三个人中谁活下来的机会最大呢?他们都应该采取什么样的策略?

    [​IMG]

    【4】一间囚房里关押着两个犯人。每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。起初,这两个 人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。于是争端就这么解决了。可 是,现在这间囚房里又加进来一个新犯人,现在是三个人来分汤。必须寻找一个新的方法来维持他们之间的和平。该怎么办呢?

    按:心理问题,不是逻辑问题

    [​IMG]

    【5】在一张长方形的桌面上放了n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与原先某些硬币重叠。请证明整个桌面可以用4n个硬币完全覆盖

    [​IMG]

    会作2道智商就是正常,会作3道就不是凡人,会作5道就是高智商稀有人才了!
     
  2. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    人工智能“网红”编程语言Python进入山东小学课本

    除了要学英语外,对于一些高中生,甚至小学生来说,他们未来很可能还要多学一门“
    外语”—— Python。近日,山东省在其最新出版的小学信息技术六年级教材中,加入
    了Python的内容。
    简单来说,Python是一种广泛使用的高级编程语言,属于通用型编程语言,由荷兰人
    Guido van Rossum创造。它的第一版发布于1991年。由于可扩展性,适应性和易于学习
    ,Python成为近年来增长最快的编程语言之一。在ranked.com的排名中,Python是2017
    年最受欢迎人工智能编程语言,排名第二的是C++语言。
    除了山东在小学教材中加入Python外,在今年浙江省新高中信息技术教材改革项目中,
    也提到了Python。从网络上流传的版本看,从2017年9月入学高中新生中开始使用新的
    教材,新教材的不同之处在于:编程语言将换用Python。
    教材更新是一方面,2017年10月11日,教育部考试中心发布了“关于全国计算机等级考
    试(NCRE)体系调整”的通知,决定自2018年3月起,在计算机二级考试中加入 “
    Python语言程序设计”科目。
    由此来看,世界已经无法阻挡Python往低幼年龄渗透了。
    编程语言里的“网红”
    在程序员的世界中,有句广为流传的话,叫“人生苦短,快用Python”。这句话非常形
    象地说出了Python语言在程序员心目中的地位。
    相比C++或Java等语言,Python让开发者用更少的代码来表达想法。作为一种解释型语
    言, Python更强调代码的可读性和简洁的语法。不管是小型还是大型程序,该语言都
    试图让程序的结构清晰明了。
    根据Stack Overflow流量统计,2017年6月,Python第一次成为高收入国家Stack
    Overflow访问量最大的标签,照此发展,到了2018年,Python肯定会成为最受欢迎的标
    签。
    另一个让Python成最受欢迎语言的原因是它的可扩展性。Python虚拟机本身几乎可以在
    所有的操作系统中运行。Python可以用于Web程序、GUI开发和操作系统、科学建模。
    YouTube、Google、Yahoo!、NASA都在内部大量地使用Python。
    另外,在Python语言中,几乎所有的想法都可以通过30-40行代码快速验证。
    Python的火爆得益于本身编程语言的优势外,还在于它成为了许多公司开发人工智能程
    序的首选编程语言。例如,在今年打败中国棋手柯洁的AlphaGo程序中,就用到了
    Python。此外,Facebook开源了人工智能编程工具箱PyTorch后,更是奠定了它作为人
    工智能时代的首选语言。国内许多做人脸识别等程序的人工智能公司,也非常推崇
    Python作为其编程首选语言。
    向低幼阶段渗透的编程教育
    那么,在低幼教育中推行Python真的可取吗?毕竟对于普通人来说,这是计算机专业领
    域才需要学习的一门课程。
    但在前百度首席科学家吴恩达看来,每个人都应该学会编程。尤其是随着人工智能发展
    ,人类与机器的交流变得越来越重要,编程能力将在可以预见的未来成为人机交流侧基
    础。因此,每个人都应该像学会写字一样,学会写程序。
    实际上,在美国,编程课程已经开始逐渐深入到低年龄阶段,甚至到婴幼儿阶段。在美
    国亚马逊的官网上,你可以轻松地买到给婴儿看的编程教材。
    在去年美国一次计算机科学教育周开幕日活动中,时任美国总统的奥巴马还曾亲自上阵
    ,给中小学生示范计算机编程。白宫认为,计算机科学普及教育是美国未来几十年保持
    创新优势的关键举措之一。要知道,微软创始人比尔·盖茨在13岁开始学习编程,
    Facebook创始人扎克伯格11岁开始学习编程。

    来源:澎湃新闻
     
  3. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    恶搞程序员的 9个笑话

    [​IMG]

    1. 某程序员退休后决定练习书法,于是重金购买文房四宝。一日,饭后突生雅兴,一番研墨拟纸,并点上上好檀香。定神片刻,泼墨挥毫,郑重地写下一行字:hello world!

    2. 一个女人让他的程序员丈夫去商店买东西:你去附近的商店买些面包,如果有鸡蛋的话,买6个回来,这个丈夫买了6个面包回来,他的妻子大吃一惊:你为什么买了6个面包?!程序员丈夫回答:因为他们有鸡蛋。

    3. “咚咚咚”“谁?”过了很久……“Java”

    4. 十个顶尖软件工程师参加培训管理人员的课程。老师提出了这样一个问题:“假如你供职的公司是为航空电子设备提供软件的。有一天你乘飞机出差,当你上了飞机后你发现一个牌子上写着这个飞机用的是你的团队开发的Beta版软件,你会下飞机吗?”九个软件工程师举了手。老师看着第十个问道:“你为什么愿意留在飞机上?”这人回答说:“如果是我的团队写的这个软件,飞机根本无法起飞,根本谈不上坠毁。”

    5. 为什么程序员总是分不清万圣节和圣诞节?因为 Oct 31 == Dec 25

    6. 两个程序员在聊天:“我昨天碰到个辣妹。我把她带回家,马上就开始如饥似渴地亲吻,她就坐在我的键盘上,然后……” “你在家里也有台电脑?CPU是什么型号的?”

    7. 一个存放了一半数据的数组:悲观的程序员觉得数组是半空的。乐观的程序员觉得数组是半满的。真正的程序员? 觉得数组占用的空间过大,需要调用realloc。

    8. 程序员其实可痛苦的了……需求一做一改,一个月就过去了;嚎~需求再一改一调,一季度就过去了;嚎~

    程序员最痛苦的事儿是啥,知道不?就是,程序没做完,需求又改了;
    程序员最最痛苦的事儿是啥,知道不?就是,系统好不容易做完了,方案全改了;
    程序员最最最痛苦的事儿是啥,知道不?就是,系统做完了,狗日的客户跑了;
    程序员最最最最最痛苦的事儿是啥,知道不?就是,狗日的客户又回来了,程序给删没了!

    9. 有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他说,“你知道不知道这个东西会危害你的健康?我是说,你有没有注意到香烟盒上的那个警告(Warning)?”小伙子说,“没事儿,我是一个程序员”。那妇女说,“这又怎样?” 程序员说,“我们从来不关心Warning,只关心Error”
     
  4. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    雷军:10年编程路,我想给初入行的程序员几点建议!

    雷军自述:我并非天生喜 欢写程序,上高中时也没有想过程序员的生活。我学电脑非常偶然,小时好友上大学时选择了计算机系,为了和这个朋友有更多的共同语言,我也选择了计算机系。大学毕业后,分到研究所,不太适应那里的气氛,就在1992年初加入金山软件,开始了职业程序员的生涯。后来成了金山软件研发部门的主管,但我一直都是一线的程序员。

    [​IMG]

    做自己最擅长、最喜欢的事

    [​IMG]

    我刚接触电脑就发现电脑的妙处,电脑远没有人那么复杂。如果你的程序写得好,你就可以和电脑处好关系,就可以指挥电脑干你想干的事。这个时候你是十足的主宰。每每你坐在电脑面前,你就是在你的王国里巡行,这样的日子简直就是天堂般的日子。电脑里的世界很大,编程人是活在自己想象的王国里。你可以想象到电脑里细微到每一个字节、每一个比特的东西。

    开始的时候,我们觉得我们没有什么不能做的(现在还能听到这样的豪言壮语),而且更要命的是好象我们特别聪明,特别适合开发软件,比老外强得多。当我们真正接触那些杰出的开发人员的时候,发现他们太厉害了,都有十多年的开发经验。虽然也有很多年轻人做了很多好东西,但决大多数的产品出自这些有丰富开发经验的程序员的手。刚毕业的时候,编程不仅仅是爱好,而且也成了一辈子的工作。整天不知道写些什么东西,觉得特别没劲,找不到感觉,特别灰心。后来,才明白,只有全身心地投入,程序才会有感觉。

    写程序的活特别费脑子,也特别累,但我喜欢,可以肯定我会干上一辈子,虽然我没有打算一生只干这一件事。用一生来编程序是一件既容易又困难的事。如果碌碌无为,为交差写点程序,这样的日子太好混了。但如果想全身心地写程序,写十年就不是一件容易的事。现在我不少朋友都洗手了,有时我也想“用什么电脑呀,Windows 外的世界不是也很大吗?”。面对电脑的时候,立刻顿悟:写程序还是自己最擅长的事,也是最喜欢的事。

    建议一:不喜欢写程序的人早点转行,不要勉强自己,免得误人误己。

    不要被追求的目标束缚自己的抱负

    [​IMG]

    有的人学习编程技术,是把高级程序员做为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。

    一个人只要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。刚开始写程序,这时候学得多的人写的好,到了后来,大家都上了一个层次,谁写的好只取决于这个人是否细心、有韧性、有灵性。掌握多一点或少一点,很快就能补上。成为一个高级程序员并不是件困难的事。

    当我上学的时候,高级程序员也曾是我的目标,我希望我的技术能得到别人的承认。后来发现无论多么高级的程序员都没用,关键是你是否能够出想法出产品,你的劳动是否能被社会承认,能为社会创造财富。成为高级程序员绝对不是追求的目标。

    建议二:时刻保持好奇心,不要局限在技术本身,多花点精力关注用户。

    计算机技术更新换代非常快,每年都有各种各样的新技术出现。需要时刻保持好奇心,不断学习各种新的东西,才能在未来的几十年职业生涯中不落伍。人的精力有限,高手往往工作压力也比较大,如何在有限的时间内掌握整个行业动态,的确不是简单的事情。我的经验是经常看业内的各种技术杂志,参加各种聚会,可以节约很多时间。最重要的是,交几个博学的技术高手,多和他们交流,一定受益匪浅!

    现在的软件研发越来越强调团队协作,不少团队都配置了专门的需求分析工程师、用户界面及用户体验的设计师,软件研发的分工越来越细。很多程序员以为只要把技术搞好,不用管用户需求和用户体验。实际上,需求方案及界面方案不可能写得非常细,具体的实施还是程序员自己来实现的。这个时候,好坏的差距很快就体现出来了。我们写程序的最终目的是满足用户需求,不是简单完成需求规划方案中的功能。所以,程序员一定要认真揣摩用户心理,能明白用户的真实需求。

    我强烈建议程序员不要仅仅局限在技术本身,还需要多点精力考虑和用户相关的问题,学会洞察用户的需求,并努力设计好用易用的产品。做到这点的程序高手,就算创业也有很大的成算了。

    编程是技术,更是艺术

    有人认为编程是一种熟练工种,也有人把编程说成是艺术创作。

    我们换个工种来看,石匠应该是熟练工种,属于工人,更和艺术似乎沾不上边。但正是这些石匠,给我们留下多少文物古迹,如乐山大佛、莫高窟等等。应该说这些石匠给我们留下了无穷的文化财产。现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战。一名普通程序员接受编写某一模块的任务后,往往只是写代码,发挥的余地很小。在大项目中,很多程序员只能了解到和自己所编模块相关的很局部的细节,另外还受到开发环境的限制,真的很难体会到自己在从事"艺术"创造,更多的时候是感到自己在从事重体力劳动。有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展,操作系统的换代而过时……

    编程应该说两种属性都有。编程不仅仅是技术,也还是艺术。编程是技术活,才有可能大规模进行,才会有软件工程和软件工厂。也正是编程是艺术,才会有如此多的好产品,让大家如痴如醉。

    建议三:必须像工匠一样写够十万行代码,又须像写诗一样来写代码。

    程序员像木工一样,熟能生巧。程序员必须写足够代码量的程序,才会有感觉,这是一个苦力活,没有任何捷径可走。

    计算机是一门实践性的科学,没有动手能力做支撑,很难做出好的科研成果。我的一个学长是美国卡内基梅隆大学的博士,卡内基梅隆大学计算机系在全世界都非常出名,他说每个博士生必须写十万行代码才能毕业,卡内基梅隆大学博士生进任何一个大企业基本不用面试。而国内培养的大部分研究生、博士生,动手能力都偏弱。没有写过足够代码量的程序员,想成为高手是不可能的,只能纸上谈兵!

    那么,怎样像写诗一样写代码呢?很简单,买几本经典的编程书,把书上所有例程全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。时间长了,自然就能写出像书上例程一样的代码,甚至可以比书上写得好。基础扎实后,多看看Linux等系统级的源代码,看看高手是如何写的,就有感觉了。通读一下MSDN中所有的资料,这样就“读书破万卷,下笔如有神”。

    还有,一定要牢记软件工程的铁律:可能出错的地方一定会出错。每个变量都做初始化,引用每个参数都要做有效性检查,在可能出错的每个地方都要做边界条件检查,这样开发出来的程序一定会稳固很多,就是出错也很容易修改。野路子出来的高手,一般开发速度很快,但做完后Bug会很多,经常需要很长时间修改。而真正的高手,追求的境界是Bugfree code(零缺陷代码)。
     
  5. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
  6. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    厉害了!长沙脑瘫男孩获美国名校计算机专业博士全奖!

    据长沙晚报报道,近日,中南大学软件学院软件工程专业研究生莫天池同学终于拿到了美国纽约州立大学石溪分校计算机专业的博士全额奖学金,他在此前还获得新泽西理工学院信息系统专业的博士全额奖学金,以及纽约州立大学水牛城分校英语教育专业的录取通知。

    [​IMG]

    莫天池因出生时遭遇意外患脑瘫,但他从小成绩优秀,获奖无数。2010 年考入中南大学的软件工程专业 ,大二起,他就在国家级核心期刊发表论文,一共完成 3 个科研项目,拿过“2013 年度中国计算机学会优秀大学生”,获得各级各项奖学金多达 9 次

    [​IMG]

    为此,莫天池还受邀参加 2013 中国计算机大会,并获得了唯一一个与谷歌副总裁Vinton G.Cerf 先生交流的机会,2014 年以专业第一被保送本院读研。2018 年 2 月 24 日,他拿到了纽约州立大学石溪分校计算机专业的博士全额奖学金。

    [​IMG]

    与互联网之父 Vinton G. Cerf 合影

    其实为了出国留学,莫天池要比常人付出更多的努力,他不完成学习任务就不睡觉,经常熬到夜里两三点。至于为什么选择出国,他说:“我想去美国学习人工智能与医疗系统的融合,用自己的研究成果为更多的残疾人提供生活便利。”

    如今,已经几个 Offer 在手的莫天池并没有松懈,他知道录取通知书和奖学金既是对他努力的肯定和回馈,也是对他未来的期许和鞭策。如今,更远、更大的世界已经向他敞开了大门,他已经迫不及待要去领略那更绮丽的风光。
     
  7. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    如何成为有效学习的高手


    [​IMG]

    本文是许岑得到课程《如何成为有效学习的高手》的学习笔记,去年一次偶然的机会接触到许岑的 Keynote 教程,学完之后完全被他圈粉了,甚至还产生了想买锤子手机的冲动,所以最近也有倾向性的去了解许岑的一些其他教程,《如何成为有效学习的高手》就是其中一个不错的教程,有些观点对学习还是很有指导意义的。

    许岑无疑是一位学习能力很强的人,他在几年的时间里,先后掌握了一些技能,并达到了专业水准,比如吉他、英语、幻灯片设计、炒菜等。他为高效学习下了一个定义,高效学习是找到自己的学习方法,在相对短的时间内集中注意力,以解决一个工作或者生活中的难题为目的着手学习。你需要勤加练习,有时候还需要向名师求助。

    高效学习含义之中包含七个关键词
    • 适合自己

    • 学习方法

    • 短时间

    • 注意力

    • 解决难题

    • 设定目标

    • 名师
    适合自己的学习方法

    首先谈到的就是找到适合自己的学习方法,教程中提到两种学习方法,一种是自然主义,它的核心是模仿,比如学习语言、书法、乐器等,遇到什么就学习什么即可,积少成多,以量取胜。比如学习书法,主要是用心去临摹一些笔法,后期积累多少了,就可以写出漂亮的字体啦。另一种是结构主义,它侧重的是对结构和交互关系的认识,需要体系化的学习,以达到举一反三,可以自己创造一些东西的效果。比如学习编程,如果你连数据类型都理解不了,如何写出一个完整的程序呢?

    掌握了学习方法,可以保证我们的学习是有效的,但是面对茫茫知识的海洋,一步登天是不太可能了,我们要将目标进行拆解,针对目标细节反复练习,这样可以让我们的学习变得高效。

    不谈兴趣,任务驱动

    学习方法对了,但是不一定能学得好,为什么这么说呢?可以分两种情况来看,一种是学不会,这种和天赋有关,比如你想要成为篮球运动员,但是你身体素质始终差距太大,可能就与篮球无缘了。另一种是学不好,无法达到比较优秀的水平,这种情况往往是驱动力不够,比如我们大家都在喊着学英语,学习路线也是一大堆,但是我们英语水平还是非常一般。

    人的驱动力主要来自两方面,一种是内部驱动,比如兴趣、虚荣心、表现自己的欲望。另一种是外部驱动,比如任务激励。兴趣是很难培养的,我们这一生要做的事情太多了,不可能说每件事都有自己的兴趣,成年人不讲兴趣,应该用任务来驱动自己,任务处处都是,工作中的职业强迫、生活中的形势所迫都可以叫做任务。

    倘若你不做饭就没有吃的,那么你肯定在短时间内可以成为一个不错的小厨师,同理工作中老板让你短时间内完成一件事,不然面临炒鱿鱼的风险,你同样可以做得十分不错。我们要不断的为自己创造任务,用任务来驱动自己,这样才能始终高效的学习。

    有一种解决任务驱动的好方法,就是可以以教为学,比如我学习许岑的《如何成为有效学习的高手》,就是为了写一篇通俗易懂的文章来帮助大家对常见的学习套路有个基础的认识;再比如你想成为做饭高手,你可以每天把做出的菜写成一套教程,帮助大家的同时也是帮自己树立了目标驱动。个人觉得以教为学可以从两方面驱动我们学习,一方是教的过程就是树立目标的过程,任务驱动自己;再者就是教的过程可以带来粉丝、关注和赞美,人都是想获取赞美的,这种赞美促使我们产生内在的动力,这种内在的动力可以叫做虚荣心,也可以叫做表现自己的欲望。

    拖延症的“确诊与治疗”

    首先,许岑科学的解释了什么是真正的拖延症,拖延症在医学上叫做注意力缺陷多动障害,患有这种病的人只有很少的人可以完成中学学业,完成大学学业的更是寥寥无几。我们平时觉得自己做事拖拖拉拉,其实并不是注意力缺陷多动障害,而只是自己有拖拉的习惯罢了,是可以通过训练来及时改掉的。

    回想一下,是不是有些事情你敢拖拉,有些事绝不敢拖延,假如发生了大地震,你是绝不会把逃跑这件事拖延的,在严峻的任务驱动下,往往可以解决拖延的问题。上一小节讲到了任务驱动可以提高学习的动力,如果你还是存在拖延的问题,你可以把任务的时间设置的更加紧迫,把任务设定的更加严峻。

    在衣食住行上训练专注力

    专注力决定着你做事和学习的效率,可以从衣食住行这些方面来训练自己的专注力,平常的生活并不会训练我们的专注力,但是营造仪式感可以提升我们的注意力。买昂贵的学习工具、好好吃饭、学习的时候使用射灯都可以营造仪式感,从而提高我们的注意力。当然,要保证睡眠质量的哦,睡眠不够,人很难做到专注。

    直奔大师,不必从基础开始

    有时候想要实现某一目标,不一定要从基础开始,比如一个家长只是想和孩子的外教进行交流,如果从新概念开始学习,那么可能很难坚持下去,并且不实用,依然无法和外教进行正常交流。倒不如直接学习学校的英文资料,浏览学校的英文网站,选择一个正确的切入点。再比如你想要去弹一首曲子,如果从指法开始学习,可能猴年马月才能出成效,倒不如直接去模仿大师的作品。

    其实我觉得这里就和我们平时说的问题式学习类似,直接去解决问题,在解决的过程中其实就是不断学习、不断进步的过程,并且印象会更加深刻。如果拿起书本从头看到尾,反而没什么收获。

    给自己制造反馈

    有时候我们学完一些东西,依然无法把他融会贯通,比如无法完成相关题目,无法向别人阐述原理等。当觉得自己学会了某样东西的时候,一定要想办法讲出来,或者应用出来,这是自己给自己制造的反馈。

    常见的制造反馈的方式有三种。第一种是写,可以写读书笔记,可以写教程,就比如经常写的程序员博客,其实就是很好的输出,一个给自己反馈,同时别人也可以向自己反馈一些问题,得到快速的进步。第二种是录音,给自己录音。第三种是给自己录像。

    如何突破学习瓶颈

    突破瓶颈其实有三种常用的方法,第一就是保持自信,相信自己可以做到。第二是扩大涉猎的范围,就比如编程,有些思想是互相借鉴的,如果一个问题一直摸不清,当你知识积累到一定成程度的时候,可能就会豁然开朗。第三则是请教名师,名师指点迷津。

    总结

    首先总结下对我很具有启发的关键词:体系化学习、模仿式学习、问题式学习、目标拆解、任务驱动、任务的严峻性、以教为学、有所输出、自我反馈。希望对你也有所帮助

    如何成为一个有效学习的高手?首先是找到适合自己的学习方法,然后基于这套正确的学习方法,通过任务驱动和专注力来提高学习的效率,当你解决一个问题或者掌握一些知识的时候,要自己给自己制造反馈,当你遇到瓶颈的时候,要始终保持自信,通过扩大知识面、请教名师等方法来突破自我。

    学点什么都会有用的
     
  8. 秋高气爽

    秋高气爽 知名会员 ID:37354

    注册:
    2004-09-13
    帖子:
    97
    支持:
    2
    声望:
    118
    金钱:
    $15,063
    发了邮件和悄悄话,都没回音,啥情况?
     
  9. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    如何快速成长为技术大牛?阿里资深技术专家的总结亮了

    写在前面

    不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。

    然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线敲shell命令,这不是我想要的运维人生”。

    我也是一位程序员,所以我希望通过以下基于程序开发的一些例子,帮助大家解决这些困惑。大道理是相通的,测试、运维都可以借鉴。

    几个典型的误区

    拜大牛为师

    有人认为想成为技术大牛最简单直接、快速有效的方式是“拜团队技术大牛为师”,让他们平时给你开小灶,给你分配一些有难度的任务。

    我个人是反对这种方法的,主要的原因有几个:

    1.大牛很忙,不太可能单独给你开小灶,更不可能每天都给你开1个小时的小灶;而且一个团队里面,如果大牛平时经常给你开小灶,难免会引起其他团队成员的疑惑,我个人认为如果团队里的大牛如果真正有心的话,多给团队培训是最好的。然而做过培训的都知道,准备一场培训是很耗费时间的,课件和材料至少2个小时(还不能是碎片时间),讲解1个小时,大牛们一个月做一次培训已经是很高频了。

    因为第一个原因,所以一般要找大牛,都是带着问题去请教或者探讨。因为回答或者探讨问题无需太多的时间,更多的是靠经验和积累,这种情况下大牛们都是很乐意的,毕竟影响力是大牛的一个重要指标嘛。然而也要特别注意:如果经常问那些书本或者google能够很容易查到的知识,大牛们也会很不耐烦的,毕竟时间宝贵。经常有网友问我诸如“jvm的-Xmn参数如何配置”这类问题,我都是直接回答“请直接去google”,因为这样的问题实在是太多了,如果自己不去系统学习,每个都要问是非常浪费自己和别人的时间的。

    2.大牛不多,不太可能每个团队都有技术大牛,只能说团队里面会有比你水平高的人,即使他每天给你开小灶,最终你也只能提升到他的水平;而如果是跨团队的技术大牛,由于工作安排和分配的原因,直接请教和辅导的机会是比较少的,单凭参加几次大牛的培训,是不太可能就成为技术大牛的。

    综合上述的几个原因,我认为对于大部分人来说,要想成为技术大牛,首先还是要明白“主要靠自己”这个道理,不要期望有个像武功师傅一样的大牛手把手一步一步地教你。适当的时候可以通过请教大牛或者和大牛探讨来提升自己,但大部分时间还是自己系统性、有针对性的提升。

    业务代码一样很牛逼

    有人认为写业务代码一样可以很牛逼,理由是业务代码一样可以有各种技巧,例如可以使用封装和抽象使得业务代码更具可扩展性,可以通过和产品多交流以便更好的理解和实现业务,日志记录好了问题定位效率可以提升10倍等等。

    业务代码一样有技术含量,这点是肯定的,业务代码中的技术是每个程序员的基础,但只是掌握了这些技巧,并不能成为技术大牛,就像游戏中升级打怪一样,开始打小怪,经验值很高,越到后面经验值越少,打小怪已经不能提升经验值了,这个时候就需要打一些更高级的怪,刷一些有挑战的副本了,没看到哪个游戏只要一直打小怪就能升到顶级的。成为技术大牛的路也是类似的,你要不断的提升自己的水平,然后面临更大的挑战,通过应对这些挑战从而使自己水平更上一级,然后如此往复,最终达到技术大牛甚至业界大牛的境界,写业务代码只是这个打怪升级路上的一个挑战而已,而且我认为是比较初级的一个挑战。

    所以我认为:业务代码都写不好的程序员肯定无法成为技术大牛,但只把业务代码写好的程序员也还不能成为技术大牛。

    上班太忙没时间自己学习

    很多人认为自己没有成为技术大牛并不是自己不聪明,也不是自己不努力,而是中国的这个环境下,技术人员加班都太多了,导致自己没有额外的时间进行学习。

    这个理由有一定的客观性,毕竟和欧美相比,我们的加班确实要多一些,但这个因素只是一个需要克服的问题,并不是不可逾越的鸿沟,毕竟我们身边还是有那么多的大牛也是在中国这个环境成长起来的。

    我认为有几个误区导致了这种看法的形成:

    1)上班做的都是重复工作,要想提升必须自己额外去学习

    形成这个误区的主要原因还是在于认为“写业务代码是没有技术含量的”,而我现在上班就是写业务代码,所以我在工作中不能提升。

    2)学习需要大段的连续时间

    很多人以为要学习就要像学校上课一样,给你一整天时间来上课才算学习,而我们平时加班又比较多,周末累的只想睡懒觉,或者只想去看看电影打打游戏来放松,所以就没有时间学习了。

    实际上的做法正好相反:首先我们应该在工作中学习和提升,因为学以致用或者有实例参考,学习的效果是最好的;其次工作后学习不需要大段时间,而是要挤出时间,利用时间碎片来学习。

    正确的做法

    Do more

    做的更多,做的比你主管安排给你的任务更多。

    我在HW的时候,负责一个版本的开发,这个版本的工作量大约是2000行左右,但是我除了做完这个功能,还将关联的功能全部掌握清楚了,代码(大约10000行)也全部看了一遍,做完这个版本后,我对这个版本相关的整套业务全部很熟悉了。经过一两次会议后,大家发现我对这块掌握最熟了,接下来就有趣了:产品讨论需求找我、测试有问题也找我、老大对外支撑也找我;后来,不是我负责的功能他们也找我,即使我当时不知道,我也会看代码或者找文档帮他们回答。最后我就成了我这个系统的“专家”了。虽然这个时候我还是做业务的,还是写业务代码,但是我已经对整个业务都很熟悉了。

    以上只是一个简单的例子,其实就是想说:要想有机会,首先你得从人群中冒出来,要想冒出来,你就必须做到与众不同,要做到与众不同,你就要做得更多!

    怎么做得更多呢?可以从以下几个方面着手:

    1)熟悉更多业务,不管是不是你负责的;熟悉更多代码,不管是不是你写的

    这样做有很多好处,举几个简单的例子:

    需求分析的时候更加准确,能够在需求阶段就识别风险、影响、难点
    问题处理的时候更加快速,因为相关的业务和代码都熟悉,能够快速的判断问题可能的原因并进行排查处理
    方案设计的时候考虑更加周全,由于有对全局业务的理解,能够设计出更好的方案

    2)熟悉端到端

    比如说你负责web后台开发,但实际上用户发起一个http请求,要经过很多中间步骤才到你的服务器(例如浏览器缓存、DNS、nginx等),服务器一般又会经过很多处理才到你写的那部分代码(路由、权限等)这整个流程中的很多系统或者步骤,绝大部分人是不可能去参与写代码的,但掌握了这些知识对你的综合水平有很大作用,例如方案设计、线上故障处理这些更加有含金量的技术工作都需要综合技术水平。

    “系统性”、“全局性”、“综合性”这些字眼看起来比较虚,但其实都是技术大牛的必备的素质,要达到这样的境界,必须去熟悉更多系统、业务、代码。

    3)自学

    一般在比较成熟的团队,由于框架或者组件已经进行了大量的封装,写业务代码所用到的技术确实也比较少,但我们要明白“唯一不变的只有变化”,框架有可能要改进,组件可能要替换,或者你换了一家公司,新公司既没有组件也没有框架,要你从头开始来做。这些都是机会,也是挑战,而机会和挑战只会分配给有准备的人,所以这种情况下我们更加需要自学更多东西,因为真正等到要用的时候再来学已经没有时间了。

    以java为例,大部分业务代码就是if-else加个数据库操作,但我们完全可以自己学些更多java的知识,例如垃圾回收,调优,网络编程等,这些可能暂时没用,但真要用的时候,不是google一下就可以了,这个时候谁已经掌握了相关知识和技能,机会就是谁的。

    以垃圾回收为例,我自己平时就抽时间学习了这些知识,学了1年都没用上,但后来用上了几次,每次都解决了卡死的大问题,而有的同学,写了几年的java代码,对于stop-the-world是什么概念都不知道,更不用说去优化了。

    Do better

    要知道这个世界上没有完美的东西,你负责的系统和业务,总有不合理和可以改进的地方,这些“不合理”和“可改进”的地方,都是更高级别的怪物,打完后能够增加更多的经验值。识别出这些地方,并且给出解决方案,然后向主管提出,一次不行两次,多提几次,只要有一次落地了,这就是你的机会。

    例如:

    重复代码太多,是否可以引入设计模式?
    系统性能一般,可否进行优化?
    目前是单机,如果做成双机是否更好?
    版本开发质量不高,是否引入高效的单元测试和集成测试方案?
    目前的系统太庞大,是否可以通过重构和解耦改为3个系统?
    阿里中间件有一些系统感觉我们也可以用,是否可以引入 ?

    只要你去想,其实总能发现可以改进的地方的;如果你觉得系统哪里都没有改进的地方,那就说明你的水平还不够,可以多学习相关技术,多看看业界其它优秀公司怎么做。

    我2013年调配到九游,刚开始接手了一个简单的后台系统,每天就是配合前台做数据增删改查,看起来完全没意思,是吧?如果只做这些确实没意思,但我们接手后做了很多事情:

    解耦,将一个后台拆分为2个后台,提升可扩展性和稳定性;
    双机,将单机改为双机系统,提高可靠性;
    优化,将原来一个耗时5小时的接口优化为耗时5分钟

    还有其它很多优化,后来我们这个组承担了更多的系统,后来这个小组5个人,负责了6个系统。

    Do exercise

    在做职业等级沟通的时候,发现有很多同学确实也在尝试Do more、Do better,但在执行的过程中,几乎每个人都遇到同一个问题:光看不用效果很差,怎么办?

    例如:

    学习了jvm的垃圾回收,但是线上比较少出现FGC导致的卡顿问题,就算出现了,恢复业务也是第一位的,不太可能线上出现问题然后让每个同学都去练一下手,那怎么去实践这些jvm的知识和技能呢?

    Netty我也看了,也了解了Reactor的原理,但是我不可能参与Netty开发,怎么去让自己真正掌握Reactor异步模式呢?

    看了《高性能MySQL》,但是线上的数据库都是DBA管理的,测试环境的数据库感觉又是随便配置的,我怎么去验证这些技术呢?

    框架封装了DAL层,数据库的访问我们都不需要操心,我们怎么去了解分库分表实现?

    诸如此类问题还有很多,我这里分享一下个人的经验,其实就是3个词:learning、trying、teaching!

    1)Learning

    这个是第一阶段,看书、google、看视频、看别人的博客都可以,但要注意一点是“系统化”,特别是一些基础性的东西,例如JVM原理、Java编程、网络编程,HTTP协议等等,这些基础技术不能只通过google或者博客学习,我的做法一般是先完整的看完一本书全面的了解,然后再通过google、视频、博客去有针对性的查找一些有疑问的地方,或者一些技巧。

    2)Trying

    这个步骤就是解答前面提到的很多同学的疑惑的关键点,形象来说就是“自己动手丰衣足食”,也就是自己去尝试搭建一些模拟环境,自己写一些测试程序。例如:

    Jvm垃圾回收:可以自己写一个简单的测试程序,分配内存不释放,然后调整各种jvm启动参数,再运行的过程中使用jstack、jstat等命令查看jvm的堆内存分布和垃圾回收情况。这样的程序写起来很简单,简单一点的就几行,复杂一点的也就几十行。

    Reactor原理:自己真正去尝试写一个Reactor模式的Demo,不要以为这个很难,最简单的Reactor模式代码量(包括注释)不超过200行(可以参考Doug Lee的PPT)。自己写完后,再去看看netty怎么做,一对比理解就更加深刻了。

    MySQL:既然有线上的配置可以参考,那可以直接让DBA将线上配置发给我们(注意去掉敏感信息),直接学习;然后自己搭建一个MySQL环境,用线上的配置启动;要知道很多同学用了很多年MySQL,但是连个简单的MySQL环境都搭不起来。

    框架封装了DAL层:可以自己用JDBC尝试去写一个分库分表的简单实现,然后与框架的实现进行对比,看看差异在哪里。

    用浏览器的工具查看HTTP缓存实现,看看不同种类的网站,不同类型的资源,具体是如何控制缓存的;也可以自己用Python写一个简单的HTTP服务器,模拟返回各种HTTP Headers来观察浏览器的反应。

    还有很多方法,这里就不一一列举,简单来说,就是要将学到的东西真正试试,才能理解更加深刻,印第安人有一句谚语:I hear and I forget. I see and I remember. I do and I understand ,而且“试试”其实可以比较简单,很多时候我们都可以自己动手做。

    当然,如果能够在实际工作中使用,效果会更好,毕竟实际的线上环境和业务复杂度不是我们写个模拟程序就能够模拟的,但这样的机会可遇不可求,大部分情况我们还真的只能靠自己模拟,然后等到真正业务要用的时候,能够信手拈来。

    3)Teaching

    一般来说,经过Learning和Trying,能掌握70%左右,但要真正掌握,我觉得一定要做到能够跟别人讲清楚。因为在讲的时候,我们既需要将一个知识点系统化,也需要考虑各种细节,这会促使我们进一步思考和学习。同时,讲出来后看或者听的人可以有不同的理解,或者有新的补充,这相当于继续完善了整个知识技能体系。

    这样的例子很多,包括我自己写博客的时候经常遇到,本来我觉得自己已经掌握很全面了,但一写就发现很多点没考虑到;组内培训的时候也经常看到,有的同学写了PPT,但是讲的时候,大家一问,或者一讨论,就会发现很多点还没有讲清楚,或者有的点其实是理解错了。写PPT、讲PPT、讨论PPT,这个流程全部走一遍,基本上对一个知识点掌握就比较全面了。

    后记

    成为技术大牛梦想虽然很美好,但是要付出很多,不管是Do more还是Do better还是Do exercise,都需要花费时间和精力,这个过程中可能很苦逼,也可能很枯燥,这里我想特别强调一下:前面我讲的都是一些方法论的东西,但真正起决定作用的,其实还是我们对技术的热情和兴趣!

    本文作者:李运华
     
  10. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    做一个快乐的程序员

    [​IMG]

    春节假期,与几位友人小聚,大家互道工作顺利、平安健康云云,期间一位驰骋商界多年的老友问:”你现在在华为做什么工作呀?”我很骄傲地说:”系统架构师“,可是他却愣了很久,但当我老婆在旁边补上一句“码农“时,老友瞬间秒懂,却把我受伤的心孤独地留在风中凌乱。

    作为与UNIX同年代的人,我当初选择计算机专业仅仅是因为抓到什么就学什么罢了。本科毕业遇到互联网危机,便没有想法地去读了研,研究生毕业找工作,面试官问为什么要做软件开发,答曰“不给钱都喜欢做的事情,何况还给钱”,便从此踏入了编码这一行,只是从来没想到一做就是十几年。

    但凡一件事情做久了,无论成功与否,都会有一些真切的体验和心得。以前也读过一些工作中如何成功、快乐,诸如马洛斯理论之类的文章,也许是因为自己领悟能力比较差,唯一的收获是庆幸自己当初选择了编码作为自己的工作,因为编码天生就具有让人愉悦的工作内容和工作氛围,快乐如影随从。

    码世界:规则简单有效,粗暴却完美

    从事编码,可以锻炼逻辑思维能力,教会你如何思考。就像学习法律一样,学法律的人未必都是为了成为律师,但法律教会了你一种思维方式。同样的,通过编码可以学习到这个世界上最严谨的思维方法。因为在编码的世界里,对错是简单甚至绝对的,只要敲下键盘,计算机就会判定孰是孰非,0或1,规则简单有效,粗暴却完美。

    从事编码,可以获得持续的创造力。跟写作、绘画、作曲一样,编码也是一种创造性的工作。只要有一台计算机,掌握了基本技能后,你便拥有了无限的超能,便能随心所欲地创造出新的东西,丰富和美好这个世界,是不是很棒?

    更酷的是,编码可以品味孤独。除了跟别人交流、学习,程序员大部分时间都是独自在工作,只要双手触摸到键盘,内心顷刻便会变的宁静,多酷呀!伴随着键盘清脆的低吟,沉浸在一个人的世界里,跟烟雨蒙蒙天,一杯茶,一个人听着淅淅沥沥的雨声品味孤独,简直有异曲同工之妙,多感性呀!

    能够选择编码作为工作的人,大部分都是喜欢为人处世简简单单的人:这群人有着天真烂漫的好奇心,虽不苟言笑,但却内心火热,善于分享,乐于助人,甚至有时为了解决问题、宁愿不眠不休,却深以为乐……跟这样一群简单纯粹的人在一起,我觉得世界上最好的工作氛围,也不过如此。

    [​IMG]

    程序员的三个境界

    但IT时代的膨胀已经让编码工作如同文艺复兴时的印刷匠一样,编码门槛越来越低,遍地《一周XX速成》、《20天XX精通》,仿佛会写代码就成了程序员,这让很多人认为从事编码工作就是码农。其实,印刷匠很多,成为大师的不多;码农很多,但程序员并不多。程序员不是码农,码农也不是真正的程序员。

    [​IMG]

    程序员在英文里对应有三个单词:Coder、Programmer和Software Engineer,我觉得这三个词,生动形象地描述了程序员所需要经历的三个阶段,或者说三个境界——

    Coder:只要求能够熟练使用编程环境,精通几种编程语言、开发框架和开发库,擅长写代码就可以了。这个阶段的程序员能够按照既定的设计完成编码。

    Programmer:要求在coder的基础之上,精通设计模式、算法实现和编码技巧,并具备熟练应用的能力,这个阶段的程序员能够独立编码解决现实问题。

    Software Engineer:要求在掌握业务知识的前提下,理解为什么这么实现,在综合考虑架构实现,权衡开发成本后,为解决业务问题提出最优方案,并能与业务人员顺畅沟通,让业务人员理解方案。编码工作达到这个阶段,才能称得上是真正的程序员,才真正实现了从工作到职业的转变。

    不可否认,这个世界上有一些天才的程序员,他们喝着咖啡,哼着歌,便完成了上面三个阶段的修炼。但绝大部分人,都需要为此付出巨大的时间和精力。能否成为职业的程序员,影响因素和方法论很多,各种学习类、技术类的总结遍地都是:主动思考、及时总结、制定规划等。但我认为其中最重要的是能否做到专注。

    许多没有达到第三个阶段的程序员,就是因为受到各种因素诱惑,变得心猿意马,不够专注。因为不够专注,他们不在意做好自己本职工作,不在意锤炼自己的技能,不在意学习新兴的技术。慢慢的,他们会认为从事编码没有出路,进而毫无例外地把编程看成是体力劳动,只会粘贴拷贝代码,知其然而不知其所以然,导致技术停滞不前。在这样的状态下工作5年、10年,对于他们来说,没什么区别,程序员真的就是吃青春饭的码农。

    [​IMG]

    程序员VS码农:我们不一样

    要避免程序员变成码农,必须对编码保持热情,并持续学习;必须保持好奇心,乐于探求事物本质;必须对所做的工作及时总结,主动优化代码,让系统变得更加有机;必须主动尝试更好的开发方式、更先进的工具,来提升开发效率,并想办法避免重复性的工作;必须不断改进设计,将编程变成创造性的工作。只要通过这样逐步地积累经验和长时间锤炼,知识体系才能构建完备和丰富,才能避免沦落为码农。

    几年前,我曾经重构过一个模块,从外部看模块的所在的系统,都是类似这样的,简洁而漂亮:

    [​IMG]

    但从程序员编码实现的层面看,它实际上是这样的:

    [​IMG]

    这个设计在最初的版本没有任何问题,使用继承扩展管理对象的接口能力,但仅仅过了两个版本,项目组PL说实在撑不下去了:增加一个接口,需要修改200多个地方,如果再过一个版本,估计要修改400多个地方了。

    后来我把它改成这个样子,使用聚合消除了耦合:

    [​IMG]

    从代码实现层面看,在功能刚开始开发时,这两个设计区别不是很大,但随着系统演进、越来越多的功能加入,继承关系带来的耦合会导致模块之间关系越来越复杂,牵一发而动全身,终究有一天哪怕只做很小的改动,也将成为压死骆驼的最后一根稻草。

    这次重构的成果是代码量由43K减少到15K,扩展新的接口能力不再需要修改已有代码。我想,这或许就体现了码农和程序员的区别吧。

    CT是一个业务复杂度极高的行业,要想从码农成长为程序员,需要经历更多的煎熬,需要发挥更多的创造力,同时也意味着,我们比以往任何时候都需要越来越多的码农成长为程序员。

    既然我们选择了编码作为职业,注定会经历各种心劫:枯燥、沮丧、迷茫,甚至浮躁……然而无论处于哪种心境当中,我相信,只要想起自己曾经满怀惊奇、兴奋与真诚敲下的那个程序——“Hello,World!”我们就会充满了渴望和力量,因为那是程序员最初的梦想:改变世界。
     
  11. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
  12. 游戏数学

    游戏数学 新手上路 ID:105389

    注册:
    2012-01-02
    帖子:
    108
    支持:
    11
    声望:
    28
    金钱:
    $5,253
    C、C++、Java、JavaScript、PHP、Python分别用来开发什么?

    首先,我们先普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。理论上任何语言干任何事情几乎都可以, 但是主要干什么那就不一样了。

    C和C++

    C/C++理论上说可以做任何开发, 只要有合适的硬件驱动和API,特点是效率高,基本上是编译语言里面效率最高的。除非你的系统中连C/C++编译器都不具备. 某些系统当中C++编译器是不具备的, 但是C一般都具备. 目前而言, C语言主要用来开发底层模块(比如驱动,解码器,算法实现), 服务应用(比如web服务器)和嵌入式应用(比如微波炉里的程序). C++也可以做这些, 不过由于C++的复杂性和标准问题, 人们还是更愿意使用C来做. C++更适合比较复杂但又特别需要高效率的设施,比如大型游戏,一些基础库, 大型桌面应用.

    总结:

    C: 系统底层, 驱动, 嵌入式开发.

    C++: 游戏开发, 大规模, 高性能, 分布式要求的程序开发。

    Java

    java常常跟”企业”联系在一起, 因为具备一些很好的语言特性, 以及丰富的框架, 在企业应用中最被青睐, 你总可以听到关于J2EE, JSP, Hibernate之类的东西的讨论. 同时, java在手机领域也有一席之地, 在普遍智能化之前, 很多手机就是以支持java应用作为卖点的, 而智能手机爆发之后, java手机主场变成了android, 作为安卓的标准编程语言而存在.

    总结:

    Java: 网页, 企业级开发, 普通应用软件, 游戏后台。

    JavaScript

    javascript听起来跟java有关系, 其实并没有任何关系, 只是名字像而已.就好比雷峰塔和雷锋的关系一样,虽然只差一个字。 js最广泛的应用毫无疑问是在web前端. 简单的说, 网站给你传过来的是一堆用各种标签表示格式的文档, 而js负责操纵这些文档实现一些客户端动态效果. js的领地还不仅如此, 现在的Node.js还可以用于服务器端的开发.

    总结:

    JavaScript是浏览器的脚本语言,一般和Html,CSS这些一起学,主要做网站的前端开发,展现各种酷炫的画面。

    PHP

    php这三个字你常常会在浏览器地址栏里看到, 所以不意外php是用来开发网站的. 也是web后端的王者语言.无数的网站后端都运行着php代码.

    总结:

    PHP:主要是网络前端,用于生成网页。也可以整个web服务器都用php,比如很多论坛引擎。

    Python

    Python由于具有丰富和强大的库,它又叫做作胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。Python是做服务器开发与物联网开发。信息安全,大数据处理,数据可视化机器学习,物联网开发,各大软件的api,桌面应用,都需要python。

    总结:

    Python:动态解释型,开发效率高,开源,灵活,入门门槛低。
     

分享此页面

扫描下面的二维码分享到微信!
http://bbs.comefromchina.com/threads/1492886/page-4