房天下 > 房天下问答 > 业主生活 > 其他
  • 在校本科生非专业如何自学编程?

    本人对编程很感兴趣~ 但是可惜自己的专业对于计算机的学习只有一个学期因此想要自学编程~目标是希望能够做一些项目 做一点APP 当一个开发者希望大神能够指点一下 首先应该学习哪一门语言 然后学哪一门语言整个学习的顺序应该是什么样的 感谢!-------------------------------------------------------------------------------------------------------------------------------或许有人觉得这个问题很小白 很常见 大家都能搜到但是我在这里问肯定是在别的地方得不到我满意的回答才来的知乎是一个言论自由的地方 也是一个平等交流的平台 不是一些人秀智商秀优越的好去处 北京市

    提问者:huaxiongff

    发布于2015-11-17 北京市

共9个回答
  • 忍者神龟2012 丨Lv 4
    题主你这骂挨的不冤,真的。由您的实际给我们的启示是:提问是门技术,写少了让人无法理解,写多了容易找骂,您说您非写后面那几句话干什么……好,我看到这个问题可算可以答了,然后,看到你问题补充,一下子无名怒火就起来了=_=呃……舒服多了……为了证明知乎er的素质是过关的,骂完人还得答题。题主您好!看到您的事迹十分感动。首先,我为您打气。实际上大家对就读计算机学院是有深刻误解的,计算机学院出来的不总是修电脑的,也不总是写应用的,还有其它很多有意思的事情可以做。大部分程序员都是在有了基本认识之后,靠着手册和论坛自己成长起来的。所以,我一直认为,程序员是不分学院派的。以上我想表达的是,靠自学成为一个伟大的程序员在理论上是可以做到的。但是学院能为你带来什么呢?体系化的教学、自上而下或是自下而上地系统地了解计算机的组成和原理,然后是算法和数据结构,这些都是基本。这也是非计算机本科生缺少的(当然靠自学也大丈夫)。那么回归到您的需求,如果现在要入门,私以为还是从最传统最基本的来——C语言。这大概是程序员的必经之路。当然,并不需要多么深刻,只需要明白程序设计的基本流程、设计的一般思路、诸多计算机概念的掌握,到这里就差不多了好,当你真正能看懂论坛里大家在说什么的时候,你就可以迈向开发者的一步了,学习一门面向对象的语言,上面有答主说的,java就挺好。当掌握基本语言之后,再去了解算法、数据结构,争取主要算法能自给手动实现。现在你已经算是入门级选手了。之后就结合具体案例,看看真正的开发者是如何从头开始做出成品的。因为鄙人和您一样是本科生,还处于学术的最底层阶段,而且不是这个方向的(隔专业如隔山)所以仅仅只能通过自身的一点点经验来解答这个问题,希望对您有所帮助。最后祝您身体健朗,学习愉快!
    +1 2015-11-17 举报
  • 提问回答2010 丨Lv 0
    说说Android吧,iOS没接触过。路线基本是C-&gt;JAVA-&gt;Android有的人可能说这样太慢了,什么时候才能做出APP啊。浮躁就是你学编程的最大的阻碍,循序渐进,脚踏实地。学C的时候你可能会想:C语言除了能做个六年级奥数题,要不就排个序,还能干嘛?学JAVA的时候你可能会想:靠!老子什么时候才能把这种东西拿的出手啊,做个图形界面都这么丑!很多人死在了第一步,又有很多人死在了第二步。心一定要沉下来,很有可能你写个两年的代码都没法风光的展示给你的同学看,那又怎么样呢?念念不忘,必有回响~~~~~~~~~~~~~~~~~~~~~~说点干货吧~~~~~~~~~~~~~~~~~~~~~~如果你对程序一点都不了解的话建议你看网易云课堂翁凯老师的C语言程序设计。JAVA我就不推荐视频了,推荐两本书好了,一本是《Head first JAVA》,还有一本是《JAVA经典实例》。第一本讲的相当生动有趣,看完这本基本上就一只脚入门了。第二本就相对枯燥一点,但对你编程经验得进步贡献最大的就是第二本。其实不需要3了,如果你把以上的学完,你自己就会找到最合适你的学习道路。还是很喜欢这段话 Everybody in this country should learn how to program a computer because it teaches you how to think. (这个国家的每个人都应学习编程,因为它教你如何思考) -STEVE JOBS分享两段视频: [中文字幕]《多数学校不会教的东西》What Most Schools Don't Teach<<
    +1 2015-11-17 举报
  • 西瓜皮和囊 丨Lv 1
    关于如何学编程的问题,多的实在无法让人容忍,动动手就能搜出"宇宙"级信息,为何不先把搜到那些看完了再来问几个自己始终无法搞懂,比较有意义的问题?你不是懒惰,已经上升到自私了。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~回复字数比较多,超出限制只能修改答案来回复你的评论了:好森破纯真的少年,赞一个!! 首先表明立场,一、我不是想吵架撕逼;二,我不是从事计算机及其相关行业的,而且我对编程这件事儿毫无兴趣可言,所以回答相关专业问题我不会,但是就你义愤填膺的写下的回复我想说几句: 1.“搜到的大多是方法而不是一个学习的过程目标 ”,你的目标描述本身就很笼统,或者说问题给的很大而题目中给出的有用信息很少,这就决定着别人不可能给出你太符合你需要的答案,只能得出共性的答案,此种条件下得出的答案我觉得跟google一个“程序员技术成长路线”之类的词条得出的搜索结果差不了多少,而且谁说人家搜不出学习过程的; 2."我信任知乎这个平台 在其他地方搜到的资源并不一定有效可靠 我需要多个途径来获取我的信息“,好吧,你信任知乎,那请你先在知乎搜索学习编程,看是不是有不少和你重复的问题?有吧,人家问的还比你具体点。好吧,也许你看完了会说他的条件不适合你,那请你看完知乎里计算机词条下对你有用的知识后再来提问不是更好?从你问的问题就感觉你对这个领域根本没有系统性的认识,这种条件下你还和人谈目标,谈个鸟毛。再说计算机相关的专业论坛那么多,我还真不信没有谁分享学习过程和心得的帖子,不比知乎问的专业点吗?再不济还有Stack Overflow可以问呀; 3.我生活中是什么人你不用管,你从我说的那几句话哪里看得出我在优越感的?我觉得吧,做一件事儿,不是主要靠想,而是靠做啊,管他什么的,先去图书馆看几本专业性的书籍学一下能有什么损失,而且你是学生在校有相对充裕的自学时间,目标和计划这东西一样,它们是会随着你学习不断深入的过程而逐渐变化的,也许你学了一些东西后目标会很清晰,根本无需来这里问。知乎只是一个开阔眼界的地方,学习只能靠读书; 4.我说你自私,是我的不对,我道歉,但是你问些重复的问题,我真的觉得你自私,我只是把我的想法说出来而已。如果放到现实中,遇到与你相似的人我绝对不会说人家自私,因为我根本不想搭理他,十月份的时候公司新招的一个大学生儿,就因为天天事儿逼问些能翻书翻标准自己动手就能解决的问题,问的全部门的前辈都无法忍受,被人摆了一道给弄转岗了,你看,他们多招人厌恶? 5.与人交流,不管好心还什么,一定要注意沟通方式,加入你现实中这么阴阳怪气的跟人说话,保不齐有人跟你干仗呢,哈哈~~ 6.轮子哥辛苦回答了那么专业那么多,你就回谢谢两个字,我废话一句,你回我这么多,所以我觉得你是不是来问问题的,而且你说的兴趣根本不是真的热爱和兴趣。 祝你学习顺利,少年!! 睡觉
    +1 2015-11-17 举报
  • 满血复活 丨Lv 0
    "像外行一样思考,像专家一样实践“如果你心里有一个好的想法,想实现成一个好的产品。想获得那种创造的喜悦,你自然会去了解哪些语言或者框架比较适合你的想法,然后一步步的走下去。从实践中学起,一个一个目标实现,你会不知不觉中成为”开发者“!
    +1 2015-11-17 举报
  • kaijinwen 丨Lv 4
    找一些编程的教材先试上一个礼拜天天坐在电脑前写代码。无视你的室友又输了一盘撸啊撸。无视偶尔出去看到的情侣亲呢秀恩爱。无视不停出错带来的焦躁感。你确定能坚持下去?题主的专业想来不是计算机相关的,那么比起学习计算机,你该先想想自己是不是想继续在自己的专业上走下去。因为编程的学习不比其他,当作业余爱好的话,除非你是大神,不然肯定会影响你的主业。毕竟比起很花时间的编程学习,本业学科方面有更多该学的内容,该做的实习,以及在此之外的社会活动和待人接物的学习。找工作说你会写代码也帮不了你,因为你不是那专业。
    +1 2015-11-17 举报
  • michael_msx 丨Lv 4
    “不忘初心,方得始终”,以前听到这句话烦得依壁雕凿,现在看到题主的问题,我突然想起了一个故事:曾经有一个少年,他对编程很感兴趣,感觉电脑手机上运行的程序好厉害啊,要是自己能写一个app就可以在朋友们面前装B了,于是抱着这种最原始的欲望,那个少年一步两步,一步两步似爪牙……额,不是,是一步一步成为了,程序员。
    +1 2015-11-17 举报
  • liuyue0104 丨Lv 4
    作为光学工程专业硕士毕业,本科奔去了acm world final,现在主做科学计算的路过。题主很有兴趣,这个最重要的大前提已经具备,接下来首先你要明白自己的目的究竟是什么。以移动app为例,是做以网络服务为核心的app?或者一个精巧的小游戏?又或者以精妙算法为核心的工具?与硬件结合的图形界面?需求不同,学的内容是不一样的。至少起步时学的内容是不同的。无论是不是相关专业的学生,都很容易存在一个误解:学个编程语言,就可以做出自己想要的东西。但事实上语言只是最基本的工具,不可能说会用铅笔就能够画素描,会使钢锯锤子就能造汽车,只会编程语言是不足以支撑一个完整程序的开发的。语言这一关最容易出现的问题是学什么语言,然而这个问题其实不如想象中重要:对于现在的普遍环境,学好一个对象化的语言就可以了。就像学写字问用什么笔,虽然各种笔特点不同,用法有些许差异,但是重点在于写出来的字。至于换支笔,有了以前的基础和一些理论知识,也就分分钟的事了。语言会了,第二个要点则是往往被忽视的原理和概念知识。不要求特别精通,但是编程的人熟悉编译器/解释器基本工作流程,运行时错误代表的意义,时间空间复杂度估算之类的知识,都是十分必要的。此外,对于对象化相关概念,对操作系统的一些基本知识(如windowsd下的换行符问题),对中文文字编码问题的知识(utf8与cp936)等,必须了解。如果题主不打算专注算法深坑,接下来要面对的是各类framework各类api各种模块/库。现在基本上一个主流语言,你能想到的几乎所有复杂算法、功能,都能够找到相应的别人做好了的模块。能够看懂文档,就能用上了。这个阶段你会发现之前学的理论知识能够极大程度推进你的学习新模块的进度。至此,一般的小App就已经拦不住你了,接下来根据需要选择学习其它语言,研究算法,或者修改开源代码使之满足自己需求什么的,都属于积累经验。毕竟抛开算法不说,编程是个工匠活计,积累经验,产生新的创意思想,这些都是不可或缺的。
    +1 2015-11-17 举报
  • 惊天一吼 丨Lv 0
    编程就像写文章,做一个程序员就像做一个作家。你觉得一个作家应该先学哪门语言,后学哪门语言,才能成为一个作家?或者是一个作家应该先学什么技巧,再学什么技巧,才能成为一个作家?不过如果你只是想写APP,那你用C#。C++和C#是目前跨PC和移动平台、跨领域最完整的语言。Java不能用在Windows/WP系列上,OC不能用在Windows/WP和Android系列上。C++的话你的目标太简单没必要学,所以还是用C#,你哪个平台都可以把你的程序编译上去。微软的平台用VS和Universal Apps,Android和iOS的你可以用Xamarin,Linux和OSX用Mono。如今做游戏用Unity3D大多都是用C#来开发的。在你什么都不会的时候首先学习C#的好处有:1、语言设计精巧,你只需要懂一点点就可以完整的写出你的APP的逻辑。当然了,你懂得越多,写出来的代码越漂亮,但是如果你不追求这个,没有关系。2、开发工具做的强大,调试起来毫无压力。3、资料也很多。4、Visual Studio 2013 Community是免费的5、如果你的APP需要后台,你的客户端和服务器可以只用一种语言来写,互操作方便得不得了。你完全可以抱着一种只想写APP而不想成为开发高手的心态来学,你也可以抱着一种通过写APP来学习编程最后成为开发高手的心态来学,都可以。
    +1 2015-11-17 举报
  • nnyanjiang 丨Lv 4
    有iPhone和Mac的话学Obj-C有WP手机和Win8.1电脑的话学C#都比较适合入门做APP
    +1 2015-11-17 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。