我是一个在读的计算机专业的学生,不好意思的是,都要大四的人了,结果现在假期去实习下才发现,我的知识结构和工作定位都很不清晰,已有的知识底子也很薄.
所以问一下已经有工作或者实际经验的程序员前辈,我还需要学习哪些内容?技术上是达者为先,请随便说说吧.
我现在准备的定位就是普通的程序员即所谓的coder,
现在掌握的语言有:
宏汇编:换不同机器重熟悉一下语法和默认规则就行了,这个我最多是在一门和接口有关课程上可编程芯片的控制上稍微练习过一下
C语言:唉,实在不好说,练的少.看得也少,最多遍过的程序也就200多行,一般编的实现一个功能的程序也就100多行,还是那种很稀疏的那种;嗯,我见识少些,看过的一些实例程序就是linux/unix一些简
单功能的代码,有些风格,如错误制导(就是每次功能分支先假定会出错).利用&&等的从左到右真假的判定顺序隐含条件语句作用.重复嵌套&递归(如常见的用函数的返回值做参数,这样隐含了函数执行顺序.
唉,只能说稍微熟悉语法吧,但这也许我唯一能说会些的了.
vb:这个是现学现教.....汗.....不过理解了对象.属性.事件.类.模块化.联系之类的东东后,也稍微有了些感觉.总觉得这个思路搞起来很清晰.控件(包括菜单.对话框之类也算)属性(运行时才能用的也算).事件.具体的算法结构总比c简单,可能是偶刚上手吧.
其余和编程相关的:
数学思维......还没有体会.....
数据结构...老实说,除了数组和结构.指针常用,栈&链表对于某些算法还不错,共用体偶尔用下外,其它自己自由编程时都压根没用过.....
编译原理 虽然听人家强调而认真学了,但实际还是有些没太明白,毕竟没看过真正的什么活动记录.动态数组控制符.符号表实际是什么样子.......原先以为没什么用,结果现在发现了一点,起码学新的语言是在不会太慢
操作系统 嗯,这个怎么说呢,我听到的别人的意见是有争议的......有前辈说要学就直接学windows下的编程就行了,api的运用,既实际有用又够深入,不过我觉得这个还是...很有趣的,嗯,反正学都学了,总还是有些意义的吧.....klt.ult.semaphore这些原型了解一点,tibe.thread.event.flag...etc也会稍微熟悉一点吧..
就像c的指针.字节流文件.文件描述符.文件系统的无结构字节流文件+文件分块索引.socket的描述符......这些搞明白了点,总觉得windows的句柄这位大哥怎么这么熟.......
以上都是些半吊子啊,但是现在我时间紧张,只好准备再充实下我知识结构对于应用还不足的部分(硬着头皮也要上),要积累经验只好以后慢慢说.
下面是我考虑后的选择:
vc++ 这个据说是实用的最普遍的了,我现在深感缺乏一些对于面向对象编程的知识和感觉,不过我觉得有c和vb的基础,要稍微容易一点吧....ps:c#和delphi和vc++比有什么优劣.区别么?据说做介面.应用都挺不错的.
java 这个有点跟风吧,虚拟机上的,相比封装程度更高,用起来就更简单了吧,据说比较热......反正我缺一门实用的面向对象的语言,java和vc总要选一个吧.....另外,学了java学j2EE是不是就容易点了.....
ucos.linux2.6(记不清楚了,就是核心可以抢占那个)/unix5的源代码,前一个好像只有5000行,后一个好像是3.5w还是5w啊,核心好像还少些?我遇到的两个很不错的os有关的老师都说,要看源码.看源码,不过不幸当时我没时间,也就上课看了一点点.....os的原理是可以理解得更实际一点,不过我实在是不知道这个对于我的编程到底有多少好处呢?不过有一点是不错的,那些代码都写的挺...漂亮的.不过这也是强化我c&算法的底子吧?
windows programming,特别是api的应用的熟悉......这个偶实在很缺,不久前有个课程实验,从windows任务管理器里面隐藏进程(不是注入其它进程),而且用的方法不是setwindowshook系统钩子,而是相对简单些的把windows内核的apl双向链表的pcb节点移除一个,但就这样,偶也只能去下了个,才深刻的认识到,这个差距...dll库的loadliberary.etc,核心对象打开的zwopensection/file映射的mapviewof....等等,都是偶靠google把程序看懂写了报告的...唉...听说有本好书,名字就叫windows programming,就是一直没打定主意学......
html.xml网页标识语言,学这个是全线出击,和vb一样,准备浅尝则止......
以上5个,vc.java对象化的编程总要学一个吧?windows平台编程.os的源码,犹疑不定啊....都挺重要的,但是没时间.....
各位有些经验的都说说吧.