热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学习如何计算机,如何学习计算机知识

知识体系结构整个计算机体系结构,从确定电路开关二进制用于计算到现在几乎没有大的变化。基于二进制,顺序计算的计算机,所发展出来的技术知识体系

知识体系结构

整个计算机体系结构,从确定电路开关二进制用于计算到现在几乎没有大的变化。基于二进制,顺序计算的计算机,所发展出来的技术知识体系,虽然为了处理问题演化出各种服务各种领域,但本质的基础是一样的。所有应用软件、解决方案都是为了更高效利用现有计算机资源,完成计算任务。

对于有志于进入IT领域,从事计算机行业的同学来说,了解和认识要学习那些知识。以及学习这些知识在实际工作中的用途,这是很有必要的。入门时有一个清晰的概念和全览视图对学习掌握知识很有帮助。

分类

基础知识

包括不限于计算机组成、计算机网络、操作系统、编程语言(最好编译和解释都掌握一门)、数据结构、编译原理等

通过这些知识,可以很好的认识计算机,了解计算机是做什么的,包含那些硬件软件,计算机如何运行,程序如何运行

计算机组件核心是CPU,用于计算的机器,其他组件都是配合CPU工作的,所有数据都会通过CPU的集成电路的二进制计算

网络是为了计算机进行数据交换,因为计算机硬件的多种多样,为了屏蔽底层具体实现,抽象出网络协议,提出一个规范,任何计算机支持这个规范就能互相交换数据,当然这里为了简化复杂性,协议分了好多层

操作系统是为了更好的管理计算机的硬件资源,给到更上层的软件服务使用,最早期软件服务是可以直接跑在硬件上的,自身包含一定操作系统的功能。在业务越来越复杂的情况下,独立出通用操作系统出来管理硬件,现在业务软件服务还是通过系统调用进入内核态操作硬件

数据结构和算法是程序的基础,程序最终是跑的机器指令,运行在CPU上。高级语言会先编译成汇编,汇编再变成二进制,通过链接成为可执行二进制文件。数据结构和算法可以写出更少的机器指令和顺序完成计算工作,节省硬件资源

编程语言不管是编译型还是解释型最终都是变成机器指令才能执行。机器指令过于复杂,不利于记忆,于是有了助记符,汇编。但汇编又太多低级和繁琐而且绑定平台,不利于维护和移植,于是抽象出更高级的语言,需要编译器进行编译,这样只需要维护一个好的编译器,高级语言的代码在哪里都可以执行

后续延伸,可以自制操作系统,对于计算机基础的认知会有很深的理解

基础服务

掌握计算机基础知识后,仅仅是熟悉和理解了计算机的运行原理和机制,但这个并不能直接用于解决业务问题,通常我们遇到的业务问题都是用来存储、计算、查询具体数据,这个时候我们需要一些常见的基础服务,这些服务是在操作系统之上的通用的基础服务

以web开发为例子介绍

db:mysql、mongodb、oracle、r|edis、sqlite、sqlserver、postgresql、elasticsearch、hive、hbase等,用于存储操作数据

middleware:mq、nginx、zuul、kong、linkerd等,用于处理系统与系统之间的数据通信

通过对基础服务的学习认知,了解其原理设计以及最佳应用,可以针对业务问题,选型最佳的解决方案,也可以从中获取设计灵感,在一些新系统设计中可以借鉴使用

实践知识

解决业务问题中,必定会遇到很多实际上的问题,资源受限、权限受限、团队受限等,要在一定限制下,完成问题解决,在熟悉基础知识和基础服务条件下,通过实践,掌握更多实际解决问题的思维方式和经验。这些可以通过自己实践去学习,也可以通过阅读别人项目经验分享和最佳实践总结来学习。

这方面涉及最为广泛:

编程范式、编程规范、项目管理、架构设计、文档规范、自动化、开发模式、语言短板、多语言混合编程、服务治理、备份多活、日志质量体系、风控告警、各种业务特殊场景解决方案等

常用思维

计算机知识虽然多种多样,但是有几种常用的思维方式,了解和掌握这几种思维方式有助于快速理解相关技术

拆分

把大而复杂的问题,拆分成原子的小问题,通过拆分使得编程逻辑更为简单,当感觉问题不好解决时,拆分增加一层,问题就变得好解决

抽象

把可以归类的事物,抽象成一个统一的类型,通过对类型的定义和使用,来更为易于理解的处理问题

复用

无论拆分还是抽象,都有一部分目的是为了复用代码,好的设计可以更好的复用代码,减少开发量,让代码实现更好维护和理解

最后

现在国内软件研发情况,面向业务和游戏等开发内卷程度较高,面对专业软件领域的开发内卷较少,有想从事计算机行业的同学不妨考虑下专业软件领域,这方面更容易跨过开发35的槛



推荐阅读
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
lb000
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有