初学者怎样学习编程?有哪些方法?

Python010

初学者怎样学习编程?有哪些方法?,第1张

初学者学习编程的方法如下:

1、 打好基础

当你开始学习编程的时候,首先你要确定的东西是“基础”。要打好基础,你需要学习计算机科学。现在,我们可以在网上找到很多针对初学者的课程。互联网的确为初学者提供了便利,使你可以通过网络找到大量有用的信息。因此,你得花时间研究一下这些信息,从中选择最适合自己需求的。

2、建立耐心

作为一名程序员,要想获得成功,首先要建立耐心。它可以令你在经历了无数次打击后仍然能够站起来,让你随时作好准备应对失望。耐心可以帮助你成为一个更出色的问题终结者,它还可以提高你对计算机的认识。计算机的概念是很复杂的,它要求要灵活,耐心和努力工作去理解它。绝大多数时候,当初学者开始学习编程的时候,他们并没有正确的期望。在初学阶段,你不要期待想获得一切,寄望过于乐观是危险的。

3. 设定目标并向目标前进

设定目标是一种有力的,有激励性的方法,鞭策着你不断进步。例如,当你开始学习PHP的时候,你可以设定一个目标,要求自己完成一个简单的项目。一旦你的目标达到了,再设定另一个,并重复这个循环。 编程的学习和提高是永无止境的,因此不断地为自己设定目标,而且不要忘了你的主要目标。

4、多做项目

通过做更多的项目,你不仅可以了解你自己的局限性,而且可以提高你分析和解决问题的能力。毕竟,学习代码不完全是只学习语法,而是要学习如何使用手中的工具去解决问题。

5、参与社交编程

学习写代码从来不是“一个人在战斗”。如果你觉得不需要任何帮助就可以创建一个更大的应用软件,那么你就错了。事实上,编程是一项集体活动,如果你想坚持下来,你需要从各种社交平台上获得帮助。

6、平衡好你的学习

作为一个开发人员,能力的提升是永无止境的,而持续的无助感只是作为一个开发者的一部分而已。新技术的诞生不会令开发者轻松下来,因为他们需要不断地提升自身的能力来适应市场的要求。

作为初学者,你应该随时准备学习新的东西。即使是有经验的开发者,他们也会对自己的能力缺乏信心,因为市场上会不断有新的工具,技术和标准涌现,这需要开发者与时并进,才能跟得上变化。但这并不是说你得知道一切事情,只要了解你要了解的事情就可以了。关键是不要停止学习新的东西。

7、学习算法

当你获得一定的项目经验后,你就应该开始学习算法了。 算法是构成计算机科学的核心。无论你是正在做网页开发还是游戏开发,你总得使用算法来实现最终的结果。

scanf 函数最主要的用法是:

scanf("输入控制符", 输入参数)

函数原型:int scanf(const char * restrict format,...)

函数 scanf() 是从标准输入流stdin (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

扩展资料:

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

发展:

使用scanf函数进行输入,必须指定输入的数据的类型和格式,不仅繁琐复杂,而且很容易出错。C++保留scanf只是为了和C兼容。

以便过去用C语言写的程序可以在C++的环境下运行。C++的编程人员都愿意使用cin进行输入,很少使用scanf。

但是scanf有一个明显的优点,速度比cin函数快。

参考资料:

百度百科-scanf (计算机语言函数)

大一学习的c++,工作之后也一直用的c++。

1. 涵盖c++入门到精通的图书列表

《The C programming language》必读

《C++ Primer》,号称是一本可以让你从C或JAVA程序员转为一个真正的C++程序员的入门参考书,必读。

《The C++ programming language》,C++之父,人称B教主著作,在看过C++ primer后,应该可以跳章选读。

《Think in c++》,网上说此书的中文版翻译质量奇差,推荐看影印版,选读。

《Effective c++》,类似 Effective java,讲的是最佳实践,程序员必读。

《More effective c++》,上书的补充。

《The C++ standard library》,会写C,不会用标准库怎么行。这就跟java程序员不会用java.util包一样,必读。

《Effective STL》,STL库的最佳实践。Effective C++作者又一力作,必读。

《The annotated STL source》,STL源码分析,这本书应该算是深入/精通类了,选读。

《Generic programming and STL》,号称C++编程里,就是跟模板,泛型打交道,那么精通泛型是势在必行。

《C++ Template》,C++模板编程,代码复用的经验之道,必读。

《Exceptional C++》,跟Effective C++类似,属于最佳实践和难题解析,书中列出了许多应用场景和实例代码供读者揣摩,选读。

《More Exceptional C++》,上书的补充。

《Exceptional C++ Style》,上上书的补充

《Inside The C++ Object Model》,有了上面这些书做铺垫,那么终于可以读此神书了。它会带你游览C++对象模型的底层实现机制。读完此书,任何C++代码看起来如同行云流水,必读。

2. 优秀的C/C++开源项目(阅读代码)

OS:Linux kernel LVS、Linux应用程序

DB:Mysql、PostgreSQL

Complier:VM、GCC

Framework:OpenSip、SipProxy、

Net:ACE(Java Mina、Netty)、TCP/IP、HTTP协议栈

Cache:Memcached、Redis、

Library:STL(java util package)、Boost、Qt(UI)、

balance:Apache、Nginx

GSL

地址:https://github.com/microsoft/GSL

Boost文档

地址:https://www.boost.org/doc/libs/

wxWidgets官网

地址:http://wxwidgets.org/

gtkmm

地址:https://www.gtkmm.org/en/

CopperSpice

地址:https://www.copperspice.com/

Qt

地址:https://www.qt.io/Eigen

地址:http://eigen.tuxfamily.org/index.php?title=Main_Page#Documentation

Plot utils

地址:https://www.gnu.org/software/plotutils/

Asio

地址:https://think-async.com/Asio/

POCO

地址:https://pocoproject.org/

abseil

地址:https://abseil.io/

C++开源库汇总列表

地址:https://en.cppreference.com/w/cpp/links/libs

除了这些开源项目,也可以找一些免费的公开课,那这里也推荐一个ACM金牌大佬讲授的免费C++课程,可以去体验一下:

学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样

已失效

3.C++语法讲解

语言基础

详细介绍变量、表达式、语句、指针、数组、流程控制、函数、文件组织等。

抽象机制 - 面向对象编程

深入讲解C++的抽象机制,封装(类)、继承、多态;操作符重载、函数对象、异常处理等。

模板 - 泛型编程

详细介绍C++的模板机制,类模板、函数模板、模板特化等方面的内容。

4.深入c++面向对象

4.1、从C到C++

引用和指针:为什么引用很重要

const关键字:为什么const很重要

名字空间 (namespace)

4.2、深入C++对象

关于C++对象

内置类型的对象,如int、double对象,自定义类型的对象

对象类型的定义

关键字class和struct

类成员:成员函数和数据成员

静态数据成员

成员的访问控制

对象的size

关于this指针

onst成员函数、const究竟修饰什么

mutable数据成员

4种特殊成员函数:constructor、destructor、copy constructor、operator=

对象的构造、初始化列表

对象的析构

对象的复制

什么情况下有必要显式定义4种特殊函数

C++对象生命周

4.3、操作符重载

关于C++中操作符重载机制

重要操作符重载

算术运算:+, -, *, /, %, ++, --, ...

关系运算:>, <, ==, !=

下标存取:[ ]

函数调用:(),函数对象

类型转换、单参数构造函数与隐式转换、阻止隐式转换 -- explicit关键字

友元与成员

4.4、面向对象基础 -- 继承

基类与派生类

再谈对象的构造与析构

虚函数、纯虚函数

派生类的内存布局、虚函数表

多态、多态类型、如何体现多态

虚析构、为什么虚析构很重要

4.5、关于继承更多的话题

多继承

虚继承与虚基类

对基类的访问、public / protected / private继承

Down cast:static_cast<>和dynamic_cast<>

运行期类型识别 (RTTI)

4.6、C++与面向对象设计

C++语言机制提供了完整的OOP支持

超越继承

OOP若干法则和设计模式

5.C++泛型编程与STL

5.1、C++ 模板机制

5.2、STL 概要

5.3、STL容器

5.4、STL迭代

5.5、STL算法

5.6、预与定义STL数对象

5.7、STL适配器

6. C++进阶

《C++ Primer》

最新版本:第三版(第四版国外已上架, 国内一些网上书店也在预订中)

适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是 好事。

《The C++ Programming Language》/《C++程序设计语言》

最新版本:第三版特别版

简称 TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来)

《Essential C++》

《Accelerated C++》

这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。

以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。

《Effective C++》

最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)

简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。

《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》

个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系 列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。

我 的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不 会过时,人们将广为传诵它制定的101条戒律。

还不知道他的简称,也许“101”会成为一个候选者?

提到《Effective C++》,那么另外三本书一一浮出水面:

《More Effective C++》

《Exceptional C++》

《More Exceptional C++》。

新书《Exceptional C++ Style》也是值得一看的好书。

上 述几本书,一本也不应该放过。

个人建议上述书籍按顺序阅读。并且,在将来反复阅读这几本书。

《Thinking in C++》/《C++编程思想》

这本书及其中文版传言好坏都有,没有认真看过,不做评价,如果确有兴趣,不妨尝试 一下该书。

以下几本书基本上涉及的都是语言本身,大体上可以按照以下的顺序阅读。

《C++必知必会》

如果早一年,这本书将是重量级的,然而它被101和《Exceptional C++ Style》盖过一头。

《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序设计陷阱》

这又是一本我未曾读过,而且广受好评的书。

《STL 源码剖析》

这本书我刚到手,就被人"借"走,以至于到现在也没有看过。看过这本书的朋友,可以给一个合适的评价。

7. C++进阶之数据结构基础

这是所有编程语言中最应该学习的部分,程序组成的基础之一。

顺序存储、链式存储、循环链表;

双向链表、栈(顺序和链式)、队列(顺序和链式);

栈的应用、树基本概念及遍历、二叉树;

排序算法、并归算法、选择、插入、快速、希尔。

以上这些内容你知道吗?

8. C++进阶之UI界面开发

掌握QT类库构架,图形界面开发模型;

掌握QT开发技巧,消息机制,图形处理;

掌握QT网络编程,UDP,TCP使用方式;

掌握QT文件处理方式,序列化;

掌握QT在windows,linux,ios,android不同平台下的移植技术。

9. C++进阶之Unix/Linux网络服务器

掌握Unix/Linux平台开发方式;

熟练使用系统调用;

熟练Unix/Linux内存管理,进程,线程调度;

熟悉网络服务器开发方式,熟练编写TCP,UCP网络服务程序;

掌握同步/异步IO模型在网络编程中的使用方式。

10.C++进阶之数据库开发

掌握SQL语言的实用技巧。Oracle,MySQL数据库的使用方式。

如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能力,而且你能独立开发一些比较复杂的功能模块,那么很荣幸地告诉你,你已经达到中级水平,薪资过万对你来说简直是小菜一碟。

11.C++标准参考

C++ reference

地址:https://en.cppreference.com/w/

C++ Coding Standard

地址:http://www.possibility.com/Cpp/CppCodingStandard.html

Standard C++

地址:https://isocpp.org/

State of C++ Evolution

地址:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2597.html

The C++ Resources Network

地址:http://www.cplusplus.com/

Draft C++ Standard: Contents

地址:http://eel.is/c++draft/

关注一些公众号,比如c语言与cpp编程