热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

尤其是新手,如何学习一门编程语言

一、确定你感兴趣的领域你可以开始学习任何编程语言(尽管其中一些被描述地比其他的更加“易学”),你得去问自己自己想用通过学习这门语言完成什么样的工作。这将会帮助你确定你应该追求的编程方式并且

一、确定你感兴趣的领域

      你可以开始学习任何编程语言(尽管其中一些被描述地比其他的更加“易学”),你得去问自己自己想用通过学习这门语言完成什么样的工作。这将会帮助你确定你应该追求的编程方式并且提供一个良好的开始。

如果你想进入Web开发行业,那你将会有一堆语言需要去学习,这和开发计算机程序相反。移动App的开发需要比PC等的开发更多的技巧。所有的这些决定将会影响着你的发展方向。

考虑从一个“易学”的语言开始

       无论你做了什么样的决定,你可能只会希望从一门高水准又易学的语言开始。这些语言对于初学者非常有用,因为它们教授基本的概念和适用于几乎任何语言的思维过程。

在这种语言中最流行的两种是Python和Ruby。它们都是使用着易读的句法的面向对象的Web应用开发语言。

     “ 面向对象”因为着这个语言是围绕着“对象”、数据收集和操作的概念来打造的。这一概念被用在许多先进的编程语言上,比如C++、Java、Objective-C和PHP。

通读大量语言的基本教程

      如果你还不确定你应该开始学习哪一门语言,那么就去阅读一些不同语言的基本教程吧。如果一门语言比别的更有意思,那就多去看看是不是真的那样。在网上对于所有的编程语言有无数个基本教程。

Python——一个非常适合初学者的语言 ,而且当你掌握它的时候它会变得更加强大。被用来开发了许多Web应用、甚至一些游戏。

Java——被无数个项目所使用,从游戏到Web应用再到ATM软件。

HTML——对于任何Web开发者必不可少的起航点。在从事其他一系列Web开发之前掌握好HTML非常重要。

C——最古老的语言之一,它已经是非常强大的工具,也是一些更现代的语言的祖先,比如C++,C#和Objective-C。

二、从简单的开始学起

学习语言的核心概念

       虽然这一步中适合的部分将取决于你所选择的语言,但所有编程语言都有对建立有用的程序至关重要的基本概念。尽快的学习和掌握这些概念,将会使你更容易地解决问题和创建强大而有效的代码。下面只是一些在不同语言中的核心概念:

变量——一个变量就是一个去存储和应用以改变代码片的方式。变量可以被操作,并且经常被定义成“整数”、“字符”,还有其他的确定可以存储的数据类型。进行编码时,变量通常具有让它们对于我们有种某种含义的名称。这样一来我们就容易理解该变量如何与其余的代码进行交互了。

条件语句——条件语句是基于条件是否为真的一种行为。对于一个条件语句最常见的形式是“如果-那么”。如果这个条件为真,那么就有一件事发生,如果条件为假,那么就会发生另一件事情。

函数或子例程——这个概念的实际名称可能取决于不同的语言。它也可能被叫做“过程”、“方法”或是“可返回单元”。它本质上是一个大程序中的一个小程序。一个函数可以被别的程序“调用”多次,运行程序员去有效的创建复杂的程序。

数据输入——这是在几乎所有语言中都使用的一个宽泛的概念。它涉及到处理用户的输入以及存储这些数据。这些数据怎样收集则取决于程序的类型以及对于用户的可用的输入方式。它和关于显示在屏幕上还是打印在文件上的输出有着精密联系。

安装一些有必要的软件

       许多的编程语言都要求有被程序员设计来讲代码转换成机器能理解的语言的编译器。其他一些语言,比如Python,使用可以立即转换成程序而不需要编译。

       一些语言有自己的往往包含着代码编辑器、调试器和/或者翻译以及调试的IDEs(集成开发环境)。这些程序员在同一个地方去执行任何必要的功能。IDEs可能还包含着包含对象层次结构和目录的可视化界面。

在网上有许多的代码编辑器可以用。这些程序都提供不同方式的语法高亮和提供其他开发人员友好的工具。(推荐用Emacs)

创建你的第一个程序

每次只专注于一个概念

       几乎学习任何语言时被教的第一个程序就是“Hello World”。这是一个仅仅在屏幕上显示“Hello,World”的简单程序。这个程序教会初学者一些简单的语法来创建一个可以运作的基本程序,以及如 何处理显示输出。通过改变文本,你还可以学习到这些基本数据是怎样被程序处理的。

通过在线示例的片段来学习

       在网上几乎每个编程语言都有数以千记得在线代码示例。用这些例子来学习不同部分如何与语言协同工作,以及各个部分之前的差别。用这些在不断示例中取得的碎片来创建你自己的程序。

检查语法

      语法就是一门语言被写得让编译器或解释权能够理解的方法。每种语言都有自己独特的语法,虽然有些元素可能在不同的语言中共享。学习语法对于学习怎样编程是非常重要的。在现实中,它只是更高级的概念赖以建立的基础。

试验性的更改

      对你的示例程序做些修改,然后测试结果。通过试验你可以学到什么有用、什么没用,这比多阅读一本书或指南在任何时候都要快得多。不要害怕破坏了你的程序,学习去修复错误是任何开发过程中最重要的一步,并且新的事物永远不可能在第一次就正确运行。

开始练习调试

       当你在编程时,你总会碰到bug。它们存在程序中,并且可能随时随地的出现在程序中的任何一个地方。漏洞可能会破坏程序,或者只是让程序不能编译/运行。捕捉和修复这些错误在软件开发周期中这是一个主要的过程,所以要早早地习惯于这么做。

      当你快要修改程序时,你可能会碰到它们不能运作的情况。想办法弄清楚,并且采取不同的方式来解决,这将会成为你作为一个程序员最宝贵的技能之一。

给所有代码添加注释

       几乎所有编程语言都有一个允许你包含未被解释器或编译器处理的文本的“注释”功能。也就允许了你可以留下短小但清晰的关于这段代码是用来做什么的人类语言 的解释。这将不仅仅帮助你记住你的代码在这个大型程序是做什么的,在协作环境中因为它允许其他人也能够明白你的代码是做什么的,所以也是非常重要的做法。

三、不断练习

每天都要敲代码

       花大量的时间对于掌握一门语言是最重要的。即便是像Python这样的简单语言,它可能也要画上一两天去了解它的基本语法,花大量的时间才能真正精通。想 任何其他的技巧一样,练习是变得更加娴熟的关键。尽量每天都要花一些时间去敲代码,即便是在工作之后和晚餐之前的一小时。

给你的程序设定目标

      通过设定能够实现但又有挑战性的目标,你将能够开始解决问题并拿解决方案。尝试着去设想去一个基本的应用程序,比如一个计算器,然后想办法去做出来。使用你一直学习的语法和概念,然后将它们应用到实际中。

和别人交流并且阅读他人的程序

       有很多编程社区致力于特定的语言或学科。找到并参与到这些社区会为你的学习创造奇迹。你将会获得能够帮助你的学习过程的各式各样的示例代码和工具。通过阅读他人的程序代码不仅可以激励你,还可以帮助你回忆那些还没有掌握的概念。

       为你所选择的编程语言找到论坛或在线社区。确保自己是真正参与进去而不是不断地问问题。这些社区往往看着做协作和讨论的地方,而不仅仅是简单的提问-回答问题。请随时寻求帮助,但要准备好你的程序以及尝试用不同的途径。

       一旦你已经有了一些经验,可以参加一些编程的活动。这些活动是个人或团队争分夺秒的开发功能的程序,通常会围绕一个特定的主题。这些事情都很好玩并且是一个认识其他程序员的很好的方式。

挑战自己并保持乐趣

      去尝试着做一些你现在还不知道怎么做的事情。研究该怎样完成这个任务的方式,并且不断的将它们添加到你的程序中。一定要尽量避免勉强能运行的程序,你应该让各个方面都很完美。

分享你的知识

四、参加一些培训课程

        许多的大学、社区学院、社区中心都提供了你可以参加的编程课程和工作室,而无需在学校注册。这里对于新手程序员是很有裨益的,因为你可以从其他有经验的程序员那里得到帮助,或者你也可以通过网络和其他地方的程序员一起交流。

买或者借一本书

      有成千上万种你所能想象出的所有语言的教学书籍。虽然你的知识不应该全然来自一本书,但它们会给你提供许多的参考,而且往往内涵了大量友好的示例。

学习数学和逻辑

      大多编程都涉及了基本的算术运算,但可能你想要学习更先进的概念。如果你想写出复杂的模拟或者算法级别程序,这将是非常重要的。对于大多数日常编程而言,你并不需要太多先进的数学知识。但学习逻辑,尤其是计算机逻辑,将能帮助你理解处理更先进程序的复杂问题的最好方式。

永远不要停止编程

        有一个流行的理论,成为一名专家至少需要10000小时的练习。虽然这个理论还处于辩论中,但它内含的原则永远是正确的:精通需要时间和奉献精神。不要指望一夜之间你就能学会一切,但如果你保持专注,并且不断的学习,很快你就会成为你的领域里的专家。

五、学习另一种编程语言

      虽然你可以仅仅精通一门语言,但许多的程序员通过学习多种语言来提高在其领域内成功的机会。它们的第二或者第三个语言往往和第一个语言相辅相成,这就能帮助他们去写出更加复杂和有趣的程序。一旦你掌握了你的第一个语言,你就有时间来学习第二个语言。

      你可能会发现第二个语言会学的比第一个更快。那是因为许多的核心概念对于多种语言都是相通的,尤其是如果这两个语言本身就是密切相关的。

应用你的技能

六、参加一个四年的课程

      虽然这并非绝对需要,但在学院或大学的四年学习可以让你见识到各种不同的语言,你可以在网络上和专业人士或者其他学生交流。这种方法不一定适合所有人,并且很多成功的程序员都没有在一个耗时4年的机构学习。

创建自己的代码库

      当你在创建程序并且不断扩充你的知识时,确保你所有最好的程序都保存自己的代码库中。你可以把这个展示给招牌和面试官看你所做的工作。确保这包含了你所有时间的工作,并且确保你可以用这些程序给给另一家公司做任何工作。

做一些外包兼职工作

       对于程序员来说有非常大的自由职业市场,尤其是移动App开发。带上几个小的外包兼职去感受一番商业编程是如何运作的。通常境况下你可以用外包兼职的工作来帮助你建立代码库,并且这将有益于新的作品。

开发你自己的免费程序或商业软件

      你不必为一家工作来换取金钱。如果你有能力,完全可以独立开发软件并且让其免费,通过你自己的网站或者其他的市场。准备好提供为你的商业软件做技术支持,因为你的客户希望它们能完好的工作。


推荐阅读
  • IntelliJ IDEA配置微服务启动显示
    通过编辑IntelliJ IDEA的workspace.xml文件,可以实现微服务启动对象的显示。具体步骤包括定位并修改workspace.xml中的RunDashboard部分。 ... [详细]
  • 版权所有 © 2015 CSDN博客,保留所有权利。本文档详细介绍了使用C语言编写计算圆柱体表面积的程序,包括代码实现及运行结果。 ... [详细]
  • 本文介绍了如何通过设置特定属性来取消小程序中 Navigator 组件的默认点击效果,提高用户体验。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
  • java datarow_DataSet  DataTable DataRow 深入浅出
    本篇文章适合有一定的基础的人去查看,最好学习过一定net编程基础在来查看此文章。1.概念DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据 ... [详细]
  • 本文详细探讨了编程中的命名空间与作用域概念,包括其定义、类型以及在不同上下文中的应用。 ... [详细]
  • Web开发实践:创建连连看小游戏
    本文详细介绍了如何在Web环境中开发一款连连看小游戏,适合初学者和技术爱好者参考。通过本文,您将了解游戏的基本结构、连线算法以及实现方法。 ... [详细]
  • Java中List的forEach方法与字符串拼接的兼容性问题
    本文深入探讨了在Java中使用List的forEach方法时遇到的字符串拼接问题,提供了有效的解决方案及背后的原理分析,旨在帮助开发者更好地理解和解决此类问题。 ... [详细]
  • 本文探讨了在Eclipse中进行JavaScript验证时遇到的时间过长问题,并提供了解决方法。特别是对于使用ExtJS框架的用户,这一问题尤为突出。文章详细介绍了如何通过修改项目配置文件来有效解决这一问题。 ... [详细]
  • 宝塔面板下启用HTTPS的详细指南
    本文提供了在宝塔面板环境中配置HTTPS的具体步骤,确保您的网站通信更加安全可靠。 ... [详细]
  • Linux系统中的USB驱动架构
    USB系统采用了树状拓扑结构,其主机端和设备端分别配置了主机控制器(Host Controller)和USB设备控制器(USB Device Controller)。主机控制器负责整个USB系统的通信调度,确保数据的有效传输。 ... [详细]
  • 初探Hadoop:第一章概览
    本文深入探讨了《Hadoop》第一章的内容,重点介绍了Hadoop的基本概念及其如何解决大数据处理中的关键挑战。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 探讨多种方法来确定Java对象的实际类型,包括使用instanceof关键字、getClass()方法等。 ... [详细]
author-avatar
爱笑的美美6_833
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有