程序员入门指南

打印 上一主题 下一主题

主题 704|帖子 704|积分 2112

程序员入门指南

本文作者:futz12 ,szx0427

虽然本人由于多方面原因没有选择计科/软工(对AI和图形算法的热爱),但是根据多年研究经验(业余的),打算给各位推荐基本相关的书和软件(主要是学习思路)。
注意:学习编程不一定是搞那些绚丽的界面,开发有趣的游戏。很多有用且享誉世界的程序并没有那些高大上的界面,相反他们在默默无闻的地方发挥他们至关重要的作用。
作为初学者,所要面对的是枯燥无味的程序界面——控制台(一个黑色的框框),不要因为你的心里落差而放弃了编程
C/C++

C/C++开发算是我比较常用的开发方式,这一方面我比较有发言权(桌面开发方向)。C语言本质上就是在学计算机,了解了C语言的方方面面也就了解了计算机的一些基本运行原理。C/C++虽然难学,但是基本上学好了C/C++其他语言都可以速通。
语言入门

推荐书目

注意以下推荐的书均可找到相应的电子版(初学可以对着电子版来,以免学不进去造成浪费)
推荐书目推荐原因啊哈C语言是一本非常基础的C语言教程(面向青少年/儿童的),如果对计算机原理完全没有了解的同学可以看看。Essential C++薄,且能快速入门中学生计算机程序设计虽然写的不怎么样,但是可以让人快速的写出程序并且跑起来推荐网站

推荐网站网址推荐原因CSDNhttps://www.csdn.net/虽然CSDN以他的广告多,文章抄袭多而臭名昭著。但是CSDN往往可以提供给初学者快速且准确的解答。博客园https://www.cnblogs.com/博客园则和CSDN相反,博客园文章相对质量比较高,可以基于开发者相对深入的帮助。同时博客园也可以作为自己的学习日记,把自己的学习感悟之类的写上去。(顺便给自己博客园主页打个广告:https://www.cnblogs.com/Icys)。百度https://www.baidu.com同样的,百度在一些编程老手口中是臭名昭著的,一个是他的广告,另一个是作为一个中文搜索引擎没法获得英文的一手资料。但是,由于新手没法准确的表达自己的问题,百度可以提供更适合新手的答案。新手遇到的99%问题可以通过百度解决,善用百度。必应https://cn.bing.com/必应和百度相对。必应可以提供更多的国外一手资料,但是他的搜索结果对新人可能不是很友好。洛谷https://www.luogu.com.cn/在洛谷可以提高自己构造代码的能力,提高逻辑思维能力推荐工具

推荐工具推荐原因DevC++ 4.9.9.2DevC++因为和工作脱节为人诟病,但是作为初学者,想快速的把代码跑起来,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++ PrimerC++的百科全书,关于C++的一切都在上面(其实也不过是冰山一角)。Effective C++让你更好的了解C++应该怎么写。算法导论虽然和C++无关,但是在进阶阶段,你需要强硬的算法功底才能写出优秀高效的程序(你面试反正是要)。Windows 程序设计(选)很老的一本书了,Windows是一个使用范围很大的系统,掌握Windows编程可以方便以后使用其他类库的能力。学习这本书可以让你快速(相对的)写起一个程序。但是不要使用配套版本的VS工具(尽量使用最新版,这样做可能会使得您寸步难行,但是请不要放弃)。很少,对吗。/xyx
推荐网站

推荐网站网址推荐原因CSDN同上你以为你入门了就可以看不起用CSDN吗?博客园同上博客园学算法很合适。百度/必应同上该用还得用。Stack Overflowhttps://stackoverflow.co/一个外国的网站,可以用英文找到您遇到的问题以及解决方法。Leet Codehttps://leetcode.cn/problemset/all/程序员也需要刷题,在洛谷上做完基础的题目后就来这里,做多线程之类更符合项目的题目,提高自己建模的能力。推荐工具

推荐工具推荐原因GCC(Mingw)/MSVC这里指的是编译器(g++.exe,cl.exe)请使用命令行去编译你写的程序(多个cpp文件的程序,尽量不使用IDE),我见过很多大四学生也不知道怎么添加 include,为什么要添加lib,反正各种杂七杂八的问题,很多人拿着python的思维,以为一个import就能开始写代码了(C++ 马上也能这样了,尽请期待)。归根结底就是被IDE保护太好了。CMake去编译几个软件来折磨一下自己,比如OpenCV,Boost,7-Zip等。Visual Studio Code + CMake插件写小程序我建议用这玩意,折磨一下自己Visual Studio很好用,但是请少用Clion(作为大学生您应该可以免费使用该工具)很好用,但是请少用这时候你写的程序就应该开始使用到 C/C++ 库命令以外的东西了,比如 Windows.h 等,开始学习多线程等。
走向项目

推荐书目

这里开始其实基本不需要书了,绝大多数网上的英文资料您应该开始着手消化了。比如您的程序需要图像处理功能,用到了OpenCV,这时候您的最佳选择不是网上买一本OpenCV的书,而是去OpenCV的官方网站上看它提供的官方文档。
推荐网站

推荐网站网址推荐原因同进阶同进阶同进阶各种Docs很多,看你用什么工具,OpenCV就看OpenCV的,Windows就看MS Docs当一个字典查,要有耐心各种开发社区同上在交流中成长GitHubhttps://github.com当您开始写项目的时候可以去上面看看别人的是怎么写的代码的,作为一个程序员您应该去看看,在这个阶段相信您能找到优雅的上这个网站的方法。(给自己Github打个广告:https://gtihub.com/futz12)知乎https://www.zhihu.com前面不推荐的原因是因为上面大佬如云,大佬说的是正确的,但是未必是适合你的。但是现在您已经掌握了基本的代码能力,可以上知乎开拓一下视野了,比如C++新标准,OpenMP能实现什么骚操作。推荐工具

推荐工具推荐原因Visual Studio您已经是个成熟的大学生了,如果您在Windows上编程,VS是一个明智的选择Clion(作为大学生您应该白嫖这个工具)这也是个明智的选择Qt想写窗口程序了?想写手机程序了?想让自己程序被别人看到?可以试试看Android Studio(需要会Java)写手机程序(安卓)其他编程语言

说实话,不是很了解,不在这误人子弟了
后记

笔者也不过是个高中毕业生而已,只不过是掌握了一些对于同龄人的信息差,不算是编程高手,更不是顶尖一线专家,只是想给走入这个我热爱的行业的同学一点帮助,写出来的内容未必正确,仅供参考。

  • 值得注意的是,成为一个合格的程序员,并不是要掌握更多的编程技能,而是如何更好的解决问题。学会了编程只不过是一个结果,而您的目的是解决问题。
  • 在学习过程中,除了您身边的同伴以外,为了谋求更长远的进步,您可能需要在网上寻求志同道合的伙伴。但是也不要过度沉迷于网络社交(本人就是)。
  • 也不要养成所谓的鄙视链,不要进所谓的编程群(进那种解决实际项目需求的,给自己的QQ群打个广告:904511841)。

  • 多去打打笔试,蓝桥杯,ACM都可以,可以增强自己的竞争力。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表