虽然我接触编程以及计算机时间比较早,但是正式打算转入程序员这个行当差不多是大学第四年的事情

从03年接触计算机,07年开始接触计算机编程,

期间接触过的技术包括 缓冲区溢出(看高手写的shellcode,自己跟着研究过一些shellcode) 手工SQL注入(手写增删查改基本熟练)

web渗透(我学习SQL很大程度上是当时我已经掌握学校某个数据库的root权限,可以方便我逃课了,事实上逃课没干什么正事,大学浑浑噩噩就过来了)

10年写过ASP ACCESS类的博客代码,同时也写过delphi,不过我当时只当做兴趣爱好,没有进行深入学习,

最后悔的是,当时我在高中的时候,居然至始至终没有系统地学习一门OO语言,

当时用delphi编写程序,很多情况下就是如何理解别人的代码,然后适配自己的业务逻辑,

因为我不会OO,所以我一直拿Object pascal 当做一门面向过程的语言在用,别人写的GUI业务代码以及网络IO调用,我根本就看不懂。

我说这些只是想说明,我很早就建立了对计算机编程的感性认识,虽然我目前写代码的能力也强不到哪里去,但是我的程序化思维很早就被建立起来了,

过去的大半年里,我读过 算法数据结构 CSAPP,目的就是为了打好作为一个程序员的基础,作为一个非科班生,推荐新手入门程序员这行,我有一定的发言权。

千万不要在编程入门的时候一头扎入复杂艰深计算机体系知识,很多人推荐学习C/C++语言的原因在于,这两门语言对计算机这个工具抽象的不够好,适合

在学习程序语言的同时了解计算机系统的原理知识,而计算机的原理知识 制约着一个程序员 对计算机本质的认识,也影响一个程序员对系统框架的认识

和开发平台迁移的能力 以及处理认识问题的能力。

我个人的推荐是,从C语言入门,但是要辅以一本书CSAPP。

但是这个门入到什么程度呢?能掌握 循环 迭代 条件判断 选择分支 等简单的面向过程编程范式思想,之后的指针 结构体 数组 字符串 能理解就理解

不能理解也就算了,之后一定要去读CSAPP(这本书是各个章节独自成体系的)的第二章节,程序语言机器级表示,在这里你会学习到汇编语言,不要求

熟练汇编,只要求认识,能把汇编语言大致翻译成C语言的时候,

并且认识了程序语言函数调用的栈的建立与销毁,这个时候,C语言的指针就融汇贯通了,

根本不用像大部分初学者那样用上一个月的时间去学习理解 指针以及结构体等复杂的数据结构,

之后你也会对C++对象的建立与回收 有新的认识,另外CSAPP可以选读一些感兴趣的章节。

学到这里差不多,有一定的计算机编程基础的时候,

就应该学习抽象更良好且屏蔽了大部分底层实现的计算机语言-面向对象编程语言,个人首推学习JAVA(仅J2SE)JAVA比C/C++更适合描述算法与数据结构,

学习完之后配套学习算法第四版以及编程珠玑,完成我这条学习线之后,基本上就对编程有一个全新的认识,让你掌握了一套编程的内功心法,

绝不会让你作为一个程序员仅仅停留在 那些框架 API 以及各种武学招式上。

我为什么反对推荐新人编程C/C++语言入门?的更多相关文章

  1. 【嵌入式】C语言高级编程▁▁▁嵌入式C语言入门编程学习!

    ✍  1.C 语言标准 什么是 C 语言标准呢? 我们生活的现实世界,就是由各种标准构成的,正是这些标准,我们的社会才会有条不紊的运行. 比如我们过马路,遵循的交通规则就是一个标准:红灯停,绿灯行,黄 ...

  2. C语言入门经典书目推荐--转

    国内良莠不齐的C语言教程数不胜数,同名如"C程序设计""C语言程序设计""C语言程序设计教程"的都多如牛毛,这些不知名的就不予考虑了,要看就 ...

  3. winsock教程- windows下的socket编程(c语言实现)

    winsock教程- windows下的socket编程(c语言实现) 使用winsock进行socket 编程     这是一个学习windows下socket编程(c语言)的快速指南.这是因为一下 ...

  4. Java编程学习知识点分享 入门必看

    Java编程学习知识点分享 入门必看 阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度.阿尔法组成越高,颜色越不透明. API:应用编程接口.针对软 ...

  5. C#面向服务编程技术WCF从入门到实战演练

    一.WCF课程介绍 1.1.Web Service会被WCF取代吗? 对于这个问题阿笨的回答是:两者在功能特性上却是有新旧之分,但是对于特定的系统,适合自己的就是最好的.不能哪一个技术框架和行业标准作 ...

  6. [推荐] 网络侦查工具 NMAP 简单入门

    [推荐] 网络侦查工具 NMAP 简单入门 # 前言 作为一只运维开发,总是避不开要和网络打交道的.尤其是当自身能力到达瓶颈,开始从事云计算以求突破.会有搭建多台虚拟机的需要,这时候如果在手工的查询 ...

  7. c++学习书籍推荐《面向对象程序设计:C++语言描述(原书第2版)》下载

    百度云及其他网盘下载地址:点我 <面向对象程序设计:C++语言描述(原书第2版)>内容丰富,结构合理,写作风格严谨,深刻地论述了c++语言的面向对象编程的各种技术,主要内容包括:面向对象编 ...

  8. C语言学习书籍推荐《C语言入门经典(第4版)》

    霍顿 (Ivor Horton) (作者), 杨浩 (译者) <C语言入门经典(第4版)>的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员.读者基本不需要具备任何编程知识, ...

  9. C语言学习书籍推荐《C语言入门经典(第5版)》下载

    霍尔顿 (Ivor Horton) (作者), 杨浩 (译者) 下载地址:点我 C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad ...

随机推荐

  1. 初识WCF

    以前,总是说自己的基础知识不牢靠,就是因为自己总是不总结.昨天,学费交了,顿时感觉不一样了,心里有劲也有力了,知道了以前的自己到底为什么会那样了,因为没有压力. --题记 我参加过浩哥的招标项目,参加 ...

  2. hdu 2056

    ps:    - -惭愧...是套用一个大神的计算方法来做的.....下面是代码 代码: #include "stdio.h"#include "stdlib.h&quo ...

  3. nyoj 282 You are my brother

    You are my brother 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 Little A gets to know a new friend, Litt ...

  4. js performance

    http://hqman.me/2012/js-module.html http://www.cnblogs.com/snandy/archive/2012/06/06/2536969.html ht ...

  5. [RxJS] Transformation operator: bufferToggle, bufferWhen

    bufferToggle(open: Observable, () => close: Observalbe : Observalbe<T[]>) bufferToggle take ...

  6. 字符串[未AC](后缀自动机):HEOI 2016 str

    超级恶心,先后用set维护right,再用主席树维护,全部超时,本地测是AC的.放心,BZOJ上还是1S限制,貌似只有常数优化到一定境界的人才能AC吧. 总之我是精神胜利了哦耶QAQ #include ...

  7. IDEA使用--字体、编码和基本设置

    IDEA这么高端的工具之前只是断断续续使用了一下,因为项目的开发都是在eclipse上,每次学习IDEA的使用都得上网搜索半天,今天自己整理一下,方便以后查阅. IDEA版本15.0.4 字体 界面字 ...

  8. 我的代码- rf sampling

    # coding: utf-8 # In[6]: import pandas as pdimport numpy as npfrom sklearn import treefrom sklearn.s ...

  9. 阿里云centos安装docker-engine实践

    近日在阿里云ECS服务器(centos系统)中安装docker,参考官方指南 https://docs.docker.com/engine/installation/linux/centos/  大概 ...

  10. Unity 官方教程 学习

    Interface & Essentials Using the Unity Interface 1.Interface Overview https://unity3d.com/cn/lea ...