文档章节

自学的IT程序员通常缺少哪些技能

SXTkaifa
 SXTkaifa
发布于 2016/11/08 13:24
字数 1557
阅读 14
收藏 0

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。

 

马克•吐温在他的写作生涯中,常遇到自学的作家,他对于他们的不谦虚而感到非常厌恶。他总结道:

“自学的人通常很少能准确懂得知识,而且他所懂的内容,还不到有老师指导的人所学到的十分之一。除此之外,他还会炫耀,去欺骗其他不思考的人,按照他从前所做的那样去做。”

庆幸的是,在2016年,除去那些生活在没有图书馆的乡村,“自学成才”的人实际上已经不多了。事实上不都是从老师那里学来的吗?我们在工作的时候,不也是依赖于那些写了技术书籍,有思想性的文章,和 API 文档的人吗?​

那么自学的IT程序员到底有哪些不足呢?

算法

经典的计算机科学在这里。没有算法知识的编程就像只有一种锯的木工:你可以完成这项工作,但是它需要很长时间。

你可以把算法看成一种规律,当你学习写他们的时候,你正在做的是用规律去解决问题。正在使用数据结构、模式和逻辑步骤。

当你不知道如何去规划你的想法的时候,你不知道如何去写算法。

除非你学习了算法,否则你不光不会写算法,你也不知道有多少算法其他人已经写了。

我花了四天试图去解决如何完成一个队列。当我解决的时候,特别为自己感到自豪。直到我发现B.R堆在1963年已经解决它。

设计模式

这个来自教育或者经验,有多种方式构建你的代码,每个都有错误的时候和正确的时候。你要么需要沿途犯错误,学习什么时候使用每种模式,要么从已经犯错误的人(一个老师)那里学习。更多精彩内容关注微信公众号:北京尚学堂。

编程范例

 

面型对象编程不是道路。函数式编程和响应式编程也不是,它是一种方式。

有不同的方式来编程,每种方式都有它的目的。不仅如此,一些编程语言适合一种或者多种范式。

如果你有一个锤子,一切看起来像钉子。

把它带入自学编程中,你会发现自己在敲钉子,螺钉,钉书钉和拇指钉。

我记得一个自学.NET程序员有次告诉我,“这不是编程,除非它面向对象,这也是为什么我不考虑JavaScript这种编程语言。” 这是一个非常,非常有缺陷的思想。更多精彩内容关注微信公众号:北京尚学堂。

数据结构

当然,编程语言会给你针对不同的数据结构基本的想法。但同样,它是一个基本的想法。自学的程序员更倾向只坚持使用他们喜欢的编程语言的数据结构。只是因为某种数据结构不是本来就有的,甚至是你的编程语言中的一个常见的结构,这并不意味着它不能存在。 当然,这也意味着,也许它不应该存在。

世界非常小,如果它们都可以存在一个数组内。

测试

也许这只适用我,在你推送代码到一个环境之前,有很多方法来测试你的代码。 了解如何进行单元测试。

更重要的是,要学习测试驱动的开发。

测试你的代码和编写可测试的代码之间是有区别的。​​

自学的程序员通常缺少谦逊的品质

谦逊是一种技能。就像其他的技能一样,从理论来说:参考更为广阔的软件开发领域来了解自我。从实践来说:知道什么时候要把冲刺阶段的任务移交给一个知识储备更好的团队成员,在代码审查时能够接受有建设性的批评等等。

提升我们谦逊的品质的重要一步是意识到,即使我们是在大学课程设置以外学习,我们也并非是真的“自学成才”。

无论我们是在大学教室里,或是在卧室里看视频学习,所有优秀的程序员都是站在老师们的肩膀上的。​

作为一个自学的程序员,你错失的是一个(专业)词汇表。它随着时间而累积,但通常会反向而行。例如,有时你遇到一个问题并想出了一个了最佳解决方案,只是后来你却发现这种“最佳方案”早就有名字了。你需要好几年的实际编程经历才能补上这个词汇表。

另一个有趣的问题是,作为一个自学的程序员,我参与的开源软件项目只用邮件和他人交流。我不知道怎样去“说出”一些计算机技术。例如,我把SQL读作”es-que-el”,而不是更常见的读法”See-quel”。或是把 “I2C” 读作 “eye-two-see”而不是”eye-squared-see”。

名师手把手教你学软件开发技能,助你成为一个高级软件工程师,北京尚学堂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,掌握Java核心术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。​更多精彩内容关注微信公众号:北京尚学堂

更多猛料!欢迎扫描上方二维码关注北京尚学堂官方微信公众号 ( 资料领取验证消息:156)

© 著作权归作者所有

共有 人打赏支持
SXTkaifa
粉丝 3
博文 109
码字总数 250758
作品 0
太原
程序员
私信 提问
程序员招聘 — 实力才是一切

导读 华尔街程序员录取,将不再只是单纯的关注毕业学生的高学历。而是注重个人实力。优秀的程序员通常是自学,他们中间的许多人可能是大学辍学生。全世界的银行业需要 50 万的技术人员,由于...

linux小陶
2016/11/14
11
0
自学的程序员如何找到好工作?

本文由伯乐在线 -飞哥的咖啡 翻译,刘唱 校稿。未经许可,禁止转载! 英文出处:Brian Knapp。欢迎加入翻译组。 【伯乐在线导读】:2016 年有位年轻的程序员在 Quora 上提问求助: 我今年 17...

伯乐在线
2017/06/19
0
0
自学的程序员如何找到好工作?

2016 年有位年轻的程序员在 Quora 上提问求助: 我今年 17 岁,从 14 岁开始编程。我主要关注 Java 语言,并在 AP 计算机科学这门课上拿了 5 分。我相当精通 Java(比如语法、主要类、GUI/J...

王练
2017/06/20
2.7K
20
程序员招聘 — 实力才是一切

Gregory Furlong 有大约 5 年的时间是在百思买做装运工,每周需要工作 50 小时。对于一位痴迷于计算机的人来说,这几乎是他职业生涯的炼狱。因此在去年,30 岁的他参加了一个为期三个月的编程...

linux小陶
2016/11/12
15
0
国外认为怎么才算一个合格的程序员?

像'真正的程序员'或天才,天才,顶级,摇滚明星或独角兽这样的术语即使缺乏明确的定义也会被抛诸脑后。 根据我个人的经验,我发现一位优秀的程序员具备完成工作的技术技能,但“真正的”程序...

wx5acf3bdd61e68
2018/04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

filebeat multiline配置(转)

使用filebeat5.0.1版本,用filebeat作为日志收集工具时: java日志格式需要多行匹配,在filebeat配置文件中添加: ### Multiline options # Mutiline can be used for log messages spanning...

xiaomin0322
25分钟前
1
0
ConstraintLayout的基本使用

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="ht......

SuShine
28分钟前
1
0
ActiveMQ多个消费者消费不均匀问题

如果客户端处理很慢的话,Broker会在之前发送消息的反馈之前,继续发送新的消息到客户端。如果客户端依旧很慢的话,没有得到确认反馈的消息会持续增长。在这种情况下,Broker有可能会停止发送...

编程SHA
29分钟前
1
0
【机器学习PAI实战】—— 玩转人工智能之综述

模型训练与在线预测服务、推荐算法四部曲、机器学习PAI实战、更多精彩,尽在开发者分会场 【机器学习PAI实战】—— 玩转人工智能之商品价格预测 【机器学习PAI实战】—— 玩转人工智能之你最...

阿里云云栖社区
33分钟前
1
0
根据国务院2019年劳动节假期安排五一放假四天 免费节假日api第一时间调整

根据国务院发布http://www.gov.cn/zhengce/content/2019-03/22/content_5375877.htm 以下为原文 国务院办公厅关于调整 2019年劳动节假期安排的通知 国办发明电〔2019〕3号 各省、自治区、直辖...

xiaogg
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部