![]() |
1
11
问题似乎出在别处。如果你需要教一个Java程序员如何编程一个简单的计算器,问题不是语言,问题是对编程的基本理解。 我觉得学习编程最糟糕的方法是写没人用的玩具。根据我的说法,最好的方法是从简单但有用的工具开始,因为这会给程序员带来压力:这个东西实际上会被其他人使用;它必须工作!
如果任务是管理性的,那么让他写一个
当然。C++是一种复杂的语言,(我甚至不是很亲近,我只知道两个人,我会考虑专业C++程序员)。然而,这并不是你在教他haskell,或者完全不同的编程模式。除了内存管理和实际管理指针的微妙之处之外,我还没有看到从Java编程和C++编程的范式转变。可以肯定的是,它更困难,因为它是一种低级语言,但最终它是一种面向对象的软件设计方法。 D.Knuth有一个机智的理由,他用自己品牌的汇编语言教授算法:
我想关于记忆管理也可以这么说。即使您使用垃圾收集语言编程,您至少应该了解
|
![]() |
2
3
我想很大程度上取决于他到底有什么问题。如果他知道Java,我想他应该知道OOP、集合等的基本概念,对吧? 他能在Java中解决同样的任务吗?如果是这样的话,那就是用C++来阻止他:缺少对指针的理解(对许多人来说可能很困难)、内存管理、析构函数或缺少类库、STL、模板、……的知识? 你可以试着和他一起完成一项任务,看看他哪里有问题,一步一步地帮助他。 当时我真的很喜欢安德鲁·科尼格的 Ruminations in C++ 从基础上讲,C++有着截然不同的教学方式,从好的、真实的(简单的)小程序开始,这些程序实际上是有用的,同时教着最好的习语。虽然它现在已经过时了,但是它的内容sopme在适应最新标准时仍然有用。 |
![]() |
3
1
如果他知道如何编程Java,让他在爪哇和C++中提供解决方案,告诉他用Java方式做它,当他不知道如何用惯用的C++来做。然后再看看C++中的差异和Java中的代码,为什么会这样呢? |
![]() |
4
1
|
![]() |
5
0
你做得很好,你甚至他自己应该把目标作为一个开发者,如果他在Java方面有经验的话,语法就不应该有问题。 此外,他有基本的知识,而且他不是初学者,所以你们两个都能做的最好的事情就是得到好的指南、食谱和程序,设定一些目标和编写代码。 |
![]() |
6
0
当他开始学习如何编程时,他错过了一些基础知识。例如,最基本的一点就是,你要对你分配的所有东西负责——就像在现实生活中一样,你必须像成年人一样把你拿出来的东西收起来,而不仅仅是把东西扔到地上,指望其他人在你之后清理干净。 我认为你的方法是好的,但已经造成了损害,你必须在取得进展之前修复它。你必须回到最基本的问题上来。什么是变量,真的?他可能不知道某个地方有实际的内存存储,而变量只是指向那里的地址的别名——一旦有了这个别名,就可以解释数组和指针,等等。 真的,先回到基础上来,我想这就是他所缺少的。 |
![]() |
7
0
我愿意为你所做的事和你成为朋友;-)。不管怎样,我首先要弄清楚你的朋友被困在哪里了。它是一般的问题解决还是使用C++语言构造和习语?根据你的发现,你可以指导你的朋友提高他解决问题的能力或语言能力。如果这是语言,我肯定会调查 C++ Primer book by Lippman, Lajoie and Moo 并建议朋友解决练习。虽然这本书长达800页,但任何有编程语言经验的人和C++经验最少的人都应该能够在建议的时间内阅读这本书。 |
![]() |
8
0
学习用现代的、高度抽象的语言(如C++和PHP)编程意味着随着你对正在发生的事情有更多的了解,事情变得越来越复杂。要理解更复杂的程序,你需要知道,至少从理论上讲,幕后发生了什么;现代语言是用来隐藏这些细节的。所以要想弄清楚到底发生了什么,就意味着要与你使用的语言范式作斗争。任何由语言为程序员处理的低级细节也意味着对程序员隐藏。 现在,如果程序员已经了解了这些低级细节所涉及的内容,以及它们可能产生显著差异的条件,那么程序员也知道何时打破语言抽象的面纱。注意,这就是编程语言的发展或演变过程。我们从机器代码和汇编程序开始,然后是非常低级的便利性,然后是一些早期更高级的可移植语言,如Fortran和Lisp。(注意 不 通用Lisp和Fortran 2008)。 显然,你可以从PHP或C++开始学习成为一名成功的程序员。但是,虽然您可以很快得到一些相当复杂的结果,但我认为成为一个真正的高级程序员可能需要更多的努力。 |
![]() |
9
0
网上有很多免费或付费的自学训练课程C++(免费的一个例子) Herb Schildt's "C++: A Beginner's Guide" 看一看“SAMS自学C++每天一小时,第六版”为付费材料的例子。还有一些免费和付费的IDE,可以使开发体验(编码、构建、测试、调试等)相当容易(!)-一个广泛使用的免费IDE是Visual C++。 教别人就像学(前面的人行道)一样令人沮丧。一个人首先必须有学习的动力。我必须在这里问:你的朋友对学习C++感兴趣吗?他/她对学习比你更感兴趣让他/她学习吗?理解这一点会让你们俩生活得更轻松。 让我们来看看最坏的情况:你既不想教书,也不想让你的朋友学习,但是他/她必须学习,比如说,申请一份工作,通过考试或其他什么(你想帮助是因为你的友谊)。所以学习C++变得比另一个目的更重要,而不是结束自己。接下来,我们来了解一下这个终极目标的背景,并尝试将学习过程转换为适合这个目标的过程。例如:如果你的朋友对一份工作感兴趣,那么你需要为金融业开发一个应用程序。这是非常可能的背景下,C++数学库将需要,并且仍然有可能的DB背景也是需要的(因为这些应用程序保持有关财务指标,客户,余额等),在这种情况下,把重点放在那些场景和培训课程将C从目标到事实。 它只是工作:在我个人的情况下,我通过编码大脑游戏来学习C++。这一目标使我处理了标准模板库,其中有一些针对Windows的UI扩展(在我的例子中是MFC,但由于操作系统不是标准的),OOP,基本类型等。为了获得更好的机会,我跳过了文件I/O和其他事情。虽然我还没有学习C/C++,但我为游戏目的做了很多进步。这有道理吗? |
![]() |
10
0
试试不寻常的东西怎么样: 告诉他教你爪哇。 通过让他告诉你他对他熟悉的语言的了解,你可以深入思考他的思维方式,也许能帮助他理解为什么他很难理解C++(而且他不会因为他会讲一些他已经很了解的东西而被激怒)。 告诉他告诉你他对基本Java构造(循环、条件、类)的看法以及这些构造是如何工作的。你需要非常注意他的每一句话;注意他似乎有点可疑的理解。 |
![]() |
11
-1
我只会附和Truncheon的答案,但相反。 就我个人而言,我一直讨厌C++(C),因为它们缺少内存管理。在这些语言中,很容易做一些琐碎的日常工作,比如字符串操作错误。如果有人告诉我用C或C++编程,我会答应(就像我以前做过的那样),但是我不会高兴,直到我可以使用库或一个框架来解决我对语言的基本问题。(与javascript相同)你的朋友可能(或不可能)在同一条船上。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |