写给Android初学者的学习经验和建议(合集五篇)

时间:2019-05-13 17:14:47下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《写给Android初学者的学习经验和建议》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《写给Android初学者的学习经验和建议》。

第一篇:写给Android初学者的学习经验和建议

首先说说Android开发环境的搭建吧,本来这是一件很容易的事情,但是很多同学依旧会遇到很多的问题,建议就是在网站下一个Android开发环境的教程,然后一步一步去搭建。同学一遇到有问题首先是要自己去看看哪里出问题了,如果找不到问题,应该是想到搜索引擎才对的,谷歌肯定会给你最好的解答的。

一、Android开发起步其次说的是刚刚起步学习的同学,假如开始没有任何的开发经验的话,千万不要着急,不要想着在短时间内就把一个语言学习好,因为你之前没有任何的学习经验,在这个过程中需要有耐心地学习完JAVA的基础知识,然后才开始踏上Android开发之旅。一类同学是只之前做过JAVA开发经验的,这类同学可以在Android上迅速上手,但是同样的是不可忽略Android的一些基础知识,只有把基础掌握好了,才能在后期取得大的进步。

二、Android基础知识学习在掌握好JAVA基础知识后,接下来就是学习Android基础知识和如何查看开发文档了,在这个阶段我认为是学习最有劲头和最有收获的时候,因为从一无所知到了解是会让人有收获良多的感觉,事实上在这一阶段也是学习了很多,至少知道如何建立工程,知道一些基本的机制很常用函数的用法,这个阶段会出现很多的问题,往往一个很低级的问题都会把你难倒,而这阶段正式培养学习能力的好时机,还是那句话,凡是遇到问题第一个想的是自己去解决,自己解决不了的,用百度用谷歌,要学会使用搜索引擎,大部分的时候问题都能得到解决,因为你遇到过的问题别人早就遇到过了,假如搜索引擎也找不到好的答案,这时候可以到论坛发帖问,网上牛人很多,也可以选择到群里咨询。

三、Android开发进阶学习完Android基础知识以后,很多同学很快就会感觉到学习停步不前,感觉自己似懂非懂,我觉得这个时候是学习最关键的时候,因为一旦你踏出这一步之后,你对Android的理解就会跟更加透彻,做起开发也会更加有信心,但是怎样跨过这一阶段,我根据自己的经验是首先是保持对自己的信心,自己找一个比较简单的项目做做或者找一些应用的源代码研究研究,然后自己山寨出来一个,这样你也会有了学习的方向,因为你在了解了基础知识以后急切需要证明一下自己到底是学到了什么东西,而开发出一个自己的简单应用,就是最大的证明了,而且在开发应用的时候,肯定会遇到很多的问题,而在独立解决bug的同时,你已经掌握了独立处理问题的能力。

如果你顺利地走完了前面的三个阶段,恭喜你,你不知不觉之中已经成为一个Android的开发者了。

最后总结一下,学习最主要还是培养自学能力,要学会使用搜索引擎帮助学习,要学会共享互助的开源精神。

第二篇:Android学习笔记总结初学者必看

Android学习笔记总结

第一步:

Android(1)项目名称;Build Target程序名称;Package name程序所支持的最低 SDK 版本代号(2 对应 1.1,3 对应 1.5,4 对应 1.6)

6、运行 Android 项目

打开菜单 “Run”-> “Run Configurations”-> New launch configuration,设置启动项目名称,在 Android 选项卡中选择启动项目,在 Target 选项卡中设置模拟器

7、创建/使用模拟 SD 卡

创建 SD 卡,运行类似如下命令:mksdcard-l sdcard 512M d:androidsdcard.img 模拟器中使用 SD 卡,在项目配置的 Target 选项卡的 “Additional Emulator Command Line Options” 框中输入类似如下参数:-sdcard d:androidsdcard.img

8、配置模拟器

运行类似如下命令:android create avd--name android15--target 2。或者直接在菜单 “Window”-> “Android AVD Manager” 中配置模拟器

9、浏览模拟 SD 卡中的内容

调试程序,在 DDMS 中选择 “File Explorer”,在其中的 sdcard 目录下就是模拟 SD 卡中的内容

10、查看日志 LogCat Window-> Show View-> Other-> Android-> LogCat

11、在模拟器中安装/卸载 apk 安装 apk 运行类似如下命令:adb install name.apk;卸载 apk 运行类似如下命令:adb uninstall packagename(注:这里的参数是需要卸载的包名)

12、反编译 Android 程序

解压 apk 文件,取出其中的 classes.dex 文件,运行类似如下命令:dexdump.exe-d classes.dex > dump.txt(其意思是将 classes.dex dump 出来,并将反编译后的代码保存到指定的文本文件中)

13、人品不好是出现的某些错误的解决办法 如果出现类似如下的错误等 no classfiles specified Conversion to Dalvik format failed with error 1 解决办法:Project-> Clean 出现 Android SDK Content Loader 60%(一直卡在 60%)解决办法:Project-> 去掉 Build Automatically 前面的勾

14、查看 SDK 源代码

先想办法搞到源代码,如这个地址 http://www.xiexiebang.com/android.asp,然后将其解压到 SDK 根路径下的 sources 文件夹内即可

二、Android 项目的目录结构

1、src自动生成 R.java 文件,用于引用资源文件(即 res 目录下的数据)

3、assets用于放置图片之类的资源;res/layout用于放置一些常量数据

5、AndroidManifest.xml布局(Layout)和菜单(Menu)介绍

在 Android 中各种布局的应用,以及菜单效果的实现

 各种布局方式的应用,FrameLayout, LinearLayout, TableLayout, AbsoluteLayout, RelativeLayout

为指定元素配置上下文菜单,为应用程序配置选项菜单,以及多级菜单的实现

1、各种布局方式的演示 res/layout/main.xml 代码

android:layout_height=“wrap_content” android:text=“FrameLayout”>

android:layout_height=“wrap_content” android:text=“Frame Layout”>

android:layout_height=“wrap_content” android:text=“@string/hello” />

android:layout_width=“fill_parent”>

android:layout_height=“wrap_content” android:text=“AbsoluteLayout”

android:layout_x=“100px” android:layout_y=“100px” />

_Button.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;

public class _Button extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.button);

setTitle(“Button”);

Button btn =(Button)this.findViewById(R.id.button);btn.setText(“click me”);

// setOnClickListener()图片按钮控件-->

android:layout_width=“wrap_content” android:layout_height=“wrap_content”>

_ImageButton.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageButton;import android.widget.TextView;

public class _ImageButton extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.imagebutton);

setTitle(“ImageButton”);

ImageButton imgButton =(ImageButton)this.findViewById(R.id.imageButton);// 设置图片按钮的背景

imgButton.setBackgroundResource(R.drawable.icon01);

// setOnClickListener()图片显示控件-->

android:layout_height=“wrap_content”>

_ImageView.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;

import android.widget.ImageView;

public class _ImageView extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.imageview);

setTitle(“ImageView”);

ImageView imgView =(ImageView)this.findViewById(R.id.imageView);// 指定需要显示的图片

imgView.setBackgroundResource(R.drawable.icon01);} }

5、CheckBox 的 Demo checkbox.xml 代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

android:layout_height=“wrap_content” android:id=“@+id/textView” />

android:layout_width=“wrap_content” android:layout_height=“wrap_content”>

_DigitalClock.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;

public class _DigitalClock extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.digitalclcok);

setTitle(“DigitalClcok”);} }

Android(6)日期选择控件 TimePicker双状态按钮控件 EditText进度条控件 SeekBar支持自动完成功能的可编辑文本控件 MultiAutoCompleteTextView日期选择控件-->

android:layout_width=“wrap_content” android:layout_height=“wrap_content”>

_DatePicker.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;

public class _DatePicker extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.datepicker);

// 具体的应用可参见对话框中的示例 setTitle(“DatePicker”);} }

2、TimePicker 的 Demo timepicker.xml

代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

android:layout_width=“wrap_content” android:layout_height=“wrap_content”

android:textOn=“关闭” android:textOff=“打开” />

_ToggleButton.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.ToggleButton;

public class _ToggleButton extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.togglebutton);

setTitle(“ToggleButton”);

final ToggleButton btn =(ToggleButton)this.findViewById(R.id.toggleButton);// setOnClickListener()双状态按钮的按钮状态 txt.setText(“按钮状态:” + String.valueOf(btn.isChecked()));} });} }

4、EditText 的 Demo edittext.xml 代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

style=“?android:attr/progressBarStyleLarge” android:layout_width=“wrap_content”

android:layout_height=“wrap_content” />

android:layout_width=“wrap_content” android:layout_height=“wrap_content” />

style=“?android:attr/progressBarStyleSmall” android:layout_width=“wrap_content”

android:layout_height=“wrap_content” />

style=“?android:attr/progressBarStyleHorizontal” android:layout_width=“200px”

android:layout_height=“wrap_content” android:max=“100” android:progress=“50” android:secondaryProgress=“75” />

_ProgressBar.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.view.Window;

// 另见对话框中的进度条

public class _ProgressBar extends Activity {

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);

// 设置特性以允许在应用程序的标题栏上显示进度条(条状)requestWindowFeature(Window.FEATURE_PROGRESS);// 设置特性以允许在应用程序的标题栏上显示进度条(圆圈状)requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

this.setContentView(R.layout.progressbar);

setTitle(“ProgressBar”);

// 在标题栏上显示进度条(条状)setProgressBarVisibility(true);// 在标题栏上显示进度条(圆圈状)

setProgressBarIndeterminateVisibility(true);

// 指定进度条的进度 setProgress(50 * 100);setSecondaryProgress(75 * 100);

} }

6、SeekBar 的 Demo seekbar.xml 代码

android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

android:layout_height=“wrap_content” android:max=“100” android:progress=“50” android:secondaryProgress=“75” />

android:layout_height=“wrap_content” />

android:layout_height=“wrap_content” />

_SeekBar.java 代码

package com.webabcd.view;

import android.app.Activity;import android.os.Bundle;import android.widget.SeekBar;import android.widget.TextView;

public class _SeekBar extends Activity implements

SeekBar.OnSeekBarChangeListener {

SeekBar mSeekBar;TextView mProgressText;TextView mTrackingText;

@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.seekbar);

setTitle(“SeekBar”);

mSeekBar =(SeekBar)findViewById(R.id.seekBar);// setOnSeekBarChangeListener()-响应拖动进度条事件 mSeekBar.setOnSeekBarChangeListener(this);

mProgressText =(TextView)findViewById(R.id.progress);mTrackingText =(TextView)findViewById(R.id.tracking);}

// 拖动进度条后,进度发生改变时的回调事件

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch){ mProgressText.setText(progress + “%”);}

// 拖动进度条前开始跟踪触摸

public void onStartTrackingTouch(SeekBar seekBar){ mTrackingText.setText(“开始跟踪触摸”);}

// 拖动进度条后停止跟踪触摸

public void onStopTrackingTouch(SeekBar seekBar){ mTrackingText.setText(“停止跟踪触摸”);} }

7、AutoCompleteTextView 的 Demo autocompletetextview.xml 代码

第三篇:Android编程开发入门学习经验

Android编程开发入门学习经验

首先说一下,之所以选择android培训,主要有下面几个原因:因为我不是计算机专业,一些计算机语言高级的计算机语言也没学过,只学过c语言,本身想自学,但自学觉得效率太低,自己没有系统的学习方法,考虑到报班学习,有个老师带着,这样效果会好很多,因此决定上个编程培训班学习。

在看了好多家Android编程开发培训机构的官方介绍后,也在论坛上搜索了一些评价,之后和咨询老师进行了一些沟通,同时我还打听到了一些之前毕业学员的一些就业情况。相比同行业的其他培训机构,各方面的反馈都还不错,所以我选择了千锋android培训。四个月android学习过去了,老师给我的印象是非常负责,在课堂上,他们会一一为同学答疑解惑,甚至当看到你带有疑惑的眼神,他们也会问下你有没有不懂的地方, 这一点我很感动。这里的课程安排的很合理,从基础的java,以及培养面向对象的一些细节,白天老师讲课,晚上自习有老师辅导,一直到Android编程开发最后的大项目,课程都安排的很有层次,深入浅出。

在学习android编程的这段时间里,我学到很多之前没有接触到的知识,过得挺充实的。这里的授课老师讲课方式各有特色,但是课后对于我们来说都很亲切。刘老师讲话风趣幽默,让我们在轻松环境中掌握java语言基础,课程中,老师更加注重我们对于代码的积累,并强调实用性,让我们自己在项目中理解,很多老师都知识面很广,亲和力又强,让我们能够在轻松地氛围中更好地融会贯通所学android编程知识。

最后,我想对已经或即将在培训中学习android编程的学弟学妹们说几句,选择一家好的android编程培训机构固然很重要,但是最终还是得靠自己的努力,如果自己不努力,谁都帮不了你,如果,你选择了像我选择的这种一流的机构,那剩下的就好好努力吧。如果当你坚持不下去的时候,那就想想你的梦想,你的家人,你今天的努力,不仅仅是为了你自己。相信自己,你一定能成功。

第四篇:初学者如何提高英语口语(结合个人学习经验)

初学者如何提高英语口语

(结合个人学习经验)

一、大量积累词汇。词汇是英语学习的基础,没有词汇的积累,英语学习只能是简单的重复。大多数中国学生背单词都只记单词的读音、拼写以及其最常用的中文意思,但要想熟记于心必须要知道单词的常见搭配和表达。其实,最好的方法是背例句,这样不仅记住了单词,还能记住单词在句子中的表达。

建议:

1、根据个人基础购买专业书籍,如新概念教材、朗文英语等,在学习课本时背单词,做好标注;

2、购买四六级英语词汇表---新东方词汇大典,从易到难,每天要求自己最少背诵5个,及时复习;

3、下载英语电子词典---有道词典,随时查阅,将单词带入句子中阅读,做好单词储存;

4、在生活中学习,学会用英语描述看到的景物,描绘自己正在做的事情,如刷牙时提问自己怎么用英语说牙膏、牙刷、牙杯等。

二、基本了解语法。口语学习一定要学语法,但是不用学得太深,用得太复杂。没有语法,词汇就像珍珠,虽美但终难串成项链。不用学得太深,是因为入门阶段主要强调技能训练,突出一个“练”字。像游泳一样,与其坐在海边反复读游泳手册,不如下海扑腾它一两个小时。语法中多数条条并不难懂难记,但要熟练掌握就要千百次地苦练。

建议:大量阅读口译汉英对照(或英汉对照)的小说和其它读物。首先阅读英文部分,遇到不懂的单词或句子根据上下文进行理解,然后与翻译好的汉语部分进行比较,马上可以发现我们的理解是否正确,及时做好标注。请注意,开始要选择较简单的读物,如小说、幽默故事或好的短文进行阅读,使我们有足够的兴趣坚持下去,且应大量阅读,只阅读一两篇效果是不明显的,开始可能较慢,费时较多,但请坚持。

三、培养良好听力习惯。说好英语的前提是听得懂,这也是初级阶段最难提高的一项技能。词汇还是语法,只能算是储备。但是听力,因人而异。有的人提高只需短短一个月,有的人可能一年都无明显进步。但是,大家需要明确,从听不懂到听懂,是需要时间反复练习的。作为重要的沟通技能之一的听力,即使花再多时间去提升都是值得的。这也是为什么即使是高级同传译员,也需要定期练习,以免生疏。

建议:要提高听力,最好的方法就是找准适合自己的材料反复精听。所谓做适合自己的材料,就是难度略高于现阶段水平的,基本上就是你听第一遍可以听懂70%的材料。整段材料理解起来不费力,但是里面的一些表达、词汇甚至连读、略读,还是让你无法全部理解。学习这样的材料,因为熟悉材料大致内容,不容易产生挫败心理,而且学习新的知识会消化得更快、记得更牢。

1、养成用音标拼读单词的习惯。

2、养成认真听示范发音(教师、磁带、光盘等),听清后再模仿。

3、每天安排一定的时间进行听力训练(至少15分钟左右)。

4、养成充分利用现代资源,课后多听课文录音、看英语影视节目、收听英语广播、上网学习英语等渠道,感受较规范的英语语音、语调,培养语感。

5、本人喜欢中央英语频道19:30播放的Dialogue(对话)和23:30播放的Crossover(跨界交流)节目,还有人物访谈、演讲等,如马云、乔布斯演讲等。

四、养成敢于开口说的习惯。由于应试教育原因造就了一大批听得懂但不会开口说的学生,也即所谓的哑巴英语。要做到消除心理障碍,克服怕开口说英语的紧张心理,养成大胆开口说英语的习惯,牢记我们讲的Enjoy losing face, Enjoy making mistakes(享受丢脸,享受犯错)过程。

建议:

1、养成师生间,同学间用英语问候,把所学英语用到日常生活中去,抓住每堂课前20分钟和外教自由聊天的机会,不要怕犯错,大胆开口。

2、养成每天朗读或听读英语(20分钟左右),坚持早晚大声朗读背诵英语名言名句、谚语、对话、课文的好习惯。

3、养成以“意群”为单位阅读英语的良好习惯,选择合适的材料限时阅读,提高阅读速度,阅读有关英语报刊、杂志等.每周阅读2—3篇的英语阅读文章。

4、在俱乐部寻找志同道合的伙伴一起练习口语,在英语聊天室(新浪、skype、facebook)进行聊天,还可以通过自己对自己对话创造英语环境,对自己描述所看到的景物,英语口述自己正在作的事情。

5、本人喜欢睡前阅读英语小说,有时练习Tongue Twister(绕口令),背诵名言名句等,充分利用与外教碰面机会大胆交流。

五、养成持续写的习惯。写是学好英语的一个很重要的过程,因为在写的过程中是你对前阶段所学英语的检验,如单词、语法是否掌握,发音是否正确等。

建议:

1、书写:养成规范书写字母、单词、句子正确的习惯。

2、写作:写作训练要循序渐进。低年级加强单句写作训练,如连词成句练习、造句练习,汉译英练习,句子改错练习和简单的看图写句子练习等。高年级加强篇章段落的写作训练,如看多幅图写段意识连贯的话,根据英语或汉语提示写篇小短文等。

3、养成每天写英语日记的习惯。

4、本人书写主要用于和外教发送Email以及在俱乐部QQ群(318747867)聊天所用。

六、其它学习注意点:

1、养成课前预习的习惯,及时预习老师布置的家庭作业和预留的问题。

2、培养动手记笔记的良好习惯,无论在自学还是课堂上,都要动用身体上所有感官参与学习,用眼看、耳听、口说、心记,更要动手记,一定要做。

3、养成爱动脑、爱提问,敢于质疑问题的习惯。

4、养成对所学知识点进行整理、归类的习惯,在英语知识学习一段时间之后,要及时对所学知识的重点、难点、易混点进行梳理归类,有助于在头脑中形成英语知识脉络,形成自已的知识与技能,达到优化记忆的效果。

5、养成及时复习的习惯,人类的遗忘有递减,递远规律,及时复习,及时发现问题,及时解决会更有效地记住、掌握住所学的知识与技能。

安吉外语俱乐部宣

第五篇:给予Java初学者的学习路线建议

给Java初学者的学习路线建议

在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。

一、Java基础首先去找一个Java的基础教程学一下,或者你也可以去找相应的视频。学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。了解过以上内容以后,你对Java就应该有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。

二、Web开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。

你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,请视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频,因此推荐给大家。

当然了,我本人并没有看过他的视频,所以不好说的太绝对,如果大家自己有更好的选择,可以坚持自己的,不要被我干扰。最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

三、开发框架当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。

但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

四、找工作当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西。

第二部分:对于参加工作一年以内的同学。恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。

第二部分:对于参加工作1年到2年的同学。这部分时间段的同学,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。于是这个时候,设计模式就来了。我推荐《大话设计模式》这本书,而设计模式就是你的开端。

请记住,我所提的基本都是最低要求,因此不要有任何松懈的心理,否则五年后,你不要去羡慕别人高于你的工资,也不要去羡慕别人进入了某公司。这一年,你必须对于设计模式了如指掌,《大话设计模式》可以作为你的开端。此外,设计模式并不是你这一年唯一的任务,你还需要看一些关于代码编写优化的书。比如《重构 改善既有代码的设计》,《effective java》。总而言之,这个阶段,你的核心任务就是提高你的代码能力,要能写出一手优雅的代码。

第三部分:对于参加工作2年到3年的同学有的同学在这个时候觉得自己已经很牛逼了,于是忍不住开始慢慢松懈。请记住,你还嫩的多。这个阶段,有一本书是你必须看的,它叫做《深入理解Java虚拟机》。这本书绝对是Java开发者最重要的书,没有之一。在我眼里,这本书的重要性还要高于《Java编程思想》。这本书的内容是帮助你全面的了解Java虚拟机,在这个阶段,你一定已经知道Java是运行在JVM之上的。所以,对于JVM,你没有任何理由不了解它。

另外,在过去2年的工作当中,你肯定或多或少接触过并发。这个时候,你应该去更加深入的了解并发相关的知识,而这部分内容,我比较推荐《Java并发编程实战》这本书。只要你把这本书啃下来了,并发的部分基本已经了解了十之六七。与此同时,这个阶段你要做的事情还远不止如此。这个时候,你应该对于你所使用的框架应该有了更深入的了解,对于Java的类库也有了更深入的了解。

因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余?由此也可以看出,这些学习的过程是环环相扣的,如果你任何一个阶段拉下来了,那么你就真的跟不上了,或者说是一步慢步步慢。而且我很负责的告诉你,我在这个阶段的时候,所学习的东西远多于这里所罗列出来的。

因此千万不要觉得你已经学的很多了,我所说的这些都只是最低要求,不光是我,很多人在这个时间段所学习的内容都远超本文的范围。如果你不能跟上节奏的话,若干年后,如果不是程序猿市场还不错的话,你很可能不仅仅是工资比别人低,公司没别人好,而是根本就找不到工作。总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容),也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。另外,还有一种学习的方式,在2年这个阶段,也应该启用了,那就是造轮子。不要听信那套“不要重复造轮子”的论调,那是公司为了节省时间成本编造出来的。重复造轮子或许对别人没有价值,因为你造的轮子可能早就有了,而且一般情况下你造出来的轮子还没有现存的好。

但是对别人没有价值,不代表对你自己没有价值。一个造轮子的过程,是一个从无到有的过程。这个过程可以对你进行系统的锻炼,它不仅考察你的编码能力,还考察你的框架设计能力,你需要让你的轮子拥有足够好的扩展性、健壮性。而且在造轮子的过程中,你会遇到各种各样的难题,这些难题往往又是你学习的契机。当你把轮子造好的时候,你一定会发现,其实你自己收获了很多。所以,这个阶段,除了上面提到的了解JVM、JDK和框架源码以外,也请你根据别人优秀的源码,去造一个任何你能够想象出来的轮子。

第四部分:参加工作3年到4年的同学这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。而且在研究一门新技术时,切忌朝三暮四。有的同学今天去整整大数据,搞搞Hadoop、hbase一类的东西。过不了一段时间,就觉得没意思,又去研究分布式缓存,比如redis。然后又过不了一段时间,又去研究分布式计算,比如整整Mapreduce或者storm。结果到最后,搞得自己好像什么都会一样,在简历上大言不惭的写上大数据、分布式缓存、分布式计算都了解,其实任何一个都只是浮于表面。到时候面试官随便一问,就把你给识破了。

一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。因此在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。差异性相信不难理解,就是让你自己变得与众不同。你前面三年的学习足够你成为一名基本合格的Java开发者,但你离成为一名优秀的Java开发者还有很大的距离。

所谓优秀,即能别人所不能。而你前三年所学习的内容,是很多做过几年的Java开发都能够掌握的。那么为了让自己有差异性,你就需要另辟蹊径,找一个方向深入研究下去,以期在将来,你能够成为这个领域的专家,比如分布式计算领域的专家,大数据领域的专家,并发领域的专家等等。此外,你除了建立你的差异性之外,还要去弥补你基础上的不足,直到现在,我都没有提及基础知识。原因是基础是很枯燥无味的,学的太早不仅容易懵逼,而且懵逼的同时还容易产生心理阴影,以至于以后再不想去研究这些基础。但基础又是你深入研究一些领域时所必须掌握的,比如你去研究分布式计算,你不懂算法你玩个毛毛?比如你去做分布式缓存,你对计算机系统的内存不了解,你如何去做缓存?

如果你的基础本来就非常强,那么恭喜你,相信你在之前的工作中已经充分体会到了这些基础对你的帮助。但我相信大部分人的基础都很薄弱,哪怕是科班毕业的人,很多人也不敢说自己当初的基础学的多么强大,比如算法、计算机系统原理、编译原理这些。但是每个人时间都是有限的,而且这些基础的书籍每一本读下来,没个一年半载的,还真拿不下来,因此还是要有所抉择的。虽然艺多不压身,但问题是艺多是有代价的,是需要你付出时间和精力的,而我个人更赞成在同等代价的情况下获取最大的收获。

首先,我比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。另外,我要强调的是,这里所说的适合,并不是其它两本对你就没有用。比如你做Java Web和APP后端开发,《tcp/ip详解 卷一、二、三》这本书对你的作用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那当然最好不过了。

但如果时间有限的话,那么就先挑对你帮助最大的书去读。理论上来讲,这一年你能把这三本其中一本精读下来,就已经非常厉害了。有了基础,有了前面的工作经验,你就可以去开拓属于你的领域了。在这一年里,一定要规划好自己的领域,建立好自己的优势,制造出差异性。如果你对自己的领域不够清晰的话,随着你工作的时间日益增多,你接触的技术会越来越多,这个时候,你很容易被淹死在技术的海洋里,看似接触的技术越来越多,会用的也越来越多,但你毫无优势。有的同学可能会问,“我,我也不知道我的领域是什么啊?怎么办呢?”对于这种人,我只想说,“卧槽,这还问我?要不干脆我替你学习得了,好不好?”

第五部分:参加工作4年到5年的同学经过前面一年的历练,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。

技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。程序猿在某种程度上和明星很像,一个好的电视剧和电影就可以成就一批明星,程序猿有的时候也是,一个好的项目就可以成就一群程序猿。比如国内几个脍炙人口的项目,像淘宝、支付宝、QQ、百度、微信等等。这每一个项目,都成就了一批程序猿。我敢说,这里面任何一个项目,如果你是它的核心开发,光是这样一个Title,就已经是你非常大的优势。更何况还不止如此,Title说到底也是个名头,更重要的是,这种项目在做的时候,对你的历练一定也是非常给力的。

而你如果想要参与这样的项目,除了靠运气之外,影响力也是很重要的一个手段。比如你在分布式计算领域有一定的影响力,那么如果有什么好的关于分布式计算的项目,对方就很可能会邀请你。就算人家不邀请你,你自己主动去面试的时候,对方如果知道你在这个领域的影响力,也肯定会起到很大的作用,而这个作用,甚至可能会超过你现在的技术能力。所以,在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。当然了,我现在满打满算,做程序猿也就4年半不到,因此关于4年到5年这一部分,我的见解不一定是对的,就算是对的,也不一定是适合任何人的。

所以,希望大家自己有的判断力,去决定到底该如何度过这一年。结语本文到此就基本结束了,整篇文章很长,但其实主要就说了两部分内容,一个是社招面试的准备,一个是Java生涯的学习。关于这两部分,我已经给出了自己的见解,但是还是那句话,每个人吸收知识的时候,都要有抽取精华,去除糟粕的能力。我所说的,可能有些是对的,有些是错的,有些是适合你的,有些是不太适合你的,你要自己能够判断。其实你在生活和工作当中也是一样的,你身边的人形形色色,有的人你喜欢,有的人你很讨厌。但其实你喜欢的人也有缺点,你讨厌的人也有优点。你要学会从你讨厌的人身上学会他的优点,千万不要一棒子打死,这只会让你失去很多学习成长的机会。好了,说了这么多了,就到此为止吧,希望本文可以帮助到作为程序猿或即将成为程序猿的你。

下载写给Android初学者的学习经验和建议(合集五篇)word格式文档
下载写给Android初学者的学习经验和建议(合集五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    写给android小白的一封信

    Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发......

    预算员初学者学习

    预算员初学者学习1. 什么是模板和钢模板?模版有何用途?答:模板是浇筑混凝土成型用的模具。水泥、砂石、水及外加剂经过搅拌机搅拌具有一定的流动性,必须浇筑在与构件形状尺寸相......

    CAD初学者-AutoCAD应用经验

    CAD初学者-AutoCAD设计应用经验分享 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa啊啊啊啊啊啊 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊啊啊啊啊啊啊啊......

    SEO经验分享:初学者该如何快速学习网站优化

    王磊网络营销博客:http:/// 专注于北京网站优化、北京网络推广、SEO优化、网络营销、电子商务,并长期关注互联网动态。SEO经验分享:初学者该如何快速学习网站优化? SEO优化在......

    给英语口语初学者的建议(模版)

    英语(论坛)学习中,口语一直是困扰大多数人的问题。对于初学者尤其如此。理由归纳有三:缺乏语言环境;难以所学为所用;基础薄弱,词汇量少,句型单调。以下将对自身英语学习、教学中出......

    GSM网络优化初学者建议

    GSM网络优化初学者建议(2009-07-22 11:41:41) 标签:gsm 网络优化 基站 中国移动 广分类:GSM 东无线 it WCDMA、TD、CDMA2000 Ev_DO的工程网优正在如火如荼的进行,但由于GSM系统......

    关于初学者的钢琴建议(五篇范文)

    关于钢琴,我个人认为,这跟汗水是密不可分的。练钢琴跟学习一样,练习是非常重要的。 对于初学者来说,要非常注重手指素质的练习。比如对哈农这本书的练习,我认为是每天都需要练习......

    初学者练习英语口语的一点建议

    最权威的国际教育服务平台 初学者练习英语口语的一点建议 英语学习中,口语一直是困扰大多数人的问题。对于初学者尤其如此。理由归纳有三:缺乏语言环境;难以所学为所用;基础薄弱......