第二个程序是改变了a,b,c中的值的,如果题目要求不能更改a,b,c中的值的话,并且不能使用函数,借助其他的变量,那么就只能编写成你写的那个程序了,对于不同的要求可以编写不同的程序。
写程序有很多技巧性的东西,要有发散的思维,牢固的基础,多写一些看看别人的优秀代码,能从中进步,就好了,代码主要就是帮助解决问题的,除了学习一门语言,重要的还有数据结构等。
c++学习过程
1第一阶段:
熟悉一下c++的封装,继承与多态等特征,不能让vc++的各种特征分散学习的注意力。
学习重心:算法。多做一些算法训练。
参考书籍:《c程序设计》(谭浩强)
《c++编程思想》(Bruce Eckel)
2第二阶段:
熟悉windows运作机理,API编程,了解windows的编程原理和机制,了解windows系统的消息机制(多任务,消息映射等)。了解常用API函数,了解如何创建窗口,对话框,控件。消息循环,了解句柄的含义。理解WIN32程序如何运作,把握各种窗口之间的关系。
参考书籍:《windows程序设计》(Jeff Prosise)
《vc++权威剖析,MFC原理,机制》(幸长安)
3第三阶段:
熟悉MFC类库,应用程序框架编程。(vc++核心)
参考书籍:《深入浅出MFC》(侯捷)
《VC++技术内幕(第六版) 》
《vc++权威剖析,MFC原理,机制》(幸长安)
4第四阶段:
学习Active,ATL,COM等技术
首先,要认清学习程序设计的目的是学习程序设计的思想,而不是学习编程的语言当然,你选择的语言应当典型而且被广泛使用,否则你会发现你学习的语言无用武之地同时,当你对一种语言了解深刻以后,你会发现学起其他语言来非常简单,因为来来去去本质上都是一样的东西,也就是说,当你真的把一种语言学好了以后,你几乎不必再去刻意学习另外一种语言去读那种语言写的程序了
其次,要有恒心,要坚持不懈--不是钻牛角尖因为无论学习什么都是一个漫长的过程,从你的第一个hello world程序到一个成型的应用程序可能会经过很长时间,但请相信,只要你努力,你就每一天都有进步,如果你在学习程序设计的过程中发现没有任何的困难,那有两种可能,一是你是一个天才,另外一个就是,你没有刻苦
再者,关注新事物,但不要盲从科技一日千里,尤其是IT界,一个程序员每天都要充实自己才能保证不被淘汰但是,在充实自己的同时,不要盲目追求所谓的最新的技术,实际上,无论技术如何先进,最重要的还是你的基础如果对于每一样事物都浅尝则止,那么,你永远都是门外汉
最后,对于很多人来说,算法和数据结构的学习过程可能是很枯燥的,但是,如果你真的要下定决定学好程序设计,相信我,这些最枯燥的东西,才是对你最有用的
可能讲得有些离题了,希望对你有用
学好VC++的十大良好习惯
(一)充分利用MSDN,因为我个人觉得它胜过任何一本编程参考书;
MSDN是Microsoft当前提供的有关编程信息的最全面的资源,它包含微软最新的技术数据库,加上易学易用的全文检索功能,让您迅速找到任何您需要的技术参考数据,让您随时拥有与全世界菁英同步的技术,掌握最丰富的程序开发资源。我经常收到很多朋友的EMAILS,他们所提的问题往往都非常的简单,MSDN完全可以解答这些问题,但他们好象不太喜欢用,这是让我郁闷的地方,是因为英文不好呢,还是没有学会充分利用各种资源来解决问题的方法呢
(二)提高英文水平,养成多上英文网站多看英文资料多买老外原版英文书;
有关程序员与英文水平的讨论已太多太多,我个人认为要成为程序员,高中的英语水平够了,甚至不懂英语的一些人,也同样可以成为较好的程序员,因为开发工具的发展将是越来越傻瓜,但如果你是仅仅满足于能运用某种工具开发某个软件模块,那是没话说了。真正热衷技术肯干钻研乐于接受挑战的程序员是不满足于现状的,他们总感觉有太多的未知,于是总在不停地学习,如今信息技术发展得太快,而大部分的技术最先出现的时候都是英文版本的,要几个月或者几年以后才有中文版本的书出来,因此要想跟上步伐,一定要努力提高自己的英文水平,这样才能同步跟上信息技术。你可能担心自己的英语水平不行,没关系,刚开始多查字典,“万事开头难”,必须有持之以恒的精神,不久你就会发现计算机英语其实很容易的。何况很多
英文技术站点确实比国内做得好啊!比如>
编程不难。
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
原理:
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序,然后通过连接程序处理将程序中所用的函数调用。
系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。
以上内容参考 百度百科—编程
您好,非常荣幸能在此回答您的问题。以下是我对此问题的部分见解,若有错误,欢迎指出。展开全部
很多人问编程难不难?我想说那可不是闹着玩的。不从事这一行的永远不知道这行的艰辛,还咋巴着小眼睛问编程好不好学?
不知道诸位看没看过圣斗士星矢这部动漫,如果你想踏入编程殿堂,就要先想想那个被无数小孩子嘲笑的实力很菜只会死缠滥打经常被虐得体无完肤的主角星矢,首先你得问问自己,想学编程,你有没有像星矢一样持之以恒百折不挠一步一个脚印忍受常人无法想象的困难和痛苦的品质,没有?你说我开玩笑逗你,那好,下面的不用看了,因为你确实不适合学。
如果你只想着挣大钱,劝你别碰这行,一句话,别来找虐。为什么?你看到的手机APP,各种应用,要想开发出来,不知道需要多少种技术。拿最常见的网站开发,需要后台数据库mysql,数据格式json,xml,各种网络协议,还有网站开发语言PHP,
JSP,ASPNET,等等不下十几种技术。而每一种技术都是一本厚厚的五六百页的书,需要最少一年多时间掌握一门技术。最要命的,每种技术互不交叉还跨度很大,每种技术都有自己的设计理念和很多很多“天坑”在等着你攻克,你问问你自己,你有这个恒心和意志力天天捧着本大部头的书天天看,天天上机 *** 作学吗?你说有,那好,你看电视上那些富二代天天潇洒地到处游玩泡妞基本于你无缘了,因为你根本就没时间,谈个恋爱都困难,还想打网游玩王者?那算了,你还是别碰这行了,别耽误你玩游戏享受生活了。
学习编程,你上来就会碰到第一关劝退BOSS,环境搭建。如果只会个C++,JAVA可以有VS,
Eclipse帮助你,但是你要学那种新兴的语言工具,如cocos2dx, NodeJS, Android,各种服务器语言,Linux,
那对不起,各种环境配置能练得你头大,就算用上VS这种宇宙无敌IDE,
学编程还是会碰到无休无止的各种编译错误,运行时错误,很多时候编译器给出的出错语句非常费解,全英文的哦,还是高浓缩科技英语,还经常真实出错原因跟IDE的出错提示差了十万八千里,这个时候只能依赖您丰富的编程排错经验,不行只有百度,google,专业论坛海量搜索,碰运气了,看是不是有高人也遇到同样的问题,很多情况下你发的帖子石沉大海,没人回答,这个时候是你最容易放弃被劝退的时候,少年们,觉悟吧。这个时候如果你没有星矢那样反抗命运不公,被打倒多少次都要站起来不服输的勇气,半途而废是你注定的结局。
程序员加班很恐怖,工作制通常是996,即早9晚9周六还要上班,晚9下班还是早的,一般到晚上十点。你想那时夜深人静了人家都休息抱着老婆睡觉了,你还在工作中,F9, F10, 不对,重来,这听上去是不是很崩溃
第2,程序员耗脑太严重。工作中需要十几个小时大脑不停地运转。需要设计算法,不断地把代码改来改去来适应客户一天几变的需求。很多功能没有现成的解决方案,还经常遇到一些天书一样的疑难问题,bug,实际工作中突发状况千奇百怪,你可能见都没见过的bug,崩溃,需要一点一点查几万行的log日志。而且也需要百度,google,英文论坛寻求帮助,理解错误信息是什么意思。所以英文不好的没耐心的还是算了吧,不适合这行。
第3
程序开发首先是非常难学的,任何一门编程语言都有自己独到的思想,概念设计,很多情况下一门语言与另一门语言没有多大关系,知识经验无法串用。而且工作中你还不得不用到这些技术你不得不去学。而且程序技术日新月异,新类库新SDK每天都会推出,你需要日复一日不断地学习新技术。如最新视频解码技术,游戏引擎等等,而这些新技术可是国内没有书和任何资料的,需要你到英文官方网站去找实例看文档去学,更要命的,新的技术和老的还没太大关联,你得重头去学。而且老板急赶项目不会给你什么时间,一般三天就是极限了,你需要这么短的时间快速掌握一项新技术
综上,你明白程序员为什么总要加班了吧,也知道这行不是人干的吧。为什么说程序员干到三十干不动。很简单,以这种消磨人生所有时间状态,你生命中只有加班加班工作工作学习学习,你将不能顾家不能跟朋友聚会不能再有自己一点点休闲时间,更别说谈女朋友恋爱了,以这种状态你能坚持到三十岁?我想那简直是个奇迹了非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
昨天刚领一个线上P0级重大事故,持续时间1小时,影响范围全站 !准确的时间点是下午17点开始,具体问题定位且听我下文细细道来。
先说感觉,那感觉真是太刺激了,本来下午五点,昏昏沉沉的,瞬间一个激灵就清醒了(想象一下高中课堂,你在打瞌睡,突然老师走到你面前给你一下子的感觉),原本准备再过一小时吃晚饭了,吃完晚饭再摸鱼到21点就可以下班了呀,别问我为啥到21点,问你就不是程序员!
带着无比紧张且颤抖的心情开始定位问题,先来个错误日志尝尝鲜:
整个事情的发酵是这样的:
1、下午五点开始有少量的慢sql报警,没有人当回事,因为这种事情总发生,虽然大家都知道在实际开发中如何避免慢sql,但是整个团队要想完全避免慢sql却很难;
2、五点十分左右,开始零星有用户反馈指定功能不可用,SLB开始报警,技术开始介入排查;
3、十五分左右,客服部门电话开始爆炸,用户密集反馈指定功能不可用,技术部开始重视;
4、二十分左右,所有服务大面积出现接口无法响应,整体服务不可用;
5、我们一开始定位觉得是MySQL的问题,因为前面有mycat的慢SQL报警,后来定位并不是MySQL,因为MySQL的内存、连接数、流量这些指标都很平稳;
6、最终在五点三十分的时候我们定位到是ES出问题了,因为所有的Java服务不可用最终都指向上面的错误日志,dubbo提供的服务线程池满了,再有请求进来直接拒绝了,查看这个服务的代码,最终查询的是ES,此时的ES进程已经处于假死状态。
那接下来大家说怎么办?如何快速的恢复线上服务?
重启!
是的,只有重启大法此时是最快的解决办法,你不可能说保留ES事故现场,让我用arthas之类的工具来现场分析jvm内存情况。
然而重启之后服务依旧是不可用,接口还是无法响应, 大家知道这个时候是什么原因吗?为什么重启了ES服务还是不行?
后续继续重启报错dubbo日志的相应服务,当这些服务全部重启完毕后,我们的服务终于恢复访问了,这个过程持续了十几分钟,确切的说,直到17点五十多分,我们的所有服务才恢复了访问。
接下来就是事故总结、相关责任人、产生问题的原因、接下来的优化方案,全公司邮件通报!
你说这个难不难?本身并不难,难的是事情紧急且重要,这个时候你慌了啊,乱手乱脚的,大家你一言我一语的,如何冷静提取有效信息然后尽可能快的解决生产的重大故障才是最难的!
最后,当一切都恢复平静的时候,你会发现:“卧槽,好累啊!”。
虚脱的感觉!
最后祝大家程序员节日快乐,今年可是程序员的本命年哦
2020 = 1024 + 996 = 404 + 404 + 404 + 404
这种感觉能难受,很压抑。
技术难题,对于程序员来说,是经常有的事,关键是如何面对吧。
说下我的事情,虽然也会写点代码,但并不是以此为正业,所以对于真正的程序员来说,可能说法会有点偏颇。
遇到难题时,一般都在网上搜索解决方法,一般来说,都有很优秀的程序员分享他的劳动成果,所以一般都能解决问题。但也真正碰到难的问题,一个就是循环的问题,无限极菜单问题,当时都是找了很久,看了很多遍才明白过来,当时自己是几天都不太开心,也不太想说话,总是在测试着程序。挺烦也挺不开心的。只是最后做出来了,心情就好多了。
这是我的一些经历,当然,如果全职程序员,可能压力就更大了。
如何形容这种感觉呢?焦躁,紧张,失落,无助,亚历山大
再多词可能都描述不清楚。本人在工作中经常遇到难题,有些问题一两个月都搞不定。遇到这种问题,估计只有下面这张图的表情能描述此时此刻的心态了。
程序员遇到的难题其实分为两种,一种是没有办法定位清除的问题,另外一种是定位清除了,但是没办法,或者很难解决的问题。
难定位的问题所谓难定位的问题,其实就是你根本不知道这个问题是什么。比如系统突然挂掉了,你从现有的信息根本不能确定问题在哪。这个时候你剩下的可能只有满脑子的问号了。
如果系统只挂了一次,后面不再出问题,那就很难找出问题的根源了。不过这样也有好处,那就是问题的影响的程度相对较轻,毕竟不容易出现。所以在软件开发中通常不是什么问题都解决的,因为不是所有问题都能搞清楚是什么问题,谈何解决呢!
难解决的问题难解决的问题是问题搞清楚了,但是基于现有架构很难,或者没法搞定。遇到这种情况,通常先是很高兴,兴奋,然后就只剩下无奈了。
当然,从技术层面来说并不是完全解决不掉。只是如果要解决需要涉及架构调整或者其它方面的改动,修改调整的内容太多。这种情况下就要考虑利弊得失了。
如果改动太大,可能会引入很多新的问题,可能得不偿失。因此,遇到此类问题可能会采取一些规避方案。
当然,在开发和运营当中遇到各种问题是很正常的,关键是遇到不同的问题采用不同的策略。首先保证的是业务的正常运行,然后是考虑是否需要彻底解决。这样慢慢调整,心理压力会小一些。
作为一个工作多年的老码农,在工作也遇到过一些艰难的技术问题,就以切身体会谈谈对这个问题的看法。
首先需要明确一下,问题是否困难除了取决于问题本身之外,还在于解决问题的人的水平,也许对你很难的问题,在别人看来不过是小菜一碟。明白了这一点,那么这些技术问题也就成了考察程序员水平的试金石,有些人可能会因此气馁,甚至放弃;而有些人则通过解决问题学到了很多新的技术,也让自己进一步成长。
记得多年前看工作中要用到一款开源库,那时候刚学完C++不久,自以为对面向对象了解甚深,然而学习这个库时却是一头雾水,最后在经过泡论坛,然后又认真的学习了面向对象设计模式,后来不但能使用那个库,更重要的是对面向对象编程有了更深的认识!
后来还有很多类似的事情,刚开始时感觉无比困难,但是通过自己的努力,或求助他人、或查阅资料,当最终问题解决时,你会发现自己又牛逼了一些,然后再遇到一些新的问题,如此循环……
其实编程也是一个学习的过程,就如同爬山一样,每一阶段都会有一些山头,只有当你爬上山头才能欣赏美丽的风景,但是当你爬上一座山头的时候,就会发现更高山峰!只有当你爬上最高峰,才能“一览众山小”,可是到那时,你可能会向往地球之外的天地!
很难解决一般就是遇到某些瓶颈了,不同瓶颈的感觉是不一样的,但无非可以归结为下面几类。
成本原因
不让马儿吃草,还想让马跑。这个是有些不太理解互联网的一些领导的错误观念,他们会给你安排一个老旧台式机,想要让你承载几万、几十万并发的秒杀系统,你当然很难解决。
外界的评论可能是,“这帮程序员是吃干饭的么?这系统也太垃圾了!”
老板的评论是,“我这台式机也不少钱呢。”
程序员的评论是,“这抠门老板不会是个傻子吧。哎,再优化优化吧。”
当然,有些情况也是能够理解的,公司明白需要更好的设备,但是由于成本控制,不得不在某些方面节省。但换句话说,设备成本是占不了一个大头的,可能有其他方面的成本更加需要收紧。
如果是因为成本原因,我们的心情可能是无奈,又有些不能施展拳脚的束缚感。
历史 原因
举个例子,系统用了5年了,迭代了N个版本,在面对新的需求的时候,就会出现需求限制于系统的情况,常常会有程序员说,这个实现不了,那个不符合现在系统规则。其中很大一部分是这些年的积累,欠下的技术债造成的。俗话说,大船难调头。
这种情况更多的出现在刚创业之后的几年,由于一开始的快速迭代,追求先把业务流程跑通,先生存再规范,会让一开始的软件开发流程并不那么规范,如果在1-2年内没有进行重构,那么积攒的3-5年的技术债就会慢慢把你压得喘不过气来。
解决这种情况,一是需要时机,给出足够的空间和时间让技术团队重构,二是需要魄力,你得有成功的把握,不能干着干着说不行了,咱们还是回到原来吧。
如果是因为 历史 原因,我们的心情可能是期待和渴望,又有些对现状的无奈。
能力原因
虽然说专家很厉害,但说白了,大部分企业需要的研发人员,还到不了需要专家的级别。所以,一般而言,没有什么技术是攻克不了的。如果真的遇上了,那就说明你的公司已经到达了一个新的层次,从而需要那个层次的人员来解决,可以通过外聘或者顾问的方式,引进新的技术。
如果是因为能力原因,我们的心情虽然有些力不从心,但又为公司在新的台阶而高兴。
不管怎样,程序员是一群追求美好的人,不管是外部限制还是内部限制,不能解决的难题对于技术人员来说总是很憋屈的。
不能着急,慢慢分析,找到问题点,没有解决不了的问题
程序员的技术问题,排除架构师技术选型错误以外,都是程序员的功夫不到家所致。
1,面向百度的程序员会第一时间问度娘,各大社区求助大神。
2,面向源码的程序员会第一时间查看源码实现,查找api文档,思考解决方案。
3,不管技术如何发展,架构如何延伸,不变的是基本功,再先进的组件都是由基础语法书写出来的 。
练武不练功,到老一场空,共勉!
首先说下这个很难的技术定义,个人认为在你知道之外的知识都是很难的,一旦你深入了解其使用方式,原理,甚至阅读了他的源码,你会觉得有的时候会恍然大悟。程序员是一个不断要学习的岗位,就要面临很多从未知到已知技术的时候,每当遇到这样的情况时候,总有种不解决了这个问题,睡不着觉的感觉,心里不踏实,总是想尽各种办法去解决这个问题。甚至可以一直追查这个问题。也许这就是一种执拗吧
我老公最近就遇到一个大石头需要敲碎,我作为一个旁观者,都挺心疼他。
他还在读博,最近遇到的问题是他一个项目上的问题,也跟他的毕业设计相关。他刚读博的时候确定了一个方向,去年开题的时候他觉得这个方向没有什么前景,真的是考虑了好久要不要换,如果不换,就是安稳的毕业,换的话接下来的一年多时间他会很艰难,很多新的问题需要一一克服,最后他决定换了,他说他读博就是为了提高自己,还是想挑战一下。
年前,系统板设计好了,然后最近做好回来了,开始调试,说这个板子跟个石头一样,不工作。本来就是礼拜一到礼拜六待在学校不回来,周日是休息的。现在放假回来都是在啃变压器的东西,早上起的很早,晚上又很晚。真的挺心疼的,他还安慰我说,他又要进步了。挺担心他的身体的,我特别希望时间能快点过去,能顺利毕业。他却不希望,总觉得时间过的太快,没有时间搞研究。
今年的生日愿望,希望他科研顺利,身体 健康 。
以我的从业经历,说说遇到很难的技术问题是什么感觉吧: 兴奋、充满挑战性 。尤其是在开发中遇到了技术难题,很多情况下真有种可遇不可求的感觉。
我认为能遇到技术难题,至少证明这个工作是有价值的。 这种价值体现了两个方面,一是你的工作在整个产品开发中占据重要地位,甚至是核心地位。二是你的认知和经验,仍然有成长的空间。如果你的工作一直没有遇到难题,轻而易举地就解决了一切,那么很可能是你没有机会深入重要的核心部分,或者你的工作性质可替代性很高,简单重复性很高。
分解法。 把技术难题拆分,尽量的单元化、模块化,这样有利于逐步攻破,逐步解决。主要是降低技术难度,寻找真正的难点所在。如果问题无法拆分,就是那么一个点,那么需要逆向思维,可以先把问题扩大,看看涉及面有哪些,然后再缩小范围,锁定关键之处。
刨根法。 把技术难题抽象化,理论化,从根本的源头去解决。很多技术问题,从基础理论的角度去看,其实真的不难,只要你能定位到相关的技术点,困难点,知识点,就很容易进行快速解决。解决的终极办法就是从理论上彻底解决,做到知行统一。
讨论法。 三人行,必有我师。很多情况下,所谓的技术难题,在别人的眼中,也许并不是难题。很多情况下,小组讨论,交换意见,方案互补,就可以解决难题。有些情况下,还需要和供应商一起讨论,主要是补充信息的错漏。经常出现的芯片问题,很多情况下供应商都更加有经验。因为供应商有更多的使用客户,有很多解决问题的经验。最主要的是,芯片是他们设计的,他们更加清楚缘由。
没有绝对的技术难题,有的只是尚未解决的技术难题。
以上就是关于我用C语言编的程序很冗长,难的编不出,是不是不适合学习C语言全部的内容,包括:我用C语言编的程序很冗长,难的编不出,是不是不适合学习C语言、想学习C++自己写程序 知道很难但是想知难而上、编程真的很难吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)