
顶尖的程序号是非常牛X的,顶尖程序员常说:“这个我以前写过一个模块,我找找,很快。这就是区别,
要想作到顶尖的程序员,要具备以下几点:
第一 文档是第一生产力,它在程序员的世界中是无可非议的。看看最流行的开源软件的文档,比如Spring、hibernate和Struts,看看它们的教程、入门和参考文档有多好,有文档就有沟通,就有交易。搞技术的容易忽视文档的力量,也因为写文档十分困难,更多程序员选择舒适区,习惯写下代码,但正因为如此,妨碍了不少程序员的进阶。
第二表达能力,表达能力决定了你所做的技术的影响范围,普通程序员和顶尖程序员的表达能力差别非常大,这主要还是取决于他们格局的不同。
第三 面对功能点 普通程序员:立马开始构思自己如何实现脑海里出来一个方案,顶尖程序员:发现功能点很普通github上面早已经有非常多的解决方案,着手根据业务选择一个最适合最优的方案。
第四 勇于去研究你不懂的代码,如果你经常去研究你没有接触过的代码,你就会越来越熟悉不同的代码结构和设计模式。
以上只是描述顶尖程序号其中几点特点,当然他们的优 势远远不止这些啦。
程序员也是分为等级的,因为每个人的实力水平不同,成为顶级的程序员肯定是要付出很多努力的,有时候写程序就可以看得出来,有的程序员写出来的程序经常会有漏洞,导致系统运行不稳定,但是有的程序员人家写的程序不但占用的内存少,没有漏洞,而且也运行流畅,这就是顶级程序员的最基本工作,因为大部分的程序员根本就没有自己写的程序,都是复制粘贴别人的,所以说现在的程序员就是搬运工而已。
我们看似高大上的程序员,其实他们的工作就是修改漏洞,把别人的框架复制过来自己用,换个牌子就是自己开发的,这样的程序员永远是最低级的程序员,因为根本不会有太大的前途,所谓的二八定律,就是因为只有少部分程序员才是真正的自己开发程序,有着自己的思维,因为人家知道并不是为了挣到多少钱,而是能够做出自己喜欢的东西来,任何的行业只要是你用心去做,都会做的成功,表面上看着非常辛苦的程序员实际上一点也不劳累。
有的程序员在年轻的时候挣到几年高工资就离开这样的行业了,因为大部分的人都是这么想的,只有少部分的人员才会坚持做自己喜欢做的事情,因为人家真的是热爱这样的事业,也就是到最后都能够成功的,要想过得不错就要付出别人没有付出的,你才会真正的搞明白软件行业的。
生活中的程序员看着很辛苦,实际那是他们把他当作挣钱的工具,当你的内心太急功近利的时候就会感到疲惫,也做不出太大成果的事情,因为你的心思没有在开发程序上下功夫,总是漂浮不定的,所以说二八定律永远的存在。
首先声明:
这是我电脑珍藏的了。当然,都是别人的。阁下看看:
这帖子我已经珍藏几年了,只是转贴而已,为啥说这帖子好,您自己看。我是计算机系大四学生,就这篇文章让我得益非浅
一、为何要学编程?
每个人的动机不一样。大致有:
1、为了找个好工作;或为了有更好的机会和更好的发展。
2、看到别人超厉害,所以也想学。
3、实际工作中很多场合需要。
4、从小就立志做个程序员,做软件工程师。
5、振兴中国的软件事业。
。。。。。。
================================================
二、如何学编程?
1、多看好书。
差书误人子弟,不但浪费时间和精力,而且打击人的信心,差书使人很久都不会,让会让人怀疑自已
的学习能力。
现在的书很多,但好书很少,特别是被大家公认很有价值的好书,更是少之又少。历经多年时间考验
和市场风雨不残酷洗礼而仅存的巨著,更是极其稀少。中国历史上文学小说类书本多如牛毛,但仅存的巨
著,也只不过<<红楼梦>>等四本名著而已。
编程方面也是如此。
2、多动手。
这一点很重要。而且特别重要。
“纸上得来终觉浅,绝知此事要躬行。”陆游的千古名句说的就是这个道理,并且同样适合于编程方
面。
================================================
三、用什么语言最好?
这主要取决于应用领域,每种语言都有自已的长处和不足。
1、汇编语言和C语言在单片机及工控领域用较多。另外C语言也是一种通用语言,是学C++/c#的起点。
2、C++系统编程等多个方面,最常用的编译器是VC。
3、C#/Java网络编程方面新兴的。
4、VB通用。
5、还有Delphi等。。。。。。
个人建议:从未编过程的,就从学vb开始。有基础的可直接学c++/VC。
===================================================
四、有什么好书?
几年前,台湾著名技术作家侯捷先生曾经写过一篇影响很大的书评文章,叫做《MFC四大天王》。文章的
意思是说在MFC的浩瀚书海中,只要认真研读和学习其中四本,就可以“五岳归来不看山”。侯先生虽以
MFC为例,但是这个道理却同样适合于MFC之外的很多具体技术领域,这不能不说是一个有趣的统计现象。
通常在某一个具体细分的技术领域,会自然而然地出现3-5本顶级著作,它们彼此互相配合,形成一个完
整的体系。对于学习者来说,只需要认真研读这几本书,就足以升堂入室。我乐于将这种现称为“四书五
经现象”。对于读者来说,如果能够找到该领域中的“四书五经”,则无论在时间上还是金钱上都是最经
济的选择。好书几本,胜过烂书几捆,这个体会想必大家都有。在此,帮助大家遴选各个技术领域里的“
四书五经”。
编程的书可谓汗牛充栋,其中经典也是不泛其数,但绝大多数的过来人,都一致认为,要想很快的入
门并尽快的投入到编程实践中,只要其中的四到五本也就够了,即只看经典中的经典,圣经级的书就可以
了。
所谓活到老学到老,程序员是个终身学习的职业,要不断的看书,直到放弃编程的那一天。所以,
您要读的好书也绝非以下推荐的这些书哟,呵呵。
一句话,由于我们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。
[/equote]
[equote]
经典好书分类热销榜
================================================================
1、Java
Java编程语言(第三版)---Java四大名著----James Gosling(Java之父)
Java编程思想(第2版)----Java四大名著----Bruce Eckel
Java编程思想(第3版)----Java四大名著----------------Bruce Eckel
JAVA 2核心技术 卷I:基础知识(原书第7版)---Java四大名著-----Cay Horstmann
JAVA 2核心技术 卷II:高级特性(原书第7版)----Java四大名著-----Cay Horstmann
Effective Java中文版------Java四大名著--------Joshua Bloch
精通Struts:基于MVC的Java Web设计与开发---孙卫琴
精通Hibernate:Java对象持久化技术详解---孙卫琴
Tomcat与Java Web开发技术详解------------孙卫琴
Java与模式------------------------------阎宏
2、c#
C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑”
C# Primer中文版--------Stanley BLippman---C#语言“倚天屠龙双剑”
NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---NET平台四大天王
c#Windows程序设计----------Charles Petzold“windows编程泰山北斗”------NET平台四大天王
NET程序设计技术内幕-------------Jeff Prosise---NET平台四大天王
NET本质论--第1卷:公共语言运行库(中文版)--------Chris Sells---NET平台四大天王
3、C++
C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”
C++ Primer (第3版)中文版----c++八大金刚---Stanley BLippman
C++ Primer (第4版)中文版----c++八大金刚---Stanley BLippman
C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai MJosuttis
C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”
深度探索C++对象模型---c++八大金刚----Stanley BLippman
Essential C++中文版---c++八大金刚---Stanley BLippman
Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers
More Effective C++中文版----c++八大金刚------Scott Meyers
C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel
C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel
C++程序设计--------------------------谭浩强
C++ 程序设计教程(第2版)--------------钱能
C++ Primer Plus(第五版)中文版---Stephen Prata
广博如四库全书The c++ programming language、c++ Primer
深奥如山重水复Inside the c++ object model
程序库大全The c++ standard libray
工程经验之积累Effective c++、More Effective c++、Exceptional c++
c++八大金刚:
1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者
2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书代表,
圣经。
3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书代表。
4、Inside the c++ object model-----lippman----揭示c++底层,非常好,非常难。
5、Effective c++-----通过50个编程实例,展示专家经验,行文有趣,深处浅出。
作者: 热布克 2006-7-11 16:18 回复此发言
--------------------------------------------------------------------------------
3 C++原创,超经典:为何要学编程?如何学编程?用什么语言最好?有
6、More Effective c++----通过35个编程实例,展示专家经验,行文有趣,深处浅出。
7、The c++ standard libray---c++标准库的百科全书。
8、设计模式:可复用面向对象软件的基础------good!
4、c
C程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian WKernighan“C语言之父”
C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata
C程序设计(第三版)---------------------------谭浩强
C语言大全(第四版)---------------------------HERBERT SCHILDT
C语言接口与实现:创建可重用软件的技术-------------DAVID RHANSON
C语言参考手册(原书第5版)--------------------------Samuel PHarbison
C程序设计教程---------------------------------HMDeitel/PJDeitel
C陷阱与缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师”
Windows程序设计-Visual BasicNET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山
北斗”---
NET框架程序设计:Visual BasicNET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北
斗”---,Francesco Balena“vb首席大师”
Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师”
Visual BasicNET 从入门到精通-------------------------Petroutsos,E
高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深入核心——VCL架构剖析)----------李维
Delphi 7高效数据库程序设计--------------李维
面向对象开发实践之路(Delphi版)----------李维
7、VC
Windows 程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”---
Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”---
Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”---
深入浅出MFC(第二版)-----“MFC四大天王”-------侯捷
MFC Windows程序设计(第2版)---MFC四大天王”---------Jeff Prosise
Visual C++ 技术内幕(第4版)--MFC四大天王”--------David Kruglinski
深入解析MFC-------------MFC四大天王”-----------George Shepherd
Visual C++NET 技术内幕(第6版)-MFC四大天王”------------David Kruglinski
8、vf
Visual Foxpro程序设计参考手册-------------------张洪举
专家门诊——Visual FoxPro开发答疑160问-------------------张洪举
Visual FoxPro 60/90解决方案与范例大全-------------------张洪举
Visual FoxPro软件开发模式与应用案例-------------------张洪举
9、黑客
应用密码学(协议算法与C源程序-----------Bruce Schneier
网络信息安全的真相-----------Bruce Schneier
黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE
软件加密技术内幕------------看雪学院
加密与解密——软件保护技术与完全解决方案------------看雪学院
加密与解密(第二版)--------段钢
10、汇编
Intel微处理器结构、编程与接口(第六版)---------Barry B Brey
8086、奔腾机汇编语言程序设计---------Barry B Brey
Windows环境下32位汇编语言程序设计(第2版)-----------罗云彬
IBM-PC汇编语言程序设计(第2版) 本书是国内优秀教材--------沈美明 温冬婵
IBM PC汇编语言程序设计(第五版) 这本书籍是国外优秀教材-------PETER ABEL著,沈美明 温冬蝉译
11、驱动开发
作者: 热布克 2006-7-11 16:18 回复此发言
--------------------------------------------------------------------------------
4 C++原创,超经典:为何要学编程?如何学编程?用什么语言最好?有
Windows WDM设备驱动程序开发指南------------------------------------ Chris Cant
Windows 2000/XP WDM设备驱动程序开发(第2版)--------------------------武安河
WINDOWS 2000/XP WDM设备驱动程序开发-------------------------------- 武安河
12、网络
计算机网络第四版中文版----网络编程三剑客--------------Andrew STanenbaum
TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客
UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客
用TCP/IP进行网际互联-----------Douglas E Comer
高级TCP/IP编程-------------------Jon C Snader
C++网络编程-----------------------Douglas Schmidt
UNIX环境高级编程(第2版)--------------------Richard Stevens
13、算法
计算机程序设计艺术-------DonaldEKnuth----------算法“倚天屠龙”双剑
算法导论-----------------Thomas H Cormen--------算法“倚天屠龙”双剑
离散数学及其应用----------Kenneth HRosen
具体数学—计算机科学基础--------DonaldEKnuth
14、图形编程
Windows 图形编程----------------FENG YUAN --图形编程界的Charles Petzold之书
15、数据结构
数据结构 C++语言描述》5800(Data Structures C++) William Ford,William Topp 刘卫东 沈官林
数据结构算法与应用-C++语言描述》4900Sartej Sahni 汪诗林 孙晓东等机械工业出版社
16、软件工程
设计模式--可复用面向对象软件的基础
重构—改善既有代码的设计
17、 *** 作系统
深入理解计算机系统(修订版)-------RANDAL EBRYANT
18、Unix
UNIX 网络编程 卷I 套接字联网API(英文版 第三版
UNIX 编程艺术
UNIX环境高级编程(英文影印第2版-----UNIX编程“圣经
UNIX环境高级编程(英文影印版)(第2版)
99-UNIX环境高级编程(第2版)
UNIX环境高级编程(第2版)---UNIX编程“圣经
UNIX网络编程 第1卷:套接口API(第3版)
UNIX网络编程卷2:进程间通信(第2版)(英文影印版)
UNIX 网络编程(第二版)第2卷:进程间通信
UNIX编程环境
UNIX 网络编程 卷I 套接字联网API(英文版 第三版
UNIX系统编程
UNIX环境高级编程
UNIX环境高级编程(英文影印版
88-LINUX内核分析及编程
UNIX 网络编程 卷I 套接字联网API(英文版 第三版)
UNIX网络编程 第1卷:套接口API(第3版)
UNIX 网络编程(第二版)第2卷:进程间通信
UNIX网络编程卷2:进程间通信(第2版)(英文影印版)
UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API
UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版)
UNIX环境高级编程
UNIX 环境高级编程(英文版)
UNIX环境高级编程(第2版)
Unix技术手册
19、Linux
Linux内核设计与实现
Linux内核完全注释
LINUX内核分析及编程
GNU/Linux 编程指南(第二版)
Linux设备驱动程序(第三版)
嵌入式设计及Linux驱动开发指南——基于ARM 9处理器
Linux设备驱动程序 第三版(英文影印版)
Linux内核设计与实现(第2版)
Linux内核设计与实现(英文影印版)(第2版)
linux技术手册
20、游戏编程
Windows游戏编程大师技巧(第二版
游戏之旅--我的编程感悟
OpenGL超级宝典:第三版
OpenGL编程指南(第四版)
Java 游戏高级编程
J2ME手机游戏编程入门
游戏之旅——我的编程感悟
游戏开发中的人工智能(英文影印版)
3D游戏:卷2 动画与高级实时渲染技术
面向对象的游戏开发
Java 游戏高级编程
3D游戏编程大师技巧
游戏编程精粹
面向对象的游戏开发
3D游戏 卷1:实时渲染与软件技术
3D游戏:卷2 动画与高级实时渲染技…
J2ME手机游戏编程入门
Direct3D游戏编程入门教程(第二版…
21、移动开发
Windows Mobile手机应用开发
SYMBIAN OS C++手机应用开发
68-Windows Mobile手机应用开发--傅曦 齐宇 徐骏
48-SYMBIAN OS C++手机应用开发 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣译
68-SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON著,周良忠译
Windows CEnet内核定制及应用程序开发---------周毓林 宁杨 陆贵强 付林林
嵌入式系统Windows CE 开发技巧与实例--傅曦
Palm OS编程实践---绝版
22、单片机
单片机轻松入门----------------------------------周坚(平凡老师)
单片机典型模块设计实例导航-----------------------求是科技
例说8051----------------------------------------张义和 陈敌北
KEIL CX51 V70单片机高级语言编程与ΜVISION2应用实践-----徐爱钧
单片机应用程序设计技术(修订版)--------------------周航慈
8051单片机实践与应用-------------------------------吴金戎
MCS-51系列单片机实用接口技术---------------------李华
23、串并口通讯
Visual C++/Turbo C串口通信编程实践------------------龚建伟
VISUAL BASIC与RS-232串行通信控制(最新版)----------范逸之
24、电子
无线电识图与电路故障分析轻松入门(第二版) -------------------胡斌
无线电元器件检测与修理技术轻松入门(第二版) -------------------胡斌
图表细说电子技术识图-------------------胡斌
图表细说电子元器件-------------------胡斌
图表细说元器件及实用电路-------------------胡斌
[/equote]
[equote]怎样成为一名程序员[/equote]
[equote]
通过以下4个阶段的训练, 没有任何编程基础人就可以成为一名普通的程序员。
第一阶段:掌握一种编程语言
学习内容:学习任意一种主流的编程语言。例如C++语言。
学习目标:熟练掌握一种语言的语法和基本的编程技巧。
学习时间:3个月左右
注意事项:编程语言和编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等
程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指
Visual C++ 60、Visual Basic 60、Delphi 70等包括了源代码编辑器、程序编译器
在内的集成化、可视化的软件开发工具。C++源程序可以在Visual C++ 60里编写,也可以在
记事本里编写,而同一个C++源程序可以用Visual C++ 60编译、执行,也可以用C++ Builder 50
编译、执行,所以: C++ 不等于 Visual C++ 60
第二阶段:掌握一种编程工具
学习内容:学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语言一致,例如你学习的
编程语言是C++,那么编程工具要选Visual C++ 60或者C++ Builder 50。
学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。
学习时间:3个月左右
注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。
第三阶段:掌握“算法与数据结构”这门课程
学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。
学习目标:熟练掌握各种常用的算法与数据结构
学习时间:4个月左右
注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,
这说明了数据结构和算法的重要性。它能帮我们建立良好的程序分析与设计能力。
第四阶段:实现一个模拟的小型软件项目
学习内容:软件项目的开发过程
学习目标:掌握软件项目的基本开发过程和方法
学习时间:4个月左右
注意事项:自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐
“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效,
以它为基础再加以扩展,就可以做出实用的MIS软件来。
此丛书包括多种开发工具,大家可以选择适合自己的:《VISUAL FOXPRO60 数据库系统开发实例导航》
《JAVA数据库系统开发实例导航》 《VISUAL BASIC数据库系统开发实例导航》
《VISUAL C++60数据库系统开发实例导航》 《ASPNET数据库管理系统开发实例导航》
DELPHI数据库系统开发实例导航》 《POWERBUILDER 80数据库系统开发实例导航》。
最后将完成的模拟软件刻成光盘,作为自己的作品去面试,以此踏上自己光辉的职业程序员之路!
我是程序员。实习过两家公司,说说我的观察。
第一家公司有个技术总监,每次跟他聊天总是只感觉我差一点儿就能超过他的那个样子,人很和蔼,总是会说『我也要学一下』,然而恐怖之处在于无论和他聊什么他都有那种『哦,这个我了解过一些,我们可以交流一下,共同学习』。无论什么。
他很会照顾我,由于我不是科班出身的,他和我交流尽量不用术语,比如依赖倒置,他和我讲的时候告诉我原理以及如何实现,并不会特意提这个名词。
我和他聊过一些东西,从应用层到ASCII码,从前端到GC,无所不知。而且他总是特别谦虚。
最后我走的时候说实话是很不舍得的。他拉着我说了很多,告诉我以后应该怎么做,要多了解整个项目架构,不能只是做自己的工作。要学会帮助其他同事,解决他们的问题。要稳住自己。
我离开之后才发现,那家公司是多么好。
第二家公司是个大公司。
我的lead,七零后。他周末在家还在学习,晚上会补作业到12点。我见过他写lazyload,也见过他给iOS讲性能优化。当然,还有非常高超的领导力。
他们写的代码并没有上面说的特别优雅,我见过的,而且要说代码的好看程度,比我写得规范漂亮的应该也不多。他们有一个共同特点是很繁琐,非常的繁琐。我一度很不喜欢这种代码,觉得很丑,而且很复杂。我问过以后终于发现和他们的差距,那叫做代码的健壮性。
之后我再看他们写的代码,无论什么情况都能扛得住,并能给出正确的错误处理。而我的代码,简短,有力,漂亮,满是奇技*巧,然而就是不耐 *** 。
我的经历所认识到的优秀程序员就是这样:博学,谦虚,积极向上,良师益友,还有代码十分健壮。
必然的,必须的。
顶尖的程序员除了懂写代码外还要懂各种算法的应用。而应用的背景知识就是高等数学。如果只知道写代码,那么还算不上顶尖的程序员,顶多算个中等的程序员。
举个最简单的例子,做图像识别或人脸识别,就是对图像进行处理。而图像的本质就是矩阵,因此离不开线性代数的各种运算,特征求解,规划求解。
人脸识别中可能还涉及到神经网络的学习和试算梯度预算,就离不开微积分。
再举个例子,密码的编译也离不开矩阵代数应用,无论是密文还是密文转明文。
还有,文字索引,文本处理……是在太多太多了。以上的知识,还要变成代码写入你的程序中的。
所以,光从应用的角度来看,就离不开高等数学。要想成为顶尖的程序员,那就更要学好高等数学。
C++这门语言从诞生到今天已经经历了将近30个年头。不可否认,它的学习难度都比其它语言较高。而它的学习难度,主要来自于它的复杂性。现在C++的使用范围比以前已经少了很多,java、C#、python等语言在很多方面已经可以代替C++。但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏、高效的服务器。 现在学习java、C#等语言的人数远远高于C++,主要是C++的入门门槛太高,可能学习了一段时间后还做不了什么东西,导致信心大受打击,进而放弃。 我想把我自己的经验分享给大家,希望帮助新人少走些弯路。 在此我们不讨论具体的技术细节,只说我们应该学习什么东西。一、技术能力1语言 我们要成为一个程序员,学的东西会很多很杂,但是最开始一定要从语言开始学习,而学习语言最关键的莫过于选好一本书,学校的教材就算了,根本没有写得好的。在此隆重推荐《C++ Primer》,这本书很厚,内容也很丰富,对知识的讲解不仅仅停留在表面。如果这本书能有耐心看完,语言方面基本就没有什么大问题了,对以后的学习也打下了一个很好的基础。2GUI C++方面的GUI库有很多种,比如MFC、WTL、wxWidgets、QT。这些GUI库都各有自己的特点,其实我们只要先了解一种就可以了,只要深入了解了一种GUI库,需要的时候再学习其他的就够了,本质上都差不多,很快就可以上手了。MFC虽然设计上有很多问题,但是作为入门还是不错的,而且学习资料很多,碰到问题也好解决。3数据结构和算法 很多人都忽视了数据结构和算法方面的知识,尤其是一些编程语言的库做得非常好,几乎不需要自己去实现一些数据结构和算法,导致现在很多程序员不重视甚至忽略这方面的知识。但是,当我们想让我们的程序跑的更快、内存占用更少的时候,这些知识就非常非常重要了。很多程序员都是刚开始的时候不重视这些,但是工作几年后又来补习这些知识。 最开始可能不需要学习的太深入,但是基本的数据结构和算法一定要知道。 推荐《数据结构(C语言版)》,在数据结构和算法的学习中,最好不要去关心面向对象方面的技巧,就用C语言来实现,这样能更关注于算法本身的内容。4数据库 学习数据库的基础知识,并且掌握一种数据库使用,推荐使用mysql,而且最好不要用一些封装好的接口,而应该直接用mysql提供的数据库api,可能对数据库了解的会更深入。5并行 cpu主频已经不能遵循摩尔定律了,现在cpu发展的趋势是多核心。无论是多线程,还是多进程,都是为了更好的利用cpu的性能,提供更好的用户体验。这就要求我们如果要写出高效的应用程序,必然要涉及到并行计算。多花些精力在并行计算上吧,一定会有丰富的回报。6网络编程 这里所指的网络编程是指socket编程。现在C++的应用很多都是在做服务器开发,如何开发一个高并发、大吞吐量、高稳定性的服务器就是我们要考虑的了。7设计模式 设计模式不是具体的技术,更多的是如何让代码更容易阅读、更好扩展、更容易使用。8库的使用 C++标准库仅仅提供了一些很基本的功能,所以我们经常会引入一些第三方库。最著名的恐怕就是被称为准标准库的boost库,它提供了我们编程中用到的各方面的技术,文本处理、算法、网络、多线程、图像处理等等,几乎无所不包。其它也有一些专著于某一方面的库,比如ACE是网络通信方面的,TinyXML是解析xml的,OGRE是图形渲染方面的。9 *** 作系统的知识 程序员需要了解的 *** 作系统知识和普通用户是不一样的,一个高手是需要深入了解 *** 作系统的方方面面,而不是停留在使用层面。至于应该了解哪些知识,windows上的去看《windows核心编程》,linux的去看《深入理解linux内核》,应该可以知道自己应该学什么了。二、项目经验 以上的内容如果都精通了,也算是个比较厉害的程序员了。但是对程序员来说,项目经验更加重要。一个好的项目可以让你把各种技术进行综合运用,并且能学到一些新的知识。比如说做游戏的就需要学习图形方面的知识,做播放器的要学习编解码器方面的知识。 很多程序员会忽略项目的经验,而单纯的谈技术能力,这是错误的。其实这就是理论和实践的关系,技术就是理论知识,做项目就是实践,理论对实践有知道作用,实践能加深我们对理论的深入理解。三、沟通能力 沟通能力是一个高级程序员要具备的软实力。 我这里想说的沟通能力并不是一般说的能说会道,夸夸其谈,说话天花乱坠。而是建立在技术基础之上的沟通能力。
以上就是关于顶级的程序员是怎么样的全部的内容,包括:顶级的程序员是怎么样的、程序员也难逃的二八定律,成为顶级程序员真的有那么难吗、如何才能成为一个优秀的程序员甚至工程师等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)