自学 Linux 并不难,只要有时间、毅力和兴趣就可以把它学会。下面介绍几个方法,让你轻松自学 Linux。
1. 搭建 Linux 小型机:搭建一台有 Linux 的小型机,以便可以在线上练习命令。这个可以有效节约时间和使用效率,练习 Linux 命令行操作时也可以真正感受到它有效地利用提示和自动补全功能。

2. 安装 Linux 发行版:安装 Linux 系统是学习 Linux 的最佳方式,你可以根据自己的喜好选择不同的发行版本。安装时,还可以在此过程中了解 Linux 中每个参数、故障排除和恢复的相关知识。
3. 跟随教程学习:网上有大量的 Linux 教程,比如入门教程、进阶教程等。你可以找到你所学习的知识的资源,重点学习,用实际操作进行加深理解,还可以实施一点点技术改进,包括在线支持论坛、电子书和视频教程等。
4. 注意书写代码:将 Linux 代码撰写下来,可以加深对 Linux 的理解,能够熟练运用 Linux 命令。下面是一个 Linux 的案例代码,可以根据自己的需要进行编写:
$ sudo apt-get install apache2 # 安装 Apache 服务器
$ sudo useradd -m -s /bin/bash newuser # 添加新用户
$ sudo visudo # 修改 sudo 文件
$ sudo service apache2 restart # 重启 Apache 服务器
$ tar -czf backup.tar.gz /etc/ # 备份etc目录
通过上面的几种方法,你可以轻松学习 Linux,学会 Linux 的基础知识,以便能够快速理解 Linux 并能熟练掌握它。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
门外汉如何成为初级软件工程师?
程序语言可分为5类1、web page script languages就是网页代码,比如Html、javascript、Css、Asp、Php、Xml都应该属于此类(照蔡的意思,Html不应该属于anguages的,可能他觉得太简单了吧,不过我觉得Html也应该算的,大家爱听谁的就听谁的好了,这个不重要)2、Interpreted Languages(解释型语言)包括Perl、Python、REBOL、Ruby等(后面三个听豆没听过),也常被称作Script语言,通常被用于和底下的操作系统沟通。 照蔡的意思,每个人至少应该学会一套这类的语言。 这类语言的缺点是效率差、源代码外露——所以不适合用来开发软件产品,一般用于网页服务器。 3、Hybrid Laguages(混合型语言)代表是JAVA和C#。 介于解释型和编译型之间。 蔡认为C#是最重要的语言,值得期待其后续发展;至于JAVA,蔡叫看他的《Sleepless in Java》——我倒!4、COMPILING Languages(编译型语言)C/C++,JAVA都是编译型语言。 蔡说C++很复杂,要成为高手没三五年是不行的(就凭这句话,我决定向JAVA投降),虽然如此,但真正要成为高手的都应该懂C/C++。 关于Delphi,蔡说如果想要跨Linux和Windows平台的语言,则Delphi似乎是最好的选择。 5、Assembly Languages(汇编语言)汇编语言是最接近于硬件的语言,不过现在几乎没多少人用了。 程序语言学习顺序建议如果完全没有程序经验,可照这个顺序:javascript——解释型语言——混合型语言——编译型语言——汇编(如果需要的话)用业界流行一句话做结尾“真正的程序员用C++,聪明的程序员用Delphi”,那么,什么样的程序员用JAVA呢?虚怀若谷题外话看在我这么晚了还这么辛苦的敲字的面子上,看到这篇帖子的朋友给点掌声吧,虽然没什么自己的思想。 另外,本文完全据蔡学镛先生同名文章精简,所以如果这篇文章给你的程序员生涯有什么不好的作用,那我不介意你去扁他。 当然如果这篇文章对你有什么积极影响,我很高兴你能请我吃大餐。 如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!方案一 Basic语言 & Visual Basic优点(1)Basic 简单易学,很容易上手。 (2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。 (3)众多的控件让编程变得象垒积木一样简单。 (4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。 缺点(1)Visual Basic 不是真正的面向对象的开发文具。 (2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。 (3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。 它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。 综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。 对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。 方案二 Pascal语言 & Delphi优点(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。 (2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。 (3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。 (4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。 缺点Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。 综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。 方案三 C语言 & Visual C++优点(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。 (2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。 (3)VC是微软制作的产品,与操作系统的结合更加紧密。 缺点对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。 综述: VC是程序员用的东西。 如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。 方案四 C++语言 & C++ Builder优点(1)C++语言的优点全部得以继承。 (2)完全的可是化。 (3)极强的兼容性,支持OWL、VCL和MFC三大类库。 (4)编译速度非常快。 缺点由于推出的时间太短,关于它的各种资料还不太多。 综述:我认为C++ Builder 是最好的编程工具。 它既保持了C++语言编程的优点,又做到了完全的可视化。 方案五 SQL语言 & Power Builder对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。 但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。 各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。 补充:关于网页后台语言和其他语言的关系,一般认为: C语言学的好,那么学习PHP会有事半功倍的效果 VC学的好,那么学习ASP会有事半功倍的效果 JAVA学的好,那么学习JSP、JAVASCRIPT会有事半功倍的效果 关于网页后台语言和数据库,通常来说: PHP与MYSQL是黄金搭档 ASP小型网站用ACCESS,大型用SQL JSP我就不知道了
在node.js领域中哪一个框架用来架构API比较好
程序 or 框架?程序是已经成型的应用,你需要的是为它搭建环境、添加配置,然后就可以运行起来;框架则是应用的骨架,你需要为它添加数据模型、业务逻辑,它才能成为应用,开始提供服务。 事实上,对于Web开发来说,程序和框架的区别正越来越模糊,比如几乎妇孺皆知的Wordpress,它是一个博客程序,但它丰富的插件以及高度的 自定义能够支持很大程度上的二次开发,在这点上它比起一些PHP框架也并不逊色。 我个人认为,如果重心在于提供服务而不是掌握技术,有WordPress 这样的程序是没有必要使用框架的。 可惜的是,由于Nodejs还很年轻,目前还没有WordPress这样的程序,因此目前在开发里,如果想做出自己想要的作品,框架是必然的选择。 如果是某些特定类型的应用,可以尝试一些开源的程序,比如要用Nodejs做博客,有Hexo、Ghost等。 回到顶部 Web框架有哪些?里的Web框架分为API框架和Web应用框架。 前者能够开发出RESTful的API,后者也能开发出RESTful API,但还包括模板、渲染等为前端所准备的功能。 API框架的使用场景是为跨平台应用提供统一的数据模型,而渲染由前端/客户端自行解决。 目前比较知名的API框架有restify(文档、Github、NPM)(官网、Github、NPM)LoopBack(官网、Github、NPM)Frisby(官网、Github、NPM)(官网、Github、NPM)Web应用框架顾名思义,就是为了打造Web应用所开发的框架。 这里有两种风格的Web应用框架。 一个是Sinatra风格,另一个是Rails风格。 Sinatra和Rails都是Ruby语言的Web框架,后者的影响力更大也更为知名。 这里简单的解释一下两种风格是什么意思。 Sinatra风格是指高度可配置,注重开发的自由度。 代表性的Nodejs Web框架有:Express(官网、Github、NPM)TJ大神开发,官方推荐 hapi(官网、Github、NPM)(官网、Github、NPM)flaliron(官网、Github、NPM)(官网、Github、NPM)locomotive(官网、Github、NPM)Rails风格则是指不重复自己和约定优于配置,以及严格遵循MVC结构开发。 代表性的框架有(官网、Github、NPM)geddy(官网、Github、NPM)CompoundJS(官网、Github、NPM) 原railswayjs这两种风格无所谓谁优谁劣,全凭使用者的偏好。 而在这两种Web框架之外,还有更大型的框架,即全栈框架,其中的代表是MEAN。 回到顶部MEAN?MEAN指MongoDB+Express++,这一组合包括运行环境、数据库、Web框架和前端引擎。 被称为 全栈框架(Full-stack framework)。 这其中除了之外,每一个都是可替换的,目标是创建从前端到后端,全部使用javascript的Web应用。 由于这一框架的完善性,有人将其称为LAMP的接班人。 LAMP即PHP的典型运行环境,Linux+Apache+MySql+PHP,被大量的用于各种虚拟主机上。 MEAN看似庞大,但事实上要构建完整的现代化Web应用,特别是SPA(单页面应用),这几个组件都是难以缺少的,并且,其中每一项几乎都是目前 情况下的最佳选择,因此用于学习和重头开始打造新的Web应用是非常合适的。 但由于实际业务的独特性,很可能要替换其中的组件,比如用Mysql来替换 MongoDB,因此,学习其中的原理和架构,打造自己的类MEAN框架也是一种选择。 作为个人和小团队来说,全栈框架MEAN基本上足够了,但目前大多数全栈框架还包含一项特性,那就是实时,拥有实时功能的框架我们又称为实时框架。 回到顶部实时框架好吗?实时框架(Real-time framework)指包含了webSocket的双向通信功能,能够在服务器和客户端做到实时通信的框架。 服务端和客户端自由通信的需求一直都在,但由于HTTP协议本身的局限性,因此催生了Comet等变通的方法,但即使这样也离实时相距甚远。 而当 兴起后,另一个HTML5技术webSocket也渐渐成熟,人们突然发现,实时通信一下子变得触手可及,于是webSocket技术在 中得到大量的应用,其中最为知名的模块就是,而各种全栈框架也纷纷加入实时特性来应对更广阔的开发需求。 目前有代表性的实时框架有:Meteor(官网、Github、NPM)(官网、Github、NPM)Derby(官网、Github、NPM)SocketStream(官网、Github、NPM)不过说实话,目前能看到的实时通信的应用场景其实不多,其中大多集中于聊天室、to-do、实时图表、在线游戏等领域。 其他领域使用实时特性不但没必要,而且是对服务器资源的浪费。 因此目前是否要采用实时框架,要看具体的项目而定。 以上基本就是 Web框架的现状了,相信看到这里,对于选择何种框架读者已经心里有数了吧。 最后再介绍一个容易搞混的概念,和解释一下我的选择。 回到顶部YEOMAN?第一次见到这个词,我还以为它和MEAN有什么联系。 事实上,它们是截然不同的两个东西。 YEOMAN由YO(脚手架)、grunt(构建工具)、bower(包管理器),它代表的是一种工作流,与框架开发的思维方式完全不同。 具体的介绍可见这里。 YEOMAN能够和框架达到类似的目的,都是为构建一个Web应用做好准备,但是要不要采用YEOMAN,则是见仁见智。 我个人的看法是,学习 YEOMAN本身就需要不少时间,并且有一定的学习门槛。 至少在目前,使用框架开发还是相对经济的,而如果以后YEOMAN这种模式推广开来,再来学习也 不迟,更何况有一定的项目经验之后再来学习YEOMAN要轻松很多。 事实上,我还是很认可YEOMAN这种Generator+package Manager的模式的,这是因为本身崇尚微模块的 概念,即无论是多么小的功能,都将它们模块化,甚至大的模块也要拆分成小的模块,然后通过搭积木的方式来构建应用。 这样能够彻底的解耦,对于不容易调试的 Javascript来说,也有助于定位和修复应用中的问题。 Generator就是这种理念催生下的产物,通过选择不同的配置和选项,将积木搭起来。 不 过对于这种模式目前大家也还处于实验当中,不急于进行实际应用。 回到顶部为什么我选择了Hackathon Starter?在我的个人项目中,使用的是Hackathon Starter,一个 Web应用脚手架。 我使用它的原因是,要求高度可配置,同时又讨厌写一些配置的代码,因此它对于我来说是很好的选择。 一些全栈框架对我来说,封装过多,将原生的 /Express API隐藏掉了,要使用还需要一定的学习成本。 而Express这样的框架又太过简洁,在实际的项目中使用还需要大量的插件和配置,而这些在 Hackathon Starter中都已经帮我们做好了,同时还有一些示例代码以供学习,对于新人来说非常友好,可以避免过多的挫折感。
通信工程师的职业优势
做通讯的比较少,门槛比较高,这就是优势
发表评论