我是如何自学成为程序员的

原创 2017年09月06日 13:38:41

目前为止在安卓方面的已经工作了三年左右的时间了,从一个只会写BUG的菜鸟,到现在慢慢发展成了一名程序员。其实说实在的,我学的也一塌糊涂,当然在学习过程也积累了一些知识,对于以前没接触过Android的朋友,或者刚入门Android 的朋友,这篇文章作为入门,那是再合适不过了,希望对刚入门Android的朋友有帮助。


1.Java 基础;
2.搭建Android 开发环境
3.了解Android 运行原理以及一个工程项目结构
4.如何系统学习Android
5.推荐一些实用的资源

6.总结


(注:一直没有时间整理一些链接文件,看到大家对这篇文章这么感兴趣,我重新整理我文章里面的链接,朋友们可以点击进去看一看,都是我精心整理的一些资料,希望对你们有所帮助。文章仅是个人意见,不喜勿喷,如果有更好意见和简介,欢迎交流!(鞠躬))!

  • java语言基础

首先肯定需要的就是java语言了,虽然有一些别的语言也可以开发android,但是都是小众。因为Android SDK 是基于Java 开发的,使用的语言是Java,如果有了Java 基础,学Android 就会事半功倍;比如在Android 中要使用到的接口,抽象类,类型转换,继承,覆盖,匿名内部类,多线程,这些都是Java 语言的,如果以前没有基础过,学Android 会很郁闷的;当然如果你有C++ 基础,当然也可以基于NDK 开发,可以不使用Java;

最近冒出来的kotlin是google官方支持的开发语言,但是靠真正流行还需要很长时间,个人推荐还是以java为主,但是kotlin尽量也要学习一下,多学一门语言怎么也是有好处的

对于没有java基础的同学我推荐一些资源:

  1. Mars 的Java4Android视频资源,可以在51cto中找到,很好的视频资源,适合初学者学习,我当初就是从这里开始了程序员这条不归路。

  2. 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。

如果需要更多书籍资源文件的朋友请点击安卓书籍--从入门到精通

  • 搭建Android开发环境

现在大部分开发人员都用的是Android Studio,从2014年底到现在,经过了三年时间的完善,AS已经成为了大部分Android程序员的开发神器,(笔者刚开始做Android 就用的AS,没体会到什么,但是我发现用过AS的人都会深深的迷上它,而去放弃Eclipse了)


在这里面就不多说了大家可以去看看我对Studio的介绍:

Android Studio详解

AndroidStudio 提高开发效率的插件


  • 了解Android 运行原理,一个工程的项目结构

有两种流行的结构:老的Ant & Eclipse ADT 工程结构,和新的Gradle & Android Studio 工程结构, 你应该选择新的工程结构,如果你的工程还在使用老的结构,考虑放弃吧,将工程移植到新的结构。这里我们对两个项目结构做一下对比

老的结构:

old-structure
├─ assets
├─ libs
├─ res
├─ src
│  └─ com/futurice/project
├─ AndroidManifest.xml
├─ build.gradle
├─ project.properties
└─ proguard-rules.pro

新的结构

new-structure
├─ library-foobar
├─ app
│  ├─ libs
│  ├─ src
│  │  ├─ androidTest
│  │  │  └─ java
│  │  │     └─ com/futurice/project
│  │  └─ main
│  │     ├─ java
│  │     │  └─ com/futurice/project
│  │     ├─ res
│  │     └─ AndroidManifest.xml
│  ├─ build.gradle
│  └─ proguard-rules.pro
├─ build.gradle
└─ settings.gradle

主要的区别在于,新的结构明确的分开了'source sets' (main,androidTest),这是Gradle的一个理念。 通过这个你可以做到,例如,添加源组‘paid’和‘free’在src中,让你的应用程序具有付费和免费的两种模式的源代码。

你的项目引用第三方项目库时(例如,library-foobar),拥有一个顶级包名app从第三方库项目区分你的应用程序是非常有用的。 然后settings.gradle不断引用这些库项目,其中app/build.gradle可以引用。

如果需要更加详细的介绍请点击下方链接

介绍内容有 Android 开发规范, 架构, 布局技巧, 以及使用一些有助于快速开发相关工具等等


  • 如何系统学习Android

因为要介绍的东西太多了,这里给大家推荐一张安卓知识体系的图片,最近看到别人整理的一份也挺好的,对我收益很大,如果需要请点击一个老鸟发的公司内部整理的 Android 学习路线图

我是如何自学成为程序员的

  • 推荐一些实用的资源

推荐大家一个网站“极客导航——程序员自己的导航”,里面介绍了常用网站,工具大全,经典博客,进阶之路,源码下载,跳槽指南,精品网站,边角作用的一些常用网站,一些Android大牛的博客都在里面,我经常会看。

我是如何自学成为程序员的

  • 总结

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

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

3. 不要感慨上天的不公平,我一路走来很悲催,走了太多的弯路,遇到了太多的困难,都是我这辈子难以忘记的,但同时我是幸运的,因为我有她,我感谢我女朋友无数个日夜的理解与支持,上帝在给你制造坎坷的时候总会对你有些眷顾;

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

  • 建议

写到这里想要给点建议,那就以一个反例的身份给出事后的一些建议吧:

1.每天花1小时看书,难的不是1小时,难的在坚持;
2.英语对编程来说很重要,试着习惯英语阅读;(扇贝系列的软件)
3.数据结构和算法要学好,这算是对编程来说最重要的课了,以后不见得能用得上,但用的时候起码你有印象;
4.善于利用搜索引擎,从用Google做起,学会英文关键字搜索,有问题第一时间想到去搜索而不是去请教别人;
5.多去混GitHub,目前最流行的开源社区,多参与开源项目,慢慢试着读牛人们的代码,时机到的时候自己也可以为6.开源社区贡献力量,可以这样说在GitHub上认真混一年,比你在大学四年学的东西要多的多;
7.第一份工作很重要,因为你会受一些周围同事、公司氛围的影响。

8.最后一条是尽快找一个女朋友,因为你的工作使你接触到的女性会越来越少。




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

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


如果大家觉得我写的还可以的话,请关注我的微信公众号:


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

获取字符串长度、字符长度、字节长度

度量快速开发平台中基础函数中有一个  len  的获取字符长度函数。具体用法是: len ("123Abc字符串")  这个方法得到的结果是:9      即一共有多少个字符,...

【玖哥乱弹】程序员如何成为别人的男朋友

这个世界上程序员数量很多,有女朋友的程序员在其中的比例却很少。究其原因,不外乎大多数程序员根本不知道怎么才能成为别人的男朋友。成为别人的男朋友对于富二代和拆迁户很容易,而对于程序员却很难,“潘驴邓小闲...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

我的2016—“不平凡”的一年

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》...
  • jxw167
  • jxw167
  • 2017-01-13 14:03
  • 2424

一篇文章了解mvc框架工作流程

动机argo是58同城开源出来的一个基于java的轻量级mvc框架。这个框架是其13年开源出来源代码,但接下来就没有维护了,但58内部好像还一直维护沿用wf(argo内部称呼)。 但阅读这款轻量级框...

webservice接口问题

之前在做项目时,调用接口调试了很长时间就是不通,总是报空指针异常,经过很长时间的调试,最终发现是jar包冲突的问题,项目里使用了到了生成图表的gnujaxp.jar包,和webservice使用的ax...

PHP实现最简单的登录注册

思路分析: 1. 注册界面包括一个表单,获取表单信息插入数据库。 2. 登录界面也包括一个表单,获取输入信息后搜索数据库信息匹配。 实现代码 1.注册界面实现代码 register.php...

Unity3D教你制作Bezier和Spine曲线编辑器三

继续接着介绍曲线编辑器的制作,上篇博客介绍了关于Bezier曲线的制作,接下来给读者介绍Spine B样条曲线之作。 如果要创建复杂的曲线,我们需要连接多个曲线,这样的构造称为样条。让我们通过复制Be...

python3网络爬虫:爬取煎蛋网美女照片

1.1 前言 今天开学不久,课野不多,就想着来做个爬虫,看着好多老司机喜欢看美女图片,想做个爬去煎蛋网的小爬虫。哈哈,下面开车了,各位,上车记得滴卡 参考: http://blog.csdn.n...

迷茫的程序员

程序员是一个特殊的群体,我们不知道为什么加入这个行业,也不知道这个行业还能做多久,不同人有着不同的故事、有着不同的迷茫。

RESTful API 设计最佳实践(1)

RESTful API 设计最佳实践(1)——在Roy Thomas Fielding看来,这可能(kending)不是真正的REST,但也将是一个因REST所带来的好的实践。一、Representa...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)