完全零基础小白,如何学计算机语言?
r语言或者Python适合你
下载anaconda,然后跟着demo开始练习就好了
你想做什么,就GitHub上搜索,应该都有现成的。然后改改就好了
我觉得要是我的话,我选举替冰箱换个硬件,升级一下芯片
@natasha #3 或许先对于编程本身又个整体思路会更有帮助。你会用到的大部分编程语言都是命令式的,就像你按下 Control+V 可以复制文字一样,编程的代码就是一条条命令,你运行这些代码,电脑就会按照顺序一个个执行每一个命令。比如代码 print("hello world")
就是一条命令,告诉电脑 print 出(在屏幕上显示出)hello world 这一条文字。
为了让程序运行更加方便,有人又发明了变量(variable)和函数(function)。变量就能把一堆值储存起来,能够更方拜地使用,比如 a = "Hello world don't let 2049 die!"
这么长一句话每次打太麻烦,用 a = 赋值之后每次只要用 a 就能指代这么长一段话的内容。print(a)
的效果等同于 print("Hello world don't let 2049 die!")
。同理,函数则是把一堆命令储存起来,然后每次调用函数的时候,就能方便地执行一大堆命令。上面的 print(a)
就是一个函数,然后括号当中的 a 就是传给函数的参数,让代码可以根据不同的参数执行出不同的结果。
上面这些都是语言基础,当你学完之后好像和画图之类还差得远,不过你可以直接导入别人写好的代码包,然后调用他们的函数。Python 有非常多现成的代码包,你只要调用一个函数比如 plot(data)
运行就自动帮你把数据画出来,基本只要懂 Python 基础,就能够进行数据分析了。
总结,编程语言就是执行一个个命令,只是平时都是用鼠标点击,在代码里你是用文字告诉电脑你想要它执行什么命令,这样做的好处是程序更加有灵活性,随便开个 txt 就能写代码,也非常容易储存。而其他所有的变量、函数、循环之类的东西,本质都是服务于这些命令,让你可以少写点字,更加高效地写出命令。以下的教程链接可以用来学 python 代码的基础语法,看不懂的地方可以直接跳过,大概一个下午的时间就能够入门了,编程入门实际上非常简单。然后再下面一个链接是在线执行 python 的代码,这样你就不用折腾安装程序之类的问题,对新手来说安装程序才是最耗费时间、最容易出问题的环节。第三个链接是 Google Colab,一个用 Python 数据分析的网站,也是直接在线使用,你学完基础语法之后,就可以找教程学习怎么进行数据分析了。
教程:https://www.runoob.com/python3/python3-tutorial.html
在线运行 Python:https://c.runoob.com/compile/9
Google Colab:https://colab.research.google.com/notebooks/intro.ipynb#recent=true
@张怀义 #5 是这个道理,不过主要矛盾是大部分 numpy、jupyter 的教程不会教循环、函数之类的东西,看着例子去猜是什么意思,不如花一个下午的时间了解一下。 @natasha 不知道你是图新鲜还是有真实的需求,如果图新鲜可以学 JavaScript,和 python 不一样的地方在于,JavaScript 可以在浏览器里运行,所以可视化的代码包非常丰富而且总体来说也比 matplotlib 之类的更加方便。
JavaScript 教程:https://www.runoob.com/js/js-tutorial.html D3.js(可视化代码包)教程:https://wiki.jikexueyuan.com/project/d3wiki/introduction.html
啊啊,你的学习支撑点是统计分析和可视化,我觉得不用看很多fancy的东西,先看哈神的r4ds,真的是从数据的角度来教新人,我建议不要从python学起,因为新手很容易在大蟒蛇的基础语法中迷失学习的兴趣。
等你把r学得差不多了,看一个大熊猫(pandas)十分钟速成文档,就可以用python来看r的事情了。
可视化,一定要学ggplot2,不是说一定要用,这本书把可视化的本质讲出来了,实质是数据到视觉元素的映射,并且使用一套严格的语法grammar,来让你明白一个完整的视觉图形应该怎么做。虽然 Tableau 这类工具足够傻瓜化,但是理解可视化的本质才能让你真正掌握这个强大的工具。真正的可视化高手是不会囿于 Tableau 这类工具的局限的。
资料指引
另外感慨一下,哈神和谢益辉两个人就能把统计工具普及推动20年……人类的进步终究是由大神推动的
natasha这个问题,居然不请品葱公认码力最高的俺来回答,真是
https://pincong.rocks/article/15639
@electron8964 #4
换硬件。。这是要换头吗?
@natasha #16
或许可以试试?
@natasha #30 我这个人比较现实主义(虽然品葱站长说我是理想主义,但他自己也搞敏感词审查了,所以)
既然你提到伦理,我理解成“你能不能正经回答我的问题”的意思。
那我就正经回答你吧
首先你是小白,然后你有一个不用写代码的工具可以做一些事情,然后你想通过写代码去改这个工具,所以你想学写代码
以我的从业经验,最快的方法其实就是贝卡在故事里面介绍的方法,其他方法都是事倍功半的。我不可能非常具体地告诉你我在哪里工作,所以你可能没办法很快相信我,但我非常肯定的是,你如果走其他道路,转一大圈回来解决不了,最终还是要花钱请人。
但是按照故事里的方法,虽然实际上是最快的,但表面上看却是最慢、最没效率的,你也强调你是文科生,总结一句话就是你想偷懒。
偷懒的最快方法就是一手交钱一手交毕设。
回答完毕。
品葱那帮傻X管理员居然怀疑我是natasha
尼玛这根本不像我
@rebecca #31
你这个啥主义也不是,let alone理想主义…
伦理的意思就是(唉,我咋还得给你讲伦理):
你是个医生,就好好给人看病,将病人生命健康当作第一位;
在医疗资源有限的时候,如何将资源分配给情况不同的病人;
如果你是一个文物修复师,如何能恢复物品原样而不是弄得跟新的一样;
如果你是一个记者,就把报道真相当第一位;
如果你是一个作家,要怎么写出风骨
在香港反送中运动的时候,应该怎样理解示威者的暴力(并不是非黑即白这么简单)。。。。。
总之,伦理就是教你做事之前先做人。一般稍微正经点的大学,每个专业都应该有伦理课的,不知道你是没上,还是你们学校没开。。。。
还有,谁说文科生就是想偷懒啊?你这是要得罪全天下所有文科生吗?
@natasha #18 理论上来说,所有的编程语言能够实现的东西都是一样的(图灵等价),即在 C 里面能做到的功能,Java 和 python 也一样能够做到。虽然都是具体执行一条条命令,不过具体使用的时候侧重点不同:比如 C 更加靠近底层二进制,所以运行速度可以比 Python 快上很多,但是写起来非常麻烦,很容易报错;与之相对的,Python 的语法非常灵活,上手很容易;上面站长提到的 R 语言则是专门为统计编写的程序,其中有很多内置的代码包,直接调用就能完成许多功能,不需要自己再手动档了。或许确实不存在一个秒杀所有的万灵药,不过单纯是统计和可视化的需求,R 暂时绝对是最主流的选择。
#24 我看了一下 Palladio 这个项目,它的代码是用 Javascript 加上代码包 D3.js 写的,暂时没有开放接口让你可以用其他语言来自定义配置。不过 D3.js 能够实现的功能 R 都可以差不多地实现,也就是界面好不好看的差别。你可以先学 R,之后再考虑 JavaScript,因为相较于 R 来说,JavaScript 里面有很多复杂的细节,消耗初学者耐性。
@natasha #24 很好的想法啊,我也一直有这种类似的想法。:)我一般作图都是用现成的统计软件里自带的作图功能,不一定那么漂亮,但信息传达够用。网页上,可以看看D3.js(https://d3js.org/),用的是javascript语言,可以用于网页的动态作图。R的好处是有各种用户建立的包(package),而且如果你想以后自己写包用于某个功能,也要从那里开始。
我个人的建议是,先学R,从最简单的开始。比如先把R当计算器用,输入1+1,回车,出来个2;输入7^3,出来个343;超好用。R没有那么复杂,很多语言都非常的intuitive,可以一步步来,从导入数据,归纳数据,做最简单的图开始(如plot(data),直接出图),然后慢慢学写函数、图形复杂化等功能。R已经有了可以导出网页的功能,不过我个人这方面不太了解。
如果要做类似Palladio的,学javascript。这个我也只略接触过,对于初学者来说比R复杂。总之还是建议R。
R的话先用RStudio吧,对人文社科界的应用研究者比较友好,可以和point and click结合,导入数据,直接在一个窗口看数据,等等。学R语言的话可以看看coursera上的课程,有具体的schedule,如这里:https://www.coursera.org/learn/r-programming
本小白基本不怎么在论坛发言,一直潜水,但有一样的需求,感谢楼上各位大佬!
“给冰箱讲清楚”这个形容真可爱。用编程进行统计分析和可视化也是我的目标,所以根据我自己的经验给你一点点建议吧。因为我也只能算是新手,所以也许有说错的地方,如果和别人有冲突,还是以别人为准吧(笑)
首先是学python还是R。用任何一种语言做数据分析的人都挺多的,但我比较喜欢python的语法,另外python在其他地方的用途也更广泛。你可以根据自己的需求来选择。
如果选择学python,和楼上的朋友们的提到的一样,下载anaconda,这是一个比较方便的搭环境的方式。接下来你可以找一些coursera这类平台上的公开课来学习,关键词是python和data science/data analysis。这些课程一般会从零开始讲解简单的python语法,一些处理数据用的常用库如numpy和pandas等。另外也推荐kaggle上的课程。如果你想要学习数据可视化,也同样推荐公开课和kaggle的课程。
学习这些课程之后你应该已经可以像使用excel一样用python对数据进行处理和作图。接下来就是多练习。可以找一些数据集,对你感兴趣的东西进行处理分析和展示。仍然推荐kaggle,有很多有意思的数据集可以玩。你也可以用kaggle作为关键词来搜索别人对于数据的分析过程。另外reddit的dataisbeautiful版有很多不错的数据可视化图,应该可以给你很多灵感。
虽说是要学习一门编程语言,对新手来说可能听起来有点可怕,但实际上整个过程并不会太难,和学excel或者ppt的过程差不太多,所以不用太紧张。希望可以帮到你。