程序员101:自学如何编码

你一直想自己学习如何构建软件,或者只是偶尔编写一个脚本,但却不知道从哪里开始。幸运的是,网络上充满了免费资源,可以让你很快成为一名程序员。...

Image for article titled Programmer 101: Teach Yourself How to Code

你一直想自己学习如何构建软件,或者只是偶尔编写一个脚本,但却不知道从哪里开始。幸运的是,网络上充满了免费资源,可以让你很快成为一名程序员。

自从互联网发明以来,程序员们就一直在用它来讨论软件开发技术、发布教程、分享代码样本,供其他人在线学习和使用。如果你对如何成为一名程序员很好奇,你可以开始使用大量免费的网络教程和资源。

第一件事:不要为选择一门语言而烦恼

Image for article titled Programmer 101: Teach Yourself How to Code

对于初学者来说,一个常见的陷阱就是要找出哪种编程语言最好先学。有很多意见,但没有一个“最好的”语言。事情是这样的:说到底,语言没那么重要。理解数据和控制结构以及设计模式非常重要。每一种语言,甚至一种简单的脚本语言,都会有你在其他语言中使用的元素,并帮助你学习。在我攻读计算机科学学位的课程中,我用Pascal语言、汇编语言和C语言编程,实际上我从来没有拿到过专业编程的报酬。我自学了我职业生涯中使用过的每一种语言,重复使用我已经知道的概念,并参考文档和书籍来学习它的语法。所以,不要纠结于先学什么语言。选择你想做的开发,然后开始使用一个可行的开发。

有几种不同类型的软件开发可以在不同的平台上进行,从web到桌面,从智能**到命令行。在本文中,我们将概述一些我们最喜欢的入门教程和资源,用于自学如何为每个主要平台编程。我们将假设您是一个精明的用户,但在处理代码片段时是一个新手,因此我们将保持初级水平。即使只是通过一个初学者编程教程,你会很高兴看到你能走多远。

桌面脚本

尝试为Windows或Mac桌面编程的最简单方法是从脚本或宏程序开始,比如AutoHotkey(用于Windows)或Automator(用于Mac)。目前,Lifehacker读者群中的铁杆程序员正在对着他们的显示器大喊大叫,说AHK或AppleScript不是“真正的”编程。从技术上讲,这可能是正确的,这些类型的工具只是执行高级脚本。但是对于那些刚开始编程的人来说,他们只是想把脚弄湿,在桌面上自动操作,这些免费的工具是一个很好的开始方式,你会惊讶于你能用它们做多少事情。

Image for article titled Programmer 101: Teach Yourself How to Code

例如,Adam使用AutoHotkey开发了我们都熟悉和喜爱的独立Windows应用程序Texter,因此这种脚本语言的能力远远超过了小型自动化项目。要开始使用自动热键,请查看亚当的教程,了解如何使用自动热键将任何操作转换为键盘快捷键(然后,查看Texter的源代码,查看一个完整的基于AHK的Windows应用程序的内部结构。)

web开发

不必拘泥于特定的编程语言和特定操作系统的外观和感觉,你可以把你的**级应用程序放在浏览器中,作为一个webapp在云端运行。欢迎来到web开发的奇妙世界。

HTML和CSS:构建任何web站点首先需要知道的是HTML(构成web页面的页面标记)和CSS(使该标记看起来漂亮的样式信息)。HTML和CSS不是真正的编程语言,它们只是页面结构和样式信息。但是,在开始构建web应用程序之前,您应该能够手工编写简单的HTML和CSS,因为web页面是每个webapp的前端。这个HTML教程是一个很好的开始。

JavaScript:现在你可以用HTML和CSS来布局一个静态的web页面了,事情变得很有趣,因为是时候学习JavaScript了。JavaScript是web浏览器的编程语言,它的神奇之处在于动态页面效果。JavaScript也是bookmarklet、Greasemonkey用户脚本和Ajax的素材,因此它是**各种web产品的关键。从这里开始学习JavaScript。

Image for article titled Programmer 101: Teach Yourself How to Code

服务器端脚本:一旦你擅长在一个网页中实现一些事情,你就需要在它后面添加一些动态的服务器操作,为此,你需要使用服务器端脚本语言,比如PHP、Python、Perl或Ruby。例如,要**一个基于web的联系人表单,根据用户输入的内容将电子邮件发送到某处,需要一个服务器端脚本。像PHP这样的脚本语言也可以与web服务器上的数据库进行通信,因此,如果您想创建一个用户可以登录和存储信息的站点,这是一个不错的选择。优秀的web开发网站Webmonkey充满了各种web编程语言的教程。请参阅他们的PHP初学者教程。准备好后,在WebMonkey的PHP和MySQL教程中查看如何使用PHP与数据库对话。PHP的在线文档和函数参考是web上最好的。每个条目(如strlen函数中的这个条目)的底部都包含用户注释,这些注释通常与文档本身一样有用(我碰巧偏爱PHP,但是有很多其他的服务器端脚本语言您可能会选择使用。)

Image for article titled Programmer 101: Teach Yourself How to Code

Web框架:多年来,Web开发人员不得不解决同样的问题,重写类似的代码来构建动态Web站点。为了避免让每个人都为每一个新的web开发项目重新设计轮子,一些程序员提出了一些开发框架,为您做一些重复的工作。例如,流行的rubyonrails框架采用Ruby编程语言,并提供了一种特定于web的结构,用于完成常见的web应用程序任务。事实上,亚当用Rails构建了他的第一个严肃的(令人印象深刻的!)web应用程序,mixstape.me。以下是他对如何在没有经验的情况下从头开始建立一个网站的看法。其他流行的web开发框架包括CakePHP(针对PHP程序员)、Django(针对Python程序员)和jQuery(针对JavaScript)。

webapi:API(applicationprogramminginterface,应用程序编程接口)是一种编程方式,用于不同的软件之间的通信。例如,如果你想在你的网站上放置一个动态地图,你需要使用Google地图而不是构建你自己的自定义地图。googlemapsapi使得用JavaScript编程在页面中包含地图变得很容易。几乎每一个你所了解和喜爱的现代web服务都有一个API,它允许你在应用程序中包含来自它的数据和小部件,比如Twitter、Facebook、Google Docs、Google Maps等等。通过API将其他web应用程序集成到您的web应用程序中是富web开发的最终前沿。每一个好的、主要的web服务API都提供了详尽的文档和一些快速入门指南来进行尝试(比如Twitter)。快疯了。

命令行脚本

如果您想编写一个接收文本或文件输入并输出有用信息的程序,那么命令行就是正确的选择。虽然命令行没有webapp或桌面app那么**或好看,但是为了快速开发自动化流程的快速脚本,您无法战胜它。

在基于Linux的web服务器上工作的几种脚本语言也可以在命令行上工作,比如Perl、Python和PHP,因此学习其中的一种会让您熟悉两种环境。我的道路从来没有让我走得太远,但我自学Python时使用了优秀的免费在线书籍《潜入Python》。

Image for article titled Programmer 101: Teach Yourself How to Code

如果成为Unix忍者是您的程序员目标之一,那么您必须精通bash的shell脚本。Bash是*nix环境中的命令行脚本语言,它可以做任何事情,从帮助您设置数据库和文件的自动备份到构建具有用户交互的完整应用程序。由于没有任何编写bash脚本的经验,我最终在bash中开发了一个完整的个人待办事项列表管理器Todo.txt CLI。

附加组件

如今,现代的网络应用和浏览器都可以通过一些软件进行扩展,这些软件可以连接到这些应用和浏览器上并添加一些功能。随着越来越多的开发人员关注现有的软件,比如Firefox或WordPress,并认为“如果它能做到这一点就好了……”附加开发越来越受欢迎

只要精通HTML、JavaScript和CSS,您就可以在任何web浏览器中做很多事情。Bookmarklets、Greasemonkey用户脚本和时髦的用户样式都是用与普通网页相同的代码创建的,因此即使您只想用一小部分代码调整现有网站,它们也值得学习。

更高级的浏览器插件,比如Firefox扩展,可以让你做更多的事情。例如,开发Firefox扩展需要熟悉JavaScript和XML(类似于HTML的标记,但格式更严格)。早在2007年,我就了解了如何构建Firefox扩展,这是我偶然发现免费教程后学到的技能。

许多免费且广受欢迎的web应用程序也提供了一个扩展框架,比如WordPress和MediaWiki。这两个应用程序都是用PHP编写的,因此熟悉PHP是入门的先决条件。下面是如何为WordPress编写插件。想要驾驭googlewave前沿的开发人员可以开始用HTML、JavaScript、Java和Python编写小工具和bot。在一个下午的快速入门教程之后,我编写了我的第一个Wave机器人。

桌面web开发

在一个环境中开始编程最好的部分是当你可以将这些技能应用到其他地方。首先学习web开发是一个很好的开始,因为现在也有方法将这些技能应用到桌面应用程序上。例如,adobeair是一个跨平台的运行时环境,它允许您构建一次应用程序,并将其发布到AIR运行的每个操作系统的桌面上。AIR应用程序是用HTML、Flash或Flex编写的,因此它允许您在桌面环境中应用您的web开发技能。AIR是部署桌面应用程序的一个很好的选择,比如值得安装adobeair的十大应用程序之一。

移动应用开发

像你在iPhone或Android智能**上运行的移动应用程序现在风靡一时,所以你可能梦想着用下一个**级应用程序在iTunes应用商店里让它变得丰富起来。然而,对于新的程序员来说,首先进入移动开发可能是一个粗略的学习过程,因为它需要熟悉Java和Objective C等高级编程语言。不过,值得一看iPhone和Android的发展情况。查看这个简单的iPhone应用程序开发示例,了解iPhone开发人员的工作。Android应用程序是用Java编写的,下面是一个友好的视频教程,介绍如何构建一个“Hello Android”应用程序工作流。

耐心,努力,反复试验

优秀的程序员是一种特殊类型的持久的问题解决者,他们沉迷于小的胜利,这些胜利伴随着长期的尝试和错误。学习如何编程是非常有益的,但它也可以是一个令人沮丧和孤独的经验。如果可以的话,一路上找个朋友和你一起工作。要真正擅长编程,就像其他任何事情一样,就是要坚持下去,不断尝试,不断积累经验。

本文只是一篇自学成才的程序员给初学者的建议。有经验的程序员:我错过了什么?无论你的技能水平如何,在评论中加入你对初学者的想法和建议。

Lifehacker的创始编辑Gina Trapani认为最好的程序员都是自学成才的。她的每周特辑《Smarterware》每周三都会出现在Lifehacker上。订阅Smarterware标记提要以在新闻阅读器中获得新的分期付款。

  • 发表于 2021-07-28 05:29
  • 阅读 ( 198 )
  • 分类:互联网

你可能感兴趣的文章

5节课,成为一名真正优秀的自学程序员

到目前为止,程序员更有趣。好吧,这可能不是完全正确的,它不应该成为成为程序员的唯一原因,但这是一个值得考虑的问题。你为什么想成为一名程序员? ...

  • 发布于 2021-03-12 09:53
  • 阅读 ( 232 )

初学者代码训练营:你应该参加吗?

...段来结束而不是结束本身。因此,它们提供了初出茅庐的程序员所需要的入门概念。但这取决于营员如何运用这些技能,获得额外的专业知识,并承担起功能性项目。有一个错误的假设,完成一个新兵训练营使你成为一个程序员...

  • 发布于 2021-03-13 09:38
  • 阅读 ( 412 )

嘿程序员:用这两个工具提高你的打字速度

...现代牛棚的极客,速度是一种生存技能。打字员不需要是程序员。但是程序员必须是打字员。 ...

  • 发布于 2021-03-15 13:08
  • 阅读 ( 260 )

想学习基本的编码吗?在你的业余时间尝试5个一口大小的编码应用程序

...一碟就成了第一道开胃菜。如果你认为你不是一个天生的程序员,拿起这些应用程序之一,并有一个月的尝试。 ...

  • 发布于 2021-03-21 11:35
  • 阅读 ( 233 )

如何自学廉价编程

...Android移动设备创建应用程序和游戏。 编解码器 如果你问程序员们自己,在便宜的情况下学习这门手艺的最好方法是什么,十有八九的人会把你推荐到一个地方:Codecademy。 该网站是任何有兴趣学习JavaScript、Python、rubyonrails、jQ...

  • 发布于 2021-04-10 09:17
  • 阅读 ( 135 )

14种自学代码的好方法

如果您想学习如何编写代码,那么进入这个巨大的宇宙的第一步可能看起来是一项艰巨的任务,如果不是令人生畏的任务的话。这里有一个大秘密:有很多免费的(而且便宜的)资源,你可以用来给你自己所有你需要的帮助,教...

  • 发布于 2021-05-12 01:33
  • 阅读 ( 163 )

学习用这个电脑角色扮演游戏编码

我试着用一堆不同的应用程序和在线课程自学编程语言,但TwilioQuest可能是我在学习代码时最有趣的。它最初是一个类似游戏的教程,供开发者学习Twilio的通信API,但后来扩展到一个独立的角色扮演游戏,可以教你几种编码语言...

  • 发布于 2021-05-12 20:09
  • 阅读 ( 203 )

编码训练营的工作原理

...不等。当然,你可以不用训练营就学会编码。你仍然可以自学,或者在进入夏令营或其他社交方式之前开始独奏。Choi推荐W3Schools的教程,以及哈佛CS50课程的在线edX版本。但他对后者提出了警告,“它很快就会深入到相当深的地...

  • 发布于 2021-05-14 18:50
  • 阅读 ( 140 )

利用这个网站自学计算机科学

...adford School of Computer Science)的教员编写的,它提供了一个自学课程,作为大学CS学位的替代方案。该课程是围绕一系列教科书和视频,其中大部分是免费的在线。有一个推荐的学习顺序,总的推荐学习时间为900-1800小时(23-45个全...

  • 发布于 2021-05-15 04:04
  • 阅读 ( 114 )

在不到一年的时间里从零开始成为一名深入学习的编码员

...算机过去非常不擅长,但现在非常擅长。它包括教计算机自学。据数据科学家巴加瓦说,你可以在不到一年的时间里学会。你需要每周投入10-20个小时,但你会学到很多。Bargava提出了一个为期六个月的五步计划,让编码人员学习...

  • 发布于 2021-05-15 07:05
  • 阅读 ( 125 )
横木
横木

0 篇文章

相关推荐