1.å¦ä¹ Cè¯è¨ å¿
çç书ç±
2.一名优秀的码剖程序员是这样炼成的
3.C语言四书五经是哪4本书
å¦ä¹ Cè¯è¨ å¿ çç书ç±
Brian W.Kernighanï¼ Dennis M.Ritchieï¼ãCç¨åºè®¾è®¡è¯è¨ã
æ¸ åå½±å°çãä¹ é¢éï¼æºæ¢°è¯æçï¼æ°çãèçï¼ï¼ä¹ é¢é
è¿æ¯è¿ä»ä¸ºæ¢å¨ææç¨åºè®¾è®¡è¯è¨ä¹¦ç±ä¸æ广åå°æ¬çä¸é¨ç»å ¸ï¼æ¯ä»»ä½ä¸åCç¨åºåçå¿ è¯»ä¹ä½ãå 为åºèªCè¯è¨ç设计è Dennis M.Ritchieåèåç计ç®æºç§å¦å®¶Brian W.Kernighanä¹æï¼å®è¢«æµç§°ä¸ºâK&R Câãæ¯å®é¦å å¼å ¥äºâHello Worldï¼âç¨åºï¼è¿ä¸ªç¨åºå ä¹æäºåæ¥ä»»ä½ä¸æ¬å ¥é¨æ§ç¨åºè®¾è®¡è¯è¨ä¹¦ç±ä¸ç第ä¸ä¸ªä¾åã
å¦åCè¯è¨æ¬èº«ç®æ´ç´§åèæå ·å¨åä¸æ ·ï¼è¿æ¬ä¹¦è½»èçå°èæå¯å¼ åãéè¿ç®æ´çæè¿°åå ¸åç示ä¾ï¼å®å ¨é¢ãç³»ç»ãåç¡®å°è®²è¿°äºCè¯è¨çå个ç¹æ§ä»¥åCç¨åºè®¾è®¡çåº
æ³ï¼å 容涵çåºæ¬æ¦å¿µãç±»åå表达å¼ãæ§å¶æµãå½æ°ä¸ç¨åºç»æãæéä¸æ°ç»ãç»æãè¾å ¥ä¸è¾åºãUNIXç³»ç»æ¥å£ä»¥åæ ååºçå 容ã
ç®æ´æ¸ æ°æ¯è¿æ¬ä¹¦æ大çç¹è²ãè¿æ¬å°ä¹¦å¯ä»¥æç»ä½ 许å¤æ¯å®åå åçâ大é¨å¤´âçç¥è¯ãæ认为é£äºå¨è¾æ´æ´æ´æ´æ¼ååºå¥½å ç¾é¡µä¹è³ä¸å页çææ¯ä½è åºè¯¥å¥½å¥½åK&Rå¦ä¸å¦ã对äºä¸ãé«çº§ç¨åºåèè¨ï¼å¦æå¸æè¿ éè·å¾Cè¯è¨ç严èç¥è¯èåä¸æ¿æå¤è±è´¹åªæä¸ä¸ç¹æ¶é´ï¼è¿æ¬ä¹¦å°±æ¯é¦éã
顺便说ä¸å¥ï¼è¿æ¬ä¹¦çç´¢å¼å¶ä½é常åºè²ï¼æå ·å®ç¨ä»·å¼ï¼è¿å¯è½é¦å è¦å½åäºæ£æé¨åçç®ææ¼è¦ãæ¤å¤ï¼å°½ç®¡å®çä¸å»å¾åä¸æ¬æç¨ï¼ä½å ¶å®æ´æ¯ä¸æ¬åç»ä¸ä¸ç¨åºåçæåãå¦æä½ ä¸å ·å¤ä»»ä½å ¶ä»è¯è¨ç¨åºè®¾è®¡èæ¯æåºæ¬çCè¯è¨ç¥è¯ï¼è¿æ¬ä¹¦ä¹è®¸å¹¶ä¸éåç¨ä½ä½ çCè¯è¨å¯è读ç©ã
2. Perter Van Der LinDenï¼ãCä¸å®¶ç¼ç¨ã
Cä¸å®¶ç¼ç¨
Cè¯è¨æ¯ä¸¥èçç¨åºåè¯è¨ï¼ä½è¿å¹¶ä¸æå³çCè¯è¨ä¹¦ç±å¿ é¡»æ¿çé¢å说æãå¨è¿æ¬è¢«Cç¨åºåæµç§°ä¸ºâ鱼书âï¼å°é¢ä¸æä¸æ¡âä¸éçâè æ£é±¼ï¼çèä½ä¸ï¼ä½ä¸ºSUNå ¬å¸ç¼è¯å¨åæä½ç³»ç»æ ¸å¿å¼åç»æåä¹ä¸ï¼Peteræ·æ¼å°½è´å°å±ç¤ºäºå ¶æ·±åçææ¯æ²æ·ã丰å¯ç项ç®ç»éªãé«è¶ çåä½æ巧以åæçå¼çå¹½é»ãå¨è¿é¨ä½åä¸ï¼ä½è 以æµç çæåãè¯è°çç¬æ³å°é¸é»å ¸æ ãæºæ §åå¹½é»èªç¶å°èå ¥ææ¯æè¿°ä¸ï¼è¯»æ¥å®è¥ä¸æ¬å°è¯´ï¼æå¯è¶£å³ã æ¬ä¹¦è®²è¿°äºCè¯è¨çåå²ãè¯è¨ç¹æ§ã声æãæ°ç»ãæéãè¿æ¥ãè¿è¡æ¶ä»¥åå å使ç¨çç¥è¯ï¼æ示äºCè¯è¨ä¸è®¸å¤éæ¦ä¹å¤ï¼å°¤å ¶æ·±å ¥è§£æäºå£°æãæ°ç»åæéãå å使ç¨çæ¹é¢çç»èãè¦æ³æ为ä¸åä¸å®¶çº§Cç¨åºåï¼è¿äºå 容é½æ¯å¿ é¡»ææ¡çãåå ¶ä»æ»¡æ¯æ½è±¡ä¾åçCè¯è¨ä¹¦ç±ä¸åï¼è¿æ¬ä¹¦å 满äºå¤§éçæ¥èªçå®ä¸ççCç¨åºè®¾è®¡å®ä¾ï¼å®ä»¬å¯¹Cç¨åºåå ·æå¾é«çåç §ä»·å¼ãå¦å¤ï¼æ¯ä¸ç« é½ä»¥æå¯è¶£å³çâè½»æ¾ä¸ä¸âæ¶å°¾ï¼èéå½Aâç¨åºåå·¥ä½é¢è¯çç§å¯âåæ¯ä»»ä½è¯è¨çç¨åºåå¨åºèå·¥ä½åå¢å¼ºèªä¿¡ç好ææã
ææççæ£çCä¸å®¶å¯è½ç¨ä¸ççè¿æ¬ä¹¦ ââä»å 容å°ç»ç»æ¹å¼å°è¡æé£æ ¼é½å³å®äºè¿æ¯ä¸æ¬è½»æ¾æå¿«çâä»èé¸å°é«æâçè¿é¶è¯»æ¬ï¼æ以ï¼å®çåºæ¥ææ´å¹¿æ³ç读è 群ãå级ç¨åºåå¾å¾æ´éè¦çæ çé¼å±ï¼å¨é 读è¿æ¬ä¹¦çè¿ç¨ä¸ï¼ä½ å®ä¼æ·±æ·±å°è¢«ä½è 对ç¼ç¨çæ¿æ æææã
ä¸é´å¹¶æ å®ç¾ãæ认为è¿æ¬ä¹¦ç缺é·å¨äºï¼å大å¤æ°å¹³åº¸çCè¯è¨ä¹¦ç±ä¸æ ·ï¼å®ç»è添足å°å å ¥äºä¸ç« å ³äºC++çæè¿°ãå¨ä»å¤©çæ¥ï¼è¿ä¸ªæè¿°æ¢ä¸å ¨é¢ä¹æå¤±å ¬å ãä¸è¿ï¼é´äºä½è æ¯å¨å¹´ä»ä¸åCç¨åºåçè§åº¦å»è§å¯C++ï¼è¿ä¸ç¹ä¹å°±ä¸è¶³ä¸ºå¥äºã 3. Samuel P. Harbisonï¼ Guy L. Steeleï¼ãCè¯è¨åèæåï¼ç¬¬äºçï¼ã
å½±å°çï¼æºæ¢°å·¥ä¸åºç社ï¼ãä¸æçï¼æºæ¢°å·¥ä¸åºç社ï¼
å¨Cè¯è¨åèæå类书ç±éï¼Samuel P. Harbison åGuy L. SteeleåèçCï¼ A Reference Manualæ¯é常åºè²çä¸æ¬ãè¿æ¬æåç第äºçæ°å¢äºå¯¹Cæ åçä»ç»ï¼ä»¥ä¾¿æ»¡è¶³æ°æ¶æCè¯è¨å¦ä¹ çéè¦ãå ¨ä¹¦å ±å为两大é¨åï¼ç¬¬ä¸é¨åä¸æ³¨äºCè¯è¨ç¹æ§ï¼ç¬¬äºé¨ååå ¨é¢è®¨è®ºäºCæ ååºãæ¬ä¹¦æ¶µçCãCãä¼ ç»çCãææçæ¬çCè¿è¡åºä»¥åç¼åä¸C++å ¼å®¹çC代ç çä¸åç¥è¯ã
è¿æ¬æååªæ¯ä¸çå度ï¼ä½å®æ¯âæ¯å®æ´åâçå ¶ä»åèæåæ´æ¸ æ°å°æè¿°äºCè¯è¨çç°å¨åè¿å»çæ¹æ¹é¢é¢ãæ´æ¬æåææ¯ç»èæ述精确ï¼ç»ç»æ¡çæ¸ æ¥ï¼å 容å®å¤è¯¦å°½èåç®ææ¼è¦ãå¯ä»¥è¿ä¹è¯´ï¼å®å¨å¹¿åº¦ã深度å精度æ¹é¢é½æ¯åºç±»æèçã对äºä¸ãé«çº§Cç¨åºåèè¨ï¼è¿æ¬æåå¼å¾å¸¸å¤æ¡å¤´ï¼å®å ä¹è¯å®è¦æ¯K&Rçèä½ä½¿ç¨é¢çæ´é«ã
4. David Hansonï¼ãCè¯è¨æ¥å£ä¸å®ç°ï¼å建å¯éç¨è½¯ä»¶çææ¯ãï¼æºæ¢°å·¥ä¸åºç社
Cè¯è¨æ¥å£ä¸å®ç°ï¼å建å¯éç¨è½¯ä»¶çææ¯
Cè¯è¨è½å¤åç»ä¸åå¤å¹´èä¸è¡°ï¼ä¸ä¸ªéè¦çåå å¨äºå®çéåºè½åãå¨è¿âå¤ç¨âãâé¢å对象âãâç»ä»¶âãâå¼å¸¸å¤çâçå è¿æºå¶æ¼«å¤©é£èç年代ï¼Cè¯è¨ä»ç¶è½å¤ååå®å°èä¼é çè¯è¨ç¹æ§ï¼å¨ç¸å½ç¨åº¦ä¸æ»¡è¶³ç°ä»£è½¯ä»¶ä½ç³»æ¶ææåºçè¦æ±ãåªä¸è¿ï¼æ³è¦è¾¾å°è¿ä¸ªç¨åº¦ï¼å¿ é¡»è¦å¨Cçåºç¨ååä¸è¾¾å°æé«å±æ¬¡ãå¨åµå ¥å¼ãç³»ç»è½¯ä»¶ä»¥å对æ§è½è¦æ±æé«çç³»ç»å¼åä¸ï¼å¼å人åå¿ é¡»è¾¾å°è¿æ ·çå±æ¬¡ï¼çç»ææ¡Cè¯è¨çé«çº§ç¹æ§ï¼æè½å¤åæ¶æ»¡è¶³æçåçµæ´»æ§ãå¤ç¨æ§çè¦æ±ãå¯æï¼è½ç¶Cè¯è¨ææ¯å¾ä¹¦æ±çå æ ï¼ä½æ¯å ³æ³¨è¿ä¸ªå³°é¡¶ä¹åçä½åå´æ¯å±æå¯æ°ãDavid HansonçC Interfaces and Implementationså°±æ¯ä¸ªä¸ç¿æ¥ã
David Hansonæ¯ä¸å 大åé¼é¼çèªç±ç¼è¯å¨lccçåä½è ãå¨è¿ä¸ªé¡¹ç®ä¸ï¼ä»è´è´£æä¾é«åº¦å¯å¤ç¨çåºç¡æ¶æãå¨ä¸æçå®è·µä¸ï¼ä»å®å ¨ä½¿ç¨ANSI Cå½¢æäºä¸æ´å¥å¯å¤ç¨ç»ä»¶åºãè¿å¥ç»ä»¶åºæ¶ææ¸ æ°ï¼æ§è½ä¼å¼ï¼èä¸æä¾äºå¾å¤é«çº§çç¹æ§ï¼æ¯å¦ç±»Win SEHçå¼å¸¸å¤çæºå¶ãå¯ç§»æ¤ç线ç¨åºãé«æ§è½çå åæ± ã丰å¯çå¯å¤ç¨æ°æ®ç»æç»ä»¶ãDavid Hansonæä»å¨åä½è¿äºç»ä»¶çè¿ç¨ä¸æ积累çå¿å¾ä»¥åå¯¹å ¶æºç çç²¾è´åæååæ¬æ¬å°åå¨äºè¿æ¬ä¹¦éãè¿æ ·çèä½ï¼å½ç¶å ªç§°Cè¯è¨é¢åéçéå¿ç»åãé¾æªå·²æ èåææ¯ä½å®¶Richard Stevens对æ¤ä¹¦èµä¸ç»å£ï¼ä»è¯´ï¼âè¿æ¬ä¹¦ä¸çææ¯ï¼å¯¹äºå¤§é¨åCç¨åºåæ¥è¯´ï¼å·²ç»éå¿å¾å¤ªä¹ äºãâ对äºå¸æè½å¨Cè¯è¨åºç¨ä¸è¾¾å°æé«å±æ¬¡çæ ¸å¿ç¨åºåèè¨ï¼è¿æ¬ä¹¦æ¯é¾å¾çå¿ è¯»ä¹ä½ã
å ¶ä»é¤äºä»¥ä¸åæ¬ä¹¦ä»¥å¤ï¼æè¿ä¹ææ¨èAndrew Koenigçèä½ãCé·é±å缺é·ãï¼äººæ°é®çµåºç社ï¼åDeitelç¶ååèçC How to Program两æ¬ä¹¦ã
Cä¸å®¶ç¼ç¨
Andrew Koenigæ¯ä¸çä¸å±æå¯æ°çC++ä¸å®¶ï¼ä»çè¿æ¬ä¹¦å¯è½æ¯æèçä¸æ¬Cè¯è¨ç»å ¸ãå®ç®ææ¼è¦å°è®²è¿°äºCç¨åºè®¾è®¡ä¸çé·é±å缺é·ï¼å æ¬è¯æ³é·é±ãè¯æ³é·é±ãè¯ä¹é·é±ãè¿æ¥ãåºå½æ°ãé¢å¤çå¨ä»¥åå¯ç§»æ¤æ§ç¼ºé·çï¼æåä¸ç« è¿ç»åºäºå ³äºå¦ä½åå°ç¨åºé误ç建议以ååé¢åç« é®é¢çåèçæ¡ã尽管è¿ä¸ªå°ååæ书äºCæ åå¶å®ä¹åï¼ç¶èï¼å³ä½¿å°äºCæ©å·²é¢å¸çä»å¤©ï¼ä¹¦ä¸æå°ç大å¤æ°é·é±å缺é·ä¸å¦åäºå¹´åé£æ ·ä½¿æ们è¦éã
Cç¨åºè®¾è®¡æç¨
Deitelç¶ååèçC How to Programä¸ç´æ¯é常好çCè¯è¨å ¥é¨æç¨ï¼ææ头çä¸è¯æ¬å为ãCç¨åºè®¾è®¡æç¨ãï¼æºæ¢°å·¥ä¸åºç社åºçï¼å书第äºçï¼ãé¤äºå¯¹ææ¯çæ£è§æè¿°ï¼è¾ 以许å¤ç®ææ¼è¦çä¾åï¼å¤ï¼æ¯ä¸ç« åé¢é½å¸¦æå°ç»ãæ¯è¯ã常è§çç¨åºè®¾è®¡é误ãè¯å¥½çç¨åºè®¾è®¡ä¹ æ¯ãæ§è½å¿ åãå¯ç§»æ¤æ§å¿ åã软件工ç¨è¯è¿°ãèªææµéªç»ä¹ åçæ¡çãæ´ä¹¦å å®¹æ¸ æ°ï¼ç»ç»è¯å¥½ï¼æäºé 读åç解ãå¼å¾ä¸æçæ¯ï¼æ许å¤å ¥é¨ä¹¦è¯»å®ä¸éå³å¯ææï¼èè¿ä¸æ¬æ¯ä¸ªä¾å¤ã
ç»è¯ä»¥ä¸è¿å æ¬ä¹¦å¾å¤§ç¨åº¦ä¸å±éäºæè¿°Cè¯è¨åæ ååºæ¬èº«ï¼å¦æå¸æå¦ä¹ æ´ä¸ä¸çãé¢åç¸å ³çCç¨åºè®¾è®¡ææ¯ï¼ä½ å¯ä»¥å¨éæ©é 读è¿å æ¬ä¹¦çåºç¡ä¸ç»§ç»æ¥é ä¸é¨ä¹¦ç±ãæ¤å¤ï¼å¨Cè¯è¨ä¹¦ç±é¢åï¼æ°´å¹³ä¸ç¸ä¸ä¸çä½åæå¾å¤ï¼è¿å æ¬åªæ¯æ ¹æ®æèªèº«çé 读ä½éª
一名优秀的程序员是这样炼成的
如何成为一名优秀的程序员? (一)
一位仁兄说的“程序员写的程序不是算法+语法 ,而是码剖要能够满足用户需求的工 具”我非常赞同,要想达到用户需求就必须从各个方面来考虑如业务、码剖人机交互 、码剖效率等方面,码剖而不只是码剖vip大熊源码一个语言(语法)的问题,语言(语法)只是码剖工具,只 知语法不知其他那就真是码剖编程机器了! 编程机器在印度高中生经过几个月培训,码剖按照严谨的码剖软工方法,加上较高的码剖管理 ,就可以胜任了!码剖大家相信吗,码剖我是码剖相信的!谈到这里我就不禁说到了国内教育 界最近在探讨的码剖问题“计算机科系的毕业生特别是本科大专生到底出来干啥、如 何适应社会要求”,大家也看到了很多计科系大学生说精通N种语言,熟悉N种工 具,不知道学校里的其他知识到那里去了,甘愿做编程机器,浪费了人民的纳税 ,干高中生能干的事,比较可惜吧!在国内现在就是这样了,看过一则帖子:清华的计科系毕业声在建筑院里搞开发还不如建筑专业的毕业生。说着说着就岔道 了,国内的软件开发业到底是需要那些人:如果仅仅是编码机器,那我估计中国 硅谷还是做梦去吧!
社会似乎也需要编码机器,翻翻招聘广告,做应用开发的都要求精通某某语言, 熟悉某某工具,很少需要懂管理懂软工的人。以我个人一点偏激的想法,民族软 件产业要腾飞,更需要的是能管理使用编码机器的人,即管理人员、国内软件产 业编码机器已经很多了。希望不要惹怒了那些编程高手! system develop与Application develop在国内到底哪个能养活你,能赚钱,诸位 仁兄想必也知道,况且俺也没发现几家水平高的公司招这方面的人,毕竟OS,DB MS,COMPILER都被国外做了、另外也别跟我谈LINUX,毕竟还是少数烧钱的人做的 事情,我先喂饱肚皮再说。我手下的很多搞4GL语言的程序员都想转行学VC等所谓 的更低级的语言,我总是说“在XX城市,先用4GL工具生存,以后再学习VC吧!” ,说的简单一点先解决肚子问题。如何判断自己是否是编程机器?
1、面对需求不考虑用户,只是考虑用那些程序技术展示自己的语言语法技巧 .
2、学习了N种语言 .
3、从来不学习或实践软工 .
4、语法语言水平在众人中遥遥领先、特别是一些稀奇古怪的语法 凭着兴趣和创造力去干,却重复繁琐的劳动。 做着没有意义-唯一意义是赚钱,而且真是出了半斤力, 拿不足八两。正规溯源码燕窝招商 终日劳累,却不能学自己想学的。最终结果是跟不上社会科技的发展 ,人已衰老。悲哀!!!
开发软件的关键是要有想法,一个好的想法比什么都重要。尤其是有关 网络方面的就更是如此。
入门还可以,但是要继续深入了解可能要难点。 未必吧 偶觉得大学里的高数 数理方法之类的, 如果你不是做研究的话, 应该是很少能 用到的 不过如果说到离散之类的, 倒还是时不时的能有点用现在的程序员比起十年前是不是要花更多的时间来 查帮助呢。系统越来越大,手册越来越厚,软件开发的 周期是不是越来越多的淹没在查帮助之中了呢。
实际上一个程序员最终的技术需要和实际相结合。真正在编写程序到达一定时候,语言的使用并不是最大的障碍,对整个项目的把握、软件工程的把握、数据库的设计以及执行效果的分析等等才是需要进一步考虑的东东!否则,为何大多数公司到要求有编程经验了!这些不是程序员必须学的。但数据结构,编译原理,操作系统原理等是必须要学好的,英文的多看,不懂计算机英语可不行。实我不是什么中专生,而是我读的中学和一个私人办的电脑学校联合开的电脑专业(并不是我中考考的差,而是这个学校太贪钱了,才被录取到这里,恼火,我们班里中考成绩从两百多到四百多的都有,我就是四百多分(重理轻文的结果,要不然...),当时读书的时候,我是班是的高手(其实只是比其它同学懂而已),大家叫我dos,因为当时学的都是dos的内容, 毕业后还没有对编程很感兴趣,只想找一个电脑的工作就可以了,哪怕是打字的,可是看报纸,去人才中心,看到都是要大学的,为此感到很失望.也对电脑失去了兴趣.后来学校打电话到我家,说厦门厦华公司要招工,要不要去,我很快就答应了,因为当时没工作,天天呆在家里.后来打工的时候,天天象一个机械人一样,重复着同一道工序,因此经常在深夜的时候,思索着自己的未来,由此重新生起了对电脑的感情,因此经常买电脑杂志和报纸看(可以堆成一座山了).由于离我住的地方不远处,有一个电脑培训的,所以经常到那里上机,而在学校里学过的软件也只有FOXBASE和WPS,其它的不值一提,所以上机经常用foxbase,直到这时候,才对编程产生了浓厚的兴趣,一年后,自已买了一台电脑,开始认真学习编程.由于我是属于职业中专的,因此经常想,就算学得再好也没有用,所以想考程序员,而考程序员要懂得c语言,所以就学习turbo c,学完了,学数据结构,同时看'C高级实用程序设计',澳门回归和年的两个晚上,我都是在编程中度过的.由于我这个人对书很感兴趣,经常在星期六,星期七去书店,而在书店里,也是看编程方面的书,而看到的编程书籍大部份都是windows方面的,为此也经常思索着学dos编程到底有没有用.后来,春节放假(要2月日上班)回老家,天天去新华书店(正月初一也去),看到也都是windows编程方面的书多得像狗屎一样,所以就下决心学windows编程,因此正月初四(快餐店还没有开张)就去厦门了,很快买了delphi的书和d版delphi5,疯狂地学习(到目前为止,买了8本delphi的书,因为国人的写的书实在太烂),而由于遇到不懂的又不知道怎么办,为此想到了网络,但在外打工不可能上网(上网吧太贵),所以就辞职了(4月日),现在,程序员考试快到了,是报还是不报一直犹豫不觉,困此才有此问题.打工的岁夜,我永远不会忘记,因为付出太多了,也失去了太多(坏了两个光驱,瘦了几斤),直到现在,脑海里还不时浮现起那几个无眠的夜晚.忠心感谢大家.我不认为编码的人就是机器, 而系统分析就不是机器, 其实系统分析员就是销售的机器, 所有职员有是老板的机器.它们之间这是不同工种吧了, 当然对系统分析要求要高一些, 薪水也高一些, 但更让人佩服的是销售, 是他们驱动了整个的运作.我也是个中专生, 还是学机械的(后来自学了计算机), 我非常了解在传统的制造业是如何的规范, 设计人员设计图纸, 然后经审核, 再到车间试样, 再根据情况, 修改图纸, 如此反复几次后才能一个产品定型,而在软件界, 就没那么好了, 领导会说, 这个你做, 那个他做, 也没有经过很细的分析(国内很多都是这样), 在我们这里也没有系统分析员, 每个人都是设计员, 也是编程员, 虽然这样对个人来说, 能学到很多东西, 但不利于项目.我国的软件过程水平,确实令人担忧, 目前为止只是, 几个人十几个人的小软件, 还没有能拿得手的大型软件.至于中专生编程问题, 我
认为只要入了这个行, 就不会比本科生差, 因为对他来说没有优越的学历条件, 那么只好埋头苦学, 但这正好适应当前计算机软件迅速发展的今天, 学历只能代表过去和基础, 更需要的是有能力的人, 解决问题的人, 实干的人.对我来说确实有时有点自卑, 没有上过高中和大学(由于那个年代, 我只知道能为父母减少一点负担就行了), 所有我一直在努力的学习(corba, uml, java, 软件过程等), 目前为止我并没有觉的我的构架能力和编码水平比他们差, 只是觉得E语言实在太差.过计算机本科又如何?我有几个同学到银行去搞业务了,有同学任教,有同学收税去了......多个人真正现在搞计算机的还就只有几个人,再看看当时这些计算机本科生的毕业设计,//faint有的人到最后连vb都搞不定,但他们什么编译原理啦什么组成原理啦什么软件工程啦学的(应该是考试的分数)真还不
错,至少我感觉有些概念比我清楚(上课没听?)所以我觉的中专生并不比一般大学生差(当然有些重点学校除外//hehe),有时中专生有更大的压力逼迫自己去学习,学历不是重要的,关键是一个人的素质.我们不能将目标定位在做程序员或编码员(Coder)上光会写代码有什么用?那叫“编码员”,在国外是属于体力劳动的,不像国内,会写程序的就叫高科技。重要的是分析问题、解决问题和规划的能力,系统分析,系统设计及项目规划才是正途。这就需要学习所谓的基础课程了,如:软件工程、离散数学、数据结构等等。从vb到现在开始学vc后,一个人捣鼓了几天也没有什么新发现。跟本不知道VC的编程思想是什么,请大虾们告诉我,它和VB的差别真是太大了。VC的博大在于MFC的操纵,它是WinAPI的封装.思想在于怎样了解MFC的内幕,它的运行机制.差别也大,差别也不大!这要看你对API的理解了,虽然VC++的可视化没有VB的好,但是不是绝对没有的,其对而且对话框的编辑是跟VB一样的,不过不是像VB那样放在第一个界面罢了,VC++的博大精深是VB难以望其项背的!:)而且VC++是完全面向对象的编程工具,而
VB是浓缩溯源码燕窝加盟不够完全的面向对象编程工具,VC++是完全编译语言,VB是本地编译语言,不够完全,VC++效率高,封装性好,继承性高,VB效率相对低了很多,但界面友好,二者只能取其一,或者使用VC++,VB辅助(因为VB开发快),当然Delphi,BCB也是不错的选择。
程序员不应依赖开发工具,程序员更应该拥有的是一种思维、一种精神、一种观念。就像Richard.M.Stallman一样,有自己的精神,为自由软件而奋斗。就像求伯君,为民族软件的振兴而奋斗。这才是真正的程序员。
应该说,他们更注重的不是技术,而是软件的思维,软件的灵魂!!我刚学VC的时候,还没有上网.身边也没有一个可以问的朋友,所以大部份都是自己啃的.那种感觉真是很痛苦. 现在在网上就不同了,可以得到太多的资料了,而且还可以得到在线帮助.但这些都不是学习的关键. 相信各位也知道VC的难度,并不是那么容易上手的,所以要想学会,学好VC,靠外力是不可能的.主要得靠自己. 自己要有一份难得的毅力,对编程的狂热也可以在一定程序上起到帮助.我就是这样的.起初,没有人帮我,我学习VC是三天打鱼两天晒网,学习进度很慢,幸好对编程的执著,使得自己坚持下来了. 如果你从来就没有接触过编程,那你学习VC的速度可能会比学过面向过程编程的人要慢一些,因为你要去理解命令及语句的含义.但只要你努力,并且可以得到别人的帮助,我相信在半年内会对VC有一定的认识. 请学赤面向过程编程的朋友也不要笑,因为面向过程与面向对象实在是区别太大了.就拿封装一词来说吧.当初我是左想右想才想通的.所以不要自己学过编程,就会在学习VC的通道上比别人轻松. 现在有一种现状应该让我们注意.我发现有很大一部份初学者觉得VC是一种语言,C++又是另一各语言.我在和一些初学者的交谈当中,查觉到了这一点.有的初学者竟然还认为我学VC为什么就一定要学C++?我想这个问题是我们大家都没有注意到的一个问题.就是向初学者讲述C++对VC学习的重要性. 我这有个例子,跟大家讲一下. 我有个同学,他接触编程比我要早,在我还在为VC中"::"符号怎么标记的时候,他已经在学习C了.后来,我对VC稍有理解的时候,他也发觉C的跟不上时代的脚步了.我便提议他从C++语言学起,可他认为自己有C的学习功底,根本就用不着再去学习C++.可在学习VC的当中,遇到的困难真是数不胜数.最近,他还是去买了一本学习C++的书.从头再来学习C++. 我希望通过这个例子,能让广大的初学者知道,C++对VC学习的重要性。
学习VC必须有狂热的编程热情,否则是很难坚持下来的,我周围就有几个这样的人,他们比我先学VC近半年,但现在仍然学不会,而我现在虽说不是很厉害,但基本的应用程序是不在话下,我就是天天看书,上机实践,几乎所有的时间都泡在里面,有时连吃饭都在想,为什么,因为我确实想啃下这块硬骨头,我不想半途而废,我觉得学习VC不仅仅是学到了更多的东西,最主要的是培养了我们自己一种坚持克服困难的毅力。
对于VC,我有几点经验:
1。技术为本,语言为次.
2。MFC的单个类有用,DOC/VIEW要小心。
3。OOP要小心,使用不当反而造成大量的工作和糟糕的代码。
4。如果可能,考虑选择使用Delphi(CBuilder+VCL)。
5。到了一定程度,一定要学COM。
要学VC,必须有对C++深刻的理解,对WINDOWS运行机制的深刻理解。尤其想成为VC高手。举例 ,开源云桌面系统源码 对于虚函数,不仅要知道有这么一个东东,更要知道它的内存镜像 。这样才能对VC中很多的东西举一反三,事半功倍。本人学习VC近2年,但自觉第一年由于心情浮躁,把VC的书翻了一遍又一遍,却每次都只看了一点就无法再深入。直到毕业前夕,痛定思痛,克服浮躁,认认真真的从最基本的开始学,把每一点都搞的水落石出,经过三个月的刻苦,终于大成。直到现在,半月搞定COM/DCOM,都托当日刻苦之福,因此劝告想学VC的朋友,一定要顶住开始的艰难岁月。成功属于刻苦者。
每个人都有自己的学习方法,也许这种方法对我来说有用,但不见 得就对所有的人有用.所以,请不要盲目的跟着别人的学习方法学习,要思考属于自己的学习方法. 但我还是会向大家说出我自己认为比较好的一种方法. 学习编程其实与学习其它东西一样,要想掌握它,就要实践,实践,再实践.当你学到了一种新的技术或知识时,多实践是巩固学习的一种最好最有效的方法. 这个实践不是照著书上的例子做一遍,而是根据自己的能力,给自己出题,然后去完成它.只有这样,你才能发现自己的不足,同时又增加了自己的编程经验. 但要成为合格的程序员,光
会写代码是远远不够的,更重要的是思考.谋定而后动,是 不变的真理.
在我的理解,VC只是一个编程工具,就如BC、BCB、Delphi 一样,其实对于编程最根本的就是三个方面,语言、开发包、 操作系统API,他们三个方面应该说是相对比较独立的。
VC是MS开发的,所以针对的是windows api,你可以不会C++, 也可以在VC下用C写出很优秀的程序,当然如果你比较熟练C++, 并且熟悉开发包MFC的话,工作可能要轻松不少。所以在我看来,学习的过程可以是这样的:
1、先学习C或C++,在windows的console环境下编写不太深入涉及API的程序;
2、在基本上掌握了语法之后,开始接触简单的系统API,学习 Windows的编程原理和机制;
3、在可以编写简单的菜单程序,可以简单地在WM_PAINT下操作 GDI函数后,开始学习MFC,可以从Step tourist学起,看MFC的源代码,理解几个关键的宏的定义与实现,特别是MESSAGE MAP。 在学习的过程中为了给自己增加点挑战,尽量不要使用resource edit,试着自己编码实现控件的创建,消息的响应。 再就是看自己的造化了,动手做一些小工具,特别是自己平常需要的,对自己的提高也应该是很有帮助。 究竟我们要的是结果!良好的分析问题高效清晰地肢解问题的能力才是我们真正要不断学习的吧?
和学习其他知识一样,重要的是获得提出问题,分析问题,苹果软件网站源码解决问题的能力,不是为编程而学习,你具有什么样的思想,就会写出什么样的程序。学一门语言,不能仅仅是语言,要注重语言背后的思想方法,看他是如何来解决某一问题的,为什么要这样去做,他总是要符合客观事实的,就像人说的话一样,存在某种逻辑,数据的组织,信息的传递,靠你自己的头脑去建立,然后看C++中有什么可以帮你的,该怎么样用他来表达自己的想法。只要你认真实践,努力去做,寻求乐趣,就会达到目标。我虽然 真正认真学习编程的时间不长,但现在我是认真的,就有了以上的体会。
学习VC++有相当的内容要学,而最后的深度则看个人的悟性与勤奋了。
1)掌握最新标准的C++。(2个月)
如果曾经在大学里自以为学过C/C++,还对dynamic_cast/static_cast/template/try/catch/throw/stl/...感到
陌生,那你该Refresh一下新的ANSI C++标准了。 ----此与VC++无甚关联,g++/bcb均有所支持。
2) 学习SDK编程;:-O (6个月) 痛苦是暂时的,必要的,坚持就是胜利! 建议用Lccwin/Masm/Tasm编写小而精的工具软件; "Windows Programming Guide." "Advanced Windows programming "
3) 研究MFC源代码。(6个月)
不要被一大堆的宏所蒙蔽,just track and dig into it!! 在知道MFC如何扩展,包装SDK之后,自可功力渐进,不被其MFC系统框架所困绕。"MFC Internals"
4) 研究OLE/COM技术。
COM/ActiveX技术是MS的核心技术,只有彻底洞察其理论精髓才可以体会现在的
操作系统的技术趋势,以不变应万变。
"Inside Ole 2"
***几点建议***:
1) Delphi/BCB/VB可以很快构筑界面,但对于想真正学习、理解系统不是一个好的平台,但如果有时间读一读VCL的源码,看看Borland是如何封装系统的,也可借鉴不少。
2) 学习ASM对理解C++有很大益处。Soft-ICE也是和VC++结合在一起的好工具;
3) 语言本身是皮毛,算法是筋骨;无论高级语言如何发展,在理解操作系统的基础上不断自我创新的能力是源源不断的;如果精髓一旦了然于胸,选择何种开发工具都可以驾御,一见如故了。
每个人学习的过程都会不同吧,我在从TC转向VC时,对Windows的消息机制一点概念也没有,对着个MFC不知所措,几个月下来一点进展也没有。我于是暂时转向win位编程。整整一年时间吧,我就是与API打交道,连编辑菜单条对话框等资源文件时也用Uedit手工编写,为的是希望能对编译器的全过程有个感性的了解。之后我再转向MFC时,果然发现两者是相通的,虽然有一定的区加,不过有了win位编程的基础再看MFC 时会发现它比win位编程要方便了太多。 现在市面上的VC书很多,不过大多是入门书。我以为要精通VC(只是以为,本人自已距精通还远的很)应该多看多写程序,看书只能是入门,会用了而已。我不赞成滥用ActiveX,一来我以为它的性能很成问题,真是又大又慢又不稳定(可能是我有点偏激了吧),二来用了它您的程序今后就要被别人牵着鼻子走了。有次我用了个控件,程序都写了大半了,它给我来个继续使用请支付美元,我两个多月的工钱,烦不烦人?现在我尽可能用别人写的类源代码(我已收集各类代码3-MB了),一样用起来方便,还能边用边学,必要时还能自已改造。 我以为在现代的网络时代,资料到处都有,无论什么先进的技术,今天我不会我只要查到资料,快的学上几天慢的一两个月我也能学会,现在已没有写不出的程序了,写不出是因为你没有耐心写完它。我以为现在的程序员不一定要多么聪明,而更需要他有完成枯燥项目的耐心,找BUG的细心,对于金钱的平常心
(不要为了早日拿到钱而赶进度),最后最重要是有顾全大局,团队协作的精神。 最后,王靖朋友的经历与我实在是有点相似,算是同病相伶吧,真心祝您早日实现自已的人生目标!学习VC是一项费时费力的艰苦学习过程。为了真正用好VC,你 不得不先从OOP开始学起,也许浏览一本纯理论的书要更有意思。 你将从另外的角度考察OO思想。接下来学习C++,学习WindowsAPI 学习MFC,剖析MFC,扩充MFC,创造自己的类库(不要企图写一个 和MFC同重量级的类库)。如果能够精通Microsoft C编译器的各种 参数,你就可以开始研究微软C/C++语言编译器的进化历史(结合 各种背景知识)。 掌握了编程的思想,征服VC只是时间问题。
学习VC是接受微软技术体系的过程。所需要学习的不仅仅是C++,MFC。 需要学习所有微软的技术,包括Windows编程,Win系统(实际上 Win系统实现了很多我们在屏幕上能看到的东西,最起码NT的内核 并不大),COM(深入研究它,理解对象是如何跨越进程边界的,最终 能够自如地在Exe中实现自己定义的接口才算到家了。不过这多少有些 不太必要。),DCOM,ctiveX,Windows DNA... 如果你想成为大拿,学吧,没完没了。最起码,使用VC,你甚至于可以 开发自己的操作系统(当然与MFC没有一点关系)。
C语言四书五经是哪4本书
C程序设计之四书五经
自从Dennis M.Ritchie于年设计并实现C语言以来,计算机程序设计领域已经发生了巨大的变化。以C语言为根基的C++、Java和C#等面向对象语言相继诞生,并在各自领域大获成功。今天,C及其后裔几乎统治了计算机程序设计世界。可以这么说,C语言的诞生是现代程序语言革命的起点,它改变了程序设计语言发展的轨迹,是程序设计语言发展史中的一个里程碑。
然而,C并不仅仅是其他语言的起点和基础,否则它早已成为程序设计语言发展过程中又一个被遗弃者。和当初发明时一样,C语言今天依然至关重要。它的表达力、效率、简练、紧凑、对机器的最终控制以及跨平台的高度移植性,使其在系统编程、嵌入式编程等领域一直占据着统治地位,而C标准的制订则再一次使C语言焕发出新的活力。下文介绍C程序设计领域中的几本好书,其中一些堪称经典。
1. Brian W.Kernighan, Dennis M.Ritchie,《C程序设计语言》,机械工业出版社
这是迄今为止在所有程序设计语言书籍中最广受尊敬的一部经典,是任何一名C程序员的必读之作。因为出自C语言的设计者Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan之手,它被昵称为“K&R C”。是它首先引入了“Hello World!”程序,这个程序几乎成了后来任何一本入门性程序设计语言书籍中的第一个例子。
如同C语言本身简洁紧凑而极具威力一样,这本书轻薄短小而极富张力。通过简洁的描述和典型的示例,它全面、系统、准确地讲述了C语言的各个特性以及C程序设计的基本方法,内容涵盖基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口以及标准库等内容。
简洁清晰是这本书最大的特色。这本小书可以教给你许多比它厚几倍的“大部头”的知识。我认为那些动辄洋洋洒洒拼凑出好几百页乃至上千页的技术作者应该好好向K&R学一学。对于中、高级程序员而言,如果希望迅速获得C语言的严肃知识而又不愿意多花费哪怕一丁点时间,这本书就是首选。
顺便说一句,这本书的索引制作非常出色,极具实用价值,这可能首先要归功于正文部分的简明扼要。此外,尽管它看上去很像一本教程,但其实更是一本写给专业程序员的指南。如果你不具备任何其他语言程序设计背景或基本的C语言知识,这本书也许并不适合用作你的C语言启蒙读物。
2. Perter Van Der LinDen,《C专家编程》,人民邮电出版社
C语言是严肃的程序员语言,但这并不意味着C语言书籍必须板着面孔说教。在这本被C程序员昵称为“鱼书”(封面上有一条“丑陋的”腔棘鱼)的著作中,作为SUN公司编译器和操作系统核心开发组成员之一,Peter淋漓尽致地展示了其深厚的技术沉淀、丰富的项目经验、高超的写作技巧以及招牌式的幽默。在这部作品中,作者以流畅的文字、诙谐的笔法将逸闻典故、智慧和幽默自然地融入技术描述中,读来宛若一本小说,极富趣味。
本书讲述了C语言的历史、语言特性、声明、数组、指针、连接、运行时以及内存使用等知识,揭示了C语言中许多隐晦之处,尤其深入解析了声明、数组和指针、内存使用等方面的细节。要想成为一名专家级C程序员,这些内容都是必须掌握的。和其他满是抽象例子的C语言书籍不同,这本书充满了大量的来自真实世界的C程序设计实例,它们对C程序员具有很高的参照价值。另外,每一章都以极富趣味的“轻松一下”收尾,而附录A“程序员工作面试的秘密”则是任何语言的程序员在应聘工作前增强自信的好材料。
我怀疑真正的C专家可能用不着看这本书 — 从内容到组织方式到行文风格都决定了这是一本轻松愉快的“从菜鸟到高手”的进阶读本,所以,它理应拥有更广泛的读者群。初级程序员往往更需要热情的鼓励,在阅读这本书的过程中,你定会深深地被作者对编程的激情所感染。
世间并无完美。我认为这本书的缺陷在于,和大多数平庸的C语言书籍一样,它画蛇添足地加入了一章关于C++的描述。在今天看来,这个描述既不全面也有失公允。不过,鉴于作者是在年从一名C程序员的角度去观察C++,这一点也就不足为奇了。
3. Samuel P. Harbison, Guy L. Steele,《C语言参考手册(第五版)》(影印版),人民邮电出版社
在C语言参考手册类书籍里,Samuel P. Harbison 和Guy L. Steele合著的《C: A Reference Manual》是非常出色的一本。这本手册的第五版新增了对C标准的介绍,以便满足新时期C语言学习的需要。全书共分为两大部分,第一部分专注于C语言特性,第二部分则全面讨论了C标准库。本书涵盖C、C、传统的C、所有版本的C运行库以及编写与C++兼容的C代码等一切知识。
这本手册只是中等厚度,但它比“比它更厚”的其他参考手册更清晰地描述了C语言的现在和过去的方方面面。整本手册技术细节描述精确,组织条理清楚,内容完备详尽而又简明扼要。可以这么说,它在广度、深度和精度方面都是出类拔萃的。对于中、高级C程序员而言,这本手册值得常备案头,它几乎肯定要比K&R的著作使用频率更高。
年2月1日补充:我手头有这本书的中文版:《C语言参考手册》(机械工业出版社出版)。它在很大程度上减轻了我的查阅负担,不过偶尔也增加了理解上的困难。
4. David Hanson,《C语言接口与实现:创建可重用软件的技术》,机械工业出版社
C语言能够历经三十多年而不衰,一个重要的原因在于它的适应能力。在这“复用”、“面向对象”、“组件”、“异常处理”等先进机制漫天飞舞的年代,C语言仍然能够凭借它小而优雅的语言特性,在相当程度上满足现代软件体系架构提出的要求。只不过,想要达到这个程度,必须要在C的应用功力上达到最高层次。在嵌入式、系统软件以及对性能要求极高的系统开发中,开发人员必须达到这样的层次,熟练掌握C语言的高级特性,才能够同时满足效率和灵活性、复用性的要求。可惜,虽然C语言技术图书汗牛充栋,但是关注这个峰顶之域的作品却是屈指可数。David Hanson的《C Interfaces and Implementations》就是个中翘楚。
David Hanson是业内大名鼎鼎的自由编译器lcc的合作者。在这个项目中,他负责提供高度可复用的基础架构。在不断的实践中,他完全使用ANSI C形成了一整套可复用组件库。这套组件库架构清晰,性能优异,而且提供了很多高级的特性,比如类Win SEH的异常处理机制,可移植的线程库,高性能的内存池,丰富的可复用数据结构组件。David Hanson把他在创作这些组件的过程中所积累的心得以及对其源码的精致剖析原原本本地写在了这本书里。这样的著作,当然堪称C语言领域里的铭心绝品。难怪已故著名技术作家Richard Stevens对此书赞不绝口,他说:“这本书中的技术,对于大部分C程序员来说,已经遗忘得太久了。”对于希望能在C语言应用上达到最高层次的核心程序员而言,这本书是难得的必读之作。
其他
除了以上四本书以外,我还乐意推荐Andrew Koenig的著作《C陷阱和缺陷》(人民邮电出版社)和Deitel父子合著的《C How to Program》两本书。
Andrew Koenig是世界上屈指可数的C++专家,他的这本书可能是最薄的一本C语言经典。它简明扼要地讲述了C程序设计中的陷阱和缺陷,包括词法陷阱、语法陷阱、语义陷阱、连接、库函数、预处理器以及可移植性缺陷等,最后一章还给出了关于如何减少程序错误的建议以及前面各章问题的参考答案。尽管这个小册子成书于C标准制定之前,然而,即使到了C早已颁布的今天,书中提到的大多数陷阱和缺陷一如十五年前那样使我们警醒。
Deitel父子合著的《C How to Program》一直是非常好的C语言入门教程,我手头的中译本名为《C程序设计教程》(机械工业出版社出版,原书第二版)。除了对技术的正规描述(辅以许多简明扼要的例子)外,每一章后面都带有小结、术语、常见的程序设计错误、良好的程序设计习惯、性能忠告、可移植性忠告、软件工程评述、自我测验练习及答案等。整书内容清晰,组织良好,易于阅读和理解。值得一提的是,有许多入门书读完一遍即可扔掉,而这一本是个例外。
结语
以上这几本书很大程度上局限于描述C语言及标准库本身,如果希望学习更专业的、领域相关的C程序设计技术,你可以在选择阅读这几本书的基础上继续查阅专门书籍。此外,在C语言书籍领域,水平不相上下的作品有很多,这几本只是根据我自身的阅读体验而做出的推荐。
我并不是一名C程序员,我的大多数时间都花在C的后裔语言尤其是C++身上了。然而,正如你知道的那样,C++并不全是类和模板,不全是面向对象和泛型编程,在较低的层面,C++的各个实现一如既往在很大程度上兼容C。C++和C的亲密关系决定了每一本C语言经典都应该是C++程序员的读物。
这世界变化得真是太快。各色新事物层出不穷,让人眼花缭乱、目不暇接。人们也很容易被那些五光十色的花哨玩意儿所吸引,常常会忘记构筑过去、现在和未来的坚实基础。C语言就是这样的基础之一。今天,世界上有许多我们看不见的重要软件是用C语言(以及C++等)编写而成的,正是它们在默默地支撑着这个信息世界的运转。