自学的IT程序员一般缺乏哪些技能

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

 

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

“自学的人一般不多能准确懂得知识,并且他所懂的内容,还不到有老师指导的人所学到的十分之一。除此以外,他还会炫耀,去欺骗其余不思考的人,按照他从前所作的那样去作。”算法

庆幸的是,在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)

相关文章
相关标签/搜索