C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”

而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

如果想读完一篇文章就能快速的掌握编程技术的话,这可能会让你失望,但是可以获得学习的方法就在好不过了。

下面是分享自学C语言编程的经历和方法。

1.决定

2012年初,一个潮湿、肮脏、背靠竹林的大学宿舍里,其中一张书桌,放着一台与环境格调不一致的纯黑色的电脑。

逍遥放纵颓废的半年大学一,大二年级生活后,总觉得要学点什么技能,赚一点钱。

所以,做了一个现在看起来对人生产生重大影响的重要决定:

用10天!系统地学习一遍C语言编程!

如今看起来可笑的狂妄自大,总觉得在将来会跟别人活得不一样。

现在回忆起来,当初的哥纯粹只是一个电脑用得比别人好的学渣而已,也不知道当年进水的脑袋哪来的自信。

小编推荐一个学C语言/C++的学习裙【  767,865,598  】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

2.基础

那时候,哥还不太系统的了解编程,只知道计算机软件程序,是由编程语言开发的;有很多if(如果)、 for(循环)等关键字,用这些就能做出一个软件程序来。

3. 小目标

要决定自学编程,首先要定个小目标。

这非常重要!

很多计算机系毕业的本科大学生,你让他们去做一个简单毕业设计管理系统,他们都是做不出来的。

因此,选择一个小目标,自上而下的去思考和学习,就非常重要了......

而我当时的小目标,做小项目——比如“企业管理系统,贪吃蛇,俄罗斯方块,然后自己开发一个原创小游戏”。

这个目标,足够的小。

走进图书馆的计算机相关书架,你会发现很多计算机相关的书籍,都厚得吓人,其中相当大的篇幅,是前言、理论和案例,让初学者手足无措,无从入手。

上图,随便拍一张身边的3本书,分别是700页,500页,300页!太厚了,谁那么多时间看完!别说 10天给1年都不一定够。

所以,对于想要学习编程的初学者来说,最好的学习方式是:少看,立刻动手。

4. 时间分配

那10天的时间里,我是怎样把这个技能学习进行时间分配的?

第1天:目标项目所需资料;

第2 - 3天:基础理论视频;

第4 - 7天:跟着开发原有项目;

第8 - 10天:自己改进,加入自己的思想,开发新项目;

在学习的过程中里,遵循3个原则:

快速阅读基本概念,不浪费时间,进入训练

使用提供的训练代码,快速试验,不求重头开始写,只求稍作修改也能正确运行

快速通读整个教程,回去再理解一次

当我需要用到的时候,我知道去哪里找到她,这就够了。

这就像,当我们家里水龙头坏了,首先想到的,是找专业的师傅,而不是立刻学习修水龙头,是一个道理的。

代码是一个浩瀚的世界,死记硬背毫无意义,更重要的是理解编程思维,而不是具体怎么写代码;写代码的练习,不单是让技能熟练,而且培养的,是对编程思维的理解。

5. 一理通百理明

下一步是什么?

拿当年的例子来,在这10天后,笔者开始学习,并在不久之后,开始帮学校做网站,赚一点钱。

当时的我,目的就是通过编程,尽快拥有做项目的能力,在课余赚钱。

这是一种至上而下的学习过程,更快地学习,通过动手,迅速的入门一项技能。无数计算机系的学生,在毕业的那一刻一脸懵逼的踏入职场,而有的学长大学一年级开始就开发自己的项目了。(大四的时候还帮了几位计算机系的兄台做毕业设计。)

6总结

总结心法:

先定它一个小目标!

快速过一遍教程!

尝试一个小实战!

笔者觉得,因为缺少导师,在个人技术认知成长上,也走了很多弯路,浪费了不少时间。

互联网的发展,带来了信息的爆炸,大量的信息让我们的世界变平了,信息的不对称,正在逐步被减少。如何选择,就要看你自己了

编程不要觉得很难,虽说也有难度,但是学好了对以后的帮助是非常大的。

小编推荐一个学C语言/C++的学习裙【  767,865,598  】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

先定一个小目标:10天自学C语言编程,教你如何改变一生的更多相关文章

  1. 先定一个小目标,自己封装个ajax

    你是否发现项目中有很多页面只用到了框架不到十分之一的内容,还引了压缩后还有70多kb的jquery库 你是否发现项目中就用了两三个underscore提供的方法,其他大部分的你方法你甚至从来没有看过 ...

  2. 【先定一个小目标】Ubuntu 16.04 搭建 zookeeper

    ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 Zo ...

  3. 【先定一个小目标】dotnet core 命令详解

    本篇博客来了解一下dotnet这个神奇的命令.我会依次对dotnet,dotnet new,dotnet restore,dotnet build,dotnet test,dotnet run,dot ...

  4. 【先定一个小目标】怎么解决mysql不允许远程连接的错误

    最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to ...

  5. 【先定一个小目标】windows下安装RabbitMQ消息服务器

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. 1:安装RabbitMQ 需要先安装Erlang语言开发包.下载地址  ...

  6. 【先定一个小目标】Windows下安装MongoDB 3.2

    1.MongoDB 安装 官网提供了三个版本下载: - MongoDB for Windows 64-bit 适合 64 位的 Windows Server 2008 R2, Windows 7 , ...

  7. 【先定一个小目标】在Windows下的安装Elasticsearch

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...

  8. 【先定一个小目标】Windows下Redis的安装使用

    Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  9. 【先定一个小目标】Asp.net Core 在IIS上的托管运行

    1.安装 .NET Core Framework 下载.net core地址:官网地址 2.Install IIS 在控制面板->程序与功能->Internet Infomation Se ...

随机推荐

  1. Rxjs中Notification 介绍

    timer(0, 1000) // 计时器,每1000ms发射一个值,初始发射值延迟时间为0s: .pipe( take(5), // 取前5个值 takeWhile(value => valu ...

  2. Charles抓包工具_基本功能

    一. 安装及破解 1. 安装: 下载地址:http://www.charlesproxy.com/download/,然后进行安装: 2. 破解: 将补丁文件charles.jar复制到安装目录并替换 ...

  3. C语言:正负数之间取模运算(转载)

    如果 % 两边的操作数都为正数,则结果为正数或零:如果 % 两边的操作数都是负数,则结果为负数或零.C99 以前,并没有规定如果操作数中有一方为负数,模除的结果会是什么.C99 规定,如果 % 左边的 ...

  4. 简单的python多线程实例

    今天抽时间又学了一下python的多线程,理解的又多了一些,为了利于理解,写了一段很简单的代码,如下: import threading from time import sleep def task ...

  5. HTTP请求代理类(GET 、 POST 、PUT 、DELETE)

    package com.jm.http.tools; import java.io.BufferedReader; import java.io.IOException; import java.io ...

  6. 鼠标滑至某位置,在鼠标旁边出现详情弹窗div

    首先效果如下: 代码如下: //这个是一个循环,循环所有name为xx的td标签(也就是给tdname为XXX的添加事件)$("td[name='strGoodsSKU']").e ...

  7. Weblogic 'wls-wsat' XMLDecoder 反序列化_CVE-2017-10271漏洞复现

    Weblogic 'wls-wsat' XMLDecoder 反序列化_CVE-2017-10271漏洞复现 一.漏洞概述  WebLogic的 WLS Security组件对外提供webservic ...

  8. TCP端口复用引发的异常,用setsockopt来解决

    TCP端口复用引发的异常,用setsockopt来解决 我们在并发连接一个服务端时候他会出现这种情况 OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允 ...

  9. [leetcode ]429. N-ary Tree Level Order Traversale (easy)

    原题 思路: bfs,每一层遍历一次加到一个vector,同时把该点的子元素加到queue中. class Solution { public: vector<vector<int> ...

  10. 【css系列】六种实现元素水平居中方法

    一.前言 居中效果在CSS中很是普通的效果,平时大家所看到的居中效果主要分为三大类:水平居中.垂直居中和水平垂直居中.而其中水平居中相对于后两者来说要简单得多.使用了css3的flexbox的属性轻松 ...