尽管本人因为多方面缘由没有选择计科/软工(对AI和图形算法的热爱),并且依照多年研究经验(业余的),准备给诸位推荐基本相关的书和软件(主要是学习思路)。
注意:学习编程不一定是搞这些艳丽的界面,开发有趣的游戏。好多有用且闻名世界的程序并没有这些高大上的界面,相反她们在默默无闻的地方发挥她们至关重要的作用。
作为初学者,所要面对的是无趣无味的程序界面——控制台(一个红色的框框),不要由于你的心中落差而舍弃了编程
C/C++
C/C++开发算是我比较常用的开发方法,这一方面我比较有发言权(桌面开发方向)。C语言本质上就是在学计算机,了解了C语言的方方面面也就了解了计算机的一些基本运行原理。C/C++其实难学,并且基本念书好了C/C++其他语言都可以速通。
语言入门推荐书目
注意以下推荐的书均可找到相应的电子版(初学可以对着电子版来,以免学不进去导致浪费)
推荐书目推荐缘由
啊哈C语言
是一本特别基础的C语言教程(面向中学生/儿童的),倘若对计算机原理完全没有了解的朋友可以瞧瞧。
EssentialC++
薄,且能快速入门
学生计算机程序设计
尽管写的不怎样样,并且可以让人快速的写出程序而且跑上去
推荐网站推荐网站网址推荐缘由
CSDN
尽管CSDN以他的广告多,文章剽窃多而臭名昭著。并且CSDN常常可以提供给初学者快速且确切的解答。
云海天
云海天则和CSDN相反,云海天文章相对质量比较高,可以基于开发者相对深入的帮助。同时云海天也可以作为自己的学习日记,把自己的学习体会之类的写起来。(顺便给自己云海天主页打个广告:)。
百度
同样的,百度在一些编程老鸟口中是臭名昭著的,一个是他的广告,另一个是作为一个英文搜索引擎无法获得英语的一手资料。并且,因为菜鸟无法确切的抒发自己的问题,百度可以提供更适宜菜鸟的答案。菜鸟遇见的99%问题可以通过百度解决,善用百度。
必应
必应和百度相对。必应可以提供更多的美国一手资料,而且他的搜索结果对新人可能不是很友好。
洛谷
在洛谷可以提升自己构造代码的能力,增强逻辑思维能力
推荐工具推荐工具推荐缘由
DevC++4.9.9.2
DevC++由于和工作相悖为人非议,然而作为初学者,想快速的把代码跑上去,DevC++是你的不二之选。
虚拟机(VirtualBox)
虚拟机是一种在笔记本里运行另一个笔记本系统的软件(主要就是为了折腾,只有充分了解笔记本和笔记本系统能够更好的编程)。
Linux系统(须要对Windows有一定的基本功)
使用Linux对于初学者最大的用处就是折腾菜鸟,在折腾的过程中可以提升自己对笔记本的使用能力,更能了解系统,软件之间的关系。Linux系统有好多种,这儿推荐的是Ubuntu和Fedora(最好是在虚拟机里运行,对自己折腾能力极为自信的可以找台笔记本试着安装一下)。倘若您是Win10/11用户可以试一下谷歌的WSL1(注意是1而不是2)。在Linux下您可以学到终端的用法,这是您未来常年须要使用的工具。作为一个合格的程序员不是说你会多少编程语言,最重要的是你解决问题的能力,而在折腾中就是在锻练你的耐挫,解决问题的能力。试着在Linux上生存一段时间吧!
语言进阶
在完成语言入门的时侯,想必你们已然拥有了一部份的编码能力。这时侯须要将基础的编码能力开始向开发项目转变。
在进阶阶段,我们须要进一步了解C/C++的语言特点,包括函数反映到计算机底层是哪些,C++STL/Boost,IDE是怎样完成编译任务的,怎么使用命令行调试工具,C/C++相对其他语言的本质区别是哪些,清楚C++的class,模板,多态承继,不得不承认这是一个极为困难的过程。
推荐书目推荐书目推荐缘由
C++Primer
C++的百科全书,关于C++的一切都在里面(虽然也不过是冰山一角)。
EffectiveC++
让你更好的了解C++应当如何写。
算法简史
其实和C++无关,而且在进阶阶段,你须要强硬的算法功力能够写出优秀高效的程序(你笔试总之是要)。
Windows程序设计(选)
很老的一本书了,Windows是一个使用范围很大的系统,把握Windows编程可以便捷之后使用其他解释器的能力。学习这本书可以让你快速(相对的)写起一个程序。并且不要使用配套版本的VS工具(尽量使用最新版,这样做可能会促使您寸步难行,并且请不要舍弃)。
极少,对吗。/xyx
推荐网站推荐网站网址推荐缘由
CSDN
同上
你以为你入门了就可以讨厌用CSDN吗?
云海天
同上
云海天学算法很合适。
百度/必应
同上
该用还得用。
StackOverflow
一个外国的网站,可以用英语找到您遇见的问题以及解决方式。
LeetCode
程序员也须要刷题,在洛谷上做完基础的题目后就来这儿,做空线程之类更符合项目的题目,提升自己建模的能力。
推荐工具推荐工具推荐缘由
GCC(Mingw)/MSVC
这儿指的是编译器(g++.exe,cl.exe)请使用命令行去编译你写的程序(多个cpp文件的程序,尽量不使用IDE),我见过好多大四中学生也不晓得如何添加include,为何要添加lib,总之各类杂七杂八的问题,好多人拿着python的思维,以为一个import才能开始写代码了(C++马上也能这样了,尽请期盼)。归根结底就是被IDE保护太好了。
CMake
去编译几个软件来摧残一下自己,例如OpenCV,Boost,7-Zip等。
VisualStudioCode+CMake插件
写小程序我建议用这玩意儿,摧残一下自己
VisualStudio
挺好用,而且请少用
Clion(作为学院生您应当可以免费使用该工具)
挺好用,而且请少用
这时侯你写的程序就应当开始使用到C/C++库命令以外的东西了,例如Windows.h等,开始学习多线程等。
迈向项目推荐书目
这儿开始虽然基本不须要书了,绝大多数网上的英语资料您应当开始着手消化了。例如您的程序须要图象处理功能,用到了OpenCV,这时侯您的最佳选择不是网上买一本OpenCV的书,而是去OpenCV的官方网站上看它提供的官方文档。
推荐网站推荐网站网址推荐缘由
同进阶
同进阶
同进阶
各类Docs
好多,看你用哪些工具,OpenCV就看OpenCV的,Windows就看MSDocs
当一个字典查,要有耐心
各类开发社区
同上
在交流中成长
GitHub
当您开始写项目的时侯可以去里面瞧瞧他人的是如何写的代码的,作为一个程序员您应当去瞧瞧,在这个阶段相信您能找到高贵的上这个网站的方式。(给自己Github打个广告:)
知乎
后面不推荐的缘由是由于前面大鳄如云,大鳄说的是正确的,而且未必是适宜你的。并且如今您早已把握了基本的代码能力,可以上知乎开拓一下视野了,例如C++新标准,OpenMP能实现哪些骚操作。
推荐工具推荐工具推荐缘由
VisualStudio
您早已是个成熟的学院生了,若果您在Windows上编程,VS是一个明智的选择
Clion(作为学院生您应当白嫖这个工具)
这也是个明智的选择
Qt
想写窗口程序了?想写手机程序了?想让自己程序被他人看见?可以试试看
AndroidStudio(须要会Java)
写手机程序(安卓)
其他编程语言
说实话,不是很了解,不在这误人子弟了
杂记
笔者也不过是个中学结业生而已,只不过是把握了一些对于同龄人的信息差,不算是编程前辈,更不是顶级一线专家,只是想给走进这个我热爱的行业的朋友一点帮助,写下来的内容未必正确,仅供参考。
值得注意的是,成为一个合格的程序员,并不是要把握更多的编程技能,而是怎样更好的解决问题。学会了编程只不过是一个结果,而您的目的是解决问题。
在学习过程中,不仅您身边的同伴以外,为了筹谋更长远的进步,您可能须要在网上寻求志同道合的伙伴。并且也不要过度沉溺于网路社交(本人就是)。
也不要养成所谓的厌恶链,不要进所谓的编程群(进那个解决实际项目需求的,给自己的QQ群打个广告:904511841)。
#6:1:5:7:5:1:3:d:9:2:c:d:9:6:f:1:e:a:a:c:1:4:f:6:3:0:1:6:b:5:4:d#
多去打打面试,蓝桥杯,ACM都可以,可以提高自己的竞争力。