零基础小白应该怎么入门编程开发

最近,在交流群里经常有苦逼小白问怎样学编程,对编程有兴趣但无从下手,这是个庞大到让大神们“无言以对”的命题。在知乎、CSDN等论坛上,许多同行也对此类问题进行了探讨,小编就其中认可度较高的回答进行了整理,以望给纠结的菜鸟们一些帮助,也欢迎大神们补充和拍砖。

1、决定学,要有兴趣并且是真正的下定决心

兴趣和耐心是老生常谈的话题,小编不在此唠叨,只要记住一点,现在程序员工资差异很大,有能力的程序员享受高薪,但只是略懂的伪程序员可能找不到工作,如果想靠敲代码生存生活,就在兴趣的基础上认真学习。

2、学什么,编程语言的选择也是初学者的困扰

语言只是工具而已,假以时日,每个程序员都能熟练掌握一门甚至多门语言,也会随着技术的发展学习最新、最方便的新语言,相比语言解决问题的思路和方法更为重要。

但作为初学者,C和Python是最被认可适合初学者的编程语言,但由于它们自身的特点,这两种语言也有一定程度上的对立性,当然其它语言也有被选择的理由。

C语言入门门槛较高,学习难度相对较大,但许多语言都受到C的影响,基本概念的东西理念通用,学会了C能打下扎实的编程基础,也降低了以后学习其他语言的难度,总之学习C语言是先苦后甜,刚开始要对自己狠心。

选择C的原因:

1、大部分的数据结构、算法都是C语言写的;

2、借助C能够学习更多的计算机知识,了解计算机,了解底层;

3、C语言是永恒的,门槛高但是以后受用无穷;

4、C 的设计是 Unix 哲学的体现,薄封装、透明、紧凑、一致等体现得淋漓尽致。

不选择C的原因:

1. C贴近底层, 所以可能会让你过早地陷入底层的细节, 但是底层的细节并非普适的. 这与解决问题的思路学习相悖;

2、难度相对大,不容易看到成效,不利于初学者坚持学习。

Python对初学者比较友好,相对容易,功能也比较全面,容易看到效果,减少初学者的厌烦情绪。

选择Python的原因:

1、功能很强大拓展很广,上得web、下得脚本、画得了gui、当得了服务器;

2、语法简单什么平台都支持;

3、省略了很多细枝末节,更容易理解;

4、Python基于清晰的语法和直观的问题解决方案,还有其强大的跨平台GUI工具,能激起许多初学者的兴趣。

不选Python的原因:

容易造成基础差,到后面会有很多基础底层的概念混乱。

3、怎么学

编程是操作性很强的一门知识,看书少不了,但只有学习和实践相结合才能起到很好的效果,一种学习方法是看书->研究书中例子->自己做些东西->网上找资料->看书

研究经典教程是学习许多知识的重要方法,但看书一定要看透,学C语言时一直看到所有C的入门书籍都没有新语法。非科班出生最好先阅读一些计算机原理和基础知识方面的书籍,利于以后各种知识的融会贯通。

编程语言的教程各种平台上都有很多介绍,也有各种推荐,小编建议多看一些推荐,每个人都推荐的效果应该不错。

计算机导论类:

计算机科学技术导论》、《深入理解计算机系统》、《现代操作系统》、《数据库系统概念》、《数据结构》、《编译原理》

C语言:《C Primer Plus》 《C程序设计语言》 《C语言程序设计:现代方法》 《C陷阱与缺陷》作者凯尼格     《编程精辟》作者Steve Maguire   《The C programming language》

C++(推荐博客):《Problem Solving with C++》

阶段一

《C++ Primer》

本书对C++基本概念、技术、以及现代C++编程风格进行了全面而且权威的阐述,是C++初学者的最佳指南;本书可以帮助你编写实用的程序,而无需首先精通每个语言细节。对于中高级程序员,本书也是不可或缺的参考书。

《Essential C++》

内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。

阶段 2

《Effective C++》和《More effective C++》

作者是Scott Meyers。你应该熟读它们,并清楚地理解每个项目。该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。

《Exceptional C++(C++编程剖析)》和《More exceptional C++》

这两本书中都包含了40个C++编程问题,这些问题会让你磨练自己的技能,最终成为优秀的C++程序员。这些问题是Herb Sutter精心挑选,与ISO/ANSI C++官方标准相一致,帮助程序员在设计、架构和编码过程中保持良好的风格,从而使编写的C++软件更健壮、更高效。

阶段 3

《Inside the C++ object model(深度探索C++对象模型)》

本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承,帮助你理解程序的底层实现,以便写出更高效的代码。《The design and evolution of C++(C++语言的设计与演化)》

本书作者也是C++语言的设计者Bjarne Stroustrup,作者在书中综合性地介绍了C++的发展历史,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景,既没有忽略关键性的详情,又没有过多地陷入技术细节。

阶段 4

《The C++ standard library(C++标准程序库)》

这是标准模板库字典,你可以在本书中找到STL相关的一切知识。本书焦点放在标准模板库、检查容器、迭代器、函数对象和STL算法上。每一个元素都有深刻的呈现,包括其介绍、设计、运用实例、细节解说、陷阱、意想不到的危险,以及相关类别和函数等。

《Effective STL》

这是Scott Meyers的第三本C++专著,也是学习STL最权威的书籍。作者对书中的50个指导方针都作了详尽的分析,并配以示例。通过这些规则,C++开发者可以最大限度地使用STL《Generic programming and the STL(泛型编程与STL)》

本书阐述了泛型程序设计的核心理念:concepts(概念)、modeling(模型)和refinement(改善),并为你展示这些观念如何导出STL的基础概念:iterators(迭代器)、containers(容器)和function objects(函数对象)。按照本书所述,你可以把STL想象成一个由concepts组成的library,你将学习到STL正式结构并理解其强大的优势。

阶段 5

《Exceptional C++ style》

作者为Herb Sutter。本书同样提出了40个C++风格相关的问题,对一些至关重要的C++细节和相互关系提出了新的见解,为当今的关键C++编程技术(如泛型编程、STL、异常安全等)提供了新的策略,帮助开发者在开销与功能之间、优雅与可维护性之间、灵活性与过分灵活之间寻找完美的平衡点。

《C++ template》

这是一本关于C++模板的完整的参考手册和教程,它强调模板的使用实践,包含了现实世界中的例子。每个C++程序员都应该好好读一读这本书。

《Modern C++ design(现代C++设计)》

作者Andrei Alexandrescu为C++程序员打开了一个新的局面。本书提供了一些针对软件设计的前沿方法,如联合设计模式、泛型编程,使程序员可以编写有表现力的、灵活的、高度可重用的代码。

《Thinking in C++(C++编程思想)》

C++ 领域权威著作,介绍了C++实用的编程技术和最佳的实践方法。

Objective-C:《Objective-C编程》

Python :《Python基础教程》、《Learn Python the Hard Way》、《Python学习手册》、《Python源码剖析》、《python编程入门经典》、各种在线文档

:上面提到的书籍只是庞大教程中的一小部分,欢迎大家指正和补充。

有了入门书籍,也只是打怪时准备好了装备,想要成为一名合格甚至优秀的程序员还有更多的路要走。具体该怎么学习,学习了初级知识后怎么扩展、补充、提高,如何提高作为一名程序员的职业修养,都是编程小白们必将面对的问题,小编会在后续为大家分享相关经验。

成功的开发者都有一个共同点,会关注很多编程,很专业,并且会将良好的编程习惯作为一种艺术来看待。在《喜剧之王》中龙套尹天仇那一句“其实,我是一名演员”言犹在耳,既然决定踏进猿猿行列,就要时刻提醒自己是一名程序员,认可自己、认可自己的职业,开心前行。欢迎大神和准大神们就如何提高自己进行探讨,并与大家分享,当然也可以炫炫你是如何不小心成了励志代表的。

时间: 2024-11-09 17:33:35

零基础小白应该怎么入门编程开发的相关文章

零基础小白,如何入门计算机视觉?

计算机视觉是人工智能技术的一个重要领域,打个比方(不一定恰当),我认为计算机视觉是人工智能时代的眼睛,可见其重要程度.计算机视觉其实是一个很宏大的概念,下图是有人总结的计算机视觉所需要的技能树. 如果你是一个对计算机视觉一无所知的小白,千万不要被这棵技能树吓到.没有哪个人能够同时掌握以上所有的技能,这棵树只是让你对计算机视觉有个粗浅的认识. 先来打点鸡血,看看计算机视觉有什么用吧.下面的视频是计算机视觉在自动驾驶上的实际应用,其中涉及立体视觉.光流估计.视觉里程计.三维物体检测与识别.三维物体跟

秦皇岛达内:零基础小白如何成为大数据开发大牛

目前最火的大数据,很多人想往大数据方向发展,想问该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么IT培训网小编就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统.硬件.网络.服务器感兴趣?是软件专业,对软件开发.编程.写代码感兴趣?还是数学.统计学专业,对数据和数字特别感兴趣. 其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/ 设计/ 架构.数据

零基础小白入门Java免费视频教程推荐—小猿圈

Java语言作为世界上使用最多的开发语言,企业庞大的需求量让每年进入Java开发领域的人不减反增.对于零基础小白来讲如何学习Java开发语言是入门的第一个难题.本文小猿圈主要给零基础小白入门Java开发技术推荐一个靠谱的Java免费视频教程. 零基础小白入门Java免费视频教程推荐-小猿圈 关于Java基础入门视频教程的选择,网上有各种各样的解说,也有各式各样的视频教程,那么我们究竟应该如何选择Java免费视频教程呢?如何才能挑选到合适自己的Java基础入门视频教程呢? 许多想通过观看Java视

教你从零基础小白开始怎么学习C语言

想窥探神秘的代码世界?最好的入口无疑就是C语言. C语言是计算机体系结构的基础,向下可以操作硬件(包括ARM,DSP,单片机等各种微处理器),还可以写驱动,写OS,写编译器.向上可以进一步的学习C++,JAVA等面向对象语言,再学习一些图形用户界面框架,比如Qt,MFC,就可做出类似于计算器.QQ等Window桌面应用,再比如Android,就可以做出微信等Android应用,再比如Unity3D,就可以做出类似王者荣耀.刺激战场等手游.想想是不是就有点小激动呢!最后,如果大家如果在自学遇到困难

免费领取16套深度学习权威实践课,从零基础小白到大牛

摘要:想学习人工智能却无从下手,听过两三遍网课还是不懂什么是卷积神经网络,好不容易啃完了视频却发现没源码没法调参跑代码,快来AI Studio课程!免费优质课程,系统化学习, 名师指导,提供真实开发案例,在线实训调参,提升学习效果,带你快速入行人工智能! 很多学习AI算法的人都很痛苦,尤其是希望进入大热的深度学习领域的你,是否遇到过以下囧境? 网上有大量的学习资料,质量参差不齐,且不知道知该从何学起: 听过两三遍网课,还是不懂什么是卷积神经网络: 好不容易啃完了视频却发现没源码,没法调参跑代码,

零基础小白建立自己的导航网站

前言 我就是那个零基础小白,前端.网页什么的我都没有学习过,只是有一点C#的Winform编程工作经验.做这些东西只是兴趣使然,遇到不懂的地方也只能自己找资料自学. 本文只是想记录一下自己的学习经历,也为其他有兴趣的同胞提供一些参考. 使用的是开源项目geekape/geek-navigation,这是最终的导航网站 猿导航 http://quyonghu.cn. 准备工作 开始之前,你必须准备好下面的工作: 安装了node.js.npm(安装过程参考安装Node.js和npm) 安装了git

[原]零基础学习在Android进行SDL开发系列文章

[原]零基础学习SDL开发之移植SDL2.0到Android [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP叠加图 [原]零基础学习SDL开发之在Android使用SDL2.0渲染PNG图片 [原]零基础学习SDL开发之在Android使用SDL2.0加载字体 [原]零基础学习在Android进行SDL开发后记 [原]零基础学习在Android进行SDL开发系列文章,布布扣,bubuko.com

[原]零基础学习在Android进行SDL开发后记

本着学习交流记录的目的编写了这个系列文章,主要用来记录如何从零开始学习SDL开发的过程,在这个过程中遇到了很多问题,差点就放弃了.首先是SDL的Android移植的时候遇到了比较坑的是SDL移植到Android的JNI文件编写比较坑,刚开始想着如何将SDL编译成动态共享库,在别的地方直接调用该动态共享库,结果发现死活崩溃在SDL_Init()这个函数,最后发现SDL的JNI文件直接使用SDLActivity的函数,并且JNI采用静态注册的方式.直接在别的地方调用该动态库就跪了,博主能力又有限,又

[零基础学pythyon]安装python编程环境

任何高级语言都是需要一个自己的编程环境的,这就好比写字一样,需要有纸和笔,在计算机上写东西,也需要有文字处理软件,比如各种名称的OFFICE.笔和纸以及office软件,就是写东西的硬件或软件,总之,那些文字只能写在那个上边,才能最后成为一篇文章.那么编程也是,要有个什么程序之类的东西,要把程序写到那个上面,才能形成最后类似文章那样的东西. 刚才又有了一个术语--"程序",什么是程序?本文就不讲了.如果列为观众不是很理解这个词语,请上网google一下. 注:推荐一种非常重要的学习方法