提高编程技能,你做过有效的事情是什么

提高编程技能,你做过有效的事情是什么,第1张

在stackexchange网站上看到了一个非常好的问答,有人问:你做过的有效的提高你的编程水平的一件事情是什么

回首作为一个程序员这些年来的生活和职业道路,我使用了很多种不同的方法来提高我的编程技能——阅读代码,编写程序,阅读书籍,听讲座,看视频,等等。

我的问题是:你做过的有效的提高你的编程水平的一件事情是什么对于那些想提高水平的程序员,你的建议是什么

我希望你们提供的答案是各种各样的,并且不是那种“放之四海而皆准”的答案——我希望得到适用于不同人的不同的答案。

有很多人给出了自己的答案,在这里,我将其中受认可的前三种答案选出来翻译给大家。

受欢迎的回答:学无止境

没有特别的先后次序

和比自己更聪明的人一起工作

永远乐意听取他人的意见,不管对方是低级水平,一般水平,资深,还是大师。职称头衔并不代表一切。

学习其它的框架/语言,学习它们是的工作原理和思想,拿它们跟你已知的技术做比较。

学习各种设计模式,实践理论,然后用它们检查自己先前的知识,在需要的时候使用这些模式。

结对编程

反对Joel说的一切。

第二受欢迎的回答:成为多面手

争取成为一个‘多面手万事通’

在我职业生涯的早期,我在一种数据库和编程语言上是个专家。不幸的是,这种数据库在“数据库战争”中落败了,我才发现我的职业道路很窄。在此之后,我下定决心以后决不能把自己封在一个小空间里。我开始学习所有手头上能接触到的东西:Windows,Unix,C,C++,Java,C#,Perl,Python,Access,SQLServer,Oracle,Informix,MySQL,等等。不管什么样的新的,不常见的工具或技术,我都成为“大拿”——“去问克雷格(作者自己),他要是不会,他会去学会的。”结果,我做了各种各样的项目,从为环境监测做嵌入式系统,到为导d防御做命令和控制系统。

我在各种的公司里唯一遇到的问题是:它们坚持要把我固定在一个专门的研究方向内,而我的专门研究是要成为一个多面手。[编辑:也叫做学识渊博的人或多才多艺的人或多领域专家。]

有些事情需要留意高科技界里知识的半衰期是多少根据摩尔定律(Moore’slaw):18-24月内,半数你学到的知识都会过时。错误的遵循这种规律的专家会轻易的在这种技术发展的压力崩溃;一个多面手要做的事就是不断的丰富自己的技能,并从应用这些技能的经历中吸取教训。

第三受欢迎的回答:不要跟臭棋篓子下棋

我一直认为自己在不错的程序员中也算是个“灌篮高手”。直到有个家伙——我们叫他艾伦——被招进团队。艾伦很显然在很多方面都比我优秀。也比我年轻。他让我认识到,在过去的这些年里,我没有多少长进。我是一个特定技术方向的程序员,而且是水平一般。

这惊醒我应该自觉的不断提高自己的水平,特别是我写的代码的水平。

艾伦引导我学会了很多东西。他告诉我,大部分我写的代码在今后的数年里都将一直维护和进行扩展,写代码时要将这点铭记在心。我应该为我的代码写自动测试程序。艾伦说代码的开发一定不能停止在第一版上,应该不断的重构,提炼,让它达到完美。我发现,我对这些语言和工具的使用都还有还很大的改进空间。

从艾伦那我学到的重要的一件事情是:永远不要停止学习。

数年后,艾伦离开了公司。我的心里突然感觉空荡荡的。这些年与他为伴让我在技能上提升到了一个全新的水平,我知道现在我比团队里的其他人优秀很多。他们仍然写着糟糕的代码,犯着以前犯过的错误。我努力教育他们,但他们对此不感兴趣。事实上,他们讨厌有人这样傲慢自大的指出他们犯的错误。

于是,几个月后,我也离开这这个公司。我去了一个很小的公司,在一个很出色的团队里工作。那里每个人都渴望学习更多知识,我喜欢这样的。

我很幸运能遇到艾伦。没有他,我也许现在仍然待在那家死气沉沉的公司和那帮食古不化的家伙在一起,哪都去不了,想的全是自己的私利。

从我个人而言,我觉得第三个答案对我有价值,不知各位同行们有什么感受

数据分析师的基本工作流程:

1定义问题

确定需要的问题,以及想得出的结论。需要考虑的选项有很多,要根据所在业务去判断。常见的有:变化趋势、用户画像、影响因素、历史数据等。

2数据获取

数据获取的方式有很多种:

一是直接从企业数据库调取,需要SQL技能去完成数据提取等的数据库管理工作。

二是获取公开数据,政府、企业、统计局等机构有。

三是通过Python编写网页爬虫。

3数据预处理

对残缺、重复等异常数据进行清洗。

4数据分析与建模

这个部分需要了解基本的统计分析方法、数据挖掘算法,了解不同统计方法适用的场景和适合的问题。

5数据可视化和分析报告撰写

学习一款可视化工具,将数据通过可视化最直观的展现出来。

数据分析入门需要掌握的技能有:

1 SQL(数据库):

怎么从数据库取数据?怎么取到自己想要的特定的数据?等这些问题就是你首要考虑的问题,而这些问题都是通过SQL解决的,所以SQL是数据分析的最基础的技能。

2 excel

分析师更多的时候是在分析数据,分析数据时需要把数据放到一个文件里,就是excel。

熟练excel常用公式,学会做数据透视表,什么数据画什么图等。

3Python或者R的基础:

必备项,也是加分项,在数据挖掘方向是必备项,语言相比较工具更加灵活也更加实用。

4学习一个可视化工具

如果你想往更高层次发展,上面的东西顶多只占20%,剩下的80%则是业务理解能力,目标拆解能力,根据数据需求更多新技能的学习能力。

对于想要将自动生成的数据添加到表中的任何人来说, MySQL 虚拟列 是一个强大、易于使用和高级的功能。

INSERT 生成的列允许您在不使用and UPDATE 子句的情况下将自动生成的数据存储在表中。 这个有用的特性自 57 版 起就已成为 MySQL 的一部分,它代表了在生成数据时触发器的另一种方法。此外,生成的列可以帮助您更轻松、更高效地查询。

虚拟列 列类似于普通列,但您不能手动更改其值。这是因为表达式定义了如何根据从同一行的其他列中读取的其他值来生成生成列的值。因此,生成的列在表的域内工作,其定义不能涉及 JOIN 语句。

换句话说,您可以将生成的列视为一种视图,但仅限于列。请注意,生成的列与 SQL 触发器 不同,您只能在使用 CREATE TABLE or语句时定义它们,语法如下: ALTER TABLE

该 AS (generated_column_expression) 子句指定要添加或更新到表中的列是生成的列。定义 MySQL 将用于计算列值的 generation_expression 表达式,它不能引用另一个生成的列或除当前表的列之外的任何内容。另外,请注意生成表达式只能涉及不可变函数。例如,您不能在生成的列表达式定义中使用返回当前日期的函数,因为它是一个可变函数。

您还可以在关键字前面 AS 加上 GENERATED ALWAYS 关键字以使生成的列的性质更加明确,但这是可选的。然后,您可以指示生成列的类型是 VIRTUAL 还是 STORED 。您将在下面的章节中了解这两种类型之间的区别。默认情况下,如果没有在查询中明确指定,MySQL 会将生成的列标记为 VIRTUAL

现在让我们看看生成的列语法在 CREATE TABLE 查询中的作用:

在此示例中,该 full_name 列将自动存储 first_name 和 last_name 列的连接。

如前所述,您可以将生成的列定义为 VIRTUAL 或 STORED。现在让我们仔细看看这两种类型。

MySQL 不存储标记为 VIRTUAL 的 虚拟列 。这意味着 MySQL 在需要时动态评估其值。 BEFORE 这通常在触发任何查询后立即发生。换句话说,虚拟生成的列不占用存储空间。

MySQL 存储任何生成的标记为 STORED 的列。这意味着每次插入或更新行时,MySQL 都会评估其值并将其存储在磁盘上。换句话说,存储列需要存储空间,就好像它是普通列一样。

现在让我们进一步了解虚拟列和存储生成列的优缺点。

优点

缺点

优点

缺点

采用生成的列有几个原因,但以下三个是最重要的。

如您所见,您可以通过将四列与以下生成的列聚合来轻松生成此数据字段:

这将产生:

在这种情况下,生成的列使您能够直接在数据库级别标准化数据字段格式。此外,存储生成的列避免了每次需要时都构造此字段的不可避免的开销。

通常,您使用网站 URL 中的资源 ID 或REST API来检索您需要的数据。但是公开暴露您的 ID 可能会带来安全问题。当您发现自己使用自动增量 ID 时尤其如此,这很容易预测并使抓取或机器人攻击更容易。

为避免这种情况,您可以考虑通过使用自动生成的、随机的、更安全的公共 ID 来隐藏您的原始 ID。您可以通过对您的 ID 进行散列处理,使用虚拟生成的列来实现这一点,如下所示:

请注意,为避免生成已知的哈希值,您可以将您的 ID 与特殊关键字连接起来。 在此处了解有关 MySQL 加密和压缩功能的更多信息。

过滤数据时,有些列比其他列更有用。此外,您通常必须更改存储在列中的值的表示形式,以使过滤更简单或更直观。您可以定义一个有用的生成列来存储以所需格式执行过滤所需的信息,而不是在每个过滤器查询中执行此 *** 作。

例如,您可以定义一个生成的列,以便更轻松地找到篮球队中的球员,如下所示:

这样的列将产生:

如前所述,您只能在表中使用生成的列。此外,它们只能涉及不可变函数,并且MySQL 生成它们的值以响应 INSERT or UPDATE 查询。另一方面,触发器是 MySQL 自动执行的存储程序,每当与特定表关联的 或 事件发生 INSERT 时 UPDATE 。 DELETE 换句话说,触发器可以涉及多个表和所有 MySQL 函数。与生成的列相比,这使它们成为更完整的解决方案。同时,MySQL 触发器本质上使用和定义更复杂,也比生成的列慢。

数据分析师要学习以下几点:

一、统计学

对于互联网的数据分析来说,并不需要掌握太复杂的统计理论。所以只要按照本科教材,学一下统计学就够了。

二、编程能力

学会一门编程语言,会让处理数据的效率大大提升。如果只会在 Excel 上复制粘贴,动手能力是不可能快的。

三、数据库

数据分析师经常和数据库打交道,不掌握数据库的使用可不行。学会如何建表和使用 SQL 语言进行数据处理,可以说是必不可少的技能。

四、数据仓库

许多人分不清楚数据库和数据仓库的差异,简单来说,数据仓库记录了所有历史数据,专门设计为方便数据分析人员高效使用的。

五、数据分析方法

对于互联网数据分析人员来说,可以看一下《精益创业》和《精益数据分析》,掌握常用的数据分析方法,然后再根据自己公司的产品调整,灵活组合。

六、数据分析工具

SAS、Matlab、SPSS 这些工具经常有人推荐。

关于数据分析师的学习可以到CDA认证机构咨询一下,CDA行业标准由国际范围数据领域的行业专家、学者及知名企业共同制定并每年修订更新,确保了标准的公立性、权威性、前沿性。通过CDA认证考试者可获得CDA中英文认证证书。

以上就是关于提高编程技能,你做过有效的事情是什么全部的内容,包括:提高编程技能,你做过有效的事情是什么、如何自学成为数据分析师、MySQL数据库必会技能,虚拟列的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10638204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存