首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >成为更好的F#程序员的途径

成为更好的F#程序员的途径
EN

Stack Overflow用户
提问于 2010-09-02 14:21:02
回答 7查看 1.9K关注 0票数 13

我想听听你们这些已经精通F# (以及函数式编程)的人的意见,从现在开始,我应该怎么做才能成为一名更好的/专业的F#程序员?

我已经了解了很多F#语法,并且有几年使用C++的经验。作为一名工程师和数学家,我的目标是设计更好的科学库(线性代数包、偏微分求解器等)。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-09-02 15:50:44

从现在开始,我应该采取哪些步骤来成为一名更好的/专业的F#程序员?

每天保持编码:)

我在07年9月搭上了F#列车,在那之前我已经有了大量的C#经验。我花了大约3个月的时间才停止用更有趣的语法编写C#代码,并开始学习正确的编码风格:)

小贴士和帮助我的事情:

  • 我发现F#使编写非惯用代码变得非常困难,而编写良好、整洁的代码却非常容易。如果你发现自己在与编译器抗争,那么10次中有9次你做错了什么。回到绘图板上再试一次。
  • 整个不变性的概念一开始还是个谜,但在08到09年间,我写了a wikibook,在一些缓慢的工作日子里,实现来自Okasaki的纯函数式数据结构的所有数据结构是非常困难的。我已经有一段时间没有看过它了,但我相信这真的很糟糕-但是,对于像我这样通常没有足够的动力在F#中开始一个宠物项目的人来说,向别人解释这种语言的经历是一个很好的开端:)
  • 地图,折叠和过滤器是你的朋友。尝试用这些函数来表达算法,而不是用recursion.
  • Non-tail递归函数实现循环,几乎总是更容易读写。请参见here.
  • Project Euler。很多人推荐它,我一点也不觉得它有什么特别的帮助。然而,如果你是一个数学家,你可能会比我更有用。
  • <3个联盟!在可变状态下使用them!
  • Falling --这是很大的禁忌。至少对初学者来说是这样。最糟糕的初学者代码充满了可变变量和ref变量。不变性最初是一个陌生的概念,因此我建议在一段时间内编写完全无状态的程序。

不过,最好的建议是每天坚持编码。

希望这能有所帮助!

--朱丽叶

票数 27
EN

Stack Overflow用户

发布于 2010-09-02 15:46:03

与任何其他语言一样,既然您已经了解了语法和基础知识,就可以编写代码并编写更多代码了。

在不使用inheritance.

  • If的情况下,

  • 在大型项目上编写一些不可变的数据structures.

  • Work,您熟悉的是纯函数式方式实现其中的一些,并注意到其中的一些

  • 是如何混合函数式和OOP风格的。

  • 在大型项目上编写一些不可变的数据structures.

  • Work,而不使用inheritance.

  • If。一旦你在没有继承的情况下完成了大量的抽象,就把它带回来,并开始混合在一起。找到平衡。

既然你作为一名工程师和数学家的目标是设计更好的科学图书馆,我建议将其作为学习练习,进行视频游戏风格的模拟。涉及到物理和数学,但也需要控制状态的东西。

票数 6
EN

Stack Overflow用户

发布于 2010-09-02 21:06:07

我只能同意,尝试向他人解释函数式编程是学习函数式编程的一个很好的方法。我花了很多时间思考我的F#书的结构,我认为这真的帮助我理解了函数概念之间的关系。即使是在你的公司或你的朋友做一个关于F#的演讲也应该会有类似的效果。

当我开始学习F#时,我开始了F# WebTools项目的工作。我认为这非常有用,因为项目的许多组件非常适合函数式编程,所以我学习了许多函数式技巧(因为它们是解决问题的最佳方法)。该项目处理了F#的源码树,并将其转换为JavaScript,因此我使用了大量的递归函数和区分联合。

您正在工作的领域与我的非常不同,所以我不能给您任何具体的建议,但以清晰的函数式方式编写程序是一个好主意-即使您认为以C++样式编写程序会更好。当您编写它时,您可能会找到一些方法来简化您的代码。

因此,我认为我可以给出的建议是:

  • 尝试向他人解释F# -这有助于您在头脑中组织想法
  • 选择好的问题开始-例如算法问题,处理树结构等。
  • 尽可能多地编写F#,不要害怕从看起来不完美的解决方案开始-我重写了我的第一个程序很多次!
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3628031

复制
相关文章
成为更好程序员的8种途径
  是时候开始认真考虑一下如何升级你的开发技术了。让我们来认真地学习一下吧。   给自己设定一个提高开发技术的目标很容易,但是“想成为一名伟大的程序员”却不是一个容易实现的目标。首先,说“我想变得更好
用户1289394
2018/02/28
6920
成为更好程序员的8种途径
成为更好程序员的8种途径
▲ 是时候开始认真考虑一下如何升级你的开发技术了。让我们来认真地学习一下吧。 给自己设定一个提高开发技术的目标很容易,但是“想成为一名伟大的程序员”却不是一个容易实现的目标。首先,说“我想变得更好”,是建立在你认识到“更好”的样子基础之上。另外,有太多的人追求进步而不知道如何去实现。 因此,让我分享八个可实际操作的指导方针,你可以把它们作为提高编程技能的流程图。这些智慧都是伴随着计算机35年的发展沉淀下来的。 1.时刻提醒自己:学习 学习某件事的第一步是承认你不知道。这听起来很正常,但经验丰富的程序员还记得
企鹅号小编
2018/01/16
6090
2014,成为更好程序员的7个方法
英文原文:7 Ways to be a Better Programmer in 2014
Isaac Zhang
2019/09/11
4150
一名普通的程序员进阶成为伟大程序员有哪8种途径?
本文作者讲述了8种方式帮助你如何从一名普通的程序员进阶成为一名伟大的程序员,让我们就从此时此刻开始提高自己的开发技能吧。 是时候开始认真考虑一下如何升级你的开发技术了。让我们来认真地学习一下吧。 给自己设定一个提高开发技术的目标很容易,但是“想成为一名伟大的程序员”却不是一个容易实现的目标。首先,说“我想变得更好”,是建立在你认识到“更好”的样子基础之上。另外,有太多的人追求进步而不知道如何去实现。 因此,让我分享八个可实际操作的指导方针,你可以把它们作为提高编程技能的流程图。这些智慧都是伴随着计算机3
CSDN技术头条
2018/02/13
1.1K0
一名普通的程序员进阶成为伟大程序员有哪8种途径?
成为一名更好的程序员:如何阅读源代码
成为一名更好的程序员:如何阅读源代码 阅读源代码有许多益处。你会发现新的架构(construct)和库,与其他的代码维护者产生共鸣,但最重要的是学会如何组织代码,避免因内部极其复杂而变得不可维护。 但
用户1289394
2018/02/27
8640
成为一名更好的程序员:如何阅读源代码
如何成为优秀的程序员 如何成为优秀的程序员
无论你是多么优秀的程序员,无论你从事何种职业,基础都是最重要的,任何高深的理论,任何看似复杂的任务,都是通过基础一点点解决的,一个人只有将基础打牢,他才能更上一层楼。
程序那些事儿
2023/03/07
2640
如何成为优秀的程序员
如何成为优秀的程序员
【技术指南】成为更优秀开发者的10条途径
我读过好多“成为更优秀开发者的方法”的文章,它们大部分似乎写于10年前。但大部分仍然很明智,因此我在这篇文章中提取出我认为的最好的10条途径。你可以随时看看。 我们开始吧。 读他人的代码 —— Scott Hanselmann 读他人的代码,并从中学习。你会适时得到提升,因为你容易学到其他开发者是如何处理问题的。结对编程是提升自我的最好途径。你从另外一个开发者那里读代码,实时地看到他/她的思维过程。反之亦然。你们可以挑战彼此的观点,共同进步。(推荐阅读:《阅读优秀代码是提高开发人员修为的一种捷径》) 找人读
程序员互动联盟
2018/03/13
7790
【技术指南】成为更优秀开发者的10条途径
凭什么2016年就会成为更好的自己?
回顾那些适(ban)可(tu)而(er)止(fei)的坚持,其实也留下了不少宝贵的财富,比如花了几个小时下载的电子书,每天收藏的好文章,讲座时拍下的PPT照片,随手记下的灵感和创作,认真做的几本读书笔记......这些有价值的资料散落在各处,没有被好好地整理和收纳。当这些知识不能被结构化和加深理解记忆,也就成了一堆沾满灰尘的废品,想找的时候都无处可寻。
科技云报道
2022/04/12
3570
凭什么2016年就会成为更好的自己?
学会如何学习 - 成为更好的终身学习者
酥鱼我从小学到大学毕业,当了十六年的学生,工作又选择了程序员这个发展日新月异、需要持续学习的行业。
scarsu
2020/10/22
8220
学会如何学习 - 成为更好的终身学习者
如何成为优秀的程序员?
经过了5年多的专职钉马掌生活后,我开始问自己一个问题:我要一直这样干下去吗?能不能干点儿别的?我的性格跟其他乡下那些叼着雪茄、喝着小酒的铁匠不一样,我从来没有戴过牛仔帽或骑过公牛。我渴望的是知道更多的
程序员互动联盟
2018/03/16
6540
如何成为优秀的程序员?
如何成为出色的程序员
年轻,高潜 这种程序员是每个公司都喜欢的员工,首先他们年轻,同时潜力巨大。 前几天看过一篇文章,说的是如果你35岁了,还有多少几率成为富豪。 数据统计的结果是:几乎为0。 面对这个数据,每个抱有侥幸心理的人恐怕都会哑口无言,这个几乎为零对于大部分没有好的背景,好的积蓄,好的人脉,好的父母,好的机遇的人来说恐怕就是0,所以在你35岁之前,甚至30岁之前,就需要不断努力,而不是在某个你时间点坐在那里仍对未来抱有侥幸。 年轻代表无限未来,高潜则是有较好的基础,聪明的头脑,学起新东西来更快,对新事物的变化更加敏
春哥大魔王
2018/04/17
6360
如何成为出色的程序员
成为更好的 Swift 开发者的 10 个 Tips(译)
你是否已经用 Swift 开发了几个月,现在,你想成为一个更好的 Swift 开发者?少年,你来对了地方,我这里有一本失传多年的武林秘籍传授于你。 不要在意代码的格式,我想尽我所能保持代码的简洁。以至于可以是你方便的拷贝到playground 来进行代码验证。
Swift社区
2021/11/26
2580
成为更好的 Swift 开发者的 10 个 Tips(译)
你是否已经用 Swift 开发了几个月,现在,你想成为一个更好的 Swift 开发者?少年,你来对了地方,我这里有一本失传多年的武林秘籍传授于你。 不要在意代码的格式,我想尽我所能保持代码的简洁。以至于可以是你方便的拷贝到playground 来进行代码验证。
网罗开发
2021/02/01
4010
程序员如何认识学历高点的程序员,以更好的提升自己?
写过几年代码,程序员的能力并不能直接和高学历挂钩,毕竟学历代表你曾经的学习能力和成果,并不能直接意味着做编程一定是高手,只能讲在有个好的基础之上成为高手的概率变高了,但不是绝对的。程序员提升自己能力,除了自身牢牢打好技术基础,还需要找个技术氛围好的工作,其次就是加入一些技术圈子结识一些技术大佬。
程序员互动联盟
2019/05/08
4940
程序员如何认识学历高点的程序员,以更好的提升自己?
10 个 Vue 开发技巧,助力成为更好的工程师!
在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性。
逆锋起笔
2020/06/17
1.8K0
我们需要更多的程序员,而不是更好的工具
我们需要更多的程序员,而不是更好的工具 我和他的年纪差不多,并且有着相似的初始经验——在TRS-80、TI-99/4A、然后是Windows PC上用BASIC编程。所以,我觉得我有这个资格对他的文章
用户1289394
2018/02/27
8240
我们需要更多的程序员,而不是更好的工具
通往云端的多条途径
如今,关于云计算仍然存在着许多误解和神话。这种混淆使许多人难以理解其潜力,以及如何让云计算实现其业务目标。而人们必须超越这些基本概念,并开始探索云交付和采用趋势的不同复杂性,以便充分获得云计算所提供的好处。
静一
2018/08/20
6880
9个Vue开发技巧助力成为更好的工程师
原文链接:https://juejin.im/post/5e8a9b1ae51d45470720bdfa
歪马
2020/04/16
4.2K0
成为伟大程序员的 10 个要点
最近我在接受采访时被问到我关于成为一名伟大程序员的见解。这是一个有趣的问题,我认为我们都可以是伟大的程序员,无论我们的天赋如何,如果我们遵循一些规则的话——我相信——这应该是常识。实际上,这些规则并不只适用于编程领域,也适合任何专业。
哲洛不闹
2018/09/14
4160
成为伟大程序员的 10 个要点
成为优秀程序员的10个技巧
我最近在接受采访时被问如何成为优秀程序员。这是一个有趣的问题,我认为如果我们应该遵循一些准则 - 我相信 - 无论我们的天赋如何,我们都可以成为伟大的程序员。事实上,这些准则不但适用于程序员,而且适用于所有专业人士。
我就静静地看
2018/09/11
6120

相似问题

成为更好的iOS和MacOSX程序员

10

推进DateTime的更好途径

20

如何摆脱木星,成为一个更好的程序员?

23

.net程序员学习php MVC的最佳途径

42

使git成为公共回购的途径/建议

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文