w**a 发帖数: 487 | 1 【 以下文字转载自 JobHunting 讨论区 】
发信人: wawa (life is tough), 信区: JobHunting
标 题: CS 的基础知识主要有哪些?
发信站: BBS 未名空间站 (Thu Jul 25 14:05:45 2013, 美东)
俺是刚半路出家, 现在主要在学JAVA.
经常看到面试的帖子里提到面试官问cs的基础知识,我能想到的是:
1.OS(操作系统)
2. computer architecture
我是半路出家,基础几乎没有,所以也不清楚哪些算是基础知识,请问各位前辈,CS的基础
知识主要有哪些? 看什么书可以补充这些基础知识?
多谢了! | s*******e 发帖数: 1630 | 2 data structure, algorithm, database, OOD
硬件你搞不搞? | w**a 发帖数: 487 | 3 多谢你的回答.
俺半路出家, 还是软件为主吧.
【在 s*******e 的大作中提到】 : data structure, algorithm, database, OOD : 硬件你搞不搞?
| r****t 发帖数: 215 | 4 OOD是什么。。
【在 s*******e 的大作中提到】 : data structure, algorithm, database, OOD : 硬件你搞不搞?
| k**********g 发帖数: 989 | 5
Object oriented design / object oriented programming
Namely, how to design and implement objects (classes) correctly in your (
employer's) choice of programming language.
Elementary level: learn the must-follow guidelines in designing objects
* Design of interfaces
* Object Consistency / Invariants (how to ensure the object works
correctly when its methods are called over and over again)
* Visibility (public vs private)
* It is convenient and sometimes necessary to split up a public method
into several subroutines. Each of these subroutines may be unable to keep
consistency. Thus, these subroutines must be private, to prevent misuse.
* Defining public properties for objects (getters and setters, or built-in
language support)
* Documentation
Intermediate level: guidelines that usually should be followed, or design
techniques that are widely applicable (though not to be blindly adopted)
* SOLID principle http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
* Design patterns http://en.wikipedia.org/wiki/Software_design_pattern
Advanced level: important concerns of commercial application development
* Knowledge of operating systems
* Knowledge of database systems
* Knowledge of inter-process communication, or coordination between
multiple running programs
* User interface design
* Compiler toolchain (how to build and consume code libraries built by
other software teams in the same company, etc.)
* Software testing
* Unit testing
* Integration testing
* Acceptance testing
* Manual (human) testing
* Exploratory testing
* UI Usability ("hallway") testing
* Software troubleshooting
* Logging
* Debugging
* Disassembly and memory dumps
*....
..*..
....*
.*...
...*.
【在 r****t 的大作中提到】 : OOD是什么。。
| k**********g 发帖数: 989 | 6
对不起,我刚才说的是码头工人的基础知识,不是CS的基础知识。CS高等学历的知
识份子,应该做官,不配当码头工人。
【在 w**a 的大作中提到】 : 多谢你的回答. : 俺半路出家, 还是软件为主吧.
|
|