您当前的位置:中国高新科技网快讯正文

资深软件工程师应该学哪种编程语言怎么学

2019-08-29 16:46:11  阅读:7325 作者:责任编辑NO。卢泓钢0469

神译局是36氪旗下编译团队,重视科技、商业、职场、日子等范畴,要点介绍国外的新技能、新观念、新风向。

编者按:编程言语千千万,初学者总是纠结于该学哪一门言语。不必纠结,言语的盛行仅仅一时,只能各领风骚三五年。要想不被筛选,你有必要把握全部编程言语的根底。软件工程师Eric Girouard对怎么学好编程提出了十分有用的主张。本文编译自Medium,原文标题是:The One Programming Language to Rule Them All

延伸阅览:

2020年及未来编程趋势猜测:Rust将成干流,Javascript仍然强势

2019年最值得学习的编程言语是哪些?

怎么成为一名更好的软件开发者?

在编撰本文时,假如你去搜“我应该学习哪种编程言语”,能够产回来5.17亿个查找成果。每个网页都会不断介绍一种言语相关于其他言语的优势,其间90%终究会引荐你学Python或Javascript。

可是我想厚颜无耻一次,我要正式地宣告跟这5.17亿个成果都不相同的定见,我的主张是,你应该学习的第一种编程言语是逻辑。

光知道怎么编码现已不行了。这个商场现已被训练营毕业生挤满,以至于“初级软件开发者”这个职位都现已消失了。时至今日要想取得成功,你既需求知道怎么去编写代码,还得知道怎么去运用逻辑思想。

我的第一堂计算机科学课

我第一次接触到计算机科学是十年级的时分上的一门选修课。上课的第一天,我很欣喜地看到面前摆满了各种冰淇淋和各式的圣代浇头。在咱们都坐定之后,我的教师宣告:

“今日,咱们即将制造圣代。条件是:你有必要写一份关于怎么预备圣代的具体阐明清单——然后我会照单履行。”

这没问题啊,我想,垂手可得。在不到一分钟的时刻里,我就写出了一分完美的圣代制造阐明:

将三勺黑莓冰淇淋倒入碗中

将两汤匙热巧克力倒入碗中

把生奶油放入碗里

在圣代浇头洒上巧克力屑和樱桃

然后我的教师——这是对计算机的心爱比方——开端用精准的方法讥讽我。由于无法穿透坚固的外壳,它开端狠狠地戳冰淇淋纸盒,但盖子完好无缺。

火急想要享用一顿美食的我说:“好吧,先取下盖子。”

“你没有向我供给这些指令,所以,对不住,你的圣代我做不出来,下一位!”

快进到第2次测验

取下盖子,翻开黑莓冰淇淋

将三勺黑莓冰淇淋倒入碗里

翻开热巧克力,勺两汤匙倒入碗里

翻开鲜奶油,参加碗中

在圣代的浇头洒上的巧克力屑和樱桃

我敢肯定这次必定能行。我乃至还更进一步,保证了每样东西都先翻开,然后再增加到我的创作里边。

她(计算机)翻开了盖子,舀了三勺,然后把它们放进碗里。我幼嫩的圣代总算成型了。然后她翻开了热巧克力,把两汤匙放进了我的碗里边。请注意,不是两汤匙的热巧克力,而是两个真的汤匙,没有热巧克力。我的指令不行具体——再次地。一切这些都说完和做完之后,对方给我递上了一碗装有两把金属汤匙的冰淇淋,一个装有鲜奶油的固体罐,还有约300颗巧克力屑。

到此刻我总算发现了:计算机便是个朴实的逻辑实体。它不清楚布景,不做任何假定。它仅仅对一组十分具体的指令做出呼应而且适可而止地履行。

终究我拟定的制造圣代指令集是一连串冗长但必要的灾祸:

假如还没有预备好,请翻开以下的每相同东西:黑色覆盆子冰淇淋,热巧克力,巧克力屑以及奶油

从一沓碗中取出一个,放在你面前

抓起冰淇淋勺,每次一勺,将三勺黑莓冰淇淋舀入碗中。完成后放下勺子

假如还没有拿到热巧克力勺子,那就取出两汤匙的热巧克力,每次一勺放入碗中,并在完成后放下热巧克力。

将搅好的奶油倒置,用手指按住碗口喷嘴3秒钟,然后将瓶子放回到停止方位

在碗上撒上约40颗巧克力屑,完成后将东西康复回直立方位

从樱桃罐中取出一颗樱桃,高雅地将其放在圣代冰淇淋的顶部

用勺子把圣代递给学生

终究一点十分重要,没有这一点的话它就会开端吃我的圣代。

这便是计算机编程的实际。为计算机供给一系列密布的具体阐明。从实质上说,这便是一切编程言语终究分解成的东西——指令。

软件开发的工作途径

软件开发现在开展现已到过分广泛以至于无法当作单个职业进行评论的境地,就像“软件开发人员”这个职位的描绘过于广泛相同。两名具有脱节的技能集的开发人员均可具有相同的商场价值,这阐明在做开发这一行需求的不仅仅是编码的才能。娴熟的开发人员具有的是独立于编程的一种遍及的特质:逻辑。

最好的开发人员是批判性思想的专家。这一点至关重要,由于绝大多数软件项目都是缺少文档的,碎片化的灾祸。他们需求一位具有批判性思想的人将凌乱的信息凑集在一同,并在需求的时分填补空白。这方面落后的开发者是无法将那些点连接起来的人。

一切这全部都将在另一个斗胆的声明中到达极点:计算机科学的根底是,而且永久都是,登峰造极的编码才能

言语的盛行兴衰无常。结构会被抛弃,公司会经过混搭自己的技能栈来应对不断改动的需求。有什么东西是历来都不会改动的吗?根底——从界说来说根底是永久都不会变的!

怎么改善逻辑思想

关于那些无法深化考虑的人来说,请考虑运用这些东西来改善自己的程序化批判性思想:

了解你的运行时杂乱性

也被称为Big-O,程序的运行时杂乱性能够表明为在任何实例上履行的与输入(n)的规划相关的过程数。继续记载你的程序运行时是第一步。

了解你的数据结构

数据结构是每一个杂乱程序的中心。知道在什么情况下运用哪一种结构自身便是艺术。数据结构与运行时杂乱性直接相关,由于挑选了过错的结构或许会让程序戛然而止。在数组中查找某值的杂乱性为O(n),这意味着跟着输入规划的增加,用数组会变得愈加价值昂扬。而散列查找的杂乱性是O(1),因而不管所述散列的键数是多少,在散列中查找键值的时刻都将坚持不变。

曾经有面试的人以为数组的查找时刻要比哈希快。这是告知我不要招聘他们的直接信号——所以要了解你的数据结构。

多读多听多看

相似Udemy、Pluralsight 和Codecademy这样的网站是学习新编程言语难以置信的资源。要想学习根底知识,就得去找有关一般的工程概念、最佳实践和编码风格方面的书本。关于工程师来说,最值得引荐的书本包含《规划形式》,《重构》,《代码大全》,《代码整齐之道》以及《程序员修炼之道》等,这儿仅举几例。终究,每个工程师案头应该放一本《算法导论》,以备防身之用。

实践!

不拉够小提琴,你就不或许成为一名小提琴大师。像HackerRank、CodeWars、CoderByte、TopCoder和LeetCode这样的网站有不计其数个应战问题,这些问题旨在测验你对数据结构和算法的了解。我发现这些网站的最佳运用方法是自己处理去问题,接着在Github上托管你的处理方案,然后再检查本问题的尖端处理方案,看看其他人是怎么解它的。这让我想到了终究一点:

看看他人的代码

你在软件开发过程中或许会犯下的最大过错便是单枪匹马。软件开发基本上是靠众包的力气。咱们一同拟定规范,一同去犯过错,然后渐渐才知道什么东西管用(经过很多失利)。花时刻去看娴熟的开发人员的代码永久都会有报答。只需保证它是好的代码。

我能供给的最好主张便是永久不要为由于自己还不知道的工作而感到羞耻。就像我所说到的那样,这个职业规划巨大,言语数的数量极多,内容很密布。要想了解需求花费很多的时刻和精力,而要想娴熟还需求支付更多,而通晓乃至需求支付更多。当我到达那种程度时,我会告知你的。

译者:boxi。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!