
首要之首:不要急于选择一种语言新手们有一个常见的错误就是犹豫于判断哪种编程语言是做好的、最该先学的
我们有很多的选择,但你不能说那种语言“最好”
我们应该理解:说到底,什么语言并不重要
重要的是理解数据结构、控制逻辑和设计模式
任何一种语言—甚至一种简单的脚本语言—都会具有所有编程语言都共有的各种特征,也就是说各种语言是贯通的
我正在攻读我的计算机学学位,我编程使用Pascal,汇编,和C语言,事实上我从来没有把它当成职业以求获得回报
我一直在自学编程,工作上用不到它,我使用现有的知识,参考各种文档和书本,学习它们的用法
因此,不要急于选择何种编程语言
找出你想要开发的东西,使用一种能够完成这项任务的语言,这就可以了
根据各种开发平台的不同,有很多不同的软件开发形式可供你选择:从网站应用到桌面软件到智能手机软件到命令行脚本工具
这篇文章里,我将重点介绍一些很受欢迎的入门教程和资源,它们能帮助你学会如何在各种主流的平台上编程开发
我先假设你是一个悟性很强的读者,但对于新手,当我谈论程序代码时还是要按照入门级的水平
因为即使是你自己看一篇编程入门手册,如果发现都能理解时,心情自然会很高兴,这样利于你进一步学习
桌面脚本想要动手在Windows里或苹果系统里编程,最简单的方法是从一种脚本语言或宏语言开始,例如AutoHotkey(Windows)或Automator(苹果系统)
如今一些硬件程序员冲着他们的屏幕大喊大叫,说AHK和AppleScript并不是“真正”的编程语言
也许他们说的是对的—技术上,这些种类的语言只能做一些上层的编程
但是对于那些只是想来脱盲、想在他们的电脑里实现一些能自动运行的程序的新手来说,这些语言会是一个绝妙的入门入口—而且你会吃惊于它们丰富的功能
例如,大家都喜爱的Texter就是Adam使用AutoHotkey开发的能独立运行的Windows应用程序,所以说这种脚本语言远不是只能开发小规模脚本软件
如果你想从AutoHotkey入手,可以参考Adam的指导:howtoturnanyactionintoakeyboardshortcutusingAutoHotkey(然后,你可以下载Texter源代码看看这个功能齐全的使用AHK开发的Windows应用程序的内部结构)
Web开发HTML和CSS:开发网站,你第一件要知道的事情就是HTML(网页就是由它组成的)和CSS(一种让外观更好看的样式标记)
HTML和CSS并不是编程语言—它们只是页面的结构和样式信息
然而,在开始开发web应用程序之前你必须要学会如何手工的编写简单的HTML和CSS,web页面是任何webapp的前端显示部分
这个HTML指导是你入手的好地方
JavaScript:当你可以通过HTML和CSS构建一个静态页面后,事情就开始变得有趣了—因为到了该学JavaScript的时候了
JavaScript是一种web浏览器上的编程语言,它的魔力就是能在页面里制造一些动态效果
JavaScript可以做,脚本,和Ajax,所以它是web上各种好东西的关于因素
学习JavaScript从这里开
服务器端脚本:一旦你学会了网页里的知识,你就要开始对它添加一些动态服务器 *** 作—为了实现这些,你需要把目光转移到服务器端脚本语言,例如PHP,Python,Perl,或Ruby
举个例子,如果想要制作一个网页形式的****表单,根据用户的输入发送邮件,你就需要使用服务器端脚本来实现
像PHP这样的脚本语言可以让你跟web服务器上的数据库进行沟通,所以如果你想搭建一个用户可以登录注册的网站,这样的语言正是你需要的
Webmonkey是一个优秀的web开发资源网站,里面有大量的各种web编程语言的指导手册
阅读一下他们的PHP初学者指南
当你感觉差不多了的时候,看看WebMonkey’sPHPandMySQLtutorial学习如何使用PHP跟数据库交互
网上最好的要数PHP语言官方的在线文档和函数参考了
每个知识点上(例如strlenfunction这个)都在后面列出来用户的评论注释,这些对于文档的本身是非常有价值的
(我很喜欢PHP,但还有很多其他种服务器端的脚本语言你们都可以选择
)Web框架:过去数年里,web开发人员在开发动态网站的过程中不得不一遍又一遍的针对重复遇到的问题写出重复的代码
为了避免这种每次开发一些新网站都会重复劳动一次的问题,一些程序员动手搭建了一些框架,让框架替我们完成重复性的工作
非常流行的RubyonRails框架,作为一个例子,它利用Ruby编程语言,为我们提供了一个专门面向web的架构,普通的web应用程序都能使用它来完成
事实上,Adam使用Rails开发了他的第一个正式的(而且是叹为观止的!)web应用程序,MixTape
me
这就是他的如何在没有任何经验的情况下搭建一个网站
还有一些其他的web开发框架包括CakePHP(针对PHP编程者),Django(针对Python编程中),以及jQuery(针对JavaScript)
WebAPIs:API(应用层序编程接口)是指不同的软件之间相互交换的程序途径
例如,如果你想在你的网站上放一个动态的地图,你可以使用GoogleMap,而不需要开发自己的地图
TheGoogleMapsAPI可以轻松的让你通过JavaScript在程序中引入一个地图到你的页面上
几乎所有的现代的你所知道的和喜爱的web服务都提供了API,通过这些API你可以获取到他们的数据和小工具,在你的应用程序里就可以使用这些交互过来的东西了,例如Twitter,Facebook,GoogleDocs,GoogleMaps,这个列表远不止这些
通过API把其他web应用集成到你的web应用里是现在富web开发的前沿地带
每个优秀的主流的web服务API都附带有完整的文档和一些快速入手的指导(例如,这个就是Twitter的)
疯狂吧
命令行脚本如果你想开发一个程序,让它读取文字或文件、输入输出一些有用的东西,那么,命令行脚本语言将是个不错的选择
然而它并不像web应用程序和桌面应用程序那样有吸引力和好看的外观,但是作为快速开发的脚本语言,你却不能忽视它们
很多的在linux平台上运行的web脚本同样能以命令行模式运行,例如Perl,Python和PHP,所以如果你学会了使用它们,你将能在两种环境中使用它们
我的学习道路一直没离开Perl太远,我自学Python使用的是这本优秀的在线免费书DiveintoPython
如果成为一个Unix高手也是你学习的目标,那么你绝对要精通bash这个脚本语言
Bash是Unix和Linux环境下的一种命令行脚本语言,它能够为你做所以的事情:从自动备份数据库脚本到功能齐全的用户交互程序
起初我没有任何使用bash脚本的经验,但最终我用bash开发了一个全功能的个人代办任务管理器:Todo
txtCLI
插件(Add-ons)如今的web应用程序和浏览器都可以通过一些扩展软件来丰富自己的功能
由于一些现有的软件,例如Firefox、WordPress越来越受到开发人员的关注,插件的开发也日益流行,人们都在说“ButifonlyitcoulddoTHIS”只要你掌握了HTML,JavaScript和CSS,你就可以在任何的浏览器里开发你想要的很多东西
,scripts,和Stylishuserstyles这些软件都是用的更普通页面一样的语言写成的,这几个东西都值得你去研究一些
更高级的浏览器扩展程序,例如Firefox的扩展,它们可以帮助你很多
开发Firefox的扩展,举个例子,需要你精通JavaScript和XML(一种标记语言,类似HTML,但具有更严格的格式)
早在2007年我就写下来howtobuildaFirefoxextension,这是我在笨手笨脚的研究网上的一些学习资料后获得的成果
很多免费的、受欢迎的web应用程序都提供了扩展框架,例如WordPress和MediaWiki
这些应用程序都是用PHP写成的,所以只有对PHP熟悉你才能做这些事情
这个就是如何编写WordPress插件
而想驾驭GoogleWave前沿技术的开发人员可以从使用HTML,JavaScript,Java,和Python写小组件和小工具开始
我写的第一个Wavebot是跟着这个一个下午时间的快速入门指导开始的
开发桌面上的Web应用程序学习编程最好的结果是你在一个环境下学的东西可以应用到另外的环境中
先学习开发web应用程序的好处就是我们有一些方法可以让web应用程序直接在桌面上运行
例如,AdobeAIR是一个跨平台的即时运行平台,它能让你编写的程序运行在任何装有AIR的 *** 作系统的桌面上
AIR应用程序都是由HTML,Flash,或Flex写成的,所以它能让你的web程序在桌面环境中运行
AIR是开发部署桌面应用程序的一个优秀的选择,就像我们提到过的10个让你值得去安装AIR的应用程序
移动应用开发能在iPhone或者Android智能手机上运行的手机应用程序的开发如今正呈现井喷之势,所以你也可以梦想一下如何在iTunes应用商店里通过你的天才程序大赚一笔
但是,作为一个编码新手,直接奔向移动开发所经历的学习曲线可能会很陡,因为它需要你熟悉高级的编程语言,例如Java和ObjectiveC
然而,你当然应该看看iPhone和Android编程究竟是什么样子的
阅读这个简单的iPhone应用开发例子可以初步认识一下iPhone程序的开发过程
Android程序都是由Java写成的,这有一个简单的视频教程教你如何开发第一个”HelloAndroid“程序(注:可能需要代理才能看这个视频)
耐心,刻苦,尝试,失败好的程序员都有一个不达目的誓不罢休的品质,他们会惊喜于通过长期推敲和失败换来的一点成绩
学会编程会有很好的回报的,但是学习的过程可能会是饱受挫折和孤独的
如果有可能,最好找个伴一起陪你做这件事
想精通编程,这和其他事情一样,需要坚持,反复尝试,获得更多的经验
开源开发人员都是义务劳动者的观点已经成为编程世界中的陈词滥调,即使是那些伟大的开源举措也无法驳倒这种风靡一时的心态。但是真理总是掌握在少数人手里即使是在开源惯例中,也需要参与开源的开发人员主动为其他人贡献他们的技能,一些企业(或企业集团)往往会因此雇用并支付这些程序员去研究特定的开源项目(如 Linux Kernel)。除了开发人员确实可以从开源代码项目中得到薪酬这个事实外,还有 6 个理由可以说服你去做更多的开源项目如果你是一个开发人员的话:
1 学习和实践
还有什么能让我们一直紧密关联自己的工作领域?作为一个程序员,你需要不断学习编码的最新趋势,你需要不断练习以进一步磨练自己的技能。开源是助你攀登这两座高峰的阶梯。开源的确是预防我们生锈的最佳途径。
2 经验和简历
你是一个新手开发者?那么,从开源项目中学习,并致力于开源项目是你获得经验和打造有吸引力的简历的最佳方法,它能让你争取到原本不可能的就业机会。在 IT 界找工作并不容易,而且如果你没有任何实战经验的话,那么情况就更糟了。但是如果当雇主看到你的简历,看到你已经参与过一些开源工作,那么可能会认为你主动积极,愿意工作,有工作经验从而增加你被雇用的机会。
3 网络和协作
你可以与其他伟大的程序员联网,建立项目之外的关系。这是增加 Twitter 粉丝的好办法。开源还可以帮助你和那些志趣相投的,优质的联系人建立网络联系。
你和你的小伙伴还可以一起工作于以后的项目,或者创建一个交流技巧的组群。各种可能数不胜数。
4 展现(技能,代码等)
参与开源项目能让你获得大量的曝光机会无论是技能还是工作机会。通过使用以前写的代码,能让你节省大量编写开源代码的时间。此外,在你贡献了自己的代码之后,其他程序员可能会紧随你的身后去扩展这些代码你可能会发现代码变得更高级。这是一个开发和机遇无休止的循环,可能会大大影响你的职业生涯。
5 社区建设
除了能让你获取伟大的实践和经验,开源还能帮助构建一个伟大的社区。因为它是开源的,所以大家可以互相学习彼此的技巧,提高自己的编码技能。
教学相长。就像其他职业一样,你在教授别人的过程中,在为开源项目或社区简单地贡献自己的专业知识的同时,也可以学到东西。
6 更好的收入机会
现在,如果我们再回过头谈谈钱,为大家揭示所谓的自由工作神话。真的能赚到钱的编程或许就是开源领域了。
为什么?这是因为虽然开源软件产品大多是免费提供给公司使用的,但是公司往往还是会雇用程序员(尤其是那些对此有贡献的程序员)来提供与开源软件相关的服务例如,安装,支持,维护,等等。
具有讽刺意味的是:这些服务很赚钱,而且比销售类似付费软件所赚的钱更多反而这些付费软件不需要这些相关服务。
现在,你知道开源的好处了吧,所以每个开发人员都应该致力于开源项目。而且开源不仅对开发人员有利,对企业而言,也是好事,因为它保证了最高的安全性和质量。
开源并不是完全免费的志愿活动。相反,从长期来看,它能让你渐渐地超越你的同龄人,它会成为一棵真正的摇钱树。
希望可以帮到您,谢谢!
程序员之所以喜欢Linux系统,究其原因具体如下:
1、强大的命令行
命令行有很多功能,如快速、自动化管理系统及处理业务,这消除了开发者对鼠标或触控板的需求,使开发者能够直接通过键盘输入指令来管理系统。自动化管理系统及处理业务可以让开发者专注于手头更重要的任务从而节省下大量实践。作为Linux的核心组件之一,尽管Linux命令行并不完美但始终保持了终端的纯度。
2、Linux非常安全
由于Linux是开源的由大型开发者社区开发和维护,所以安全漏洞被发现和修复的几率更高。此外Windows作为最受欢迎的 *** 作系统,据相关数据统计,Windows设备以767%的占比排名第一。因此更多恶意攻击针对的是Windows而不是Linux。
3、对开发者友好
与Windows相比Linux在很大程度上对用户更友好更容易被接受。如Linux有为开发者专门提供的工具,所以它在开发者中非常受欢迎。在Linux中,开发者能够拥有编译器、命令行编辑器、几乎可以调整任何内容的能力、以及自己设置快捷方式的能力,并且这一切都是开箱即用。
4、定期更新
由于Linux是开源的随着人们发现漏洞、安全缓存和错误脚本,开发者会定期得到大量的更新,这就是Linux用户的主要优势之一。
5、社区支持
Linux社区致力于服务所有的Linux用户,因此它将提供长期的支持。Windows社区却与Linux不同,Windows社区之前停止为Windows7用户提供支持,因此如果开发者在Windows7中遇到任何问题或数据泄露的麻烦都将无法联系到帮助中心。但当Linux用户遇到麻烦时,可以在许多地方寻求到帮助,比如:Twitter、LinkedIn、Forums等。
6、隐私性强
Linux不会收集或与任何人分享用户的信息。用户甚至可以关闭收集数据的开发建议,如果打开,也只会提供给Linux的开发团队。如果你曾经使用过Windows10,你会注意到默认的隐私设置会自动开启所有功能。即使你选择不提交有关自己的Microsoft数据,你的信息也依旧会被收集,除非你使用一组程序来禁用Windows的窃听模块。
7、网络安全
Linux通常是网络安全方面最常用的 *** 作系统。这是因为Linux不容易受到病毒攻击,而且它的系统维护得非常好,使系统中出现漏洞的机会极少。因此,通过使用Linux,开发者可以学习到它在网络安全方面的经验,如学习如何保护个人或专业数据免受暴力破解攻击、网络攻击或任何其他类型的攻击,以此来避免个人数据被攻击而泄露。
原因如下:
1、强大的命令行
命令行有很多功能,如快速、自动化管理系统及处理业务,这消除了开发者对鼠标或者触控板的需求,使开发者能够直接通过键盘输入指令来管理系统。自动化管理系统及处理业务可以让开发者专注于手头更重要的任务从而节省下大量时间。作为Linux的核心组件之一,尽管Linux命令行并不完美但始终保持了终端的纯度。
2、Linux非常安全
由于Linux是开源的由大型开发者社区开发和维护,所以安全漏洞被发现和修复的几率更高。
3、对开发者非常友好
与Windows相比Linux在很大程度上对用户更友好更容易被接受。如Linux有为开发者专门提供的工具,所以它在开发者中非常受欢迎。在Linux中,开发者能够拥有编译器、命令行编辑器、几乎可以调整任何内容的能力、以及自己设置快捷方式的能力,并且这一切开箱即用。
4、定期更新
由于Linux是开源的随着人们发现漏洞、安全缓存和错误脚本,开发者会定期得到大量的更新,这就是Linux用户的主要优势之一。
5、社区支持
Linux社区致力于服务所有的Linux用户,因此它将提供长期的支持。Windows社区却与Linux不同,Windows社区却与Linux不同,Windows社区之前停止为Windows7用户提供支持,因此如果开发者在Windows7中遇到任何问题或数据泄露的麻烦都将无法联系到帮助中心。但当Linux用户遇到麻烦时,可以在许多地方寻求帮助,比如:Twitter、Linkedln、Forums或重要的Stack
Overflow。
6、功耗更低
Linux所消耗的计算机资源量非常少。如果你有一台规格较低而不能工作的老旧电脑,那么在这台设备上安装Linux,它就可以恢复运作且运作得很好。众所周知使用Windows系统需要更强大的硬件。然而随着 *** 作系统的发展支持硬件的旧电脑可能会过时,因为它将不再支持旧硬件。
7、隐私性强
Linux不会收集与任何人分享用户的信息。用户甚至可以关闭收集数据的开发建议,如果打开,也只会提供给Linux的开发团队。
8、完全免费使用
Linux已经发展成为世界上最可靠的计算机生态系统之一。当你把这种可靠性与免费使用的事实结合起来,你就拥有了理想的桌面平台。如果你想使用Windows,那你要么去购买它,要么使用破解版本,但Linux却不需要你这么做。
程序员,就是从事程序开发、程序设计、程序维护的专业人士。
作为一种专业性极强的技术性专业,程序员的工作难度非常高,只有专业技能水平高超的人才能在这个领域获得良好的发展前景。……那些实力不足的人,只能被最终淘汰。
因此,要想在程序员这一行里成为不可替代的人,避免自己被淘汰出局的情况,就必须具备以下几方面能力:
1,高人一筹的专业技能。
在职场上,要想确保自身生存,就必须具备一项专业技能。……要想确保自己不被淘汰,就必须具备高人一筹的专业技能水平。
因此,要想让自己成为不可替代的程序员,要想让自己避免被淘汰的情况,就必须确保自己的专业技能水平高人一筹。
2,强大的罗辑思维能力。
程序,是一个逻辑性极强的系统。
一个程序的各个部分之间、各项功能之间,都存在着极强的关联,也拥有着非常强的逻辑关系。
因此,要想编写出性能优异的程序,就必须拥有极强的逻辑思维能力。……这是确保自己拥有更强实力、确保自己不被淘汰的重要能力。
3,高超的数学水平。
程序的表象,是一段代码。而其核心,则是数学模型,是具体的算法。……只有具备高超的数学水平,才有能力编写出算法精妙、逻辑严谨的程序来。……这是自己具备更高水准的关键因素。也是自己高人一筹,不可替代的关键因素。
4,精通至少一门编程语言。
编程语言是程序员在编程时所用的工具。……只有熟练掌握手中的工具,才能让自己编写出优秀的软件。……编程语言有很多种,一个程序员不可能面面俱到。……但是一个合格的程序员必须掌握至少一门编程语言,这就是自己工作时最得力的工具。……运用这个工具,自己就可以编写出优秀的软件,就可以获得更好的业绩,最终成为不可替代的优秀人才了。……自己也就不可能被淘汰了……
首要之首:不要急于选择一种语言新手们有一个常见的错误就是犹豫于判断哪种编程语言是做好的、最该先学的。 我们有很多的选择,但你不能说那种语言“最好”。 我们应该理解:说到底,什么语言并不重要。 重要的是理解数据结构、控制逻辑和设计模式。 任何一种语言—甚至一种简单的脚本语言—都会具有所有编程语言都共有的各种特征,也就是说各种语言是贯通的。 我正在攻读我的计算机学学位,我编程使用Pascal,汇编,和C语言,事实上我从来没有把它当成职业以求获得回报。 我一直在自学编程,工作上用不到它,我使用现有的知识,参考各种文档和书本,学习它们的用法。 因此,不要急于选择何种编程语言。 找出你想要开发的东西,使用一种能够完成这项任务的语言,这就可以了。根据各种开发平台的不同,有很多不同的软件开发形式可供你选择:从网站应用到桌面软件到智能手机软件到命令行脚本工具。 这篇文章里,我将重点介绍一些很受欢迎的入门教程和资源,它们能帮助你学会如何在各种主流的平台上编程开发。 我先假设你是一个悟性很强的读者,但对于新手,当我谈论程序代码时还是要按照入门级的水平。 因为即使是你自己看一篇编程入门手册,如果发现都能理解时,心情自然会很高兴,这样利于你进一步学习。桌面脚本想要动手在Windows里或苹果系统里编程,最简单的方法是从一种脚本语言或宏语言开始,例如AutoHotkey(Windows) 或Automator(苹果系统)。 如今一些硬件程序员冲着他们的屏幕大喊大叫,说AHK和AppleScript并不是“真正”的编程语言。 也许他们说的是对的—技术上,这些种类的语言只能做一些上层的编程。 但是对于那些只是想来脱盲、想在他们的电脑里实现一些能自动运行的程序的新手来说,这些语言会是一个绝妙的入门入口—而且你会吃惊于它们丰富的功能。例如,大家都喜爱的Texter就是Adam使用AutoHotkey开发的能独立运行的Windows应用程序,所以说这种脚本语言远不是只能开发小规模脚本软件。 如果你想从AutoHotkey入手,可以参考Adam的指导:how to turn any action into a keyboard shortcut using AutoHotkey(然后,你可以下载Texter源代码看看这个功能齐全的使用AHK开发的Windows应用程序的内部结构)。Web开发HTML 和 CSS:开发网站,你第一件要知道的事情就是HTML(网页就是由它组成的)和CSS(一种让外观更好看的样式标记)。 HTML 和 CSS 并不是编程语言—它们只是页面的结构和样式信息。 然而,在开始开发web应用程序之前你必须要学会如何手工的编写简单的HTML和CSS,web页面是任何webapp的前端显示部分。 这个HTML 指导是你入手的好地方。JavaScript:当你可以通过HTML和CSS构建一个静态页面后,事情就开始变得有趣了—因为到了该学JavaScript的时候了。 JavaScript是一种web浏览器上的编程语言,它的魔力就是能在页面里制造一些动态效果。 JavaScript可以做bookmarklets,Greasemonkey脚本, 和Ajax, 所以它是web上各种好东西的关于因素。学习JavaScript从这里开。服务器端脚本:一旦你学会了网页里的知识,你就要开始对它添加一些动态服务器 *** 作—为了实现这些,你需要把目光转移到服务器端脚本语言,例如PHP, Python, Perl, 或 Ruby。 举个例子,如果想要制作一个网页形式的****表单,根据用户的输入发送邮件,你就需要使用服务器端脚本来实现。 像PHP这样的脚本语言可以让你跟web服务器上的数据库进行沟通,所以如果你想搭建一个用户可以登录注册的网站,这样的语言正是你需要的。Webmonkey是一个优秀的web开发资源网站,里面有大量的各种web编程语言的指导手册。 阅读一下他们的PHP 初学者指南。 当你感觉差不多了的时候,看看WebMonkey’s PHP and MySQL tutorial学习如何使用PHP跟数据库交互。 网上最好的要数PHP语言官方的在线文档和函数参考了。 每个知识点上 (例如strlen function这个)都在后面列出来用户的评论注释,这些对于文档的本身是非常有价值的。 (我很喜欢PHP,但还有很多其他种服务器端的脚本语言你们都可以选择。)Web框架:过去数年里,web开发人员在开发动态网站的过程中不得不一遍又一遍的针对重复遇到的问题写出重复的代码。 为了避免这种每次开发一些新网站都会重复劳动一次的问题,一些程序员动手搭建了一些框架,让框架替我们完成重复性的工作。 非常流行的Ruby on Rails框架,作为一个例子,它利用Ruby编程语言,为我们提供了一个专门面向web的架构,普通的web应用程序都能使用它来完成。 事实上,Adam使用Rails开发了他的第一个正式的(而且是叹为观止的!)web应用程序,MixTapeme。这就是他的如何在没有任何经验的情况下搭建一个网站。还有一些其他的web开发框架包括CakePHP(针对 PHP 编程者),Django(针对 Python 编程中), 以及jQuery(针对 JavaScript)Web APIs:API (应用层序编程接口)是指不同的软件之间相互交换的程序途径。 例如,如果你想在你的网站上放一个动态的地图,你可以使用Google Map,而不需要开发自己的地图。The Google Maps API可以轻松的让你通过JavaScript在程序中引入一个地图到你的页面上。 几乎所有的现代的你所知道的和喜爱的web服务都提供了API,通过这些API你可以获取到他们的数据和小工具,在你的应用程序里就可以使用这些交互过来的东西了,例如Twitter, Facebook, Google Docs, Google Maps, 这个列表远不止这些。 通过API把其他web应用集成到你的web应用里是现在富web开发的前沿地带。 每个优秀的主流的web服务API都附带有完整的文档和一些快速入手的指导(例如,这个就是Twitter的)。 疯狂吧。命令行脚本如果你想开发一个程序,让它读取文字或文件、输入输出一些有用的东西,那么,命令行脚本语言将是个不错的选择。 然而它并不像web应用程序和桌面应用程序那样有吸引力和好看的外观,但是作为快速开发的脚本语言,你却不能忽视它们。很多的在linux平台上运行的web脚本同样能以命令行模式运行,例如Perl,Python和PHP,所以如果你学会了使用它们,你将能在两种环境中使用它们。 我的学习道路一直没离开Perl太远,我自学Python使用的是这本优秀的在线免费书Dive into Python。如果成为一个Unix高手也是你学习的目标,那么你绝对要精通bash这个脚本语言。 Bash是Unix和Linux环境下的一种命令行脚本语言,它能够为你做所以的事情:从自动备份数据库脚本到功能齐全的用户交互程序。 起初我没有任何使用bash脚本的经验,但最终我用bash开发了一个全功能的个人代办任务管理器:Todotxt CLI。插件(Add-ons)如今的web应用程序和浏览器都可以通过一些扩展软件来丰富自己的功能。 由于一些现有的软件,例如Firefox、WordPress越来越受到开发人员的关注,插件的开发也日益流行,人们都在说“But if only it could do THIS…”只要你掌握了HTML,JavaScript和CSS,你就可以在任何的浏览器里开发你想要的很多东西。 Bookmarklets,Greasemonkeyuser scripts, 和Stylishuser styles这些软件都是用的更普通页面一样的语言写成的, 这几个东西都值得你去研究一些。更高级的浏览器扩展程序,例如Firefox的扩展,它们可以帮助你很多。 开发Firefox的扩展,举个例子,需要你精通JavaScript和XML(一种标记语言,类似HTML,但具有更严格的格式)。 早在2007年我就写下来how to build a Firefox extension, 这是我在笨手笨脚的研究网上的一些学习资料后获得的成果。很多免费的、受欢迎的web应用程序都提供了扩展框架,例如WordPress 和 MediaWiki。 这些应用程序都是用PHP写成的,所以只有对PHP熟悉你才能做这些事情。 这个就是如何编写WordPress插件。 而想驾驭Google Wave前沿技术的开发人员可以从使用HTML, JavaScript, Java, 和 Python 写小组件和小工具开始。 我写的第一个Wave bot是跟着这个一个下午时间的快速入门指导开始的。开发桌面上的Web应用程序学习编程最好的结果是你在一个环境下学的东西可以应用到另外的环境中。 先学习开发web应用程序的好处就是我们有一些方法可以让web应用程序直接在桌面上运行。 例如,Adobe AIR是一个跨平台的即时运行平台,它能让你编写的程序运行在任何装有AIR的 *** 作系统的桌面上。 AIR应用程序都是由HTML, Flash, 或 Flex 写成的,所以它能让你的web程序在桌面环境中运行。 AIR是开发部署桌面应用程序的一个优秀的选择,就像我们提到过的10个让你值得去安装AIR的应用程序。移动应用开发能在iPhone或者Android智能手机上运行的手机应用程序的开发如今正呈现井喷之势,所以你也可以梦想一下如何在iTunes应用商店里通过你的天才程序大赚一笔。 但是,作为一个编码新手,直接奔向移动开发所经历的学习曲线可能会很陡,因为它需要你熟悉高级的编程语言,例如Java和Objective C。 然而,你当然应该看看iPhone 和 Android 编程究竟是什么样子的。 阅读这个简单的iPhone应用开发例子可以初步认识一下iPhone程序的开发过程。 Android 程序都是由Java写成的,这有一个简单的视频教程教你如何开发第一个”Hello Android“程序(注:可能需要代理才能看这个视频)。耐心,刻苦,尝试,失败好的程序员都有一个不达目的誓不罢休的品质,他们会惊喜于通过长期推敲和失败换来的一点成绩。 学会编程会有很好的回报的,但是学习的过程可能会是饱受挫折和孤独的。 如果有可能,最好找个伴一起陪你做这件事。 想精通编程,这和其他事情一样,需要坚持,反复尝试,获得更多的经验。
早在1995年,JameGosling就设计出了Java。Java是一门以Class为单位,高度面向对象的高级编程语言。设计初衷是“写一次代码,在哪里都可以用。
Java第一个版本由太阳计算机系统有限公司(后来被甲骨文收购)发布于1995年,作为一种高级面向对象编程语言,Java已经成为许多程序员开发和在线交付内容的首选编程语言之一。即便在其他编程语言你方唱罢我登场的历史潮流中,Java依旧金q不倒,还没过气,为啥?
一、为啥Java还没过气?
事情要说到当年,Java这种语言,本身就设计的比C更容易学习和使用。它也是最早的完全支持面向对象的编程语言之一,因为这个原因,它很快获得了一大批拥趸。
今天,Java广泛用于编程各种解决方案,数百万个网络应用和Web小程序在使用Java。流行的网站比如Linked,Twitter,eBay等都在广泛地使用Java,并且Google采取了Java作为开发Android应用的主要编程语言。
也就是说,如果你有一部安卓手机,几乎所有App都是用Java写成的。大型网站的后端,比如电商平台阿里巴巴,淘宝,京东也都主要使用Java开发。大型的企业级应用比如大型企业管理系统,CRM系统,ERP系统也可以用Java开发。
有关通信及网络的大型企业,比如移动、联通、电信、网通,有关金融行的大型企业,所有的银行、证券公司、互联网金融和大型管理系统,比如供应链,客户管理系统,物流系统主要的信息化都和Java息息相关。所以说,Java几乎垄断了企业级应用的开发。
随着物联网的兴起,Java也成为物联网(IoT)开发非常受欢迎的工具,因为它提供安全,可移植的代码,可以在任何地方使用。
现在越来越火的大数据,最主流的框架Hadoop的主要开发语言也是Java。所以不难看出,Java还是行业应用不可撼动的老大哥。
这杯咖啡,不仅好喝,而且实用。
此外,Java受欢迎的原因,还有部分在于Java源代码可以编译成字节码,它可以在安装了Java虚拟机的任何服务器或者客户端计算机里运行。这意味着Java程序是独立于平台的——它们可以在许多 *** 作系统上运行包括Windows,iOS,Linux以及物联网 *** 作系统比如RIOT,Contiki和FreeRTOS。
相比之下,C写的iOS程序将不能在Windows机器上原样使用。
并且,当运算量很大时,Java的独特平台设计的好处就显现了出来。Java使用的虚拟机架构和独树一帜的JIT编译模式能大大提高它的运行速度。这也是为什么Java至今仍然是世界上最受欢迎的语言之一。
二、容易入门的编程语言
像许多流行的编程语言一样,学习Java相对容易,因为有许多可用的资源。它还有许多标准类库和大量的第三方库。对于有C或Java程序员使用集成开发环境(比如IntelliJIDEA)来帮助他们进行高效地编程。
这些IDE显著地改善了编程体验,并提供了调试这一重要帮助,对于初学者来说很重要——没有比写了一些代码但是不知道错误在哪里更让人糟心的了!
三、拥有大量工作机会
根据2018年StackOverflow调查显示,Java是总排名第三的编程语言,363%的调查者在使用它。许多不同类型的开发者使用它:
307%全栈开发者使用Java168%的前端开发者使用Java416%的后端开发者使用Java542%的移动开发者使用Java
技能分析平台Gooroo报告说Java有很好的工作机会,在美国每个月大约有17,000个职位广告,平均薪资为100,000美元。在世界上,每个月大约有30,000个职位广告,平均薪资为90,000美元。
某些国内头部互联网企业,3年工作经验的Java工程师,月薪最高可达30k。
需要具备以下技能:
1、熟练掌握Java基础,熟练掌握多线程开发技术,熟悉软件开发流程;
2、熟悉主流Java开源框架如struts、hibernate、spring;
3、熟练掌握HTML/CSS/Javascript/jquery/Ajax;
4、熟悉Oracle/SQLServer/MySQL其中的一种,并能熟练编写SQL和存储过程;
5、熟悉Linux系统,掌握Linux命令。
大致原因如下:
1、强大的命令行
命令行有很多功能,如快速、自动化管理系统及处理业务,这消除了开发者对鼠标或触控板的需求,使开发者能够直接通过键盘输入指令来管理系统。自动化管理系统及处理业务可以让开发者专注于手头更重要的任务从而节省下大量实践。作为Linux的核心组件之一,尽管Linux命令行并不完美但始终保持了终端的纯度。
2、Linux非常安全
由于Linux是开源的由大型开发者社区开发和维护,所以安全漏洞被发现和修复的几率更高。此外Windows作为最受欢迎的 *** 作系统,据相关数据统计,Windows设备以767%的占比排名第一。因此更多恶意攻击针对的是Windows而不是Linux。
3、对开发者友好
与Windows相比Linux在很大程度上对用户更友好更容易被接受。如Linux有为开发者专门提供的工具,所以它在开发者中非常受欢迎。在Linux中,开发者能够拥有编译器、命令行编辑器、几乎可以调整任何内容的能力、以及自己设置快捷方式的能力,并且这一切都是开箱即用。
4、定期更新
由于Linux是开源的随着人们发现漏洞、安全缓存和错误脚本,开发者会定期得到大量的更新,这就是Linux用户的主要优势之一。
5、社区支持
Linux社区致力于服务所有的Linux用户,因此它将提供长期的支持。Windows社区却与Linux不同,Windows社区之前停止为Windows7用户提供支持,因此如果开发者在Windows7中遇到任何问题或数据泄露的麻烦都将无法联系到帮助中心。但当Linux用户遇到麻烦时,可以在许多地方寻求到帮助,比如:Twitter、LinkedIn、Forums等。
6、隐私性强
Linux不会收集或与任何人分享用户的信息。用户甚至可以关闭收集数据的开发建议,如果打开,也只会提供给Linux的开发团队。如果你曾经使用过Windows10,你会注意到默认的隐私设置会自动开启所有功能。即使你选择不提交有关自己的Microsoft数据,你的信息也依旧会被收集,除非你使用一组程序来禁用Windows的窃听模块。
7、网络安全
Linux通常是网络安全方面最常用的 *** 作系统。这是因为Linux不容易受到病毒攻击,而且它的系统维护得非常好,使系统中出现漏洞的机会极少。因此,通过使用Linux,开发者可以学习到它在网络安全方面的经验,如学习如何保护个人或专业数据免受暴力破解攻击、网络攻击或任何其他类型的攻击,以此来避免个人数据被攻击而泄露。
以上就是关于程序员入门:如何自学编程_自学程序员怎么入门全部的内容,包括:程序员入门:如何自学编程_自学程序员怎么入门、为什么说开源可以提高程序员的编程技能、为什么程序员都喜欢Linux *** 作系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)