|
|

楼主 |
发表于 2006-9-2 08:26:12
|
显示全部楼层
技术开发方面的普通技术你需要掌握以下方面
(通用技术用那种编程工具实现都可以)
1、了解进程线程的概念,在写程序的时候知道根据需要创建进程或线程。这里需要一定的操作系统的理论基础。
掌握进程间通讯和线程间数据交换。
举个例子:1、如何让一个程序不能运行两个实例(不能运行两次)
2、当你有需要(比如为了保证主程序的稳定性)把部分功能放到一个独立其他程序中。而且你
需要根这个程序通讯(进行数据交换)怎么实现。具体说你写两个程序,第一个程序启动第
二个程序,然后第一个程序接收按键,按键的内容在第二个程序中显示出来。
3、在一个进程中启动两个线程,这两个线程读写同一个全局变量,如何处理。
2、文件操作,保存中间结果,读取配置信息用。包括ini文件,注册表操作。
标准c库中的文件操作,c++类库中文件操作,操作系统sdk中提供的文件操作函数。读写二进制文件,
按结构体方式读写文件。
3、UI 界面操作(包括web方式的),windows下各种输入控件怎么使用,怎从中取数据,怎样往里赋值数据。
windows消息循环是怎么回事。利用线程方式保证界面不发生没有响应。
例子:把标准控件重新实现一下,给他们加上背景图片。
4、网络编程
多线程方式的tcp/udp编程,tcp一对多的实现,udp广播,根据不同硬件上提供的拓扑结构使用相应的协议。
mfc 提供的soket类,与socket sdk编程的区别。非soket windows/linux api 的使用,如snmp 库,windows下的
sdk中提供的网卡信息,收发包数等api的使用.
例子:1、写一个程序实现网上邻居的功能。可以看到局域网上有哪些机器,叫什么名字,共享了哪
些目录,机器的网络节点类型(windows)和工作组。
2、点对点的网络聊天程序,局域网内可以利用广播实现多点对多点的聊天程序。
3、客户端/服务器(c/s)模式实现聊天程序,需要登录,跟qq/msn类似。这个程序再
用b/s模式实现。
5、数据库编程
管理员:数据库安装,建库建表建索引,编写存储过程,触发器触发器,
开发人员:数据库开发接口 ado, oledb,dao,odbc, bde, jdbc, oci, 各种数据库提供的头文件和库文件。
使用标准sql语句通过数据库开发接口实现数据库的增删改查询。
会用select * from sysobjects;(ms sql server), select * from tab;(oracle)
例子:写一个通信录程序,可以使用任何数据库和相关开发接口实现增加修改删除查询,表报功能。
6、硬件编程
串口编程,注意使用环形队列保存数据。driverstudio,声卡录音放音,摄像头驱动。
例子:在网络部分的聊天程序的基础上增加录音放音,显示摄像头,取出摄像头图像发送给对方,
实现音频视频聊天功能。
以上功能不论用什么工具都可以,你能自己独立的实现出来的话,到国内任何一家公司应该都没有问题。
薪水嘛,怎么也中等偏上水平。、
如果这些技术你理解的比较透,就基本上能脱离开发语言的束缚,不论什么开发工具你都能很快学会并
能实现这些功能。
技术开发中的高级技术
这种技术与平台密切相关或者与计算机理论密切相关。
1、理论方面:
有穷状态机的实现,比如网络协议中TCP中的状态机的实现。
数据结构中栈与递归函数这种结构的灵活运用。我在写编译器时感觉到,实现一个编译器语法分析
部分主要就是状态机加栈加递归函数实现。
2、平台方面
各种文件的格式,包括可执行文件的,cpu的工作方式,常用硬件的接口以及操作系统的接口。
汇编语言。高级语言与汇编转换中的一些知识如函数调用方式(cdecl pascal stdcall )。
这些知识windows下可以从sdk/ddk中获得部分。linux下看内核源码。
这些高级技术你掌握的非常透的话,写个编译器操作系统只是体力活。(只能说实现一个,不能做到
比别人强,要想超过别人,一个方向不做5年以上很难做到。除非你是天才)
(没有写完,继续完善中....)
以上都是个人经验的总结,可能不对,希望大家多指教。
[ 本帖最后由 ganjike 于 2006-9-6 14:31 编辑 ] |
|