Chinaunix首页 | 论坛 | 博客
  • 博客访问: 633110
  • 博文数量: 76
  • 博客积分: 3091
  • 博客等级: 中校
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-11 15:40
个人简介

IT老兵,爱好胡思乱想、读书和交流,2015年底重新回到IT战场,期待再一次“贯穿”。

文章存档

2020年(11)

2018年(1)

2017年(1)

2016年(1)

2015年(1)

2014年(2)

2011年(5)

2010年(2)

2009年(4)

2008年(28)

2007年(20)

我的朋友

分类: IT职场

2014-08-24 12:29:02

计算机专业的方向还是比较广泛,在大学阶段刚开始的时候,对于课程的建议:
不包含基础课如数字电路、逻辑、代数等,只涉及专业课程,可以粗略先分为三种类型
一、理论基础
二、基本知识
三、工程实践
这三种类型或者说三个环节,要点是是要结合关联起来学,可以从理论到工程实践,也可以反过来,个人的经验是能把理论的东西变成实践的工程成果锻炼意义最大。
一、理论基础部分,决定你可以看到的高度
      一类是形式语言自动机、离散数学、模式识别、数值分析、概率统计、组合数学和人工智能之类的,这些主要是训练抽象思维能力以及为解决问题提供创新算法的。
      另一类是操作系统、编译原理、计算机系统结构、计算机网络结构的基本原理课程,是对计算系统及运作机制进行整体分析理解的。

二、基本知识技能,决定您能达到的高度
       一类是语言类,C语言、C++、汇编、Java等,掌握一个得心应手的工具
      一类是算法分析、数据结构、数据库等
      三类是其它或者专业方向类的,比如图形图像处理、信息检索、并行计算、仿真

三、工程实践
        . 基本的有软件工程、多媒体基础
        . 前述理论和基本知识的具体实例课程,比如 unix操作系统、网络交换等、网络应用服务(DNS邮件等)
        . 包括一些专业方向类,如网络安全、数据挖掘、嵌入式
      
建议
1、理论方面的建议现在只能给你强调重要性,以及能在实践中体现(解决具体的问题)。
      在理论教材之外,可以推荐的辅助读物(业界实际用的东西),可以先翻翻了解,或者作为课程设计的准备。

     操作系统: 《Linux用户基础》,如果没有接触过,可以先自己学点基础的,比如RedHat 认证教程,图书馆这类书很多,主要是天天用,一般而言,计算机专业还是要习惯用Linux干活,在windows等封闭系统上少花精力。课程大作业如果可以的的话,编写一个简单OS。
     编译原理:这个我自己也没玩好,没有什么可推荐的,有时间了解和使用下《正则表达式》;后面正式学编译原理时候,课程大作业一定要用心做!
     计算机系统结构:教材一般都会偏向以前的大型机或者并行计算的架构,对微机(PC架构)不是重点,这个学习的时候是可以的,但在产业上尤其国内,Intel X86架构是主流地位,可以看看《X86/X64体系探索》,用汇编语言 。
    计算机网络结构:这个方向比较熟悉。在产业上TCP/IP体系及internet已经横扫一切,《TCP/IP协议详解》第一卷是必读的,而且这个方面我觉得是可以先从这本书的实践环节入手,以后再来补理论原理(因为网络是个实践的玩意,理论性并不强,计算机系统结构如果不从事高性能计算,也差不多是这样)。
====================================================
我一个朋友关于专业境界的看法:下面三个方面,了解多少就有多“牛”
1,OS:从CPU加电到启动OS整个过程
2,编译:"hello world!"程序从编写到运行的整个过程
3,网络:一个包从起点到终点的路径的整个过程
=====================================================

2、语言类的话,现在很多大学时C++为主了,个人觉得C++太繁杂,在语言本身上要消耗太多时间,做系统软件的C的比例还是很高,一定要学好C语言吧,K&R的《C程序设计语言 》()及《习题解答》,有英文版,习题全部认真做一遍,习题解答作者网站上有。
    算法分析和数据结构,这个书也很多,都差不太多,准备的时候没必要看太深的,这里面都是常见的数据结构及其基本算法,比如表、链表、树和图之类的,算法分析就是比较算法的优劣吧,这个还是挺重要的。在实际解决问题的时候会是从理论方面来创造出算法,再套在这些基本的数据结构和算法上实现,并分析提高其效率。

3、工程实践方面
      .不要迷信软件工程的各种方法,有经历的人看可以,新手了解一下即可,对问题抽象分析能力等才是关键因素。
      . 不要受媒体或者非职业高手的影响,会误导对技术和方向把握,一些热门流行的工具、技术和架构是专家设计出来给非专业人士使用的。也可以站在更高高度上,从本质和基础去分析(怎么创建这样的流行玩意,怎么忽悠和包装)。
      . Linux已经说了
      . 在大学阶段要积极参与开源项目,要留意你周围导师的开放项目并选择加入,融入开源社区,学会和大牛交流。这个经历非常有价值,切记!
       . 开个博客,记录心得体会及一些有意义的东西,以后写论文和方案就会轻松很多,也是一种思维表达的锻炼。

《软件随想录》作者Joel Spolsky给计算机专业学生的建议
  (1) 毕业前练好写作。 
  (2) 毕业前学好C语言。 
  (3) 毕业前学好微观经济学。 
  (4) 不要因为枯燥就不选修非计算机专业的课程。 
  (5) 选修有大量编程实践的课程。 
  (6) 别担心所有工作都被印度人抢走。 
  (7) 找一份好的暑期实习工作。 
  (8) 寻求专业人士的帮助,培养你的自信心。 

小结:
最后要看自己的初步专业方向以及发展方向,发展方向是个人规划要:去顶级大公司、做研究、创业(合伙人)。
以前写过的两个东西,还可以了解一下:http://blog.chinaunix.net/uid-20535506-id-1931614.html、http://blog.chinaunix.net/uid-20535506-id-1931627.html。
其中反复强调“贯穿的机会”,昨天正好和以前的老板聊这个,也是强调了这点。
阅读(1133) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~