添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)- 概述

不花钱学计算机及编程 (预备篇)

--概述:如何学习计算机及编程

个人是98年进入大学,开始学习计算机的,当时对计算机等于零了解,只有初中的时候在镇上一个同学家见过,当时放卡拉OK听,别的也不知道什么了,高中的时候学校有校友会捐赠不少计算机,可是没让我们摸过。到大学连回车是什么都不知道,当时学校还是DOS操作系统,Windows也有好像是Windows3.1,不过很简陋。

学了几年大学,基本对计算机有个感性认识,理性认识不是太多,虽然学了计算机基础,计算机组成原理,计算机体系结构,C语言,操作系统,编译原理,数据结构和算法,数据库,计算机网络,多媒体,软件工程,算法分析等课程,不过总的来说没什么大的收获,毕业设计用Delphi做了个管理系统,现在想想还算不错了,期间也学了学网页制作,html,Jsp等,当时不知道学计算机干啥,还学了PhotoShop,网页三剑客(DreamWeaver,Firework,Flash),甚至学了CoreDrawl。

现在想来实在是搞笑,可以说大学生活一片迷茫。现在想来主要是当年网络不下今天这么发达,不知道干什么。以为大学就是走过程,到社会再学习努力的,有点茫然。对大学学的高等数学,线性代数,概率论和数理统计就更不知学了干啥了,但是工作多年后发现都有用!人生很神奇!

不过,不管怎么说,大学还是让我对计算机有个感性认识。这个在以后的工作中还是很重要的。至少知道整个知识脉络,不会的可以知道怎么补。现在回想如果大学可以重来一遍,我认为至少要学好如下课程,阅读如下图书:

计算机基础课程:就是教你如何开机,关机,打字,使用软件的基础课程,这些课程随着社会进步,目前可以说没什么问题了。不过大家使用的基本是微软公司出品的Windows系统,作为专业的计算机学生,强力建议使用基于Linux的系统或者和Linux类似的苹果笔记本(Mac),苹果的东西是贵,但是值这个价。

学习Linux推荐一本图书:《鸟哥的Linux私房菜:基础学习篇》。Windows我就不推荐图书了,我没通过图书学过。

有了计算机操作基础,可以学习编程了,推荐从C语言开始学习,使用这本书进行学习《C程序设计语言》,此书是C语言的作者编写就知道是多么的权威了,同时此书有英文版本《C程序设计语言(英文版)》,建议都买了学习,毕竟作为计算机学生,英文不好是不行的,很多国外的先进的东西都是英文的。另外也有一遍习题解答,也同时买了。里面的题目都做一遍,编程水平不会差。如果想继续提高C语言的水平,可以看看其他相关图书,比如C指针等一堆。

光会写简单的程序还是不行的,如何更好的编写程序就得学好数据结构了,大学一般使用的是严蔚敏的那本,好好学就行。我在大学的时候是一本书《数据结构和算法》,不过算法应该继续加强学习,推荐一本进阶图书《算法导论》,此书很难,想要好的发展的看看。数据结构和算法很重要,面试工作这个是核心。

上面的基本程序写好的话,可以考虑学习面向对象的程序设计,基本选择C++或者Java作为编程语言。两种语言个有千秋,看您自己的兴趣,未来工作都有比较好的发展,学好一个学另外一个都可以,C++学习起来稍微复杂点,不过也不是太难,只要你想学。学这两门语言各推荐一本书,《C++编程思想》和《Java编程思想》,作者是同一牛人,先写的C++图书,后来Java流行起来就又写了Java的那本。

数据库是工作中经常使用的基本工具之一,所以在学校里也要好好学习,不过总的来说,这门课程比较简单,多动手实践即可。推荐如下图书:《transact-sql权威指南》,印象中是很好的书,不过国内好像不出版了。另外考虑未来发展,建议学习mysql(http://www.mysql.com/),这样官方文档就够用了。如果不是立志成为数据库管理员的,学校学习的学好结合我的推荐就够用了。

计算机网络在学校里偏向理论,学好概念即可,有条件的可以报名培训CCNA,这样估计会有更好的理解,而且现在培训和考试也不是太贵,个人认为还是不错的。如果要深入学习的个人认为学习标准协议是个不错的选择,推荐图书:《TCP/IP详解卷1:协议》

软件工程学好学校的图书也差不多了,毕竟是学生,不是工人,没有项目环境很多东西也很难理解,即使是项目,其实每家公司管理的也不一样。如果想深入学习的,推荐一本图书:《敏捷软件开发(原则模式与实践)》

学好上面的内容,您可以称为一个基本的码农,或者叫软件工程师,如果要成为专业的码农或者专业软件工程师,您还需要努力学习以下知识:

计算机组成原理:告诉您计算机的硬件是如何工作和相互协调运行的。CPU,内存,硬盘,网卡,显示器,键盘,鼠标等是如何工作的。计算机有哪些基础芯片等内容,配合有实验,好好学习理解其工作原理,在日后调优,排查问题时候非常有用。不是白学的,这个是区别专业和非专业的核心标识之一。

汇编语言:这门语言,是理解计算机的编程的最好语言之一,通过它你才可以更好的理解软件和硬件是如何融合工作的,没有别的语言能够替代。非常重要,有很多人认识不到这点,认为学此无用,甚至有的大学都不打算开这门课程,实在是让人唏嘘啊!大学学生有句话“汇编语言不会编”形容此课程的难度,不过使用下面的图书《汇编语言》学习,感觉应该容易很多。此书缺少高级内容,不过你很好的掌握了此书也算不错了,高级内容你进阶操作系统内核那里才需要掌握。够用了。

操作系统是计算机的核心,编程人员最好能很好的掌握,比计算机组成原理还重要。推荐《操作系统设计与实现》,此书告诉您如何实现一个操作系统,比学校里告诉您的更多,更好理解。当年Linus就是看这本书,编写的Linux。

编译原理的水平与程序员水平正相关,光会写程序,不能理解编译原理,是很难写出高水平程序的。推荐《编译原理》,龙书非常出名,谁学谁知道。工作后您可能会使用各种各样的语言,他们是如何工作和执行的,编译原理是不可或缺的重要一环。

最后推荐几本课外阅读图书:

《编码的奥秘》

《深入理解计算机系统》

《代码大全》

《设计模式 可复用面向对象软件的基础》

......

如果您是学生,如果您在专业课程里学好我上面的内容就很不错了,出来工作肯定没有问题,就看你是否愿意坚持和努力了。

如果您是刚工作的或者是转行过来,觉得计算机基础还不行的,也可以参考我的描述,进一步深入学习,这些东西是成为一个优秀程序员不可或却的,当年天才除外。

如果有遗漏的也欢迎大家补充。

如果您对本文有不同见解的,也欢迎联系我们。

计算机属于工科,是一门实践性很强的技术,但是同时也有很高深的理论需求,所以整体掌握和理解是非常难的,这也就是为什么真正优秀的程序员很少的原因,有兴趣的值得尝试一下。毕竟这个行业的生产力太高,一个程序可能数亿人在使用,您说高不高!生产力那么高,您说薪水得多高?

欢迎加入程序员的世界,添物科技为您服务。

添物网(http://www.91tianwu.com)出品。

时间: 2024-08-01 19:48:47

添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)- 概述的相关文章

开课2018最新web全栈架构师课程

**下载地址:百度网盘下载** 教程目录: 阶段1:初识ES6 阶段2:ES6详解 阶段3:软件的使用(2017.11.5) 阶段4:Markdown,git(2017.11.6) 阶段5:generator,模块化与babel(2017.11.8) 阶段6:数据交互(2017.11.10) 阶段7:答疑+webSocket预习(2017.11.12 阶段8:webSocket聊天室搭建+node.js基础及数据库基础(2017.11.13) 阶段9:第七课 webSocket聊天室完整搭建(2

2019最新WEB全栈架构师第八期视频教程

下载链接:https://www.yinxiangit.com/117.html 原文地址:https://www.cnblogs.com/bingerger/p/11629021.html

基于MEAN全栈架构的多用户博客系统(Angular2+Node+MongoDB)

基于MEAN全栈架构的多用户博客系统(Angular2+Node+MongoDB)课程学习地址:http://www.xuetuwuyou.com/course/223课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍一.课程简介MEAN是一个Javascript平台的现代Web开发框架总称,它是MongoDB + Express +AngularJS + NodeJS 四个框架的第一个字母组合.它与传统LAMP一样是一种全套开发工具的简称.本课程结合项目全面系统的

转: 作者 李艳鹏: 史上最全的架构师图谱

本文是笔者多年来积累和收集的知识技能图谱,有的是笔者原创总结的最佳实践,有的是小伙伴们的分享,其中每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知识,笔者索性把这些图谱收集在一起,并且归类便于查找和学习,希望能够帮助到每一位想成为架构师或者已经是架构师的小伙伴,这里我们的标题"史上最全的架构师图谱"是本文的目标,作者计划把这篇文章作为一个开放性的文章,如果读者发现更多的图谱,请联系作者本人,我们把更多的图谱.思维导图汇集在其一起,最终一定能成为互联网上"史上最全

python 全栈开发 day2 字符编码与计算机容量

二进制 编码 ASSIC 每一个字符统一都需要8个bit来存储 计算机容量 1位 = 1bit 8bit = 1byte = 1字节 1024bytes = 1kbytes =1KB 1024个字符,小文档 ,几百k可以表示一张图片 1024KB = 1Million Bytes = 1MB = 1兆 , 几万字的文档, 大图片 1024MB = 1Gigabytes , 一个清晰的电影,不是高清,高清能达到数10个g 1024GB = 1TB , 1024TB = 1PB, 000000000

前端全栈架构,组件式开发,响应式开发,全栈工程师架构,用户界面架构,企业级架构项目实战

我本是一名文科专业半路出家的前端开发人员,从最初只会切图和写CSS.Html到现在会写点JS,一路坑坑洼洼,也是经历了很多,从2010年开始就用WordPress开设了自己的博客,虽然内容零零散散的并不多,但是多多少少也留下了时光的缩影,一直希望自己有一个自留地.用Node.js做服务端替换WordPress是去年的一个想法,由于一直腾不出时间,所以拖到了现在.当然了WordPress作为全球用户量最广的开源博客程序,易用性等诸多好处无可厚非,光自己的博客在过去几年就用了很多套模板,也用它做过很

史上最全java架构师技能图谱(上)

java架构师最全技能图谱上篇,包含:数结构算法.java进阶.web开发.框架与工具四大技能图谱.下篇将包含大数据以及性能.设计模式.UML.中间件.分布式集群.负载均衡.通讯协议.架构设计等技术图谱等章节本文作者,陈睿 优知学院创始人,免费提供系统的互联网产品技术进阶干货资料和课程,以及定期的线下实战活动. 一:数据结构算法 算法分析 时间复杂度和空间复杂度 算法思想 递推.递归.穷举.贪心.分治.动态规划.迭代.分枝界限 数据结构 数组.链表.堆.栈.队列.Hash表.二叉树等 算法 排序

史上最全java架构师技能图谱(下)

"java架构史上最全技能图谱分为上下两篇,这是java架构史上最全图谱下篇,包含:大数据以及性能.设计模式.UML.中间件.分布式集群.负载均衡.通讯协议.架构设计等技术图谱等章节.如果需要上篇内容:数结构算法.java进阶.web开发.框架与工具四大篇章技能图谱,请查看java架构史上最全图谱上篇(历史文章查看).本文作者,陈睿 BAT优知学院创始人,一线大厂资深CTO,免费提供系统的互联网技术进阶干货资料和系列课程,以及定期的线下项目实战. 架构师进阶六大要求程序设计要求WEB开发要求架构

全栈project师体能备战--知识面(10--20)

WCF Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,能够翻译为Windows 通讯开发平台. 对于 WCF 的client来说,WCF 服务就像是一个 Web Service 一样,在 Visual Studio 2008 中,全部 WCF 服务的连接都是由client的 服务代理(WCF Service Proxy) 来执行,开发者不用花费太多心思在通信上,而 WCF Service Proxy 在 Visual S