- 论坛徽章:
- 1
|
1、你日常工作中使用的是那种编程语言?
C/C++,Perl, Python,VBA
使用C进行单片机程序开发,C++进行上位机模块,用Perl和Python及VBA进行一些辅助性的工作,如字符串提取,文件处理,代码自动生成
2、你认为程序员与编程语言之间的关系是什么样的?
程序员和编程语言间是想法与实现的关系,程序员所主宰的是想法,是思路,选择不同的语言只是实现的方式不同,复杂度不同,实现思路不同,本质上没有区别。
3、编程语言真的是功能越强自由越少吗?
一定程序上,编程语言的和自由度间有着反比关系。语言的强大,其实也就是说程序员要做的事情少。仔细想想,实现一个想法或思路,其所具备的复杂度是一定的,语言的强大表示语言的复杂度比较强,那么留给程序员发挥的空间就少了。比如,对比C和C++,用new显然要比malloc简单的多,malloc还要检查是否分配成功,而new只管用就行了。实现不行加个异常捕捉。
4、你认为成为一个合格的linux系统工程师,至少需要具备哪些方面的知识?
A:CPU硬件知识是必须的,它是软件的基础,是程序员的基本修养,不懂硬件者不懂软件
B:OS知识,OS可以认为软件中复杂度最高的,懂得了OS并深入理解其基本原理,对于系统架构来说算是入门了
C:必须精通至少一门语言,以C/C++或Java,至少一门脚本语言,
D:必须深入了解编译器对语言的实现方式,可以说,编译器实现方式的学习是学习语言的必不可少的一部分,比如对于C++多态的实现,VC和Gcc都使用了虚表,但是虚表的位置则不同,VC放在对象开始,而Gcc放在对象结尾。 |
|