一个合格的程序员应该掌握哪些方面的知识,看哪些书,敲多少代码,写多少笔记,做多少题目。
Java基础
既然想要找一份Android或者Java Web的工作,Java基础是必须要掌握的,在Android工程师面试过程中,往往考察Android的知识并不多,反而会问很多关于Java的知识,总结下来有一下方面:
1.Java字符串相关的所有知识:API of String,StringBuilder,StringBuffer。
2.对象与类:不论看多少遍,都感觉还是很陌生,所以一定要每隔一段时间就看一看。
3.继承、Object、枚举。
4.接口和内部类:接口与抽象类的区别、对象克隆、接口回调、内部类。为什么加粗?回调不仅仅是一种知识,更是一种设计思想!
5.泛型与集合:Collection(List、Queue、Set)和Map等等。
6.多线程:重点重点重点!
7.IO流:重点重点重点!
8.工具:Eclipse,工程调试,API文档。
Android基础
以android为例,是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备。这个家伙有一大堆东西要练习,拼的不是智商,是时间。看的多,会的就多,练的多,掌握得就越熟练。很简单,跟着书,敲代码,一遍,两遍,三遍,肯定有质的飞跃。
1.推荐书籍:《android第一行代码》2遍《Android权威编程指南》3遍《Android群英传》后续深究《Android开发艺术探索》后续深究
2.动手:写一个APP,尽可能用到各方面的知识,比如自己写一个手机APP--日程提醒的工具,满足一下功能需求:
(1)可以添加一条一条的任务,组成一个列表(ListView);
(2)给任务添加闹钟,提醒(闹钟,通知等用法);
(3)提醒后,更新屏幕解锁(屏幕解锁相关,应用外显示);
(4)可以添加一些动画。
数据结构与算法
如果你是想以后从事算法工作,比如去哪家搜索公司,这一段可以跳过。我只是想让一个以后从事APP或者Java web开发的家伙,懂一些结构算法的原理。
1.数据结构“线性数据结构、树、图,这些应该囊括了所有的数据结构。重点看一下栈、队列、二叉树、无向图、有向图。
2.算法:
(1)会用数组、链表实现栈和队列;
(2)会二叉树、图的深度、广度遍历;
(3)会各种排序算法,能用某种语言写出来,另外要知道其时间复杂度、稳定否、适用的场合;
(4)做题,做题,做题,多敲代码,才能在用到的时候自然而然的写出来。推荐书籍《剑指offer》。
设计模式
我真的还没看,我只是知道这个东西很重要,它让你知道为啥这个工程是这样来构建代码的,进而让你以后会不自主的用里边的模式写优秀的代码。换句话说,这个东西就是一栋建筑的结构,”瓦匠“和”工程师“的却别就在于你看过没看过这本书呢!
推荐书籍:《Head First:设计模式》一本就够!
单元测试
用过Android Studio就知道在它的工程文件夹中有一个androidTest的文件夹,里边的Java类就是用来写测试用例的。作为一个开发者,首先要是一个好的测试用例的编写者,模拟各种各样的运行时会出现的情况,来优化开发的工程。
小编真的还没有接触过这方面的书籍,希望读者自行查找咯。
数据库相关技术
突然觉得数据库的知识需要单独列出来!
小编觉得《SQL必知必会》这本书不错,比较详细的介绍了基本的查询方法,较为实用。如果想在数据库方向走的更远,还是那句话,还要看更多的书。