㈠ 给程序员同学的喝茶建议
字数1500 预计阅读时间5分钟
程序员界有一句特别牛的话,叫
"Write the code . Change the world"
现实世界中还有一个与程序员同学日常生活息息相关的词叫"996"
什么是996呢?它是指从早上九点工作到晚上九点,一个星期工作六天。光看这个解释,就感觉到工作强度大了吧。而实际情况是,大部分程序员的工作时长比996更长,加班到凌晨一两点,是家常便饭,偶尔还要通宵加个班。
除了工作时间长以外,程序员同时还要面对比较大的工作压力。因为他们经常会面临项目周期的压缩和项目需求的变化。除此以外还经常需要处理很多突发的问题,可以说身心都处在高强度之中。同时因为工作环境的原因,程序员每天还要面对电脑的辐射。
有些同学为了提神选择了喝咖啡或者喝茶。另外有些同学提神的同时还想要养生就选择了只喝茶。中国可是茶之大国,茶的选择是多种多样的,不像国外的选择很单一,例如欧美主要是红茶,日本主要是绿茶。中国的六大茶类就像六大门派一样,个个出类拔萃。
那我们程序员同学该喝什么茶呢?
就提神来这一效果说,茶叶和咖啡能提神,都是因为咖啡因在起作用。咖啡因有个特点是它带给我们的口感是苦的。我们所有的茶叶里面都含有咖啡因,所以基本上所有的茶都是可以提神的。
那想要提神效果好,该喝什么茶呢?就实际效果来说绿茶的提神效果是比较好的。
那想要提神效果特别好,该如何选择呢?从理论上讲,咖啡因含量越高的茶,提神的效果越好。先从地理位置上说,科学研究表明地理位置上越往南方,茶叶中咖啡因的含量越高。所以要想提神效果更好,可以试试云南的绿茶“滇青”或者普洱生茶。
要是记不住那许多茶的名字,我们还可以从口感上来判断,因为咖啡因带给我们的口感是苦的,所以越苦的茶提神效果就越好。
所以想要提神的时候,喝任何茶都是可以的。若是想要更好的提神效果就可以选择绿茶、普洱生茶或者是比较苦的茶。绿茶是我们日常生活中接触最多的茶类,没有选择的时候就喝喝绿茶问题不大的。
我们选择了绿茶,是白天喝还是晚上喝?以我们程序员同学的逻辑思维来说,这个问题是必须而且是值得思考的,因为要是漏掉了一种情况,是很有可能出BUG的呀。
先给一个结论,白天喝绿茶是没问题的,晚上要尽量少喝绿茶。因为按照我们中国的古老传统智慧,绿茶是凉性的。白天属阳,阳气盛,喝凉性的茶,是没问题的。而夜晚属阴,特别晚上十一点到凌晨一点是一天中阴气最盛的时候,我们熬夜也常常到这个时候。如果我们熬夜时喝凉性的茶就会加重身体的寒气,长时间晚上喝凉性的茶,身体失去阴阳平衡就会慢慢的出现问题。所以晚上熬夜的时候要少喝绿茶。这个时候应该喝温性的茶,例如喝红茶或普洱熟茶。
前面提到了电脑辐射的问题,喝茶能抗辐射你信不?科学研究表明还真有这回事。因为茶中有三种特性物质,分别是:茶多酚,咖啡因和茶氨酸。其中茶多酚是有很明显的抗辐射性的。个中原理不在于它能阻止人体对放射性物质的吸收或促进人体对放射性物质的排出,而是因为茶中的茶多酚是“自由基清除剂”,能避免辐射产生的过量自由基对生物大分子的损伤。此外,茶多酚也能调节与辐射有关的酶类,还可以减缓免疫细胞的受损,提高造血功能。
另外茶多酚含量大致呈现出这样的规律:绿茶>白茶>黄茶>青茶>红茶>黑茶。所以喝茶能抗辐射,想要抗辐射效果更好,可以选择多喝点绿茶。
说完了这么多科学道理,最后总结一下给程序员同学的喝茶建议是:绿茶在白天喝,晚上喝红茶或普洱熟茶。红茶或普洱熟茶全天都可以喝。
最后的最后送一段话给大家,
茶有三种特性物质,茶多酚,咖啡因和茶氨酸。
茶多酚能抗癌抗辐射
咖啡因能提神利尿
茶氨酸能镇静助眠
相信以程序员同学的研究能力,一定能找到最适合自己的茶。
㈡ 【程序员·随身听】玄学:机械键盘
大家好,感谢收听【程序员·随身听】。
这一期准备讲一讲程序员群体中的一种玄学:键盘,具体来说,是机械键盘。还有一种玄学,是耳机。如果说键盘是程序员的武器,那么耳机就是程序员的铠甲,不过,这一期我们先不讲耳机了。
先阐释一下啥叫玄学,玄学是指那些不可知,不可思议,科学不能解释,不能涉及的学说。
这样来说,似乎玄学带有贬义。不过,事先声明,本期中的玄学并没有贬义的意思,而是带有一种膜拜,或者说,想要亲近,却不得要领,没有途径,而带有一种酸葡萄心理的感情色彩。
说到这里,可能有些听者琢磨出来点味道,好家伙,原来你不是圈里人啊。
对啊,我不是圈里人,默哀三秒钟,一,二,三,然后擦干眼泪继续说。
到这里,作为厚道人,我得说,如果您想通过本期音频,得到关于机械键盘的指导型知识,就得失望了,因为我也想得到这方面的知识。如果您知道,还希望您能够通过微博告诉我。我是真的想知道啊。在此,先声谢过。
那么,我说点什么呢?才疏学浅的我,只是想把这个话题抛出来,谈一谈自己的一些观察和看法。如果有幸能够抛砖引玉,得到高人指点,到时候任督二脉一通,我再做一期指导型的音频。
那么,我们开始进入正题。
键盘作为电子产品的输入设备,比鼠标要出现得早。这很正常,因为进入图形交互系统的时代,我们才有鼠标的需求嘛。直至如今,键盘仍是我们在电子产品输入内容上,不可或缺的设备。
我们知道,一般来说,键盘有两大类,薄膜键盘和机械键盘。还听说一种,叫静电容键盘,静电容键盘太少见,我根本没见过,网络上说,静电容键盘是利用电容容量的变化来判断按键的开和关,在按下按键后,开关中电容容量发生改变,从而实现触发,整个过程不需要开关的闭合。正是由于无物理接触点就可以实现敲击,因而磨损更小,使用寿命更长。更稳定、迅速、全键无冲突、无比灵敏。通常在大型医疗设备上能够见到,也可作为比较昂贵的高端游戏外设。
在静电容键盘还没有进入主流前,我们就不说它了,回到薄膜键盘和机械键盘上。它俩的区别,简单来说,薄膜键盘的键,表面看起来是一个个的,其实,每个键帽是依托在一整张薄膜上的,按下一个键,薄膜上就压下去一个点到印刷电路板上,发出电信号。而机械键盘,那真是一个键,就是一个电信号的开关。所以,你就知道,为啥机械键盘要比薄膜键盘贵很多了,因为从工程学上讲,机械键盘的结构就比薄膜键盘复杂多了。
虽然,一般,机械键盘比薄膜键盘贵,但吊诡的是,早起的键盘可都是机械键盘。我小时候玩的小霸王学习机,就是那个一开机就发出诡异的声音——“小霸王,其乐无穷啊”,那就是机械键盘的。那时候还觉得敲键盘挺费力的。但如果,我们仔细观察下键盘的发展历史,就不奇怪了,就跟汽车一样,早期的汽车,纯手工打造,零件都是匠人一个个做出来的,但随着汽车行业的发展,追求产业化,模块化,纯手工打造的汽车必然退出主流汽车市场。键盘也是如此,随着技术发展,产业化的进步,薄膜键盘应运而生,一下子降低了成本,还增加了便携性。为什么还增加了便携性呢,因为由于机械键盘每个键都是一个个小开关,它需要一定的体积,而薄膜键盘只是一个按的动作,因此薄膜键盘能够做的很薄。为啥苹果的 MacBook 系列能那么薄?所以,即使它的键盘体验被称为敲铁板,它也不可能换成机械键盘,只能在薄膜键盘的基础上,想办法提高键盘的舒适感。
按理说,机械键盘在薄膜键盘的冲击下,就要退出历史舞台了,就像软盘被U盘取代,机械键盘的好兄弟,机械鼠标(就是肚子里装着一个滚球的鼠标)被光电鼠标取代。但是,有时候,有些看似过时的产品,还能苟延残喘,甚至是复活。就像纯手工打造的汽车,可能还是有它的小众市场。历史上,这样的事例也不少见,比如说拍立得,前段时间,我的朋友还用拍立得给自家的娃拍照留念;比如说广播,要知道电影电视的兴起,那可是把无线电广播冲击的奄奄一息,但现在广播在汽车的普及下,在新的生活节奏下,又生机盎然。我作为程序员,都要在蜻蜓FM做广播了。
这里插一句,关于小众产品的复活,大家可以看一下爱奇艺上王自如的脱口秀,《科技相对论》,其中第一季的第三期就专门说的小众产品的复活。
书归正传,继续说我们的键盘。机械键盘为什么能够复活呢?我觉得,一个原因很重要,那就是有很多工作,都是要长期伏案于键盘之前的。像编辑,像程序员,一天敲键盘几个小时那都是少的。键盘作为生产力工具,那就相当于战士的武器,谁不想要一把得心应手的武器呢?这时,我们就怀念起机械键盘那独特手感和反馈感,甚至那噼里啪啦的敲击声。这就是我认为机械键盘复活的重要原因。
另外,程序员作为一个群体,也有自己的文化。文化是虚的,是需要在具体事物上表达的。作为程序员的一个重要生产力工具,键盘必然被程序员赋予了文化符号。为了个性化的彰显,为了追求差异化,甚至仅仅是为了鄙视另一个程序员,就这样,机械键盘就在薄膜键盘的势力包围中,强势回归。
现在的机械键盘,不仅种类很多,颜值担当的也很多,甚至有很多绚丽夺目的小功能,什么呼吸灯,跑马灯,夜间背光等等。我们接下来就说说机械键盘的门派。
在机械键盘的江湖,有四大门派,轻快如风的红轴,内外兼修的茶轴,嚣张直爽的青轴,直来直去的黑轴。
门派之别,来源于对武术的不同见地,但毕竟都是武术,有相同的根源。那机械键盘的共同原理是什么呢?
首先,不管是什么轴,它的机械轴都是由开关帽、开关帽固定卡、弹簧、触点金属片和底座构成,还有一部分的机械轴里还有跳线。这几个部件中,最关键的部位是开关帽,弹簧和触点金属片,它们的不同导致了触发的压力,手感和按键的寿命不同。先说弹簧,弹簧的圈数越少,弹簧的反馈压力就越大,黑>青>茶>红,再说开关帽,开关帽作用于触点金属片,按压导致触点金属片连接或者断开回路,发出电信号,开关帽作用于触点金属片时产生阻力,阻力就会让我们感受到传说中的段落感,再加上开关帽不同的嵌套结构,作用到底座的键程不同,会带来不同的节奏感,红轴和黑轴就是直上直下的感觉,而茶轴和青轴则有一定的阻尼感。然后说说触点金属片,机械键盘单轴寿命是2000万次到8000万次不等,如果一个键被用坏了,一般来说,就是触点金属片损坏了,可以说触点金属片决定了机械键盘单轴的寿命。(要知道,薄膜键盘的寿命一般来说是30万次,如果一个键,你一天按100次,30万次就代表着这个键你能用3000天,小十年呢,机械键盘单轴几千万次,可以说,在你厌烦它之前,是用不坏的)说完最关键的三个部件,最后说说键帽,键帽是我们敲键盘是最直接触摸到的,一般是不同质地的塑料,键帽上的字有很多工艺,比如丝印,激光雕刻,激光刻蚀,热升华,二色成型,丝印是最容易让字摩擦刮花甚至消失的。
热闹的江湖只有四种门派么?当然不是,除了红黑茶青,还有绿轴,橙轴,白轴,灰轴,甚至怪轴,它们有的是不同于上面几种轴的力度,有的是用于空格键这样比较特殊的按键上,它们都比较稀有,有的已经停产,比如白轴,有的是厂家定制款,比如雷柏的橙轴,所以,这个江湖还是很热闹的。
讲完了机械键盘的基本情况,我们来说说玄学部分吧,那就是机械键盘的体验。
有人说,青轴是键盘里的春天,因为青轴触发深度最深,段落感最强,噼里啪啦的声音最大,打字的时候清脆爽快,像沐浴在春风中敲架子鼓。据说,使用青轴容易被你四周的人揍。。。
有人说,黑轴是公认的游戏轴,玩游戏黑轴是不二之选,因为黑轴没有段落感,直上直下,一触即发,打一盘游戏,尽显激情。
又有人说,茶轴是键盘中的绅士,优雅冷静,它全面兼顾,介于打字和游戏之间,相较于青轴,段落感弱了很多,相对于黑轴,又不是直上直下,因此,也有人会觉得它中庸没有个性。
最后说,红轴,红轴一般推荐给女生,因为它和黑轴一样直上直下,打字轻快,同时,它压力系数最小,毫不费力。
听到这里,不知道你能不能明晰的分出四种轴的不同,其实,真让你感受四种轴,可能没有那么明显的不同,如果把那些更小众的轴加上,如白轴,橙轴,灰轴,绿轴,你更加区分不出来。但是被人表达后,人为的强化了不同。这就产生了玄学。玄学的诡谲之处在于,你要根据这些体验去选你想象中的键盘,大概率的可能性是与你的想象不同。就是说,听起来很有道理,指导起事情来,可能要抓瞎。所以,我觉得买键盘,还是要买有眼缘的,当个外貌协会也不错,有机会呢,还是要去感受一下,觉得喜欢就好,没必要根据四种轴的文化定位来选。即使你选了黑轴,该团灭还是会被团灭的。
关于上面说的体验,没有接触过如此多的种类,或者没有长时间在键盘上码字的体验,可能很难有共鸣。你也可能会觉得这些人好矫情啊,不就是码字敲键盘么,说的神神叨叨,故弄玄虚。是啊,是有些故弄玄虚,文化不就这样么,虚虚实实,人类就是这样一种喜欢听故事的动物啊,把你心目中的神抽丝剥茧,还原历史情境,他还会让你感动的起鸡皮疙瘩么?所以,我们还是把机械键盘理解为一种程序员可爱的文化吧。
总结一下来说,机械键盘,相对于薄膜键盘,在体验上没有质的飞越,打字也不一定更快,也不省力,可能只是释放了本能中对节奏的渴望,但是却给程序员带来了很大的愉悦,创造了话题,也是程序员文化中不可或缺的一部分。
感谢您的收听。
㈢ 编程中VB跟VC指的是什么 请详细说清楚...
VB即Visual Basic编程语言
1991年,美国微软公司推出了Visual Basic(可简称VB),目前的最新版本是VB 2008 Beta2(VB9)中文版。
Visual 意即可视的、可见的,指的是开发像Windows操作系统的图形用户界面(Graphic User Interface,GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。
Basic 实际上是一个短语的缩写,这个短语就是 Beginners all_purpose symbolic instruction code ,其中文意思为“初始者通用符号指令代码语言”。
Visual Basic 6 有学习版、专业版和企业版三种版本,以满足不同的开发需要。学习版适用于普通学习者及大多数使用 Visual Basic 开发一般 Windows 应用程序的人员,但是;专业版适用于计算机专业开发人员,包括了学习版的全部内容功能以及Internet控件开发工具之类的高级特性;企业版除包含专业版全部的内容外,还有自动化构件管理器等工具,使得专业编程人员能够开发功能强大的组骨子里分布式应用程序。
Visual Basic 是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,以用动态链接库(DLL)、对象的链接与世隔嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。随着版本的提高,Visual Basic的功能也越来越强。5.0版以后,Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升。
但是,功能再强大,Visual Basic 仍然有一个缺点:在没有MSVBVM**.DLL的计算机上必须安装所需的DLL文件。用它可设计操作系统,不过,比较困难。
在21世纪初,Microsoft 公司推出 Visual Studio .NET 2003,它与 Visual Basic 之间有了重大变化,Visual Studio 为各种编程工具做了一个平台,Visual Basic.NET 可在这种平台上运行。相对于传统VB,有很大的不同。VB .Net,首次使用.Net构架进行可视化编程,并且能很好地与COM构架兼容,Visual Studio .NET 2003 应用 .NET Framework 1.1 。
2005年 Visual Studio 2005 则运用了 NET 2.0 的技术,更加的方便了程序员的工作。可是新的程序对系统配置要求也较高,需要微软.Net Framework 2.0以上的.Net构架支持。
2007年12月,微软(Microsoft)推出了Visual Studio 2008 Beta 2 发生了重大的变化(见附图)在代码输入的时候,可以比VB2005快很多,在非特殊的情况下,VB2008都会自动开启 自动完成关键字 这个命令 而且支持最新的 .NET Framework 3.5 SP1 Beta
VC即Visual Basic编程语言
一、VC是什么?学VC是学什么?
首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)
C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承
WindowsSDK(软件开发工具)
VC的灵魂:MFC(微软基础类库)
ATL(ActiveX模板类库)
其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)
VC是许许多多技术的综合,就好像少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:
1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。
2、C语言基础
3、C++最基本内容:类、继承性、封装性、多态性的概念
4、如何用向导建立一个程序框架
5、设计菜单
6、设计工具条
7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等
8、知道怎样新建类、成员函数、成员变量、消息处理函数。
9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。
10、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。
11、熟悉最常用的MFC类:
CWnd
CDocument
CView
CDC
CDialog
CWinApp
CGdiObject及子类
CString、CPoint、CRect、CSize等简单数据类型
CFile
以上提到的这些内容,是每个人都会用到的内容。
二、MFC简介
上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。
MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。
下面介绍最重要的MFC。
CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。
CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)
CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。
CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。
CDialog对话框
CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。
CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。
CPen笔,画线
CBrush刷子,填充
CFont字体,控制文字输出的字体
CBitmap位图
CPalette调色板
CRgn区域,指定一块区域可以用于做特殊处理。
CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)
CString字符串。封装了C中的字符数组,非常实用。
CPoint点,就是(x,y)对
CRect矩形,就是(left,top,right,bottom)
CSize大小,就是(cx,cy)对(宽、高)
三、用好MSDN和例子
作为提高,推荐看的例子有:
nHello最简单的程序框架
nScribble鼠标绘图。教程:编程基础,GDI
nDiblook图像处理最简单范例
nMFCIE因特网浏览器
nEnroll数据库
nDaoviewDao(数据访问对象)范例。树型和列视控件
nCubeOpenGL范例,画一个不断旋转的方块
nHierSvrOLE服务器
nOclientOLE包容器
nDrawcli鼠标绘图。也包括OLE。
nWordPad写字板。OLE
四、几点经验
A.为什么要用Windows而不是DOS编程
Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。
B.为什么要用VC而不是其他Windows编程语言
n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。
nVC适合组织大工程(VB就不行)
nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。
n
C.开始不要学WinAPI编程,但以后最好学学WinAPI
特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭着的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:
#include“windows.h”
voidWinMain()
{
MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);
}
当然这个程序只建立了一个最简单的对话框,但这已经够了。
如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。
voidCYourView::OnDraw(CDC*pDC)
{
//…….其他的代码
pDC->TextOut(100,100,”HelloWorld!”);
}
但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。
学语言,与练武道理也差不多。VC、VB、Dlphi、VFP,以及其他的Windows编程语言,都属于同一个门派:Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。任何武功,招式即使再复杂,通常也能在很短时间内记下来;但内功就不是一朝一夕的事。而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,java更是自成一派。我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。光学招式,吓唬人是够了,但和高手一过招,非出丑不可。要想精通VC,必须熟悉WindowsAPI。
㈣ 软件业的技术路线是什么
技术路线和管理路线始终是每个程序员纠结的问题,也是各大论坛经常被辩论的问题。
然而一个有趣的现象是,在现实生活中,人们多愿意承认自己不精通某项技术,却很少有人愿意承认自己不能做管理。技术方面有问题多能够校正自我,而管理方面有了问题却总认为是对方的错,总之领导怨员工,员工怨领导,闹得不可开交。
在中国传统的官本位的思想中,不能不说管理路线占了绝对性的优势,尤其是在稳定的外企,管好管坏极难衡量的情况下。
做技术苦啊,相比于管理路线,有如下的弱势:
首先,IT业的技术变化太快,弄的技术人员疲于奔命。年轻人可以每天晚上几个小时的看新技术的书籍,而年纪偏大的你上有老下有小,做饭,洗衣,陪老婆,照顾老人小孩,逛超市,每天能有一个小时的学习时间十分不易了。如果是你已经很熟悉的领域,你自然可以用较少的时间就能达到年轻人较长时间看完的东西(理想状态下),然而公司的项目所用的技术方向可不是随你心愿的。如果你是一个Java高手,碰巧公司买的一个第三方的库是用C++写的,需要对其进行封装,如此艰巨的任务,工程师中你的薪水最高,你不入地狱谁入地狱啊。你总不能说:我只负责Java的部分,C++的别来找我吧。
也许你经常听领导说:“编程主要靠思想,语言和平台无所谓”。然而如果你跳槽的时候,却经常听到面试官这样说:“好像你没有太多这方面的经验嘛”,你却不能以我很有编程的思想来回答。此矛盾之处着实使人困惑许久。技术路线还是分很多的方向的,正如武林有很多的门派。语言,操作系统等属于内功,然而只有内功却不足以行走江湖,必须还要有一定的套路,如Debug tool,profile tool,出现问题后的分析办法,编程时候的各种习惯,一些非常管用的技巧等,都是因语言和平台不同而不同。虽然对于初级的工程师来说,这些不是很重要,然而工作三年五年之后,是否能够熟练运用这些套路来准确的定位问题和解决问题,却是区别你是初级工程师,还是高级工程师的一个标志。当然当你在上升到项目经理的时候,又可以只谈编程思想的时候了。一句实话,一个要饭的不要因为听富人说吃青菜养生就见肉也不吃。周易中,同样在干卦,同样元亨利贞,初九则应潜龙勿用,九五则可飞龙在天了,不同的位,同样的话,意义不同。
其次,没有优先知情权。当任务到来的时候,美国那面的老大一般是先发邮件给项目经理的。项目经理会进行一系列统筹考虑后再选择发给那些人。作为同项目经理同一级别的技术人员,是否提前或同时,甚至晚于与其他技术人员收到邮件,取决于你技术外的能力(你的reputation, 你和项目经理的关系等)。上面的文章也说过了,在外企,邮件是一门很大的学问,也决定了从属关系。把本来你擅长的任务先发邮件给他人,从而变成了他人的任务,也不是不可能的事情。当然当美国老板过来的时候,陪同和展示成果的,也多是管理人员的事情,虽然里面全是你的心血。
其三,没有资源支配权。项目经理一般可以支配多种资源的,如买硬件,Team building的经费,培训的机会等。但是相同级别的技术人员却没有。
其四,没有绩效评定权。任何员工的绩效都是基本由其report得顶头上司起决定作用的。相同级别的技术人员可能会有一些评价做参考,但是你不会知道和你平级甚至下级的薪水和绩效。
最后,没有人事任免权。一个员工是否能够进某个项目组,也基本是项目经理起决定作用的。一般的外企都会有推荐的制度,而通常会发现一般状况下(被推荐人不是明显的差),管理路线的人推荐到其他组的人比较容易录取(同组推荐没有推荐费啊)。大家总要多少照顾个面子嘛,万一哪天要向对方的组推荐自己的人呢?
基于上述几点,经济基础决定上层建筑,你也就怪不得基层员工对你仅仅是因为技术而产生的尊敬,而对manager则是因为既威且信而产生的敬畏了。也许其实是你的建议是正确的,大家却都同意按照manager的来做;也许你一把年纪还要和年轻人因一个小小的设计争得面红耳赤,而他在manager面前总是yes, ok, i am 100% agree;也许你因一项新技术不很精通而被新人鄙视;也许就没有也许。
当前的中国是浮躁的,以上的原因造成大批大批的人涌入管理路线的独木桥,也造成了一些不合格的管理者走上了管理岗位。也许有这样的现象,明明在国外仅够做高级工程师的在中国做了Team lead,却在和普通工程师争功劳;在国外仅够做Team lead的,在中国做了manager,却不能很好的领导多层化的组织结构。
这种情况是悲剧的,却不仅仅在软件业,包括高校(系主任更容易拿项目),包括医院(院长更容易申请经费),包括研究所。
这也是为什么总有转管理,转售前,转销售,甚至转其他行业的论调的原因了。
其实技术路线也有它的好处,你可以埋头认认真真研究自己感兴趣的技术,两耳不闻窗外事。而由于一直没有放下技术,跳槽也相对容易的多,毕竟在中国,号称会管理一个团队的一抓一大把,而真的很有经验的技术人员却不是很多。
作为软件工程师,我们应该找到一条属于我们自己的路。
㈤ 如何成为一个高效,快乐,健康的程序员
只需每天做一些小改变,就可摆脱病痛、保持健康.....学会去积累工作经验和成果就会变得高效......具备这些小习惯就会保持快乐……
一:高效
互联网发展日新月异,社会科技每天都在发生着翻天覆地的变化,而程序员已经成了这个时代的庞大群体,各种各样的程序员数不胜数,我们每天上下班,不 论你是坐公交还是乘地铁,在你的身边一定有程序员。本人我就是其中的一员,本人主修java语言,从事java类开发工作。由于本人工作时间不长,经验尚 浅,都是学着前辈高人的路子,在慢慢前行,下面我给大家分享下,如何从菜鸟成长为高效程序员。要想成为一个高效的程序员,不是一朝一夕的事,而是贵在坚 持,程序员的工作都是在不断淘汰旧的东西,接受新的,我们必须学会去积累工作经验和成果。所谓高效程序员,就是逻辑思维敏捷,学习能力强悍,敲代码速度绝 对是要快,代码规范严谨,善于总结经验,视野开阔,不局限于某一门专属编程语言,能够举一反三。
筑基阶段:
1.敲代码速度要快,要求手指灵活,尽量减少输入出错。这个是基本功,不然何以达到一定的代码量。
2.精通几个常用的代码编辑工具。(注意,这里说的是编辑工具,除了常用的eclipse,myeclipse,jBuilder等IDE工具外,还必须掌握文本编辑工具,如notepad++,vim)。
3.掌握Linux系统中常规命令。(这个是所有程序员都必须掌握的基本功)。
4.随时随地的做笔记。(这个就不解释了,反正善于总结经验不会错了,可以推荐使用有道笔记)。
5.学会一些主流的代码管理工具的使用。(如SVN,gitHub,maven等)
初级阶段:
6.熟悉并精通某种编程语言的基础和特性。(java语言必须掌握corejava基础部分)
7.善于给自己写一些工具,拿来即用的那种。(如数据库连接,文件读写操作等等)
8.掌握web开发的常用技术。(如HTML,CSS,javascript,Ajax,JSP,jQuery)
9.掌握常用数据库的基本操作。(如oracle,mysql)
中级阶段
10.掌握一些主流开源框架,设计思想。(如,spring MVC ,Struts2+hibernate+spring/SSH ,EJB等)
11.掌握设计模式,学会使用一些开发模式。
12.掌握Linux中的shell编程
14.学会使用数据库的DDL,DML,以及存储过程。
15.熟悉项目的整个生命周期,从需求到上线中的各个阶段。
16.关注技术网站和社区,开拓思路,汲取他人的优序经验,同时分享自己经验。(如csdn ,oschina等)
17.熟悉整个项目周期的中的各类文档。
18.定期给自己策划一个项目,练手。
高级阶段
19.关注科技,了解IT界动态,学会发现和创新。
20.开始学习项目管理相关知识,学会如何成为一个优秀的项目管理人。
21.适时给自己买一些书籍,给自己大脑及时充电。
22.经常参加一些培训讲座,开拓视野。
23.关注政策,了解时代互联网发展趋势,学习和创新。
本人现阶段还处在初级阶段,刚刚摸到中级阶段的门槛,能力有限,暂时想到的就是这么多。这里23条方子助你成为一个高效程序员。其实IT界已然成了一大江湖,IT江湖门派之多,编程流派何其多,可能每个人踏足IT江湖都身怀绝技吧,上面的23条也许不一定适合你,但是我还是希望它能帮助大家,大家共同努力。