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

摘要: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,一经查实,立即删除!

相关文章

Ionic混合移动app框架学习

第一章 绪论创建移动app有三种安卓原生App,使用java语言,目前推荐kotlin语言,开发工具Android studioIOS原生App,使用Objective-C或者Swift语言,开发工具Xcode混合移动App,使用web通用语言(HTML…

IPC 中 LPC、RPC 的区别和联系

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的…

Laravel 使用 Aliyun OSS 云存储

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

python多级索引修改

创建多级索引 cols pd.MultiIndex.from_tuples([("a","b"), ("a","c")]) pd.DataFrame([[1,2], [3,4]], columnscols) abc012134 df.columns df.columns.droplevel() df bc012134

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

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

第 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…

北向资金进行股票、期货指数、基金策略

#%%导入包 import tushare as ts import datetime import pandas as pd import numpy as np import akshare as ak import warnings warnings.filterwarnings("ignore")#获取北向资金数据 df_data2 ak.stock_em_hsgt_north_acc_flow_in(indicator"北上") d…

Kong Api 初体验、Kong安装教程

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

Spring Boot2.0+中,自定义配置类扩展springMVC的功能

在spring boot1.0,我们可以使用WebMvcConfigurerAdapter来扩展springMVC的功能,其中自定义的拦截器并不会拦截静态资源(js、css等)。 Configuration public class MyMvcConfig extends WebMvcConfigurerAdapter {Overridepublic v…

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

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

聊聊技术写作的个人体会

有群友问过,是什么原因使我开始写技术公众号,又是什么动力让我坚持写的。 在我看来,写作是一件不能敷衍的事,通过写作来学习,反而要比单纯地学习的效果要好。为了写成一篇“拿得出手”的文章,我要反复查找资…

「2019冬令营提高组」全连

传送门 显然的 $dp$ 设 $f[i]$ 表示点击第 $i$ 个音符时的最大价值,$t[i]$ 表示音符 $i$ 的准备时间 那么可以枚举 $1$ 到 $i-t[i]$ 的所有音符,如果 $j$ ,如果 $jt[j]$ 小于等于 $i$ ,那么 $f[i]max(f[i],f[j]t[i]*val[i])$ 考虑…

Docker常用命令、超实用、讲解清晰明了(rm、stop、start、kill、logs、diff、top、cp、restart ...)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 查看docker信息(version、info) # 查看docker版本 $docker version # 显示docker系统的信息 $docker i…

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

摘要:优秀的工具对于定位问题出在何处有着无可估量的价值,而且能在一开始就帮助我们阻止问题的出现,总的来说能使我们的工作更有效率。本文介绍了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…