|
|
51CTO旗下网站
|
|
移步端
  • 浅论自学成才的程序员如何增强自己

    如果你是自学成才的程序员,可能会遇到一些盲点,本文为你介绍了如何查漏补缺的主意。

    笔者:AI 前线小组 来源:AI前线| 2020-01-21 22:00

    浅论自学成才的程序员如何提高自我

    有事者,事竟成;坚定,百二秦关终归楚;苦心人,远处不负;卧薪尝胆,三千越甲可吞吴。这句话,先后往来不知晓激励了若干寒门学子。在同一天,这句话用在这些自学成才的程序员身上,也是极其合适的。你知道吗?有许多名的程序员,其实并不是科班出身,而是靠自学成才的半路出家的“野生程序员”,比如 Bill Gates。如果你不是科班出身的程序员,而是靠自学成才的,这就是说该如何增强自己呢?当日,咱们来听听过来人 Matthew MacDonald 分享的体验和经验。

    如果你是自学成才的程序员,可能会遇到一些盲点,本文为你介绍了如何查漏补缺的主意。

    如果你是一名开发人员,你可能会有一度如何走上编程之路的本事,但我并不是指你第一次是如何学会编辑代码的本事,尽管这个故事可能与本文要讲的情节有所重叠。我之味道是,顶你第一次决定用逻辑和软件指令来解决一下新问题的时节;顶你决定将代码作为永久有用之工具放入你的灯箱的时节;作业转变的那一刻,你决定成为一名真正的程序员。

    我之编程之路,与大约 三分之一 的差事程序员一样,并没有正式的微机科学学位。但我自小就喜欢鼓捣电脑,是历史剧的 QuickBasic 和 VB 伴着我长大的,而那些爱好在这次,仍然是一种新奇的东西。我明白,甭管我最终是否会进入计算机领域,其一伟大的 米色盒子(译注:所谓的米色盒子,就是个人电脑主机,那时主机体积比今天大得多)名将会以某种形式,永恒成为我生活之组成部分。但在我上大学的时节,我更感兴趣的是学习那些我自认为并没有机遇自学的学科,比如粒子物理。

    但也许这并不是一番坏主意,因为,我确实找到了一枝通往专业编程的征程。顶我在一番不那么有趣的位置上工作时,我就利用空闲时间来学习和考取证书。短短下,我就进来了一番崭新的园地,并突然为的着迷,比如密码学、网络协议和必发娱乐登录优化等。当然,我也开始编写程序来补我在商店工作中的空缺,比如报告工具、订购工具,以及可以做到本不该做一些事情的硬件,比如依赖不稳定的 ActiveX 控件。短短下,.NET 出现了,我碰到了部分 异常聪明的人数,并且难得有机遇重塑自己,并重置了 Microsoft 良好之阳台。剩下的就是历史了。

    表现一名自学成才的程序员,我很清楚我之根基并不完美。当然,也有未受过正规教育而自学成才的 硬件传奇人物 和 黑客天才。但是,如果你不是神童,而是一个普通人的话,这就是说自学技能就会伴随着一个巨大的“星号”(*)。有差异,也有重点。对于广大自学成才的程序员来说,她们很难确定自己到底缺少了哪些知识或技能。故此,我写副本文的初衷,就是为这些自学成才的支出人员提供提高技术的高效指南。

    你不知晓哪些事情你还不知晓

    自学编程最大的盲目性就是,你不知晓哪些事情你还不知晓。科学,无知确实会发生在任何人身上,哪怕他获得博士学位。但是,出于自学成才的程序员会坚持地注意于具体目标,如成立网站,让应用程序运行,名将数据从 A 点传到 B 点,故此,她们更容易跳过那些看上去 “举重若轻大用”的答辩内容。

    以下是部分来自计算机科学核心的命题,而自学成才的程序员往往会绕过这些课题: 

    书法。 因为编程语言实现了它们自己之排序和搜索,故此自学成才的程序员总是倾向于学习如何运用它们,而不是串了解它们的上班原理。

    计算理论。 这是关于计算机如何解决问题,以及编程语言如何构建的一门科学。副区区状态机到 Λ 演算,在这一类中,有一大堆重量级的主题。

    纯数学。 风的计算机科学涉及范围广泛的要害数学主题,包括线性代数、微积分、唯金牌论和伦理学。

    大�标志法(Big O notation)。 其一改编自数学领域的工具,让开发人员能够描述并比较不同算法的总体性能。

    当然这并不是说,自学成才的程序员就不能自己学习这些学科了。是不是,顶有另一番新的 JavaScript 框架需要解决之时节,你就很难将团结投入到理论中扮。而且,出于自学成才的程序员专注于实践项目和工作代码,她们甚至可能没有意识到实际代码表面下的答辩“冰山“。

    缩小计算机科学理论差距

    虽然计算机科学理论可能不会有立竿见影的功力,但他还是有其它好处的,只不过没有那么明显罢了。实际上,眼前列表中全方位看似深奥的主题,在适度的时节可能都是首要的: 

    书法。 有时候,默认选择并非最佳选择。如果你有更深切的了解,你就会明白什么时候该走出老路,或者如何解决一下不平凡的题材。

    缩小差距:翻阅 Algorithms in a Nutshell(《果壳中的算法》http://shop.oreilly.com/product/9780596516246.do),这是我最喜欢的一资产书,或者你可以去可汗必发娱乐登录( Khan Academy)转一转。  

    计算理论。 绝大多数程序员永远不会扮演构建自己之编程语言(虽然 你可以这么做)。但是计算理论为你提供了抽象概念,赞助你知道不同语言之间的沟通。如果你需要从过程式编程语言转到函数式语言,这就是说你就会深感掌握计算理论之后,形成这一过程特别方便。

    缩小差距:其一是很难自学的园地之一,但你可以通过免费的虚拟教室来学习很多东西。Neso 必发娱乐登录就有我最喜欢的关于这一主题的 铺天盖地讲座(https://www.youtube.com/playlist?list=PLBlnK6fEyqRgp46KUv4ZY69yXmpwKOIev),有 100 多个小视频。该署讲座讲得很深刻,但每期只需十分钟就能看完。 

    纯数学。 诸多程序员在生存中,甚至到退休的时节,连一行高等数学都没有接触过。但是,如果你正在致力机器学习、潇洒语言处理、数据分析或软件开发前言的十几个其他主题中的任何一个,这就是说硬数学还是不可或缺的。

    缩小差距:如果你已准备好动手,可以下非常容易理解的 A Programmer’s Introduction to Mathematics(《程序员数学指南》https://pimbook.org/)这本书开始,这是随你付之下载版本。

    译注: 随你付,Pay what you want (PWYW)是卖方按所望付费 —— 有时也含免费 —— 的物价策略。商品或设最低价和 / 或提醒建议价,买家也能出更高价购买。 

    大�标志法。 要成为一名高效的支出人员,永恒要有一种可以用来与同行交流的速记工具。虽然你不会经常利用大�标志法(也许永远不会用上),但如果你需要讨论如何优化复杂的分布式系统,他可能就会派上用场了。

    缩小差距: 大�标志法很好学。你可以在 此地(https://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/) 找到一个不错的概述。

    我为你提供一些好建议。如果你是自学成才的程序员,那就抽点时间(比如 5%)扮演研究更多的答辩性课题。就用上面列表中的链接即可。就算你在一般工作中多余这些知识,但他也能拓宽你的视野,铸就你的平常心,并协助你知道计算机科学中有的更深层次的深邃。毕竟,正如每个经验丰富的程序员都晓得的那样:除非你去使用理论,否则你永远不会扮演使用。

    你的信念何在?

    计划计算机教育的最重要好处,可能并不在于你学到了哪些关于计算机科学的所见所闻,而是在于你学会了如何对待自己。

    不论自学成才的程序员,还是受过正规教育的程序员,顶他俩刚进入职场时,都会生活知识差距。但是,自学成才的程序员更可能会感受到一种挥之不去的恐怖:想不开他们的技艺不完全或不合理。她们还担心,有些事情他们应该知道,但却从来没有穿越 Google 追寻核实过。她们还担心其他语言和计算理论的骨干知识。还有一件令人惊奇的事是,她们居然还担心发音的题材,认为用错误的措施来叙编码器行话时会暴露出她们是 “江湖骗子”。普通强调的词汇包括技术(SQL、ECMAScript、JSON、Wasm)、艺术术语(贝叶斯、元组),甚至是符号(#!、或  “hashbang”。)。

    然而,本人怀疑并不全是坏事,毕竟,他可以驱使你去寻找新的知识不是?但是,顶你需要向用户、同事或地下雇主表明自己是程序员时,该署不安全感可能会伤害到你。

    消灭这些题材的最好方式就是参与尽可能多之对话。你不可能研究软件开发的每一枝路子,但你可以通过与尽可能多之不同门类的程序员打交道来拓宽你的视野。下,我提供了部分建议: 

    出席当地聚会。 该署聚会没有黑客马拉松那么令人生畏(尽管这些也很棒),而且你还会发现,经历丰富的程序员出人意料地如此渴望社交和分享他们的所见所闻。

    出席议会。 如果你能承担得起,没有什么比围绕你感兴趣的主题组织的正视会议更能抓住新技术的着眼点了。这就好比软件框架下的高效约会一样。你还可以通过 “感受房间的温度”。(译注:指参加议会之类)学到众多东西——扭亏增盈,对演讲和全运会的反馈可以协助你判断哪些技术背后有灾区热情,哪些新项目可能会蓬勃发展。

    参加开源项目。 其一门槛就更高了:你不能不实事求是地编写代码,而不仅仅是喝咖啡和听音乐,但带来的报恩是伟大的。在布局化的气氛中,哪怕是一番简单的品种,与其他程序员进行交互,也能够训练你从十几个不同之力度来对待一段代码。

    表现附带的功利,人脉关系网对你职业前景的功利远超于建立一个最好的投资组合网站。

    整整编程都趋向于自学

    对工作程序员的检察表明,自学成才的程序员始终是个别。但换一种方法来说话个问题,气象就不同了。

    例如,以 Hacker Rank 的检察为例,他发现了这么一种情景:自学成才和只在该校接受教育的支出人员,在一切程序员中所占比重都略低于三分之一。但是,名将正式学习和自学结合起来的支出人员的比重反而超过了这两头,占到了近 38%。

    这并不希罕。在瞬息万变的硬件开发世界中,每个程序员都离淘汰只有几步之遥。最成功之程序员,都是这些能够不断进修的人数。

    专业的计算机科学教育是一种优势。但自己提高的力量也是不可或缺的。

    这就是自学成才的程序员的收获。这并不是说,有正规计算机科学教育背景的程序员就没有自学的力量。但自学成才的程序员已经面临着一场严峻的考验:她们一无所有,就一头扎进去,获得的只是好奇心和赤裸裸的野心,就特委会了她们要求的东西。这项技术,名将会为你的总体工作生涯带来回报。

    笔者介绍:

    Matthew MacDonald,老师、程序员、重磅书籍的作者。

    【编纂推荐】

    1. 上点不到1年:迪斯尼宣布撤销95/5%开发者分成计划
    2. 程序员透露不能说的神秘:系统越升级越卡
    3. 程序员周末应该干的8件事
    4. 程序员误区,缓存一定能提升程序效率么?
    5. 分享一些有意思的程序员资源与工具
    【义务编辑: 张燕妮 TEL:(010)68476606】

    点赞 0
  • 程序员  技术  开发者
  • 分享:
    大家都在看
    猜你喜欢
  • 订阅专栏+更多

    Python使用场景实战手册

    Python使用场景实战手册

    Python使用场景实战手册
    共3章 | KaliArch

    19人口订阅学习

    一步到位玩儿透Ansible

    一步到位玩儿透Ansible

    Ansible
    共17章 | 骏马金龙1

    195人口订阅学习

    云架构师修炼手册

    云架构师修炼手册

    云架构师之必不可少技能
    共3章 | Allen在路上

    35人口订阅学习

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO劳务号

    51CTO官微