一个基本没有程序设计语言基础的人如何开始学习julia?

对于没有任何语言基础的人,即使看了julia著名的视频“Julia教程 从入门到进阶”, 可能还是一脸茫然。原因是没有建立编程的思维体系,就像二,三年级的小学生写不好一篇简单的作文,但是能听懂,看懂复杂的故事一样。

如何快速建立编程的思维体系最快捷的方式就先模仿再消化吸收。我建议本论坛单独开辟一个给予新人的范例专栏,每个范例尽量不超过200行代码,并标注范例的难易等级(1-3)。所有范例来源不限,并配以问题以及解答的说明就可以。

国人计算机基础教育,任重道远啊。


附:
本提议的原因是得知国内某名牌985电子专业本科毕业没有任何编程基础!!!(现在是2022年)
可能很多大学都如此,认为学习计算机语言与大学专业课程无关,这不是我们大学教育的悲哀么?

二三年级的小学生能看懂复杂的故事吗 :face_with_raised_eyebrow:还是幼儿编程吧 :joy:

那就找自己喜欢的项目,读别人的代码吧,读多了也会写了。

多写点代码也就会了。

编程当然有他的思维体系,就像英语有语法体系一样。
但语言上手最快的还是多听多用,不懂具体的语法规则在初期并不是很大的问题。

我是以非计算机相关专业+快速自学入门的角度来谈的感受。
如果你认为需要认真听课、刷题,补上理论短板,那就不用看了。
有这个耐心的早就自学成功了。新手找不到目标,一直没有正反馈,失去兴趣放弃可能更常见。


我自己的一点感受+带别人上手科学计算的经验:学编程最好有一个明确的、可评价目标。 然后去写代码就行了。
不管这个目标简单与否,但一定要是结果可以评价的:是否达到目标,具体实现了多少。
不能是:学会 julia 语言、学习科学计算编程,这种没有明确评价标准的。

(这里删去一段身边统计学)

理性分析一下,目标明确并且有外部压力时,你就容易关注具体的实现,尽可能地去学现在要用到的知识。以写代码、实现功能为第一要务。不会去纠结一些初学者不应该深究的细节。


我碰到的情况都是带人上手写很具体的任务。所以目标一般都过于具体和贴近业务,也就是比较 dirty。但因为有人带着入门所以问题也不大。
自学可能更适合定义清晰,不涉及现实问题的 big clean project。大概类似 500 lines or less 这种。

对于 lz 说的 ”编程范例“。我对这种各种"XX语言经典例题合集"能起到的作用感到怀疑。我重温 C 语言时,也收集了不少 C语言编程案例 XX例,还煞有其事的用 VS 2019 给他们一个个运行,改warning,然后写注释。没一周我就弃坑了。除了熟悉了语法,那些算法、函数什么时候用,该怎么用基本没学会。

大家都喜欢做题,可能有部分人能以这种方式学会编程。这里其实是假设每个例题都能教会读者一个或几个知识点的组合,然后多学习一些例题初学者就掌握了大部分知识点,然后就可以组合运用了。

但我个人的经验是刷题刷到真正理解知识点,然后还能结合不同的知识点进行应用,这可太难了。这都不限于编程。。谁还不是套模板。既然是套模板,模板当然和考试越相近越好,最好是原题。不考的就都别看。

所以我才说需要定具体的目标,最好是你就想要实现的显示功能。直接上手去写就行了。
比如我初学 python 时就像做个截图识别,自动识别手机游戏截图里各种库存物品的数量。
其实主要是两步:一是物品的识别与分类,二是数字识别。
然后我就直接找了个北大的 python 人工智能网课,开始找示例代码。和 python 语法的学习同步进行。

看不懂并不妨碍你运行别人的代码,就是跑起来了改不了。
最后反正是做出来了。不过写的确实不行,就不放链接丢人了。(搜搜其实能找到


小结一下:

  • 先上手,然后再学理论。不理解的可以想想大学的考试周。
  • 明确目标是为了让你专心实现一个具体的、可完成程序。这样写/抄代码容易。也能更好的得到及时反馈
  • 有了目标就去找模板、套模板,初学者抄代码并不可耻。注意版权就行。
  • 不要陷入到语言/IDE/编程环境的各种细节中去。先把小目标实现了,再去学习语言的细节、配置”高效“的编程环境、研究算法

一些吐槽

写完了一看。这不是:如何在两周内学完 XX 门专业课吗?
应试教育刷题的技巧还是靠谱的,虽然不是很懂,但会做题。

5 个赞

虽然我很喜欢Julia,但是我依然觉得Julia不适合没有编程基础的人直接上手,如果是真想通过Julia做一些事情的话。类似的,如果Python是你接触的第一门编程语言,从后续发展的角度,只能说祝你好运了。

另外,国内高校理工科,编程基础都是必修。我很好奇这所不教编程的工科专业学校是哪所 :roll_eyes:

1 个赞

重复,多找几个入门资料来一遍,熟能生巧,大脑会自动学习的,另外就是Julia的官网Get started with Julia和julia中文翻译的mit课也可以照着抄一遍运行看效果,熟能生巧,大脑会自动理解输入的内容
说到中国教育,中国大学课程设计确实烂,但是教育是自己的事情,骂了十多年了也没啥改进,世界是一体的,中国学校不行,但是国外优秀的资源都是开放的,跟优秀的人学就好了,中国大学MOOC也能淘到一些评价高的。
网上搜到一个中科大的学生评课系统,学生们评价写的很认真,虽然很多是骂老师课烂的,但是可以看看骂点在哪里USTC评课社区,反正世界是一体的,跟网络上优秀的老师学就好了。

1 个赞

(我以前整理过一个流程,如果有人想创建相关资源欢迎参考。

https://computationalthinking.mit.edu/Spring21/

https://www.youtube.com/c/juliafortalentedamateurs
无编程基础学julia,但是需要英语以及梯子。