来自某位大佬:

内功=算法+数据结构+编译原理+操作系统原理+软件工程+英文

十足的自信心+强烈的求知欲+对Programming&&C&&CPP的执着+百折不挠的钻研精神+数据结构&算法基础+操作系统基础+C&CPP语法基础

恐惧,崇拜,诋毁都源于无知。

不要拒绝承担重担 

承担多大的担子,就会有多大的价值。主席他老人家说过:人有多大胆,地有多大产。只有敢于承担重担的人,才可以委以重任。而且,更多的历练会锻炼你快速的成长,丰富的人生阅历将是一笔无比的财富。

第一种武器:开发工具 

至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为

开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即
计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA
One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,VB,PowerBuilder,Delphi,C++
Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少
能读懂这些脚本代码。 

第二种武器:数据库 

为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种

数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的
数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。 

第三种武器:操作系统 

当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要

深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学

习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系
统有一定的了解后,你会发现自己上了一个新的台阶。 

第四种武器:网络协议TCP/IP 

在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最
早的客户/服务器结构,到今天的WEB
Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,
你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。 

第五种武器COM/CORBA/XML/WEB Services 

随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的

中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是
要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。 

第六种武器:软件工程与CMM

程序人生成长发展中的一些感悟 

1.要成长,有人带,很重要。 

一个人能力与努力非常重要,但要更快地走向成功,少走弯路,就必须学会借助外界或他人的力量。即使给你足够的书和教程,给你足够的时间,也未必可以修炼成

才。需要环境,需要实践,更需要团队的沟通和相互学习,一个人不可能学会一切,即使可以也会需要很多年的时间,最终还不知道是否正确。正所谓,名人指教,
高人指点,不无道理,因为前人的经验教训是用多年的时间和精力换来的,而你得到这个道理,却只需瞬间,无形中减少了成长的成本。 

想进步,有人带,这就是现实。孔子曰,三人行,必有吾师。 

交换思想,会令你了解的更多;有人带,会使你成长的更快! 

2.广结佛缘 

知识面的狭窄会导致思路的狭窄,想法简单。做事情的时候处理问题的办法相对要少。对一个技术性的问题而言,如果做得项目多了,类型多了,相对来说遇到一个

问题,就会知道该用什么样子的方式解决最好,哪种途径最有效。而广义的讲,在社会上,你接触社会面广,人脉资源丰富,相应的做事的途径就会多,成功的机率

就会大,这是一个普通的不能再普通的道理了。所以,可以提醒一些同行的xdjm们,平时里不要只是低头写你的代码,多接触一些新的知识或技术,新事物会对
你设计系统提供思路或启发。多了解社会,多和人沟通,多培养一些人脉,多给自己一些机会,你会觉得这个世界很美好。 

3.目标决定过程 

先认清“正确的结果”,根据正确的结果去设计你的过程。你选择什么样的目标,就会有什么样的人生。当一个人具有明确目标,会对有助于实现目标的蛛丝马迹都
特别敏感,做事情相应也就会很有目的性,而不是稀里糊涂。
所以,就容易到达自己的目的。如果没有目标,就算是天上真有神仙,如果你不能明确地说明自己想要什么,神仙也不知道该给你什么。 

4。技术和管理 

作了这么多年的技术,有时候会发现一些所谓的技术不过就是一些控件或类库的使用(当然不是全部是),有时候我们所做的工作还不能算是真正的“创造”,充其

量是一种“制造”。也经常在论坛看到争论到底是技术重要还是管理重要,这其实体现了一部分朋友的迷茫,作过多年的程序员都会想向上发展,其实并没有错,做

技术没有出头之处,并不代表没有其他的潜力或优势。况且国内盛行“35是个坎”的言论。如果从一个人的职业规划和社会价值角度讲,人应该争取为社会创造更

大的价值。一段代码创造的价值远不如一个商业流程或商品设计创造的价值大,正如:盖楼的工人师傅和设计楼的设计师,没有谁重要不重要的问题。而是一种人生
价值观的问题。但前提是并不是所有的工人都可以成长为设计师的,要根据自己的实际情况和职业愿望所决定。 

所以,对于一些有潜力,有志向这方面发展的朋友,而又想体现更大的自身价值和优势,可以尽早计划,制定目标,立即行动,希望能挖掘一下自己各方面的潜力。

我个人也希望能在项目管理或系分方面有所进步,但暂时我还不打算放弃写代码,因为创作源于生活,离开了生活创作便变得空洞,感觉没写过代码的人管理项目或
设计系统会变的有点像纸上谈兵,空中楼阁。 

5.不要拒绝承担工作重担 

承担多大的担子,就会有多大的价值。主席他老人家说过:人有多大胆,地有多大产。只有敢于承担重担的人,才可以委以重任。而且,更多的历练会锻炼你快速的成长,丰富的人生阅历将是一笔无比的财富。 

来吧,让更多的工作来的更猛烈些吧! 

6.用心做好现在的每一件事

1)你已经认为C++和汇编语言都是很简单的语言,并能够自如地运用;   

2)你能够在30分钟之内想到正确的五子棋AI算法设计思路和方向;   

3)你完全理解STL为什么这么重要;   

4)你能够独立地解决所有的编译与链接问题,哪怕你从来没有遇到的问题,你也不需要询问任何人;   

  5)英文网站是你的首要信息来源;   

  6)能够读懂英语写成的国际标准,比如NTFS磁盘格式标准。   

  7)你经常站在集合论的角度思考算法问题;   

  8)能够理解一个简单的驱动程序,能够理解一个简单3D交互程序;   

  9)你能够认识到线性代数和概率论在实际编程工作中的极端重要性;   

  10)你完全理解COM的设计思想,尤其能够   理解COM为什么要设计成这样;   

  11)当我说到虚函数的重要作用时,你不会急着去找书来翻;   

  12)你能够说出C++为什么比其他语言优秀的理由

C++只是语言.真正灵魂是设计.和算法.

其实程序设计语言是一种工具,大家千万别陷进去。

C++只不过是一种语言,一种工具是用来显示你的编程思想,你对问题的理解能力 

如果有一天,由于实际应用的体会领悟或者需要,你觉得C++的标准还有必要再补充一下或者修改一下,那么你就已经超越了C++这种语言本身的范畴,说精通C++也不为过了

没干过C,只针对C++:   

1、要很熟悉C++的内存机制。只有了解了这个以后,其它的很多问题才能解决,比如,开一个缓存new时,要指定大小,为什么delete不需要。堆和栈有什么区别,分别在什么时候用比较合适。   

2、要有程序运行的时间和空间效率意识,比如加载整个硬盘的文件,大概需要多少内存,10M?100M?1G?各自的处理方式有着本质的区别。缩略显示整个硬盘的图片,如果每次单击滚动条时,要等一分钟,你认为用户能接受吗?   

3、要有很强搜索资料能力。比如在程序启动时,要自动发个Email,怎么做?要写个搜索程序,有哪些算法对大批量数据比较合适?   

4、要熟悉一种通用库的使用,比如MFC,STL,不一定要很精通,知道照葫芦画瓢就行,要用的时候可以查手册。   

5、熟悉一种工具的使用,比如Visual   Studio;   

6、熟悉动态库和静态库的使用。

什么叫精通C/C++

It is better to have the ability of fast learning

It is better to have the ability of fast learning的更多相关文章

  1. [DEEP LEARNING An MIT Press book in preparation]Deep Learning for AI

    动人的DL我们有六个月的时间,积累了一定的经验,实验,也DL有了一些自己的想法和理解.曾经想扩大和加深DL相关方面的一些知识. 然后看到了一个MIT按有关的对出版物DL图书http://www.iro ...

  2. [转]Introduction to Learning to Trade with Reinforcement Learning

    Introduction to Learning to Trade with Reinforcement Learning http://www.wildml.com/2018/02/introduc ...

  3. Brief History of Machine Learning

    Brief History of Machine Learning My subjective ML timeline Since the initial standpoint of science, ...

  4. Introduction to Learning to Trade with Reinforcement Learning

    http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/ The academic ...

  5. 机器学习简史brief history of machine learning

    BRIEF HISTORY OF MACHINE LEARNING My subjective ML timeline (click for larger) Since the initial sta ...

  6. 网络流量预测 国内外研究现状【见评论】——传统的ARIMA、HMM模型,目前LSTM、GRU、CNN应用较多,貌似小波平滑预处理步骤非常关键

    Time Series Anomaly Detection in Network Traffic: A Use Case for Deep Neural Networks from:https://j ...

  7. 深度学习Deep learning

    In the last chapter we learned that deep neural networks are often much harder to train than shallow ...

  8. Machine Learning and Data Mining(机器学习与数据挖掘)

    Problems[show] Classification Clustering Regression Anomaly detection Association rules Reinforcemen ...

  9. [C4] Andrew Ng - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization

    About this Course This course will teach you the "magic" of getting deep learning to work ...

随机推荐

  1. 用Python爬取B站、腾讯视频、爱奇艺和芒果TV视频弹幕!

    众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...

  2. Consul 学习笔记-服务注册

    Consul简介: Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面.这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建完整的服务网格.Consul需要 ...

  3. 使用css实现轮播图

    使用css3实现图片轮播 前言:实现图片轮播的方式有很多种 ,例如js ,css 等等. 本文主要讲述使用纯css3实现轮播图 工具介绍: 使用的编辑器: Hbuilder 进入正题 html代码: ...

  4. spring cloud 实现基于Nacos权重的负载均衡

    package com.water.step.service.user.nacos; import com.alibaba.nacos.api.exception.NacosException; im ...

  5. uc浏览器手机版,页面图片不显示

    uc浏览器手机版,有时候上面的轮播广告看不到 原因:uc浏览器会拦截所有带ad的标签 例如: <div id="adDiv"> <img src="/r ...

  6. spring-security-结合JWT的简单demo

    spring-security-demo 前言:本来是想尽量简单简单点的写一个demo的,但是spring-security实在是内容有点多,写着写着看起来就没那么简单了,想入门spring-secu ...

  7. 基于python实现链式栈

    """ 链式栈 linkstack.py 思路分析: 1.源于链表结构 2.封装栈的操作方法(入栈,出栈,栈空,栈顶) 3.链表的开头作为栈顶(不用每次遍历,效率高,怎样 ...

  8. spring boot:使用poi导出excel电子表格文件(spring boot 2.3.1)

    一,什么是poi? 1,poi poi是用来兼容微软文档格式的java api, 它是apache的顶级项目之一, 也是我们在生产环境中导出excel时使用最多的库 2,poi官方网站: http:/ ...

  9. anaconda 取消每次默认启动base环境

    安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境 方法一: 每次在命令行通过conda deactivate退出base环境回到系统自动的环境 方法二 1,通过将a ...

  10. Java8中Stream 的一些用法

    数据结构和数据准备 @Data @AllArgsConstructor @NoArgsConstructor static class StreamItem { Integer id; String ...