Emotion Determinism.
As a good software engineer, primary important is that you are a good person to cooperate with.
So you must know what you are.
As you sow, you shall mow.
1. You must know the experience of yourself determines what kind of person could become.
And you are what your experience is.
2. You know you have to follow the principle of gradual improvement.
3. You know your limitation, your defect clearly.
4. You know when others need you and you know how to get help from others.
5. You know what others are good at, and you know the art of appreciation.
6. You know the hardness of a project and you know the core of every problem.
7. You keep calm and you fear nothing.
8. Love is based on appreciation, you appreciate others and you want to be appreciated by others.
9. You know when is necessary to talk, and when shut up mouse.
Basics:
What’s my soft spot:
Oo big project management.
Writing code at field
1. C programming language
1.1 Malloc
1.1.1 reason: memory basics, know heap/stack
1.2 Static
1) Scope of variable
2) Scope of function
1.3 Linked list
1.4 volatile
2. CPP
2.1 virtual function
2.2 instantiation/static
3. OO
4. Big Project Management
3.1 how to read big project
5. Architect Diagram Skill
6. Data structure
7. Database
8. Asynchronous in computer
9. Thread/process
Mutex Lock/semaphore/deadlockd
UML
Compile/link
Makefile
Cross-compile
Clean code
Agile
Spe
Auto-development model
Auto standard/protocol
SPiCE
V-model
CMMI
Linux os
Design pattern.
Object oriented programming
Central processer
Automotive protocal
MOST/LIN/CAN
Testing
HMI
Graphics for hmi/ 3D basics
QT
Entertainment
Media/ Gstreamer/audio
Software philosophy
Agile
interView skills
Roseman
1. Self-introduction and relax
2. Deep question to find the deepness of taking part in the project
3. Writing code
4. Algorithm/data structure/code organization/consice
5. Ask questions which has something need to be more clear, watch if you ask
6. Design question to find the thinking of whole system
7. Assure he has the essential talent which the company need.
8. Let the view be hard but joyful.
Requirements
UML
Linux
设计模式,mvc,单例,工厂,代理等的应用场景
MySQL或SQL Server等
Gstreamer
OpenCV、OpenGL库或QT V cycle situation
Familiar with Altia,EB guide,Kanzi
Matlab stateflow
Knowledge on Ethernet/FlexRay/CAN/LIN is better
Knowledge of AUTOSAR architecture is a plus
跨平台开发经验
version control
testing framework
美工基础
掌握从软件详细设计到单元测试的流程规范和工具
Experience in computer graphics
Danny Test
What is the meaning of semiconductor?
What is register?
What is decoder? Design a decoder (译码器)
HDL语言
最高的抽象层次为算法级、然后依次是体 系结构级、寄存器传输级、门级、物理版图级。使用HDL的好处在于我们已经设计好了一个寄存器传输级的电路,那么用HDL描述以后转化为文本的形式
What is a CPU composed of?
算数计算器;累加器;指令计数器;指令寄存器和译码器;时序控制器
Hardware Issue Solving Sequence
PCB layout?
How is computer composed?
PLL
Clock
Arm booting?
Interruption
Why simulation can pause cpu run?
关键字
volatile
有什么含意
并给出三个不同的例子。
一个定义为
volatile
的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值
了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存
在寄存器里的备份。下面是
volatile
变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一个中断服务子程序中会访问到的非自动变量
(Non-automatic variables)
3). 多线程应用中被几个任务共享的变量
1). 一个参数既可以是const还可以是volatile吗?解释为什么。
2). 一个指针可以是volatile 吗?解释为什么。