不堪重负。在C ++之前退一步学习C? [英] Overwhelmed. Step back and learn C first before C++?

查看:61
本文介绍了不堪重负。在C ++之前退一步学习C?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经自学了一个多月了。我知道我需要数年才能在C ++中熟练。但目前我不知所措。我还没有掌握基础知识。有太多东西需要学习。



我读过C更简单(学习)的地方。我应该先熟悉C的基本知识吗?

解决方案

C ++是C的超集,因此任何C程序都将由C ++编译器编译。 />
我不建议初学者使用C或C ++,即使它们很受欢迎。托管语言(如VB,C#,Python,Java,JS,......)对初学者来说是一个更好的选择,因为你可以专注于你想做的事情。



我的建议:

- Master Boole代数,这就是规则中每个条件的规则。 Boole代数不是很复杂,但它是强制性的。

- 掌握一个或多个分析方法,我建议 E.W. Dijkstra自上而下方法。这种方法可以帮助您以一种旨在编程的方式组织问题。

- 查找教程以开始学习。不要犹豫,不要超过一个教程。



最重要的是掌握分析问题的方法,之后,只需要翻译一下用一种语言进行分析。


我可以给你一个建议,许多人可能会觉得很奇怪(冒着一些对我的答案投票的风险):不学习C ++而不学C,学习一开始合理。稍后,你必须熟悉C ++,当然,可能还有C.



我看到太多的开发人员从不学习中受益匪浅首先是C / C ++,还有很多开发人员都在学习C / C ++。这里的问题是印记。这些语言的松弛可能会让人缺乏经验,也会刺激坏习惯的形成。



尽管C ++ 11非常现代,但C语言甚至C ++都非常古老心。更糟糕的是,它们被创建为反理论,粗心,设计时没有理解快速写作不如可读性重要,等等。语言发展的进一步历史在很大程度上是克服语言固有问题的历史,从学习者的角度来看,这不是最好的。许多C ++上瘾者指出了编译代码的效率,但这并不是因为语言的质量,而仅仅是因为编译器实现需要付出更多努力。与编译为本机指令集代码的其他语言相比,本质上没有单一的语言功能可以提高效率。



即使是C或C ++的支持者也有一点经常同意的是:这对初学者来说不是最好的。甚至汇编语言也更有意义,因为它有助于学习CPU操作原理。初学者更好的选择?许多:Pascal(特别是Object Pascal,可以与跨平台的Free Pascal一起使用),C#,Java,Python,仅举几个最流行的。 (对你自己一个大忙,不是Basic,甚至不是VB.NET,至少不是在开头。)



你最好阅读这些批评C ++的页面,为了更好地理解:

C ++对经济有益,它创造就业机会!

C ++缺陷



现在,主要的想法,最重要的是:不要只希望学习一种语言,准备学习几种语言。只学习一个会缩小我们的视野,对个人发展是危险的。 :-)



最后:选择权归你所有。 :-)



-SA
PS :我真的希望不要在这里发生火焰战争。

I've been self learning C++ for over a month now. I know it would take years before I can be 'skilled' in C++. But currently I am overwhelmed by it. I still haven't grasps the basics. There's just too many to learn.

I've read somewhere that C is simpler (to learn). Should I familiarize myself with the basic of C first?

解决方案

C++ is a superset of C, so about any C program will be compiled by a C++ compiler.
I don't recommend C or C++ to beginners even if they are popular. Managed languages (like VB, C#, Python, Java, JS, ...) are a much better choice for beginners because you can focus on what you want to do.

My advice:
- Master Boole algebra, that's what rules every condition in a program. Boole algebra is not very complicated but it is mandatory.
- Master one or more Analyse methods, i recommend E.W. Dijkstra Top-Down method. This method helps you to organise the problem in a fashion aimed to programming.
- Find tutorials to get started on a subject. Don't hesitate to follow more than one tutorial.

The most important thing is to master methods to analyse problems, after that, it is simply a matter of translating the analyse in a language.


I can give you one advice which many may consider very weird (risking some down-voted on my answer): Do not learn C++ and do not learn C, learn something reasonable at first. Later on, you will have to get well familiar with C++, of course, and may be with C.

I saw too many developers who benefited a lot from not learning C/C++ at first, and many developers who suffered from learning C/C++. The problem here is imprinting. The slackness of these languages can heart inexperience brains and stimulate formation of bad habits.

Even though C++11 is very modern, C and even C++ are enormously archaic at heart. Worse, they have been created as "anti-theoretical", careless, designed without understanding that fast writing is less important than readability, and so on. Further history of language development was, in big part of it, the history of overcoming of the inherent problems of the languages, which is not the best from the learner's standpoint. Many C++ addicts pointed out efficiency of the compiled code, but this is not because of the quality of the language, but merely due to much more effort put in compiler implementation. Inherently, there are no a single language feature promoting efficiency, compared to other language compiled to native instruction-set code.

One point which even the proponents of C or C++ often agree with is: this is not the best for beginners. Even assembly language makes more sense, because it helps to learn the CPU operation principles. Better choice for a beginner? Many: Pascal (especially Object Pascal, which can be used with cross-platform Free Pascal), C#, Java, Python, to name just the few of the most popular. (And to yourself a big favor, not Basic, not even VB.NET, at least not at the beginning.)

You should better read these pages criticizing C++, for better understanding:
C++ is Good for the Economy, It Creates Jobs!,
Defective C++.

Now, the main idea, most practically important: don't hope to learn just one language, get ready to learn several one. Learning just one narrows down our vision, dangerous for personal development. :-)

And, finally: the choice is yours. :-)

—SA
P.S.: I really hope for not having flame wars here.


这篇关于不堪重负。在C ++之前退一步学习C?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆