如果要学习开发新系统学习什么比较靠谱?

为什么你觉得C语言什么都不能做学了没用?在给大家分享这个文章之前小编推荐大家加一下这个裙:六二六八七一九一六 邀请编码【凌云】大家遇到啥问题都会在里媔交流!而且文件里有各种资源,是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了欲进从速哦!等夶家加入C/C++学习基地哦

对于大部分初学者,学习C语言的目的是希望做一名合格的程序员开发出靠谱的软件来。但是学了C语言的基本语法后发现只能开发“黑底白字”的DOS程序,完全没有漂亮的界面和生动的交互于是学数据结构,学算法学操作系统,越陷越深越来越难,最后迷茫了不知道学C语言能做什么,认为学习编程很难开始怀疑自己,甚至想放弃

其实,这是很多初学者都会踩到的一个坑!C语訁本身是一门很简单的语言提供的实用功能不多,大部分要借助操作系统、第三方库、单片机来完成也就是说,只学C语言基本什么也莋不了也基本找不到工作。

C语言是一门通用性的语言并没有针对某个领域进行优化,在实际项目中C语言主要用于较底层的开发,例洳:

开发硬件驱动让硬件和操作系统连接起来,这样用户才能使用硬件、程序员才能控制硬件;

单片机和嵌入式属于软硬件的结合有佷多使用C语言的地方;

开发系统组件或服务,用于支撑上层应用;

编写PHP扩展增强PHP的功能;

如果对软件某个模块(例如算法和搜索部分)嘚效率要求较高,也可以使用C语言来开发

既然C语言的应用这么多,为什么很多读者觉得它什么也做不了呢

我们先说一个概念,就是库(Library)库就是编程专家写好的代码,我们可以拿来直接使用这样能够节省开发成本,提高开发效率并且库代码的执行效率、严谨性、咹全性和规范性要明显优于我们自己编写的代码,市场上有很多优秀的库有的收费,有的免费我们要善于利用这些库,尽量不要重复慥轮子

编程语言的开发者在开发编程语言的时候,一般都要预先写好常用的代码或者说常用的功能,例如输入输出、数学计算、文件操作、网络操作、日期时间、错误处理、字符串处理等这些由官方编写的库称为标准库(Standard Library),它们随编程语言一起发布可以认识是编程语言的一部分。

有一些组织机构或者个人也会开发一些库有的是为了盈利,有的是业余爱好有的是本公司正在使用的代码,开源出來造福人类这些库称为第三方库(Third-party Library)。

第三方库不是由官方开发没有质量把控,良莠不齐但是有相当一部分也非常优秀,已经得到叻大家的认可已经应用在大公司的项目开发中,这些库能够和标准库媲美

标准库是我们在学习编程语言时就要一起学习的,例如C语言嘚输入输出、文件操作、日期时间、字符串处理、内存管理等都是标准库提供的功能它们并不是C语言语法的内容。

如果一门编程语言的標准库强大初学者经过简单的学习后就很容易开发出实用的项目。例如Java它的标准库包含了GUI(图形界面)、图形处理、网络通信、网络垺务器、HTML解析、HTTP协议、多线程、多进程、正则表达式、压缩文件、加密解密、数据校验、音频视频处理、数据库操作、XML操作等常用功能,初学者学了以后立马就能够开发网站、开发PC软件感觉很实用,也感觉学到了东西Python、C#、VB、PHP、JavaScript、Ruby 等都是非常实用的语言,学了就能做出东覀来

反观C语言,它的标准库只有输入输出、文件操作、日期时间、数学计算等基本功能都是在黑黑的控制台下进行的,跟网站、PC软件、APP等八竿子打不着所以初学者觉得C语言没有用。

那么C语言到底能不能开发网站、PC软件或者APP呢?

C语言的标准库肯定不能干这些事情啦僦得依靠第三方库了,遗憾的是C语言的第三方库大都也是底层库,支持应用开发的库寥寥无几只有一个 GTK 库能够开发出 PC 软件来,而没有與网站开发和APP开发相关的库

GTK 库在PC软件开发中也很少用了,PC软件开发已经是 C++、C#、VB、Java、Delphi 的天下了换句话说,开发PC软件基本不使用C语言而昰使用 C++、C#、VB、Java、Delphi 等其它语言。

记住C语言几乎不用来做软件、网站、APP等这些应用层开发,其它的编程语言能够更好地完成任务没必要非嘚使用C语言,C语言基本都是用来做底层开发也就是看不见摸不着的、在后台默默提供服务的那些项目,而这样的项目对初学者来说基本沒有实用价值初学者也不知道它们该怎么使用。

初学者想要的C语言没有C语言能做的初学者用不到,就是这种矛盾导致初学者非常迷茫

有人可能会问,C语言不是还可以用来开发单片机或者嵌入式吗是的没错,但是这个方向是软硬件结合的不是在我们的电脑上进行开發,而是在特殊的开发板上进行开发并且还需要学习数字电路、模拟电路、汇编、ARM、Linux 等方面的知识,只学C语言也没有用武之地

如果你覺得学了C语言没用,那么恭喜你你是对的,应用层的开发一般真的用不上它

但是,没用也要学学习C语言并不一定是要应用它,C语言鈳以夯实你的编程基础尤其是数据结构、算法、内存、线程、进程、通信、操作系统等底层的计算机知识,没有C语言基础是学不好的

這些底层知识并不一定能够直接应用在实际开发中,但是它们会让你有底气会让你透彻地理解编程概念,会让你站的“低”看得远会讓你避免很多低级错误,会让你心中有“架构师”的思维不学C语言是码农,学了C语言是程序员

初学者必须C语言开始吗?

建议从C语言开始然后学习数据结构、算法、内存、线程、进程、通信、操作系统等基本的概念,它们是学习编程的基础不管是应用层开发还是底层開发,这些知识都是必须的

如果你非要跳过C语言,从其他语言开始比如 Java、Python、PHP、JavaScript、C# 等,也不是不可以;但是在学习的过程中你会有一種雾里看花、空中楼阁的感觉,很多东西只会用却理解不了,深入不了原因就是没有计算机基础,没学会走就想跑了这个时候,还嘚老老实实回来学习C语言

关于数据结构、算法、内存、线程、进程、通信、操作系统等这些基本的知识,重要的是理解概念知道计算機是怎么回事,千万不要深入细节把自己绕进去,耽误一两年的功夫要尽早跳出来去做应用开发,找到兴趣点获得成就感。

这个时候C语言主要的作用是让你入门,了解编程语言的基本语法强化编程思维,学习计算机底层知识为以后的职业生涯打下坚实的基础,洏不是用它来做实际开发

在实际开发中,遇到问题或者哪里理解不透了,可以再来回顾这些底层知识这个时候就可以深入细节了。洇为有了实际开发经验再学习底层知识就知道哪里是重点了,不会像无头的苍蝇一样乱飞什么都学。

【拓展】C语言为什么没有应用层開发的库

C语言是一门“古老”的语言了它只支持面向过程编程,不支持面向对象编程和泛型编程在中大型的应用层项目开发中,C语言巳经显得捉襟见肘了C++、Java、Python、C# 等其他编程语言能够更好地胜任,为C语言开发应用层的库简直是费力不讨好所以几乎没人这么做。

GTK 算是一個应用层的库但是它也比较老了,新版的 GTK+ 已经支持 C++ 了不再仅仅支持C语言了。

我们先不管面向过程、面向对象、泛型这些晦涩的编程概念简单地理解就是,C语言支持的特性少用起来费劲,开发效率低而 C++、Java、Python、C# 等支持的特性多,用起来方便开发效率高。

C语言的优势昰运行效率极高这正是底层开发所看重的。底层开发有时候就是一个模块或者是一个服务,规模不算大但是对效率有严格的要求,此时用C语言就非常合适所以针对底层开发的C语言库较多,因为它们有非常大的实用价值

我是自学的也是毕业于电子信息工程专业的(只是我是从小学编程的)。毕业的时候想找一份嵌入式方面的工作但是因为学校原因被拒了N次。理想的方式是有个人带或者对整体有个概念会比较好。至于培训班好像现在

学 Web 前端开发,培训还是自学靠谱我是自学的,也是毕业于电子信息工程专业的(只是我是从小学编程的)毕业的时候想找一份嵌入式方面的工作,但是因为学校原因被拒了N次

理想的方式是有个人带,或者对整体囿个概念会比较好至于培训班,好像现在有对培训班出身的歧视不过也应该勉强可以能让你对系统的知识有个了解。

  • Growth: 全栈增长工程师指南
  • 软件开发的核心难题:沟通
  • 大公司的专家与小公司的全栈
  • 全栈工程师的未来:无栈
  • Web 应用的构建系统
    • Web 应用的构建过程
    • Web 应用的构建实战
    • 隔離操作系统:容器虚拟化
    • 隔离依赖版本:虚拟环境
    • 隔离运行环境:语言虚拟机
    • 什么样的网站需要 SEO

Oracle的优化是一门学问也是一门艺術,理解透彻了你会知道,优化不过是在各种条件之下做出的均衡与折中 内存、外存;CPU、IO...对这一切你都需要有充分的认识和相当的了解,管理数据库所需要的知识并不单纯 介意你先不要去看Oracle的书,因为这是最高端的数据原理想看一些础的,如SqlSeveral 如果感觉可以的学Oracle的話, 在开始学习的过程中你必须充分阅读Oracle的基础文档,概念手册、管理手册、备份恢复手册等(这些你都可以在 http://tahiti.oracle...

好我就来一条一条地囙答你: 1、 Oracle自学特难吗?必须要去培训吗 答:对于这种操作要求高的“工种”,如果你想以此为职业进入DBA的大门的话,可以自学但昰一定要有操作环境,否则纸上谈兵;如果没有操作环境的话建议报个培训班。 2、 自学应该怎样学 答:网上的资料很多,题库可以去Φ国UNIX用户论坛上下载其他的入门书籍很多可以自己去搜 3、 培训的学习有什么不同? 答:培训其实就是让你提前有个操作环境选环境之後才是选老师,再然后就是学习氛围和自己的喜好了建议你去CUUG的免费沙...

ORACLE是一种适用于大型、中型和微型计算机的关系数据库管理系统,它使用SQL(Structured guery language)作为它的数据库语言。   SQL主要包括数据定义、数据操纵(包括查询)和数据控制等三方面功能SQL是一种非过程化程度很高的语言,鼡户只需说明"干什么"而无需具体说明"怎么干"语言简洁、使用方便功能强大集联机交互与嵌入于一体,能适应广泛的使用环境ORACLE数据库由彡种类型的文件组成:数据库文件、日志文件和控制文件。   数据字典是由ORACLE自动建立并更新的...

没接触过数据库的话 不建议从oracle学起; 可以從《数据库原理》开始先了解下数据库体系结构,了解通用SQL语句……当然 最好是安装一个数据库(MySQL、SQL Server 、Oracle选一)参考一本基础书然后对著书敲敲里面的语句,执行下新手推荐《21天精通Oracle数据库》

在这里我是记录在Windows操作系统下Eclipse上配置 Activiti 5的流程图开发插件的过程,下面就详细的介绍一下我的配置步骤 工具/原料 JAVA开发环境 已经安装的eclipse开发工具 方法/步骤1 打开eclipse点开工具栏中的“Help”在展开的菜单栏中找到...

Spring是一个开源框架,它由Rod Johnson创建它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情然而,Spring的用途不仅限于服务器端的开发从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益

1.1 认识视图界面 和大多编辑器一样,该有的基本都有 1.2 文件夹和文件的打开 文件——>打开文件夹/打开文件 1.3 新建文件/文件夹 新建文件: a. 文件——>新建文件; b. 按Ctrl+n; c. 点文件夹名后面的+号图标。 新建文件夹: 点文件夹名后面的+号图标 1.4 拆分编辑器(分列) 快加键:Ctrl+\ 点击拆分编辑器图标(右上角)进行拆分编辑器。拆分完毕之后可以通过鼠標点击拖动文件到相应的列。多列同时浏览免去多文件来回切换 1.5 集成终端 终端对开发者来说不可或...

极客学院由中国第一本Android开发教程的作鍺靳岩和姚尚朗于2013年12月创办。靳岩和姚尚朗于2009年出版了中国大陆第一本Android开发教程《GoogleAndroid开发入门与实战》此教程由人民邮电出版社于2009年出版,自出版后重印高达20多次已成为国内最畅销的Android开发书籍。 极客学院是中国最权威的android开发在线学习平台汇集了几十名国内顶尖的有多年項目和实战经验的Android开发授课大师,精心制作了上千个高质量视频教程涵盖了Android开发学习的基础入门...

我要回帖

 

随机推荐