五步让你成为专家级程序员

摘要:Mark Lassoff是一位高级技术培训师,从事培训工作已有10余年。他培训的客户包括美国国防部、Lockheed Martin等。在多年的培训生涯中,他总结了一些如何快速学习一门语言的技巧,这些技巧非常简单,但是却让人受益匪浅。

我已经从事10年的技术培训工作,一直教人如何编程。这些人包括学生、已经走上工作岗位的开发人员。在多年的工作生涯中,我注意到一些正确/错误学习编程语言的方式,下面我分享一些正确学习语言的5种技巧,虽然它们看起来都很浅显,但只要你认真执行,绝对会有很大效果和提升。

1.了解语言背后的“哲学”

我在初次学习Java时,觉得它即冗长又存在不必要的复杂。那时,我还不是个经验的程序员,并且习惯使用C来编码。Java是一门伟大的语言,但我并不能体会其中的精华——甚至是它的用途,因为我无法理解Java的面向对象原理。

后来,我在德克萨斯大学奥斯汀分校的Browne博士课堂上理解了面向对象方法,并采用它进行计算机科学编程。这对我更好地理解Java的核心思想以及编程方法起了非常大作用。

如今已有成千上万个编程语言,不同的编程语言解决和优化不同类型的编程问题,并且在计算机系统中处于不同的级别。而你需要做的是了解你所学语言是什么、目标。理解是至关重要的,然后运用它来解决实际问题。

2.亲自输入所有的代码实例

话说,实践是检验真理的唯一标准。学习一门语言,除了知道其中的原理外,最快的学习方法莫过于实践,编写代码,远远大于读书或看视频所产生的效果。输入代码并且让它们运行起来是学习一门语言至关重要的一步。即使你对该们语言是完全陌生的,在编写的时候你也会发现它们的语法结构,渐渐明白其中的含义。

在编写的过程中,你肯定会犯错,发现错误并纠正它,这个过程也是不可忽视的,错误越多,你就会花更多的心思研究,这样理解就会越加深刻。

3.更进一步

无论是做实验还是练习,都尝试着更进一步地了解与学习。经常这样做将会给你带来无穷的收获,驱使你不断查阅所学语言相关资料。这样做有两大优势:第一,学习该语言的文档结构并熟悉它;第二,加深概念,帮你解决一些细小问题。

例如,你正在听一堂学习如何使用HTML5和JavaScript制作音频的课,那么你应该进一步问问自己:“该如何控制音量呢?”解决这个问题后,你就可以更加深入的掌握代码。

4.通过许多小例子学习——而不是大项目

在多年的培训中,我一直把重点放在客户端的网络语言上,比如Java以及后来的移动开发。在课堂上,每节课都会有相应的课件,每个课件都会演示些例子,最后把这些例子组合成一个项目。在早期常会犯这样的错误,没有进行相互隔离。

其实,采用隔离的方式学习各种语言技能是很重要的。比起学习个人技能,集成是个更复杂的过程。在你对一门语言有了坚实的基础后,集成确实是最好的学习方式,否则很有可能会混淆概念。

5.让程序运行

一定要让程序跑起来。即使出现多个bug,也要认真调试,直到能够正确运行。想要打开一扇门,则必须要关闭一扇门。当你学习一门新的语言技能时,肯定希望以后能有较高的技能水平。有时,你很容易放弃或者跳过某个小缺陷,使该问题一直处于悬而未决的状态——这样做很危险。

除此之外,没有比这个更兴奋的事情了——第一次看到自己编写的应用程序跑起来。

来自:udemy blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Laravel 使用 Aliyun OSS 云存储

对象存储 ( Object Storage Service, 简称 OSS ) OSS 相信大家都听过, 它是阿里云对外提供的海量, 安全和高可靠的云存储服务. 大家可以把自己网站的资源存上面加快自己网站速度, aliyun 官网也有文档不过对于新手来说有点难, 那么这里我给大家推荐一个组件和组件的使用. johnl…

在线学习新编程 技巧全攻略

摘要:有句俗语叫:“技多不压身”,如果你有时间和兴趣,不妨多了解和掌握编程技能,或许随时可能有用。本文为你收集了一些编程技巧,让你轻松学编程。 有句俗语叫:“技多不压身”,如果你…

第 3 章 镜像 - 018 - 镜像命名的最佳实践

为镜像命名 创建镜像时 docker build 命令时已经为镜像取了个名字,例如: docker build -t ubuntu-with-vi 这里的 ubuntu-with-vi 就是镜像的名字。通过 dock images 可以查看镜像的信息。 1 rootubuntu:~# docker images ubuntu-with-vi 2 REPOSITORY …

Jmeter逻辑控制器-ForEach Controller

ForEach Controller 介绍 ForEach Contoller 即循环控制器,顾名思义是定义一个规则。主要有以下一个参数:名称:随便填写注释:随便填写输入变量前缀:可以在“用户自定义变量”中定义一组变量。循环控制器可以从中获取到…

微服务实战(三):深入微服务架构的进程间通信

见:http://www.dockone.io/article/549简介 在单体式应用中,各个模块之间的调用是通过编程语言级别的方法或者函数来实现的。但是一个基于微服务的分布式应用是运行在多台机器上的。一般来说,每个服务实例都是一个进程。因此,如下…

python输出与删除某行或某列

python输出字符,主要为结合变量形成新的变量名 year 2016 event Referendum fResults of the {year} {event}Results of the 2016 Referendum yes_votes 42_572_654 no_votes 43_132_495 percentage yes_votes / (yes_votes no_votes) {:-9} YES votes {:2…

为什么应该用模块取代C/C++中的头文件?

摘要:本文整理自Apple C工程师Doug Gregor的演讲Slide,他表示希望使用模块(Module)这一概念替代C/C中的头文件,现已被C标准化委员会任命为Module研究组的主席,研究该提议的可能性。考虑到Apple的开源项目LL…

Kong Api 初体验、Kong安装教程

见:https://blog.csdn.net/forezp/article/details/79383631Kong是一个可扩展的开源API层(也称为API网关或API中间件)。 Kong运行在任何RESTful API的前面,并通过插件扩展,它们提供超出核心平台的额外功能和服务。 Kon…

从谷歌宕机事件认识互联网工作原理

摘要:谷歌服务器经历了短暂的宕机事件,持续大概27分钟,对部分地区的互联网用户造成了影响。此次事件的原因深究起来需要进入互联网络那深邃的、黑暗的角落。 译者注:本文中提到CloudFlare是一家总部位于美国旧金山的内容分发网络(…

推荐给开发人员的实用命令行工具

摘要:优秀的工具对于定位问题出在何处有着无可估量的价值,而且能在一开始就帮助我们阻止问题的出现,总的来说能使我们的工作更有效率。本文介绍了6个非常强大且灵活的工具,熟练使用这些工具能使你的生活变得更轻松一些。 作为一名…

雷军:启动手机+AIoT双引擎战略 5G春天到来前打持久战

雷帝网 乐天 1月11日报道 小米CEO雷军今日在小米年会上宣布,2019年,小米将正式启动“手机AIoT”双引擎战略,这将是小米未来五年的核心战略。未来5年,小米将在AIoT领域持续投入超过100亿元。从2019年起,AIoT&#xff0c…

Jenkins自定义主题

x下载自定义样式 http://afonsof.com/jenkins-material-theme/ 打开连接 最后点击:DOWNLOAD TOUR THEME! 得到样式文件:jenkins-material-theme.css 上传样式文件到jenkins 将jenkins-material-theme.css 上传到: /var/jenkins_home/userCont…

SSH (Secure Shell)详解

Secure Shell(SSH)是一种加密 网络协议,用于在不安全的网络上安全地运行网络服务。 SSH通过客户端 - 服务器体系结构中的不安全网络提供安全通道,将SSH客户端应用程序与SSH服务器相连接。 常见的应用程序包括远程命令行登录和远程…

2021-08-12 画蜡烛线

画蜡烛线 pip install https://github.com/matplotlib/mpl_finance/archive/master.zip from mpl_finance import candlestick_ochl import matplotlib.pyplot as plt from matplotlib.pylab import date2num# 先画日K线 fig, axes plt.subplots(nrows1, ncols1, figsize(20, …

通达信获取数据

#python第三方库pytdx获取 from pytdx.hq import TdxHq_API api TdxHq_API() # 数据获取接口一般返回list结构,如果需要转化为pandas Dataframe接口,可以使用 api.to_df 进行转化 with api.connect(119.147.212.81, 7709): # 返回普通list data …

股票数据相关性分析

导入相关包 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.collections import LineCollection import akshare as ak from sklearn import cluster, covariance, manifold %matplotlib inline #Jupyter Notebook显示图形专用 plt…

分享一个辅助分析内存泄漏的脚本

最近给系统做了一点优化,前几天去查看系统监控,想看看上线前后cpu使用率曲线变化情况。查看的时候意外发现上线前后内存占用相差不少,20%以上。 本来我没怎么在意这个问题,因为我们系统会在运行过程中缓存部分数据内容。但客户觉得…

专访刘伟:软件开发人员的内功修炼之道

摘要:数学修养对软件开发之路起着什么作用?码农如何修炼自己的内功并成长为优秀的软件开发员?带着相关思考,社区之星第10期采访了中南大学副教授——刘伟。他对数学修养、设计模式、软件架构和重构方面的独特见解,相信…

地址解析协议 (ARP) 是什么

地址解析协议 (ARP) 是通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议。 ARP是通过网络地址(例:IPv4)来定位MAC地址 (也称为乙太地址)。 ARP已经在很多网路层和数据链接层之间得以实现,包括IPv4,Chaosn…

04.React事件 方法、 React定义方法的几种方式 获取数据 改变数据 执行方法传值...

2019独角兽企业重金招聘Python工程师标准>>> 一.基本用法 在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件…