搞了几年IT开发游戏用什么语言了,现在看来除了汇编语言其

查看: 151437|回复: 17
十年研发经验工程师的嵌入式学习书籍大推荐
从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。为什么选择学习嵌入式?嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,同时也是当今IT领域仅存的几个金领职位之一。当前的中国IT人才面临严重的“后继乏人”, 而且这种缺口由于培训缺乏、教育模式等原因造成的,而缺口最大的,就是高级IT人才。如果你从事的IT培训不专业,面对竞争越来越激烈的职场,基本找不到 工作。据专家预测,嵌入式每年人才缺口在30万左右。嵌入式行业平均薪资分布
1.jpg (20.35 KB, 下载次数: 204)
16:29 上传
工欲善其事,必先利其器,除了推荐的书籍外,也推荐一下我用的开发板,我学习用的是飞凌的OK6410,感觉算是入门不错的板子,刚刚看到他们官方微博貌似A8的210和ARM9的2416准备促销呢,有50元的京东购物卡送,想入手的可以关注下。ARM+Linux嵌入式底层内核驱动方向学习总体路线图
2.jpg (27.83 KB, 下载次数: 280)
16:29 上传
附上ARM学习路径图,希望对学习者能有所启发。
基础学习Ⅰ---Linux入门
& && &&&目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而Linux操作系统也只是一个简单的操作系统,简单的使用对于嵌入式开发人 员来说价值并不很高,真正有价值的是掌握Linux的基本服务和Linux的设计理念、思想,这对于嵌入式开发人员的长期发展是很极其重要的。Linux 系统有很多发行版,RedHat、Ubuntu、Fedora等。作为嵌入式开发人员,我们没有必要把精力放到使用哪个Linux发行版上,而是尽快把 Linux系统尽快安装好。如果打算坚持长期学习,那么建议您把自己的电脑做成双系统,而不要在虚拟机上安装。
Ubuntu系统下载地址:A)经典书籍推荐:
3.jpg (17.07 KB, 下载次数: 195)
16:29 上传
B)经典学习视频推荐:Linux操作系统入门基础学习Ⅱ---C语言& & C语言是嵌入式开发必备的基础知识。在Linux下从事C语言的开发,你会觉得更为顺畅、更为自然,因为C语言是因unix的出现而诞生的,Linux内 核几乎完全是由C语言编写完成的。学习C语言,如果不会用指针,那么就称不上会C语言。做嵌入式开发指针更显得尤为重要,所以做嵌入式开发除了掌握位操 作、限定词等,对指针的掌握是不可或缺的。而且要掌握多级指针、函数指针等等。涉及到指针,那么就会讲到内存分配。在大学中,学习C语言一般的学习很少讲 到内存分配,但是如果期望从事嵌入式开发,那么就必须懂得C语言是怎么做内存分配管理的。指针之外,还要学习模块化编译处理、指针与数组、gcc、 Makefile、GDB、递归、结构体、宏定义使用等。C语言是整栋嵌入式大厦的基础,所以在学习嵌入式时,必须把C语言重视起来,多敲代码,多练。一 名优秀的程序员必定是通过“体力劳动”再转向“脑力劳动的”,这也是为什么我们要有“写不出代码=0”思想的原因所在。
& & 如 果说C语言相当于文字,那么数据结构就相当于在造句、写文章。代码质量有一部分取决于对数据结构的掌握程度。在数据结构部分我们要把链表、树、排序作 为学习重点。而且我们也可以查看一些比较常见的函数(如strcopy、strcat、printf等)在内核中是如何实现的,以及编写代码模拟堆栈,这 不仅有利于编写代码质量的提高,而且还可以初步了解Linux内核精髓,为今后工作打下坚实的基础。
& && &&&C++、QT在嵌入式开发领域,是用来开发图形界面的,希望从事上层应用开发及图形界面,那么在C++、QT方面需要比较深入的学习。&&A)经典书籍推荐:& &
4.jpg (34.24 KB, 下载次数: 250)
16:29 上传
5.jpg (23.91 KB, 下载次数: 199)
16:29 上传
B)经典学习视频推荐:C语言入门C)经典学习案例:
1、学员成绩管理系统2、计算器3、电子词典4、文件压缩器基础进阶---Linux应用程序设计
& &&&Linux的思想源于Unix。Linux继承了Unix的优点,但 是没有用UNIX的代码,所有程序都是重新编写的,而且Linux与Unix的源码级兼容。Linux是类Unix操作系统。Linux 不仅符合 POSIX 标准,而且还包括其它 UNIX 标准的多种特性,例如,UNIX 的 System V 接口文档(System V Interface Document,SVID)和伯克利软件发布(Berkeley Software Distribution,BSD)版本。Linux 采用了折衷的策略,包含了 UNIX 几个典型特性当中最实用的一些功能:
& &&&Linux 采用了 SVR4 的进程间通信(IPC)机制:共享内存、消息队列、信号。
& &&&Linux 支持 BSD Socket 网络编程接口。
& &&&许多 Linux 发行版采用 SysV init 机制,支持运行级别。
此阶段的学习是从事嵌入式上层应用开发以及底层开发人员的必修课程。进程、线程、信号、文件锁、socket是这部分内容的重点。要把这些内容学的透彻非 要下些苦功夫不可。而且函数是系统提供给我们的,难免要对计算机系统深入理解一番。TCP/IP协议也是要涉及到的。有问题建议用Google搜索及登陆 chinaunix论坛。通过这个阶段的学习,我们就可以初步实现一些应用程序的开发了,如做自己的shell命令解析器、简单的聊天软件、视频多播等。
A)经典书籍推荐:
6.jpg (32.81 KB, 下载次数: 202)
16:29 上传
B)经典学习视频推荐:Linux环境高级编程C)经典学习案例:
1、串口监听程序& &2、图片浏览器& && &3、MP3播放器& && &&&4、聊天程序& && && &5、 ftp程序
6、音频广播程序& &7、ping的实现& &&&8、DDos攻击程序& &9、ARP攻击程序嵌入式入门---ARM体系结构
& & 从这部分开始,我们将真正进入嵌入式开发学习阶段。首先我们要知道采用哪种处理器。目前通用嵌入式处理器有ARM、MIPS、PowerPC、X86等。 从市场产品占有率上看,ARM处理器远远领先于同类其它处理器,并逐步掠夺传统51单片机和英特尔市场份额。据招聘网站统计,目前用人单位在技术水平上要 求开发人员掌握ARM9及以上平台的开发技术。ARM公司在发布ARM11产品后,更改以往的数字标记更新方式,转为发布ARM Cortex。但是Cortex并不是更高端,而是全新系列的处理器,比如Cortex M3,它主要应用于机械加工、工控领域,目的是取代以前的ARM7处理器。
& & 在开始学习前,建议有一块自己的开发板,目前ARM9 2440的开发板价格在400-600元之间,ARM11 6410的开发板价格要高一些,最便宜的也要1200元以上。在此,提醒大家尽量不要买mini开发板,虽然mini开发板的价格要便宜些,但是与正常开 发板相比,mini板功能是不完善的。嵌入式汇编有别于X86汇编,所以如果以前没有接触过汇编语言,那么没有必要先去学X86汇编再学嵌入式汇编,可以 直接学习嵌入式汇编。除了汇编我们还要学习ARM指令集。有了开发板,我们要下载相对应处理器的DataSheet及开发板电路原理图。ARM体系结构的 学习我们是不能完全照抄别人代码的,因为我们自己手中的开发板及处理器与别人是不同的,除非所用的代码是根据你手中的开发板来编写的。所以,我们要先去看 书、看视频资料理解原理及工作方式等,然后根据自己开发板的电路原理图和DataSheet来编写代码,达到理解外围设备工作原理和操作硬件的目的。
7.jpg (18.65 KB, 下载次数: 204)
16:29 上传
B)经典学习视频推荐:
1)&&嵌入式扫盲篇——十问嵌入式2)ARM体系结构与Bootloader开发3)嵌入式ARM Linux开发——ARM汇编C)经典学习案例:
1. ARM模拟器开发& && & 2. Watchdog控制程序& && &&&3. RTC时钟控制程序
4. Uart控制程序& && && && &5. LCD控制程序& && && && && && &&&6. 触摸屏控制程序
7. DMA控制程序& && && & 8. 音频控制程序& && && && && && &&&9. 网卡控制程序
10. 文件系统制作& && &&&11. ARM-Linux移植嵌入式提升---Linux内核、驱动
& && && &众所周知嵌入式开发包含至少两个级别,一个是嵌入式内核驱动级别,另外一个是嵌入式应用层开发,而薪酬高的、最具价值的无疑是嵌入式内核驱动级别的开发 者。真正的嵌入式高手或者企业中的核心开发人员,一定是嵌入式底层的内核驱动开发工程师,这些工程师成长比较缓慢,造成对内核驱动人才的大量需求,所以这 些人才是真正企业需要的香饽饽。掌握驱动开发会让自己的核心能力有极大的飞跃,真正实现嵌入式最有价值的就业。
& && && &由于Linux内核更新速度很快,书籍和视频不可能及时更新,所以我们再看书和视频后,要自己动手下载内核源码包,去看内核中的代码,在这里可以充分检验 C语言、数据结构等基础知识的掌握程度。而驱动的编写还是要借助外设硬件电路原理图和芯片手册。内核和驱动的知识是让我们根据不同的硬件,编写对应的驱 动、合理剪裁内核、制作文件系统,并移植到硬件开发板上。如果手里有ARM11 6410及以上的开发板,可以试试在裸板上编写驱动并移植Android系统到开发板上吧。
8.jpg (31.96 KB, 下载次数: 190)
16:29 上传
B)经典学习案例:
1. GPIO驱动& && && && && & 2. RTC时钟驱动& &3. WatchDog驱动& &4. Udev移植& && &5. 触摸屏输入设备驱动
6. LCD显示设备驱动& &7. DMA驱动& && &&&8. 音频设备驱动& && &&&9. Nand Flash块设备驱动&&10. 网络设备驱动
硬件工程师的书籍(等等)
9.jpg (42.55 KB, 下载次数: 152)
16:29 上传
10.jpg (43.45 KB, 下载次数: 171)
16:29 上传
楼主太好了,谢谢
感谢楼主分享
楼主写的很详细很认真负责,感谢~有什么不清楚的,希望以后能跟楼主多学习
很感谢楼主的分享,会尽力学习的!希望成功!
楼主写的真的好用心,收益颇多,十分感谢啊,对我这个还处在入门级别的小白来说真的是像一盏路灯一样指明了方向
华清远见的书都是值得看的。要培训的话,也可以来华清远见星创客
挺好的,非常感谢
谢谢楼主,写的很好,很有帮助
谢谢楼主,写的很好,很有帮助
非常感谢楼主分享
本帖最后由 心在路上 于
13:58 编辑
boyjiang 发表于
感谢楼主分享
深有同感,感谢分享,对于嵌入式工程师来说学习理论知识是很重的,另外,学习嵌入式需要又一个合理的学习路线,推荐区星创客看看
嵌入式智能项目实践展示,开源产品教学视频:www点embedu.org/projects/?szt2h
感谢楼主分享,不过视屏都在哪儿看呢?
楼主&&从嵌入式应用层开发方向转内核驱动方向容易吗&&我是新手 想从比较简单容易就业的应用层开发学起&&但是我想做内核驱动&&所以 对路线比较懵逼
感谢楼主这样提纲挈领的分析和指导,牛人都是乐于奉献的啊
嵌入式书籍自行下载地址&&download.hqyj.com/download/ebooks.htm?lbj.51H
Powered by内容字号:
段落设置:
字体设置:
精准搜索请尝试:
2016年7月编程语言排行榜: 汇编语言再次排入前十
来源:作者:阿华责编:阿华
7月11日消息,TIBOE编程语言社区刚刚公布了最新一期的编程语言流行排行榜,略出人意料的是,生产力低下的汇编语言再次进入了TIBOE排行榜的前十之列。外界认为,汇编语言之所以能够再次流行起来,应该与如今大量增长的小型智能设备关系密切,例如智能牙刷或者是咖啡机等等,它们都在运行汇编语言。虽然生产力低下且容易导致各种编程语言错误,但要说性能的话,其它语言仍然无法媲美。在最新一期的TIBOE排行榜中,排名前十位的编程语言分别是Java、C、C++、Python、C#、PHP、JavaScript、VB.NET、Perl、Assembly Language(汇编语言)。TIBOE排行榜主要基于经验的程序员、热门课程以及第三方厂商数量,并通过搜索引擎的排名信息等综合得出,只是反映某个编程语言的热门程度,并不能就此判定一门编程语言的好坏。
软媒旗下软件:
IT之家,软媒旗下科技门户网站 - 爱科技,爱这里。
Copyright (C) , All Rights Reserved.10大汇编语言 在IT纵横【软件工程师吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:20,324贴子:
10大汇编语言 在IT纵横
开发者是否真得还需要一种新得编程语言呢?选择已经有那么多了,现有得语言都让开发者应接不暇,可是各种新得编程语言还是在以惊人得速度产生!答案就是随着多核CPU、云计算、移动及分布式结构得不断发展,简单得语法已经不能适用,我们需要更加强大得语言!而以下10种编程语言,或正在走向成熟,或还在开发,可是它们都以全新得视角演绎着软件开发得艺术,每一种语言,都有可能打开编程世界得新大门!No.1:DartJavaScript在Web得交互性方面运用的很好,但是当Web应用程序得代码行过多时,它得弱点就会显现出来,因此,谷歌推出了新得结构化Web编程语言Dart用以替代JavaScript。与JavaScript标准得语法不同得是,Dart是通过类和接口来定义对象,并且允许编程者自由地定义静态变量,这使的Dart既能如JavaScript般流畅,又能更快更容易地存储且不易受干扰。此外,CSDN软件研发频道之前编译得Dart比JavaScript更酷得10个理由会让你了解到更多Dart得便捷性。No.2:CeylonGavin King 称Ceylon是由红帽公司开发,被称之为“Java 杀手”。King是一名Java爱好者,他认为Java还有很大得改进空间。比如,缺少优秀得高阶函数,对元编程薄弱得支持,缺乏对结构数据定义得说镊等等,Ceylon就是为了解决这些问题而产生得。现在Ceylon编译器已经支持在JVM上运行输出字符串,当然Ceylon得目标不只这些,它得目标是开发出新得Ceylon SDK来代替Java SDK。 No.3:GoGo是一门从应用程序开发到系统编程都通用得程序设计语言。从某种程度上来说,它更像是C或者C++,但又像Java、C#一样有垃圾回收机制,运行时间映射及并行支持诸如此类得先进特点。同时,Go很容易编写,它像C却又没有C得冗长古板。Go开发团队想开发出一种愉快得编程语言,身为动态脚本语言又兼具编译语言得特性。不过,Go目前还是在继续开发中,对于它得应用规则也随时可能改变。此外,谷歌已经开发出相应得工具和编译器。No.4:F#虽然函数式程序设计在计算机科学家及学术界里很流行,但是纯函数式语言却很难跟现实世界得软件开发相结合。 Microsoft开发得F#是包含函数式和实际应用得优秀语言,它和其他CLR(公共语言运行库)语言使用相同得函数库和特点。 不过F#有自己得更有趣得语法特点,如丰富得数据类型会做科学得分类,还提供了一些设计有助于异步I/O、CPU并行化、卸载GPU得处理等。现在Microsoft已经在基于Apache开源许可证下开发了F#编译器及核函数库,大家可以免费使用,甚至可运行在MAC和Linux系统上。 No.5:OpaOpa提出了一项崭新得Web编程规范,而这或将一举消灭其他大部分得编程语言。在Opa应用程序中,客户端得UI、服务器端得逻辑,以及数据库中得I/O都可以用简单得编程语言Opa执行。它将客户端和服务端得结构框架绑定在一起。当然,这还需要后台特殊技术得支持。Opa得运行环境是绑定了它得Web服务器和数据库管理系统,其中任一部分都不能随意取代。现在,Opa对64位得Linux和Mac OSX平台是开源,以后会有更多得接口来使用。No.6:FantomFantom是专门为跨平台得移植而设计得。Fantom不仅包含了可以在JVM或者.NET CLI中运行得编译器,也包括了一系列从Java和.NET API中抽象出来得API,从而创建了一个额外得可移植层。 现在有更多得计划要把Fantom 这种移植性蔓延开。 不过可移植性并不是Fantom存在得唯一原因。它在继承一些像C这样得特性时,也提高了支持其它语言得质量。
摆脱自学软件开发烦恼,来北大青鸟培训软件开发,北大青鸟推出新课程,涵盖全新前沿技术,满足企业需求,培训成为企业需要的人才,学软件开发就来北大青鸟,现在报名有优惠!
Fantom在Academic 3.0下开源,支持在Windows和Unix平台上使用。No.7:Zimbu作为Bram Moolenaar得产物,Zimbu吸收了以前各种语言得特点,目标是成为一种快速、简洁、轻便、易读、可适用于从GUI应用程序到OS内核得语言。 由于Zimbu具备多种特性,而语法本身是独一无二得。它不仅有着像C一样得表达式和运算符,也有自己得关键字、数据类型和分程序结构。此外,还支持内存管理、线程。良好得可移植性也是Zimbu得一个重要得特性。虽然Zimbu是编译语言,但是它输出得是ANSI C代码。不幸得,Zimbu现还处于初期阶段。但是如果你有兴趣体验得话,一些基本得工具在Apache 许可下已经可以使用了。No.8:X10并行处理已经成为了软件开发得趋势。因此,IBM研究院开发了X10来顺应这种趋势,希望提高开发者10倍得效率。 X10使用全局地址空间分区(PGAS)得编程模式来进行并行管理。代码和数据以单位得形式被分开存储,这有利于在处理器上高性能得将单线程转为多线程。 将来X10还会实现跟Java得交互使用。现在X10还在改善当中,但是已经相当成熟了,在Linux、Mac OS X 及Windows等多种平台上都可以使用。No.9:haXehaXe不仅是一门便捷得语言,更是在不同得操作环境间使用得跨平台语言,从Native binaries到解释器再到虚拟机。开发者可以在haXe里编写代码,然后将它们编译成目标代码。haXe标准库是这门核心语言得坚实后盾,它能在每个目标上分别运行,然后再使用特殊目标库,从而来体现每个平台得不同之处。haXe有一系列优点,而它最主要得优势莫过于将目标平台上所固有得问题给否定掉。虽然haXe现在还仍处于开发阶段,但它得开发者已经将其用到商业上和Game工作室Motion Twin。在开源许可证下,它可适用于Linux,Mac OS X及Windows。No.10:ChapelChapel作为Cray得第一门独创性得编程语言,是为超级计算和集群而设计得。 Chapel得语法吸收多方得精华,除了通常得语言(C,C++,JAVA),它还从科学程序设计语言中借鉴概念,它得并行处理得特点则是受ZPL及高性能得程式语言得影响。 Chapel一个最吸引人得特点是支持“多重解析编程”。Chapel得开发还在继续。现在,它可以在Cray得超级计算机和多数高性能得集群上使用,但它对大部分类似Unix系统来说也是相当便捷得。源代码在BSD开源许可下可使用。
以上信息全部来源于一览软件英才网
软件行业找工作的好帮手
贴吧热议榜
使用签名档&&
保存至快速回贴2、汇编语言能做什么(摘自论坛)_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
2、汇编语言能做什么(摘自论坛)
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢原谅这一切所有的不对
从程序员到技术总监,分享10年开发经验
在中国有很多人都认为IT行为是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有10年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。
  明确入行的目的
  很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML,DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容易找到工作,收入比普通的工作还要高一些,所以成为了很多高校毕业生的选择。如果您只是抱着这样一个心态来入行的话,那阁下可真的要小心了。因为干IT这一行竞争本来就比较激烈,特别是页面设计这方面,能够开发的人很多,所以为了节省成本,大部分公司都会在需要的时候才招聘这类人员;在没有订单的时候,一些小公司还可能找各类的借口或者以降薪的手段去开除这类员工。而在招聘信息上常常会看到“招聘页面设计师,条件:30岁以下……欢迎应届毕业生前来应聘”这样一条,因为这一类工员对技术上的要求并不高,找应届生可以节约成本。所以在下觉得“IT行业是吃青春饭的”这句话只是对着以上这类人所说的,如果阁下缺乏“进取之心”,而只抱着“收入高,容易找工作”这样的态度而入行,那“IT行业是吃青春饭”将会应验了。
  选择合适的工具
  JAVA、C#、PHP、C++、VB……10多种热门的开发语言,哪一种最有发展潜力呢?其实开发语言只不过是一个工具,“与其分散进攻,不如全力一击”,无论是哪一种开发语言,只要您全力地去学习,到有了一定的熟悉程度的时候,要学习另一种的语言也是轻而易举的事情。开发语言主要分为三大类:
  1. 网络开发
  现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。
  2. 企业软件开发
  JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。
  3. 系统软件
  C语言、C++、Objective-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
  当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。但所以在刚入门的时候,建议您先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
  明确发展方向
  当您对某种开发语言已经有了一定的了解,开始觉得自己如同“行尸走肉”,成为一个开发工具的时候,那您就应该要明确一下自己的发展方向了。
  平常在公司,您可以看到做UI层的开发人员大多数都有20多岁,他们充满干劲,而且没有家庭负担,在两年前ASP.NET MVC 、Silverlight等刚出现的时候,他们可以在晚上回家的时候买几本书或者直接上网看看,研究三五个星期以后,对需要用到的技术就已经有一定的了解了。而年过30的人多数是已经成家了,他们每天9:00点上班唯一的希望就是快些到6:00点,能回家吃饭。吃完饭只想陪孩子玩一下,看看孩子的功课,对新增的技术缺乏了学习的欲望。所以很多接近30岁的程序员都有着一种逼迫感(包括30岁时候的我自己),再过几年应该怎么办?这时候,您就更应该明确一下目标,努力向自己的发展方向前进了。归纳一下,可从下面几项里选择适合自己的一条道路:
  1. 从技术向业务过渡
  在国外,很多发达国家都很重视人才,一个高级的程序员与一个Project Manager收入相差一般不超过15%。但中国是世界上人口最多的国家,国内人才众多,所以人才滥用的情况经常可以看到。一个小公司的开发部里面经常会见到新面孔,但PM却不会常换。因为做老板的对技术是一窍不通,依他们看来只到拉住PM的心,那技术方面方面就能搞得定,至于技术部要换人,他们根本不需要费力气去管。所以从一个技术员过渡到一个PM是向前发展的一个选择,但开发人员也需要知道,要成为一个PM不单单是使用技术,而更重要的是对管理方面的认识。一个PM主要的工作是组织团队,控制成本,管理业务,控制项目进度,与客户进行沟通,协调工作,定期进行工作报告等。所以要成为一个成功的PM更要重视组织能力,PM必须能提高团队的积极性,发挥团队所长,在有限的开发资源前提下为公司得到最大程度上的利润。成为一个PM后,通常不需要直接接触技术开发,而着重管理的是业务发展,但PM对技术也需要有一定的了解(在下曾经为PM对技术了解的必要性写过一篇文章,得到很多支持但也惹来不少的争议)。在这里我还是要强调自己的观点:要成为一个成功的PM最重视的是管理能力,但对技术也应该有足够的了解,因为这是与团队成员沟通的桥梁,只有这样才能与整个团队的成员有着紧密的结合,让团队成员感觉到他们自己存在的意义,从而调动团队的积极性,而不是漠视技术人员的存在。技术并非成为一个成功PM的充分条件但却是必要条件!
  2. 从程序员向技术管理发展
  其实一个Team Leader的职责与ProjectManager相像,但Team Leader更着重于技术开发方面,通常一个大型项目都会有一两个开发团队由Team Leader带领,负责开发核心部分,而其它部分分派给不同开发小组或者分派给外包公司。在网上常看到几句话,贴切地形容了PM与TL的区别:“技术人员乐于被领导;但他们不喜欢被管理,不喜欢像牛一样被驱赶或指挥。管理者强迫人们服从他们的命令,而领导者则会带领他们一起工作。管理是客观的,没有个人感情因素,它假定被管理者没有思想和感受,被告知要做什么和该如何做。领导是引领、引导,它激励人们达成目标。领导力是带有强烈个人感情色彩的,它不是你能命令的,也不是你能测量评估和测试的。”
  无论是PM与TL,对业务与技术都要有深入的了解,只是PM更侧重于业务的管理,盈利的多少,风险的大小等等,而TL则侧重于项目的成本,开发的难度,软件的架构等技术方面的问题。在某些人眼中,技术与管理就像鱼与熊掌,不可兼得,但依在下看来,两者却是秤不离砣,密不可分。只要及时提升自己对技术与管理的认识,不断地向深一层发展,要从程序员提升到技术管理人员只是时间的问题。打个比方,一个普通的.NET程序员,开始可能限制于ASP.NET的页面开发,但一旦他有了发展之心,他自然会对ASP.NET
MVC、Silverlight、WinForm、WPF这些UI的开发手法感到兴趣,学习不需要多少时间,他可能就会认识这些UI开发只不过是一些工具,其实在开发原理上没什么区别。接着他就会向深一层的通讯模式进行了解,认识TCP/IP、Web Service、WCF、Remoting这些常用到的通讯方式,这时候他可能已经感觉到自己对开发技术有了进一步的了解。进而向工作流、设计模式、面向对象设计、领域驱动设计、面向服务开发等高层次进发,最后成为技术的领导者。上面只是一个比喻,但要注意的是,在学习的时期必须注意的是与同事之间沟通,很多的开发人员喜欢独来独往,开发的项目总想一个人搞定,不受外界的干扰。但要明白,就算你有天大的本事,一项大型的项目也不可能由你一个人全扛着。所以团队的合作性与同事间的沟通是必要的,这也是成功一个TL的必要条件。
  3. 单方面向技术发展
  能成功进行技术开发的尖端人才,这是在下最向往的工作,却也没本事登上这个位置。很多从事开发的人都会认为,业务总会带着“金钱的味道”,老板从来不管开发是否合符开发原则,是否经过必要测试,他们只会在客户面前无尽地吹嘘,项目到期能成功交货,只要不出什么大问题那这个项目就算成功了。其实我们也要明白:开发项目最终目标是为了赚钱,在开发过程中对项目成本的限制和效率的控制这也是必须,所以这才需要管理人员对项目进行管理。但开发人员也很想避开这“金钱的尘嚣”,全心投入到技术的世界当中。所以对技术有着浓厚兴趣的人,往往会深入地研究某一项技术,成为技术上的精英。但在这里说一句令人心淡的话:中国已经属于是世界上第二大经济体同盟国,但国民生产总值主要来源于第三方加工产业方面。中国可以说是人才济济,但却在高新产业上却比发达国家落后。这几年的确看到我们国家在高新科技上有着质的飞跃,但跟欧美发达国家还有着一段距离。所以想在中国成为尖端技术的人才,无可否定比在国外要难。依在下看来,要想成为尖端的开发者,必须对C、C++、汇编语言、嵌入式开发、WindowsAPI、Linux
API这些底层技术有着深入的了解。要知道JAVA、.NET……等这些之所以称为高级开发语言,并不是指它们比C、C++、汇编语言更高级,而是指它们封装了C、C++等等的功能,更适合用于企业软件的开发,使开发变得简单。但如果要开发一些底层的软件,大型的系统的时候,就必须用到C、C++、汇编等开发语言,这是成功尖端人才的一个条件。
  确定未来的目标
  人是从历练中成长的,古人云:三十而立,形容的不是一个人的社会地位,经济来源,而是形容一个人对未来的目标,对人生的意向。要成为一个成功人,就应该早日为自己定下长期的发展目标,作为一个开发者也当如此。随着人的性格,取向各有不同,大家为自己所选择的路也有不同:
  1. 自立门户,勇敢创业
  快30岁了,很多人会认为要想真正赚得了钱,就应该自立门户,为自己创业建立一个基础。像北京、上海、广州这些一级城市,要买房子,一手楼基本要在2万~4万元/平方米左右,而在一家普通的IT公司当上一个项目经理,基本收入一般都在1.5万~3万之间(除非在大型的跨国企业内工作,那另当别论),要买一间100平方米左右的房子,就算不吃不喝也几乎要10年的年薪,所以选择自主创业,是很多IT开发人员的一个未来目标,想要达到这个目标,就应该更多地把业务作为重点。不可否认的一件事,在中国社会里很多时候讲的是“关系”,即使这30年的改革开放使中国的经济蓬勃地发展起来,但几千年来留下的歪风还是不能完全的磨灭。所以想要创业的人事建议你要多跟客户打好关系,与合作伙伴保持互利互动的模式,这将有利于日后事业的发展。
  2. 急流勇退,退居二线
  这也是不少人的选择。很多人在有了家庭以后,感觉到压力太大,人的一生并非只有事业,他们想把更多时间用于对亲人的照顾,对孩子的关心上。所以很多人会选择一份像系统分析、系统维护、高校教师、专业学院讲师这一类的工作。收入稳定,而且往往没有一线开发人员那么大的压力。
  3. 不懈努力,更进一步
  无论你是一个Project Manager或者是TeamLeader,如果你想继续晋升一级,那还是会两极分化的。从一个PM到一间公司的管理层,那所面对的事件会有很多变化。一个公司的总经理,要管理的不再是一到两个项目的成本,而是整个部门的运作,整间公司的业务流程,所以要肩负的任务会更重。在下曾经有一位上司彭博士,他是企业的最高领导人,年薪超过三百万,而且在报纸杂志上也曾经亮过相。平常只会在某些会议上轻轻地亮下相,说两句讲词,平常的公司运作与业务管理都不需要他直接执行。这并不是说一个作为管理层很清闲,因为他们要面对的是更多的社会关系,与公司合作企业的联系上。这跟一个PM的工作有很大的区别,所以要从一个PM晋升到管理层,那可是要付出更多的努力与汗水。
  如果要从Team Leader上升为一个技术总监,那工作的方向也有所改变。像之前所说:一个TL可能更重视的是技术层面,讲求与团队之间的互动合作性,更注重的是开发的完善。而一个技术总监就无需要直接参加某个项目的开发,而注意的是开发的效率与成果,如何合理使用有限的开发资源,控制开发的风险和可能带来的效果。
  发展感受
  经历了8年多时间,在下从一个程序员到一个项目经理,之间经过很多的曲折,但因为每一个人的际遇都有所不同,所走的路也有不同,正所谓条条大路通罗马,成功的路不止一条,在下也不想令各位误解,而只想为大家说一下我的发展方向。如果您是一位开发人员,“程序员-&架构师-&TeamLeader(Project Manager)-&技术总监”是一条不错路,这也是在下选择的路。在我国,想要进一步提升自己,无论你想是以技术为重点还是以业务为重点,都离不开管理二字。在一些大型的企业,一个团队往往会配备一个PM与一个架构师,尽管两个人负责的任务各有不同,但你会看到一个架构师的收入往往不如一个PM,PM往往是这个团队的核心领导者,是关键人物。因为公司能否赚钱,PM有着重要的作用。PM与TL并没有绝对的区别,而且在一些中小型企业,一个开发团队只有3~5人,一个TL往往会兼备业务处理、成本控件、架构设计、开发管理等多项任务。所以在下会把Team
Leader与Project Manager定于同一层次,一个公司的老板往往不会知道团队的架构师、程序员是何人,而只会向PM询问项目的进度,所以只有晋升到这个层次,才有机会进一步提升管理能力,让自己有上升的空间。至于要成为一个技术总监,那要求就不再单单是对单个项目的管理,而应该更则重于新兴技术的引用,开发资源的合理利用,对开发项目敏捷性的处理等等,对此在下也在试探当中,未敢多言。
与编程牵手 和代码共眠 从程序员到技术总监
从业IT十年,从程序员成为技术总监,现在回头看一看,这条路也伴随国内的IT一起风雨兼程10年,对IT技术由其是IT的纯软件开发这一块,向即将要从事软件技术研发的朋友谈一谈我的看法:
一.认清当前IT形势,选择合适的技术方向和技术起点
估计大家都多多少少知道,这个IT行业知识的更新很快,竞争很急烈.如果你对自己以后发展的方向在从业前有一个清析的计划或认识,相信你会比别人走得更好,走得更远,赚的钱也更多...呵呵
IT软件从业的方向,一般都会有这些机会:产品售前(市场,业务),产品开发(编码,设计,测试),产品售后(支持,实施),产品管理(项目管理等)
A.产品售前(市场,业务)
要从事这一块的工作,主要是在软件开发的前期(无产品),或者合同签订前期(有产品).一般要求对相关的业务和技术都要求很高,这可不仅仅是要求人际关系,交际能力.要想别人买你的产品,你得以专业的产品品质为后台,以专业的谈吐,专业的技术和专业的业务理解能力来取胜.
从业者要求:要求从业者要有一定的社会经验,技术经验或业务经历,或一定的社会圈子和交际能力.
建议:刚刚从学校毕业的朋友或不符合上面条件的朋友最好要考虑清楚了.当然这世上没有什么绝对的东西,就看你自己了.
现实情况:据我所了解的,作这一块的都会是公司一些高层(有关系,有经验)和业务专家或特殊背景的人员等.
B.产品开发(编码,设计,测试)这一块的工作,当然是IT从业大军的主力了,但也得要考虑清楚.
如果你要作设计师,或测试,最好先作一段时间的编码,一个好的设计师是不可能不精通相关技术平台的!国外好的测试人员也几乎是从开发人员中选出来的,基至是软件开发高手.
a.代码编写
在这一个职业选择范围内最好是从代码编写开始.当然你也可以先作测试,看看人家是怎么写代码的是如何来作这个软件的,借用人家的测试经验也可以,以后有机会再来编一段时间的代码也行.有时自己去写一个软件也可以,所以作编码和测试都是一个双向交互的.而不是编码在前测试在后的.作代码的编写最好自己先看看别人的软件,或由一些高手带着指导一下,现在技术的学习都不成问题,关健是要连成一条线来学习和思考就会有一定的局限了.所以要熟悉整个的项目流程或业务流程不是靠个人编码或在培训班学一下就能解决的,个人的技术学习和培训班大部分只能解决技术的学习问题,但作软件不仅是要技术呀.三分技术七分业务说得不为过,业务的学习也是一个开发人员所要必备的,如果你在不熟悉业务细节之前建议你不要急着去写代码,那样肯定会是对以后软件的影响很大.先要熟悉一下业务.所以软件开发人员掌握一门技术平台和语言是必备条件但同时也必须要有一定的业务知识,这样才是一个合格的软件开发人员.当然精通软件编码,懂设计,熟悉业务,熟悉软件项目开发流程的软件开发人员是优秀的,那是高级研发人员的必备条件.如果你才入门或转行或刚毕业,建议从基础的代码编写开始,跟着高手或找一些成熟的项目多学习,
b.软件设计
当然这个职业要求行业的经验,技术经验都要有一定的基础,薪水一般也会高很多,所以也是一些开发人员热烈追逐的目标.但一个好的设计师不是一二年所能练就的,精通编码,熟练设计模式和公司所采用的技术平台,熟练一些设计理论并实际多运用,熟练公司业务,其实这个层面的压力也最大,一个好的软件在设计上的比重几乎要占到七成.
建议刚毕业的朋友或软件初学者不要在这一块来凑热闹,即使你作成了设计师,但在我眼中看来你也不是一个合格的设计师...当然你有这个能力来作设计师就要恭喜你了.
c.软件测试
熟练软件测试的各种理论或实际运用,也要熟悉编码技术及相关的技术平台,熟练掌握业务.软件测试中一般都会有:
单元测试,要求你熟练开发技术进行跟踪调试,也就是白盒测试了
集成测试,对整个项目流程的测试,要求掌握业务知识,对设计的软件能作功能上的测试或压力测试等 ,属黑盒测试
确认测试,对业务要很熟悉,测试软件是否完全满足了客户的业务需求.
1.熟练一种技术平台,熟悉一种业务
刚入门的朋友很容易犯的一个毛病是,熟练:VB,VC,.NET,JAVA,C++,C,Dephi,PB,几乎市场上要用的他全部会,唉,如果我看到他的简历上有这么一句话,这个人肯定不会在我考虑的范围了.现在全球用得最广最多的技术平台体系也就三大体系:
sun的J2EE技术体系(JAVA):在高安全性,高性能上更胜一步,中高端市场上用得多
微软件的技术体系(C++,.NET,c#,VB):在中,低端市场占绝对优势,也是全球个人电脑操作平台用户最多的.
CORBA技术体系统(一种分布式技术体系和标准),全称:Common Object Request BrokerArchitecture:公共对象请求代理结构,可以用不同的编程语言写成,运行在不同的操作系统上,存在于不同的机器上。一般介于底层和上层管理软件之间,
其他的还会包括底层开发:C,汇编,属纯底层的开发,当然要求技术的起点和业务背景更强,最好是学的专业:电子电气,嵌入式行业,机械制造,数据采集等...看中你想要从事的技术体系,选好一门语言工具,好好上路吧...:)
永远要记住:你什么都想学,你什么都学不精
2.从基础入手,不要好高鹜远,眼高手低,要与实际结合
C.产品售后(支持,实施)
这一块对于开发技术的要求来讲不是那么明显,主要工作会在软件开发后的工作,跟客户打交道多,但更多要求体现在对业务的把握和客户的交际上.有些软件产品业务比较成熟,如果参与这一阶段的工作,可以快速学习很多的业务知识,积累客户交往的经验.
建议:刚入门或刚毕业的朋友,可以在这个工作上多选择,等待时机成熟,立马杀入软件的开发或设计阶段,当然,这一块的工作作得好也不容易,如果适合你作,工作环境或工资都不错你就大可不必多想了... 
D.产品管理(项目管理等)
这一块的工作主要体现在管理上,当然适合有一定经验或管理能力的人员来担当,
最后的技术从业方向总结:
技术型:先选择好一种技术平台,熟练一种开发语言和数据库...专业专注的搞几年再说        
技术+管理型:如果你有一定的技术经验了,并且人际交往,管理能力不错,你就可以向这个方向发展        
技术+业务型:精通一种技术平台,精通一种业务,好好搞,这种人才最受欢迎...        
管理型: 如果你有一定的社会经验,从业经验,如果人际交往,管理能力还可以,老板也喜欢,就搞这个        
业务型(市场):如果你对业务很感兴趣,跟客户的交往等也不错,你可以选择了,有适合的专业技术就更能锦上添花了        
技术+市场+管理:老大的位置....:)
文章出自:
假如我是一个项目总监/经理——我手写我心
技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流(一)
35岁程序员的独家面试经历
程序员:你30岁前的职业规划是什么?未来的职业规划又是什么?
没有更多推荐了,

我要回帖

更多关于 搞it的女孩子 的文章

 

随机推荐