×

haskell教程

haskell教程(计划自学一门语言,入门该选Go还是Rust呢)

admin admin 发表于2023-02-20 11:18:23 浏览37 评论0

抢沙发发表评论

本文目录

计划自学一门语言,入门该选Go还是Rust呢

如果你想从事底层的开发,比如数据库,消息服务器,及各种中间件,先还是学一下c,这门语言可以辅助你学习操作系统的概念与API调用。然后好好学习一下RUST,这门语言在语法上和scala,haskell很相近,一旦学会,相当于熟悉了一个语系。如果不想从事底层开发,学一下go也很好,这门语言在并发编程,抽象与具体分离,函数式编程方面还是有一定特点,而且比较简单!

女朋友刚刚接触编程,让她学Haskell是否合适

对于没有接触过编程的人,学Haskell不合适。

原因在于Haskell语法过于精简,精简到会编程的人一看就会,不会编程的人难以补全想象期间的过程。也就是会的人一看就会,不会的加大的学习难度。

刚接触编程,最好是学习python或者php这样的显式语法编程语言。

例如定义一个函数,python中是def 函数名, 调用是函数名(),而Haskell这个过程全精简了,直接就是函数名,调用时也是函数名也没啥()识别,只能脑补,况且学编程的人很容易搞混定义函数与调用函数,这两个过程的状态是相反的,Haskell通过一定语法规则区分两者,但对初学者却是费脑筋。其实有很多程序员分不清函数function与方法method有何差别。

初学不宜学C和JAVA这种语法过于详细繁琐的语言,也不宜学过于精简的Haskell。况且Haskell应用很少。还是学python吧,0基础少儿都能学会。

大学文科狗可以把Haskell作为第一门语言吗

题主这么问,也许是对haskell有所了解了,甚至已凭直觉感爱到了它的魅力。如果是这样,那么恭喜题主,一定要去学,即便以后不在生产环境用到,也会学习到其它语言无法带来的思维方式。这个真的非常宝贵。

请问各位计算机专业的同胞们,上本科的时候,你们的编程语言课本是全部讲完吗

小石头本科是计算机软件专业,下面与大家分享一下自己对编程语言学习的经历和一些看法:

上学时,系里安排的必修语言是 Pascal,之后相关的 数据结构,编译原理,等 基础专业课 都是 Pascal 版本的。不过,隔壁计算机硬件专业 和 分校区的软件学院的必修语言却都是 C 语言。为什么这样呢?据说是因为:我们学校的软件专业更接近数学系的应用数学专业(复变函数,离散数学 等, 这些课就是同一个老师教的),所以更注重计算机和数学理论。而当,时计算机论文中描述算法的官方语言就是 Algol,于是作为 Algol 嫡传的 Pascal 自然就成了 系里 教学语言的首选。另外,还据说,当时和国外交流的大学(具体哪个大学记不起了)也是 用的 Pascal 为教学语言的。

言归正传,当时,作为学校排名第三的一流专业,我们 Pascal 授课老师 还是非常有水平也非常敬业的,同时,系里安排的课时 也非常充足。我印象中是 完全讲完了,刚才又翻了一下当时的教材,根据勾画的痕迹,可以确认这一点。

虽然学 Pascal 对于搞计算机理论很有 用,但对于实际工作 帮助不大,为了有个饭碗,当时又选修了 C 语言,谭浩强的那本!这次讲的就粗糙多了,讲完不可能的,记忆中全是靠自学的!

因为,选 C 语言 后悔了,之后的 C/C++ 和 Java 我都是 自学的!人生无常,本以为 可以 靠它们吃饭了,结果 找到的是 却是 C# 的工作,好在就是 C语法 包装下的 Java,我几乎一个星期就上手了。

小石头觉得:

1. 只需要第一门 编程语言好好学,之后的 完全没有必要选修,靠自己就行了;

2. 虽然说计算机语言是相通的,第一门语言选啥都可以,但是 还是建议 选择 C 语言,因为:

  • C 语言 在深度嵌入式开发中依然是主力;
  • 面向对象 很好 在 面向过程 语言上 嫁接,首先要将后者精通;
  • Java, C/C++, JavaScript,... 都是 C 语法的;
  • 还有,就是:学 操作系统 和 计算机原理 的 时候,需要 C 语言,所以任何时候 C 都是需要学的;

3. 语言是拿来用的,学是学不会的必须做项目;保守估计 第一门语言 10w 行 入门,100w行精通,所以 建议 大二之后 寒暑假 多做兼职;

4. 实际工作中,更多的是学习 类库、框架、设计模式 等,以提高自己的 概念设计、逻辑设计、物理设计 等水平为目的,编码实现和debug 反而不是 最重要的! 还有一类工作,是维护代码,这时候 代码重构 就有用了!

5. 不建议计算机系刚刚毕业就立马做算法,除非你选第二专业是应用数学或者你数学有特长,之后如果想转,除了 学数学知识(如:实变,概率,统计 等)和 相关语言(如:Python,Matlab, R 等)外,建议可以学习一下 Lisp(scheme)和 Haskell 这两冷门语言,这对于你的语言观会改变巨大!

6. 最终,计算机语言的学习是分职业,

  • 嵌入式:C 语言 + 汇编,gcc 是小汇编;
  • Window:C#;
  • 苹果:ObjectC, swift;
  • Android:Java;
  • 网络:JavaScript(TypeScript) + Java(PHP);
  • CS:Python;
  • 游戏:C/C++, C#,Lua;

... ...

有人说:人的一生就是用职业编造囚禁自己的牢笼,诚然!

(以上仅仅 小石头一家之言,大家谨慎采纳!)