分类
技术分享

只需几个步骤,你也可以建一个论坛网站

Discuz建站可以说是最方便的论坛程序了,使用的网站有上百万个,目前已被腾讯收购,是最受欢迎的论坛软件系统之一。

只需几个步骤,你也可以建一个论坛网站

作为开源网站,同样采用主流的PHP+MySQL组合,安装环境也有很多,包括在Linux和Windows中都可以使用。在Linux可以使用LAMP、LNMP组合一键安装环境。在Win系统中可以使用XAMPP也是建站集成软件包,或者IIS+PHP5(FastCGI)+MySQL搭建环境,这里就不用多说了。

只需几个步骤,你也可以建一个论坛网站

而我这次使用安装网站是在虚拟空间上,空间上环境服务提供商就安装好了环境,只是分个虚拟空间和数据库。如果你是自己搭建环境的话需要把程序放到相应的目录下。

目前我下载的是最新的Discuz! X3.4版本

安装包解压后有三个文件readme,upload和utility,我们装的是新网站,所以只要把upload文件下的所有文件全部上传到安装目录下即可。我使用的是flashFXP上传工具把upload目录下的全部文件上传到虚拟空间web目录下(目录具体看你的服务器环境或者空间环境)。

只需几个步骤,你也可以建一个论坛网站

上传完程序后,就可以安装了,空间绑定域名后在浏览器输入 https://你的域名/install/就可以进入安装界面了。

只需几个步骤,你也可以建一个论坛网站

进入安装界面后选择”我同意”

只需几个步骤,你也可以建一个论坛网站

开始安装的时候程序会检查你的环境以及文件目录权限,没有问题后选择”下一步”

因为网站是全新的,所需我们选择”全新安装 Discuz! X (含 UCenter Server)”

下面就是最关键的一步了

只需几个步骤,你也可以建一个论坛网站

需要填写数据库信息,数据库服务器地址, 一般为 ily22.com默认的。而我购买空间是送有数据库的,在购买的时候提供了,可以在购买网站后台或者邮件的查看。

下面是我的数据库,你也可以创建了一个专门给网站使用的数据。

接着上一步来说,填写好数据库和网站安装信息后,选择”下一步”进入程序安装界面。

只需几个步骤,你也可以建一个论坛网站

程序安装中,稍微等待后,程序安装完成如下图

现在可以访问我们安装好的论坛型网站了

只需几个步骤,你也可以建一个论坛网站

一看是不是界面不怎么样,其实它功能很大,你可以二次开发或者使用各种丰富的插件模板,网站立马高大上起来,除了论坛外有的人也把它做成了门户+论坛的形式,可谓是建站的利器

这就是简单的网站安装过程,你只需服务器或者虚拟空间+程序+域名就可以建自的网站了,可能每个人的步骤过程都不一样,大家有什么问题都可以留言交流。

原文我的头条号,欢迎关注

分类
技术分享

批量卸载应用,小米手机你应该知道的快捷方式

因各种原因你的手机装有很多应用,手机应用下多了,手机桌面凌乱,有些时候你需要卸载这些应用,而且不是一两个应用,是不是要一个一个地拖图标卸载呢?虽然也是秒钟的事情,但总有一种莫名其妙的浪费时间感。

批量卸载应用,小米手机你应该知道的快捷方式

 

 

 

 

 

 

 

 

 

 

 

 

其实MIUI内置了快捷卸载的方法,这大大缩短了卸载的时间,那怎么快速卸载呢,首先长按手机屏幕空白处,出现如下界面,然后勾选需要卸载的应用。

批量卸载应用,小米手机你应该知道的快捷方式

然后把勾选好的应用拖动至屏幕最上角,即可卸载应用。

批量卸载应用,小米手机你应该知道的快捷方式

图片说明不详细,来点动图如下。

批量卸载应用,小米手机你应该知道的快捷方式

有人会问为什么会批量卸载应用呢?比如这样(小米手机的福利,很多人都没使用过)下载应用是需卸载的。

来自我的头条号:科技小岛,原文:httpss://www.toutiao.com/i6501468547804299789/

分类
技术分享

MIUI系统提高运行速度,这招必不可少

小米的MIUI系统在国内首屈一指,系统优化非常好,不过有的手机还是遇到了一些问题,主要是这些手机配置低,随着手机应用的不断升级,安装包、数据、后台运行也不断的多起来。特别是很多应用都是“家族化”,“兄弟化”,启动一个应用后,全部都悄悄的在后台运行起来其了,面对这种事情,配置低的手机卡是不可避免了。

那么我们如何提高运行流畅度,避免卡顿出现呢?要提高系统流畅度及运行速度其实在小米手机的设置中可以通过调节来避免卡顿,提高运行流畅和速度。只不过手机不是默认开启,所以我们很少发现这个功能。

下面就是怎么开启这些功能的方法,首先,手机开启开发者模式。步骤:“设置”“我的设备”“全部参数”。看到“MIUI版本”在上面点击直到出现“您现在已处于开发者模式”即可。

开发者模式已经开启了,现在我们就要进入开发者选项做设置,同样打开“设置”下拉到下面“更多设置” “开发者选项”。

目前我们已经进入了开发选项设置界面,当手机要连接电脑的时候需要开启“USB调试”所以你可以顺便把它开启了,相信很多人以前就经常开过这个功能。而今天我们主要的不是这个设置而是下拉到最下面的“窗口动画缩放”、“过渡动画缩放”、“动画程序时长缩放”分别设置为“动画缩放0.5x”,其实你可以设置为“关闭动画”不过关闭后影响视觉体验。除此之外还要开启“强制进行GPU渲染”。

相信走到这一步,大家从视觉上就感觉到手机快了不少,接下来我们再继续下滑到下面的“后台进程限制”,看情况,选择不超过几个进程,一般就默认“标准限制”,然后在 “系统内存优化级别”中选择“中级”,如果你更换了级别后手机会重启。在这里的两项设置中具体要看依你的情况来设置。

如果你还想再优化,可以在“设置” “电量和性能”中开启“性能模式”,还有“神隐模式”控制相应的应用后台行为,为手机节约电量。

最后这一步可以省略,最主要是在开发者选项中设置好那几步就可以。如果你的手机卡顿运行慢的话,可以设置下,效果会明显好转。不知道你们还有什么可以让手机流畅的方法呢。

分类
技术分享

废旧手机可以用来做有趣的事情,比如网站服务器

现在手机换代很快,很多人的废旧手机都不知道扔在哪个角落了,或者已经当废品卖了,收旧手机!报废手机!手机换盆盆!…不过有很多人留起来做备用机或者考古纪念品。

废旧手机可以用来做有趣的事情,比如网站服务器

其实旧手机可以用来做很多用的事情,比如用来安防监控设备,装个软件连接起wifi成监控,可以用来观察家里的情况。比如又有人拿来做汽车导航,因为现在的手机大部分淘汰的都是智能手机,所下载起百度地图、高德地图,导航功能立刻就完成了。而有的旧手机正好具有红外线发射功能,下载遥控软件,手机立马成了遥控器。用途很多,看你怎么用了。

废旧手机可以用来做有趣的事情,比如网站服务器

个人觉得用来做web服务最好了,让手机成一个web服务器(如果手机存储空间够大还可以建立FTP文件服务器),在上面存放网站。因为Android系统内核是基于Linux,况且有支持搭建web环境的软件,所以就方便了。使用的是KSWEB,它是由俄罗斯人开发的一款基于Android的开源服务器,使用lighttpsd+php+sql可以使你的安卓手机瞬间变成一台服务器,并且兼容多数主流PHP程序。

废旧手机可以用来做有趣的事情,比如网站服务器

这次所用到了手机、路由器、软件KSWEB,找到软件后,安装到手机上,打开界面能看到各种服务,由于软件试用期只有五天,有的刚下载就过试用期了,所以你得到网上找一款好的下载过来,下面是我下载安装好的。

废旧手机可以用来做有趣的事情,比如网站服务器

打开软件后,界面如下,查看软件是否正常,有的版本手机不兼容,闪退。如果软件正常,打开界面中的浏览地址192.168.1.100:8080(地址不是唯一,具体以安装的为准)即可进入浏览器,会看到英文网页,证明软件环境正常,页面提示数据库MySQL登录默认的是用户名root和空密码,这是用来登录phpMyAdmin数据库管理工具用的。

废旧手机可以用来做有趣的事情,比如网站服务器

在右滑到工具栏中打开打开WebFace即可查看服务器信息,用户名和密码生成默认均是:admin。WebFace访问地址端口是8000。端口是可以修改的,每个手机生成的地址和端口不一样,不过是可以修改的。

废旧手机可以用来做有趣的事情,比如网站服务器

接下来在软件管理界面再次滑到工具下载phpMyAdmin管理工具。安装好后打开输入用户名:root,登录密码为空即可进入数据库。数据库也生成了一个地址端口是8001(地址和端口在ksweb的首页状态中可以看到,点击就可以访问)。

废旧手机可以用来做有趣的事情,比如网站服务器

其实在Ksweb安装好后会生成文件目录mnt/sdcard/hdocs,文件夹hdocs里面是用来存放网站程序用。Ksweb软件生成的地址和端口,文件目录全部在ksweb软件一打开的界面状态中即可查看。

要想做网站,我们还得找程序放入里面。支持php+mysql的程序很多,这次就用很有名的开源博客程序WordPress来做,下载解压完成后把WordPress下的文件全部拷贝至手机sdcard/hdocs文件下。

废旧手机可以用来做有趣的事情,比如网站服务器

现在可以通过电脑浏览器来访问了地址192.168.1.100:8080即可进入安装界面

废旧手机可以用来做有趣的事情,比如网站服务器

还要登陆数据库地址192.168.1.100:8001创建一个用于安装网站使用的数据库

废旧手机可以用来做有趣的事情,比如网站服务器

然后再回来安装网站,输入有8080端口的地址,也就是192.168.1.100:8080

废旧手机可以用来做有趣的事情,比如网站服务器

进入安装界面输入数据库的相关信息后提交

废旧手机可以用来做有趣的事情,比如网站服务器

数据库正确即可安装,填写好网站相关数据

废旧手机可以用来做有趣的事情,比如网站服务器

最后完成安装

废旧手机可以用来做有趣的事情,比如网站服务器

完成安装后,进入网站首页如下,网站安装完成。

废旧手机可以用来做有趣的事情,比如网站服务器

由于手机连接的路由器为动态ip为了避免每次重新连wifi后ip都在变化,把手机绑定固定的局域网ip,其实家用的路由器连接的设备组成的网络相当于一个小小的局域网。为了防止每次开机这些ip会变化,所以在路由中把ip和手机的mac绑定,或者直接设置静态ip。

废旧手机可以用来做有趣的事情,比如网站服务器

如图,我把手机绑定到了192.168.1.100这个局域网ip,然后再ksweb的状态界面上也能看到这个地址192.168.1.100:8080,只不过是后面加入了端口8080,如果想让网站访问不要加8080,就必须给手机root才能修改ksweb中配置文件,将端口8080改80端口(80端口访问时默认不用输入),访问的时候输入192.168.1.100就行了,这些地址具体要看你的路由器和手机。

网站目前只能在这局域网地址内访问,要想让外网,外面的人能访问到我们手机内的网站来,怎么实现呢。在nat123注册个账号申请端口映射(如果要解析到自己的域名不是免费,只能用送的这些难以记忆的二、三级域名地址)废旧手机可以用来做有趣的事情,比如网站服务器

再手机端安装nat123软件

废旧手机可以用来做有趣的事情,比如网站服务器

这个时候就可以在外网中通过申请的这个地址访问了,如果要解析到自己的域名是收费的。

除了nat123可以免费获取端口映射的公网地址外,在路由中其实也可以,首先我们做端口映射,把手机连接路由器的端口映射到网络中去,别人就会通过网络访问到本地的路由器后再访问到手机里的内容,通过下图中,设置家用路由器的DMZ主机功能、DDNS、虚拟服务器功能就可以了,此处就不多说了,其中DDNS可选择申请路由器自带的或者注册向日葵的。

废旧手机可以用来做有趣的事情,比如网站服务器

总结:方法有很多,过程虽简单,但有些时候也出些让人郁闷的问题,比如软件闪退安装不了……

这就是简单的方法搭建手机服务器,大家也可以拿那些旧手机试一试。

原文 httpss://www.toutiao.com/i6500106728682553869/

分类
技术分享

用手机控制电脑,不在家你也可以远程操作

用手机控制电脑,不在家你也可以远程操作​

很多时候我们在外面,各种原因急需家里或者办公室里的电脑,但是人外面怎么办呢?其实,我们照样可以用手机控制家里的电脑,有很多方法可以来控制家里的电脑,比如TeamViewer软,在电脑端下载并安装。

用手机控制电脑,不在家你也可以远程操作

安装的时候选择个人用途即可,然后点击接受-完成。

安装好TeamViewer远程控制工具后,会自动生成您的ID和一个随机密码。记住这个ID和密码你就可以远程来控制,或者让你朋友来控制你的电脑了。

用手机控制电脑,不在家你也可以远程操作

同样,我们如果用手机来控制的话,必须在手机端也安装一个TeamViewer软件。输入ID和密码就可以控制了,最好通过邮箱注册个账号,绑定后管理更加方便。

用手机控制电脑,不在家你也可以远程操作

除了上面所说的这个软件外,其实个人认为最好用的还是向日葵软件。操作与TeamViewer类似。下载安装后,也会自动生成本机识别码和验证码。

用手机控制电脑,不在家你也可以远程操作

本机识别码和验证码这两个是必须记住的,它是用来连接你电脑用的,可以通过手机端或者电脑端输入后即可连接。

在手机端同样也下载好向日葵,输入电脑端的识别码和验证码后,就可以手机控制电脑了,最好还是注册个账号方便管理。

打开手机端向日葵,选择添加电脑主机,输入电脑端生成的识别码和验证码后即可进入管理界面。

用手机控制电脑,不在家你也可以远程操作

管理界面中有很多功能,最下面还有选择“关机”和“重启”功能。

选择“桌面控制”后,就可以手机控制电脑了。

用手机控制电脑,不在家你也可以远程操作

上面所提到这两款远程控制软件,个人还是用向日葵多点,因为方便。其实还有很多工具可实现控制电脑,比如微软的远程桌面控制软件:RD Client,在手机端只需要输入IP、用户名、密码,连接成功后就可以控制电脑了。

软件有很多,适合自己的就好,说一说你用了哪些软件。

分类
技术分享

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

如何快速搭建一个网站,不会编程,那如何开始呢,其实我们只需一个域名、网站程序和虚拟空间即可,资金充裕的话你直接购买云主机(云服务器)就行了,现在国内的阿里云、腾讯云,百度云(不是百度网盘哦)都可以。

首先购买一个域名,目前域名有很多,主流的域名有.com .net .cn ,还有.cc .top .club .site .vip .ren 等等。在价格上有几块钱到几十块钱主要是看平台,而好的域名几千上万。现在开始买域名,以.com域名为例,选择一个未注册的域名。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

并且填写域名持有人的信息

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

支付和填写步骤好后,就可以在后台看到刚购买的域名,可进行解析,管理等操作。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

需要注意的目前国内购买的域名一般都需要实名认证才解析,如果空间或者主机在国内一定要备案才能使用。但是空间在中国香港,或者美国这些地方是不需要备案也能正常使用。

备案流程麻烦而且时间长,不过备案有很多好处,如果没必要就不用备案了。

不用备案,那么则需要购买境外的空间,包括阿里这些大厂商都提供,但是有点贵了。我呢还是找点便宜的主机空间商。比如做个博客就没必要购买云主机(云服务器),云主机一般都是几十块每个月,有的上百,配置好点的则更贵,所以买个虚拟空间就行。

上面提到域名已经有了,现在我们就先找个空间,(如果资金充分的话,选择云主机更好)。

虚拟空间的话有很多,选择一家即可,不过尽量看好相应的参数,博客类型的网站空间也不需要更多。平常主要写文章和少量的图片,问题不大,如果做视频这些的话,那花销服务器的成本就太高了,没必要,而且个人型的网站需求没那么大。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

把主机开通后,稍微等待就可以进入管理界面了

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

购买好主机或者空间后,可以在管理界面或者到服务商发来的邮件信息。如果是云主机的话,会分配给你一个服务器地址IP和用户名、密码。而一般的空间就没有独立IP了,不过也会给你FTP地址和FTP用户名、密码这些,另外也会有一个数据库地址,和域名解析指向。

有了空间,现在我们来连接空间,使用FTP客户端软件连接空间,包括FileZilla、FlashFXP都可以,这里我就使用FlashFXP来接连空间。打开flashfxp软件 菜单”站点”点击”站点管理器”

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

分别输入ftp 地址就是服务器ip 地址 、ftp用户名、ftp密码,这几项可以在邮件通知中或者服务上管理后台查。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

填写好后,点击应用然后连接即可。

上面是连接FTP的过程,是用来上传管理网站程序(等下再使用),还有一个就是数据库的问题,购买虚拟空间都会送数据库的通过后台管理控制面板连接数据库就行,而我这里是cPanel 控制面板来管理,不同的网站管理面板不同,但区别不是特别大,在这里使用的是cPanel 控制面板。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

选择MySQL数据进入创建新数据库,然后建立数据库用户名和密码。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

并且在”向数据库添加用户”,创建用户权限,全部勾选

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

最后进入phpMy管理可以看见刚才创建的数据成功了。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

现在服务器空间以及FTP和数据库准备好,该找网站程序了,有很多包括wordpress、joomla以及国内的织梦、phpwind、discuz等,个人更倾向于wordpress,它也是全球很多网站都使用的程序。到官网下载站来后。下载压缩包到本地,然后上传到空间目录。我这个空间使用的是cPanel 控制面板,可以直接在cPanel首页,找到”文件”-“文件管理器”上传文件然后解压public_html目录内。注:并不是所有的空间都是把程序上传到public_html这是虚拟服务器的默认目录,只是在有cPanel虚拟主机管理系统的时候才用。而在我使用最常见的FTP来上传程序,上面已经提到了FTP的使用了,这里不再赘述。

下载好的wordpress程序解压后把目录里的文件通过FTP全部上传到public_html目录内(也可以通过cPanel后台界面上传压缩包然后解压)。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

上传完安装程序后,我还要做一个动作就是域名解析,按照主机商的要求,做一个A记录的解析,然后通过访问你的域名就可以直接安装空间里的程序了。

关于怎么解析,到你购买的域名的网站找到域名管理>解析A记录,至于解析到的记录值地址则是看你购买空间提供的,如下A记录和记录值填写好,其他没有要求默认,默认稍等片刻即可通过域名访问安装程序界面。如果不行查看是否上传程序到正确的目录,还有就是看解析是否正确。这些很重要,错一步不行。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

现在解析好了,通过域名访问,可以看见wordpress程序安装界面。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

点击”现在就开始!”进入界面填写相关信息,数据库用户名这些在上面已经创建,所以填写就行了。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

点击”提交”如果正确将进入以下界面

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

点击”现在安装”然后进入如下

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

填写好站点标题和网站管理员的用户名和密码就行。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

最后点击”安装WrodPress”

安装好后可以进入网站管理后台或者前台查看网站。

不懂编程没关系,几个步骤,你也能马上搭建一个自己的网站

这就是快速搭建一个网站的过程,方式有很多,这只是其中一种,平台也也多,方式也不一样。看你觉得那种快而已,如果你也搭建网站,有什么问题大家也可以互相学习交流交流。

分类
技术分享

世界,您好!

欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!

分类
技术分享

图片

图片


HNCK8248

 

 

 

分类
技术分享

Android 6.0开源

Android 6.0开源

20151212141617337

20151212141634826

20151212141708761

 

 

地址:httpss://android.googlesource.com/platform/build/+/android-6.0.0_r1

分类
技术分享

如何自学 Android 编程?

38063b6d7defc892894

网友问

如何自学 Android 编程?

想自学android编程,从何入手。2000年本科入学,期间学过c c++ 数据结构,之后就再也没有用过。本人数学专业出身。求大牛们指点迷津。
网友答
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:stormzhang
来源:知乎

泻药。我想我是有资格来回答你的问题的,我算是彻底的从编程白痴一步步学习过来的。

之前写了一篇博客 Android学习之路 被疯狂转发,带起了一阵学习Android的大风,我不晓得具体影响了多少人,但是这篇博客已经成为Android新手学习必备的资料。很多人问我是怎么一路过来的,姑且借这个机会说说我的故事吧。

===============================
内容有点长,大家姑且当做励志小说来看吧,对这些经历不感兴趣的可以直接看最后“如何自学Android”部分
===============================

  • 大学

大学上的是全国二流本科,专业主要就是数学专业。大学的总结就是:逃课、挂科、篮球。。。

目前为止可以说我的大学是我这辈子过的最爽的时期,大一开始就逃课,好点的理由是我对大学那些课程完全没兴趣,其实本质上是因为高考太压抑了,大学之后没人管了,开始无止境的放纵自己。毫不夸张的说大学四年上的课应该没有逃的课多。逃课最直接的影响就是挂科,从大一挂到大三,专业课数学分析特么每年都挂,后来听说补考考不过要重修,还得交钱,这特么让家里人知道还了得,于是发愤图强,最终补考每门都以优秀的成绩过了。

相信英语四级应该是大学必考吧,英语四级这辈子我都忘不了,我考了三次才过,每次考试说是裸考都褒奖了,大学英语全是吃高中的底子,第一次没过,少了十几分,第二次他妈睡觉睡过了,就没有去考,现在想想当时的自己真是脑残,终于在第三次勉强过了。现在想想幸亏当时过了,之后毕业找工作时英语四级是最低要求。做编程这行,英语真的挺重要的,大学的时候一定得想办法把四级给过了。

现在想想大学和编程唯一相关的课程就是C语言了,但是对于我们专业是属于全校公开课,最终这门课虽然考过了,但是连i++ 和++i我都弄不明白,可想而知你们应该能猜到我是怎么过的。

由于高中就开始打篮球,大学时毫无疑问就入了学院篮球队,而且担任队长,所以大一、大二过来基本就是一大半是在篮球场度过的,也是因为篮球征服了我现在的老婆。大二下学期周围的人都在玩Dota,于是也开始了游戏之路,篮球也基本放弃了,那时候玩的疯狂,记得最长的一次和同学在网吧连续包夜两星期,不过白天是回来睡觉的,不然估计早猝死在网吧了。

转眼间大四了,这一年终于在我老婆的监督下不再挂科了,而且在毕业前的最后一次评比竟然拿到了三等奖学金,真是受宠若惊啊,后来钱也被狐朋狗友们拿去腐败了。周围的同学都在准备考研,我却唯独对考研没兴趣,自始至终都没有为考研花过一分钱,买过一本书。后来证明我的决定是正确的,周围的小伙伴放弃的放弃,考不上的考不上,考上的后面也没见混的有多好,当然如果能考上好的学校还是很有帮助的。

  • 毕业

又一转眼毕业了,去参加了学校几个招聘会也是醉了,全是没听过的小企业,一去参观都是各种厂房,根本不需要任何学历,是个人出点力都可以干的那种,要么就是各种电话销售。。。那时候真的有点急了,大学四年,毕业一份像样的工作都找不到,回去怎么面对乡亲父老。

三月份的时候一家IT测试培训机构来做宣讲会(具体什么名字我就不说了,免得认为是广告),听完之后就说培训之后包就业,培训地点在大上海的最中心,当然是自费,但是可以工作之后分期付款。那时候哪知道测试是干嘛的,更不懂IT是干嘛的,回来就查了下这个机构确实存在,网站也有的,知道不是骗子遍决定来上海试一试。当时下定决定要来上海培训之后,几个狐朋狗友毫不犹豫的跟着我一起来了,总共应该是7个人,决定之后没几天便毅然而然的背着大包小包来到上海,我们之中一部分是一次性付费,另一部分是分期。后来证明我们当时来上海的决定是正确的。

  • 培训之路

这里并不是宣传大家去培训,只不过被工作所逼,学校不好,大学也没学啥真本事,稍微有点出路都不会去培训!

培训的日子还是蛮轻松的,一周就上四天课,朝九晚五,毕竟大家家庭都不富裕,家里辛苦攻读了四年大学,毕业还要再交钱去培训,打心里大家都很愧疚。一开始卯足了劲要好好学习,但是坚持了没多久就有点放松了,但是好歹也是都有学习的。

培训的时候算是接触了点编程吧,课程有C语言、Oracle、Linux,然后其他都是软件测试的理论,其实都是非常基础的东西,算是带你入行吧,Orace就学习一些基本SQL语句,Linux就学了几个命令,但是起码知道原来电脑可以干这么多事,之前还一直以为电脑就是用来看电影、聊天、打游戏的呢。现在回头看给我一周的时间我可以看完整个培训课程,但是当时的培训周期要四个月。

  • 第一份工作–SunNet

7月份拿到毕业证书就直接来了上海,四个月的时间对于我来说实在太漫长了,我等不及了,于是在课程还有最后一个月的时候我提前出来单独找工作,当时培训老师说工作后的工资大多是3500左右,我觉得我学的比别人好,所以必须要比别人高,做好了长期准备面试的过程。没想到面试第一家就直接录取了(后来才知道原来是公司的测试怀孕在家,急需测试),公司名叫SunNet,中文名山诺,工资4000。收到offer的时候欣喜若狂!

  • 真正接触编程

之后便在SunNet正式入职,工作就是测试,但是就在SunNet我才真正的接触了什么是编程。SunNet是一家小型外企,总部在休斯顿,上海这边主要是研发部。研发人员总共不到10人,主要业务是以web为主,使用语言是.NET。当然我的职责就是web测试了,工作倒是没什么难点,主要测试就我一个,一进来就有好几个项目等着我测试,还好自己是数学专业,逻辑思维能力还不错,加加班总算能按时完成任务。

三个月的时间顺利转正,之后的某一天偶然得知公司一开发人员工资比我高2000,其实也就比我早毕业一年而已,才知道原来开发和测试工资差距这么大,于是当时就下定决心要转行做开发,所以说起我从测试转行开发的原因是因为钱,一开始说因为兴趣坚持下来的都是扯淡。。。

  • 编程之路

由于在公司我的主要任务仍然是测试,任务也挺多,基本每天要9点能到家。下定决心之后只能利用业余时间来学习,由于公司主要业务是.NET,很自然我一开始学习的方向便是.NET,后来才了解到.NET是基于C#的,学习.NET之前必须要先学习C#,于是像公司借了一本C#学习资料,就这样学习了大概两周吧,还仔仔细细做了一大堆笔记。之后觉得语法学的差不多了,便又借了本.NET的书开始学习web开发。

但是web开发远没有学习一门语言这么简单,后来才知道web开发涉及到html, css, javascript, ajax, database等,范围太广了,于是为了效率,我只能每一项掌握住基础,于是网上搜索找到 w3school 在线教程 这个好东西,里面的东西都是基础的,我把教程整理到手机里,每天上下班的地铁上,吃饭的时候,回家的时候等等利用一切时间来学习,也是差不多大概2周的时间掌握了html, css, js的一点基础,接下来准备正式学习.NET的时候,被我们老大知道我正在学习开发,我们老大叫Aaron,是一位典型的程序员,比较胖,人品超好,知道后不建议我学习.NET,说.NET出来都十来年了,已经很成熟了,很多人在学校都有.NET教程,现在学习已经比别人晚了。现在移动开发刚崭露头角,也没多少人会,建议我直接学习移动开发。真是一句点醒了我啊!!

  • 移动开发

听了老大的建议,于是放弃了.NET,开始准备学习移动开发。那时候是12年初,整个移动互联网也是刚起步阶段,iPhone4还是非常火的时候,毫无疑问我把目标锁定在了iPhone开发上。

这次有经验了,知道了iPhone开发首先肯定得有一门编程语言的,了解到是Objective-C,于是又从公司借了一本OC的书(公司书很多,老大每月都会买来好多书,虽然看的人很少),又花了将近一周的时间来了解了基本语法,因为之前学了C#,这次没完全看完的情况下想直接上手实践。正打算学习的时候,才知道iOS开发必须得在mac上才可以,也就是说我得自己有台mac电脑,虽然当时公司是有的,但是回家的时候不能继续学习练习,肯定影响效率的,一台mac对于当时的我简直是奢侈品,虽然现在也依然是奢侈品,但当时根本不可能买得起。于是只有放弃iPhone开发转向Android(后来才知道有虚拟机这东西。。。)

  • Android学习之路

几经波折,终于才确定自己的方向,这期间已经耽误了不少时间,走了不少弯路了,但是仍然阻挡不住我转行开发的脚步。公司关于Android的书竟然没有,于是我自己亲自买了一本Android书籍,叫《疯狂Android讲义》,作者是李刚!!不说这本书有多好吧,这本书比较厚,非常厚,所以讲的一些基础比较细,新手按照上面的完全可以看懂,现在不知道这本书内容更新了没,之前内容对于现在来说有点老。这个时候应该是12年的3月份,说起来也巧,这个月公司刚好接了个移动端项目,iOS有人来做,但是公司上下没有会Android开发的,其他人都有自己的项目在忙,老大看出我的兴趣,就问我想不想试一下,我当然欣然同意了,只此就开始正式的边做边学习Android。

那个时候的测试任务仍然很重,于是我只能挤出时间来做这个项目,基本是每晚以及周末都会自动加班来完成这个项目,现在看来那个项目真是太简单不过了,快的话一周都不要就可以搞定了,但在当时我摸爬滚打了一个多月总算搞定了。

做完这个项目自己有了点信心,但当时自己的主要任务还是测试,自己开发的时间是少之又少,于是下定决心离职找一个专门做Android的工作。说明原因之后老大很理解,也是建议我想做开发的话就放手去找一个专门做开发的职位,这样进步会比较快。

第一份工作能遇到我的老大Aaron,真是我的福分!

  • 薄荷

12年4月底离职之后,我便开始在家里准备面试,投简历,由于自己的基础很薄弱,之前的Android经验也非常少,那时候说是招聘Android职位,但是很多公司面试基本全是Java内容,而且我能感受到工作内容和Android相关的也比较少。来薄荷面试的时候感觉很好,包括CTO、CEO的面试都感觉不错,果然没几天就收到offer,来之不易的机会,非常珍惜。

12年5月中入职薄荷,你们以为我到了薄荷之后Android之路就一帆风顺?错了,路更艰难。我是薄荷入职的第一位Android工程师,薄荷在那时候只做iOS平台的App,事实证明这种做法不可取,包括BOSS后面也亲自说投资人来投资的时候一看数据这么少,后面做了Android平台之后用户数据才慢慢上来,毕竟还是Android用户基数大。

来薄荷的第一个任务是做联想TV的一个视频App,很蛋疼,折腾联想的SDK,遥控器等,好歹App功能比较简单,试用期间完成的还不错,就这样顺利转正了。转正之后做了第一个Android App,叫减肥食物库,功能与页面全部Copy iOS版的App。这个时候一大堆没做过的东西全部涌来了,网络库、https、api对接、组件定制等等,那个时候没有像现在各种资料、开源库一大堆,公司也没人能给指导,只有硬着头皮慢慢来,为了能把进度赶上去,上线前夕曾经连续在公司通宵三天三夜,累了就在公司趴一会,这辈子就经历过这一次,虽然项目最终也拖延,但总算在接受范围之内上线,这在当时是第一个试水Android平台的App,可惜的是上线之后表现不好,没有达到预期的效果。

  • Ruby、Rails

这个App试水表现不好之后,公司决定暂停Android业务,主攻iOS平台。我的位置就变得很尴尬,CTO找我谈话希望我能转做Ruby,Android业务会暂停,我们后端的api全部是基于Ruby语言的,虽然当时心里有点不情愿,但是没办法,为了不丢掉工作我只得硬着头皮做下去,于是就开启了我的Ruby之旅。

学习Ruby以及Rails是我目前为止遇到的最大的困难。Ruby是一种动态语言,Ruby On Rails是一种流行快速开发web的框架。学习ruby不同地方在于要学习Linux,代码基本全是在终端进行,没有IDE,没有编译检查,习惯各种命令行。这对于一个刚开始进行开发的人来说真的是太困难了。那个时候从内心也有抵触,学习领悟能力也超差,我能感觉到公司领导层对我已经不是很满意了,现在想想那时候公司没能开除我真是得感谢我们的CTO,一个很有耐心、敢于给新人机会的人。中间遇到非常大的困难,还好得到薄荷ruby工程师小伙伴们的帮助,一直鼓励我,遇到问题总是不厌其烦,在基础、经验、能力不行的情况下,我总得克服这种困难,让别人看出我的态度。于是学习Ruby、Rails的那段时间我每天都是做最后一班公交车回去,我记得好像是11:40. 这个状态持续一个月,包括周末,从未间断。

这一个月我在公司的主要任务就是学习,没有给安排任何事情,偶尔帮同事修修电脑,调下电话线,为此我非常感谢薄荷,感谢我的CTO Vincent,恐怕这在任何一家公司都不能这样给一个人单独的学习时间吧。一个月之后,学习的终于有点起色,开始实际做Rails项目,做后台,写api,虽然效率很低,代码很烂,但是在做Ruby的过程跟着我们CTO学了不少设计上的东西,面向对象的思想,设计模式等都在这个阶段接触的,自此我已经习惯各种终端操作,熟悉一些Linux基本命令,喜爱Ubuntu,参加了Ruby Conf 2012大会,喜欢Sublime,接触Git,GitHub,搭建了自己的Blog。我感谢做Ruby的这段时间,他让我接触了不一样的世界,心态完全变了,变得更开放,更乐于分享。

  • 回归Android

做ruby的这段时间很是快乐,付出了这辈子最艰辛的努力,换来了点小小成果,我喜欢ruby语言,到现在为止都认为ruby是最优雅的语言。但是Android在我心里一直都有一个位置,从未放弃过。直到13年5月的时候,这个时候Android份额近乎疯狂的增长,公司不得不开始注意Android市场,于是公司打算推出Android版app,于是作为公司唯一的Android程序员,CTO再次征求我的意见,问我想继续做ruby还是做Android,虽然我更喜欢ruby语言,但是从心底我更喜欢客户端开发,和语言无关,客户端是用户最能感知的一部分,做出的东西更有成就感一点,我就在等待着这个机会,这一刻我毫不犹豫的选择继续做Android。

回归Android开发的我一个人开发新的App,单枪匹马,经过之前的一系列挫折,突然感觉再没有更困难的了,一个人摸索架构、克服难题,App一推出便一直快速疯狂的增长,目前薄荷App总用户数已经破千万,公司也顺利融资,业务发展越来越好。

  • 后话

由于一个人一步步过来,我深知这其中的不易,之后自己一直坚持写博客,除了自己的积累外,还希望帮助更多的人,所以现在你们可以看到不管是我的GitHub,博客,微博还是微信公众账号都很乐于分享,希望自己走过的这些弯路你们能少经历,虽然最终我也到达了终点,但是如果能有直路可直达最好不过了。

  • 总结

上面啰啰嗦嗦的叙述我的这些陈年经历,看似和题主的问题无关,其实有很大关系:

1. 如果你是非科班毕业想要转行编程,看了我的经历你一定很有信心与动力,我能,你一样能,何况我中间走了这么多弯路;

2. 如果你接触过一些数据结构、编程语言之类的,想要学习编程,想题主这种,你更应该有信心,你比那些非科班的人已经多了一些基础,你要做的只是坚定信念,坚持走下去;

3. 不要感慨上天的不公平,一路走来很悲催,走了太多的弯路,遇到了太多的困难,都是我这辈子难以忘记的坎坷,但同时我是幸运的,我的前任老大Aaron以及现任CTO都深深的影响着我后来的职业发现,我在薄荷的一些小伙伴们对我的帮助,我女朋友无数个日夜的理解与支持,上帝在给你制造坎坷的时候总会对你有些眷顾;

4. 如果你准备或已经在做开发的人员,没有信心或动力,又或是对未来迷茫的时候,姑且当做一篇励志小说来看,你要做的就是做好你当下在做的事,相信你的付出一定能有所收获;

  • 建议

评论里有人说是在校生,想要给点建议,那就以一个反例的身份给出事后的一些建议吧:

1. 每天花1小时看书,难的不是1小时,难的在坚持;
2. 最好不要挂科,因为挂了你还是得花时间补回来;
3. 英语对编程来说很重要,试着习惯英语阅读;
4. 数据结构和算法要学好,这算是对编程来说最重要的课了,以后不见得能用得上,但用的时候起码你有印象;
5. 大三或者大四一定要去实习,对于编程来说经验还是比较重要的,实习经历比你那些理论要有效的多;
6. 找个女朋友吧,不是说工作了你就找不到了,而是工作之后从事编程很少有时间和精力去接触别的女孩,所以可以的话在毕业前找个可以同甘苦的女朋友吧;
7. 第一份工作很重要,因为你会受一些周围同事、公司氛围的影响,我为自己遇到Aaron、Vincent而感到幸运,他们俩是我目前为止最尊重的两个人;

  • 如何自学android编程

最后才应该是题主最需要的:

1. Android学习之路前面说过我的这篇博客是Android新手必备资料;

2. 书不在多,适合你就好,这里推荐一本Android和两本Java书籍吧;
《第一行代码》:郭霖大神的著作,我是看过郭神博客过来的;
《Thinking In Java》:Java经典书籍,不必说;
《Effective Java》:Java进阶必备书籍;

3. 有些人一开始看书也有困难,没关系,那就去网上看视频,结合视频和书一起看,边看边敲,推荐下Mars老师视频,包括java基础以及Android篇都有:Java4Android.zip
极客学院的视频:零基础Android学习路径图
口味不同的人可去各大网站自行搜索适合自己的教学视频。

4. 多去混GitHub,目前最流行的开源社区,多参与开源项目,慢慢试着读牛人们的代码,时机到的时候自己也可以为开源社区贡献力量,可以这样说在GitHub上认真混一年,比你在大学四年学的东西要多的多;

5. 关注一些Android界不错的博客:
我(stormzhang)的博客:stormzhang博客精华
Trinea的博客:Trinea
代码家的博客: 代码家

6. 善于利用搜索引擎,从用Google做起,学会英文关键字搜索,有问题第一时间想到去搜索而不是去请教别人;

7. 关注我的微博和微信公众账号,我也会在上面分享一些最新动态与技术前沿信息,忙起来的时候偶尔会暂停,望理解,账号均是: googdev

大家都有了以上相同的教程,但是人和人之间的区别在于:别人有颗更强大的内心,可怕的是比你聪明的人比你还要更努力!!

当你下定决心,准备前行的时候,剩下的只有坚持了。。。

===============================
我是华丽的分割线
===============================
我是很少在知乎上正经回答问题的,没想到这个回答引起这么多人关注,引起了很多人的共鸣,收获了这么多点赞,这里针对很多人的私心以及评论做点补充吧:

1. 回答中提到了培训之路,很多人要推荐培训机构,其实一方面当时没有经验,也比较迷茫,迫不得已才去培训试一试的,后来过来后其实培训学不了什么东西,我后来转行Android完全是自学,和培训一点关系都没,所以不推荐去培训,最终得靠自己;

2. 有人问我单独开发的app是什么,我现在公司名是薄荷科技,app也叫薄荷,你可以去各大市场搜索“薄荷”,排名第一的应该就是,从架构到实现一直都是一个人在做,总用户现在差不多过千万了,当然现在已经不是一个人在开发了,现在带领一个小团队在做,你可以下载体验下,不过现在依然有很多不足之处,我们一直在努力改进;

3. 文中提到我学习了很多语言,很多人比较疑问,是都需要学这些语言么?当然不是,我是因为走了不少弯路,有些语言为了工作不得不去学的,不过后来证明学的这些东西对自己是有很大帮助的,但是如果你确定了方向建议你直奔主题,现在社会需要一门精而不是门门通的人才,现在有很多“全栈工程师”的概念,其实都是在建立在一门精的基础上才去别的领域发展的,所以不要妄想一开始就成为“全栈”,还有如果你对当前做的事很抵触,觉得一直纠结在功能上,但是又没法去改变的时候,不妨竭尽全力把当前做的事做好,后面你会发现有事情做自己不知不觉总是会进步的;

4. 很多人找到我博客,搜索到我被Facebook邀请,具体见这篇博客 被Facebook邀请的前因后果 , 虽然这算是对自己技术能力的一个认可吧,但是在技术上远没有大家想象的那么牛逼,我一直在努力提升自己的技术,但是仍然有很多需要学习的,自己也一直在坚持学习,现在也一直想靠自己的技术来改变自己的生活,起码不拼爹(主要是拼不了),但是后来才感觉到技术并不是一切,千万别陷进无止境的技术坑里,有很多事情比技术更重要,这个就等待大家自己慢慢发掘领悟吧。。。