首页 > 编程语言 >程序员入门指南

程序员入门指南

时间:2023-08-02 21:23:40浏览次数:50  
标签:指南 入门 推荐 编程 C++ 程序员 https com 可以

程序员入门指南

本文作者:futz12 ,szx0427

虽然本人由于多方面原因没有选择计科/软工(对AI和图形算法的热爱),但是根据多年研究经验(业余的),打算给各位推荐基本相关的书和软件(主要是学习思路)。

注意:学习编程不一定是搞那些绚丽的界面,开发有趣的游戏。很多有用且享誉世界的程序并没有那些高大上的界面,相反他们在默默无闻的地方发挥他们至关重要的作用。

作为初学者,所要面对的是枯燥无味的程序界面——控制台(一个黑色的框框),不要因为你的心里落差而放弃了编程

C/C++

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

语言入门

推荐书目

注意以下推荐的书均可找到相应的电子版(初学可以对着电子版来,以免学不进去造成浪费)

推荐书目 推荐原因
啊哈C语言 是一本非常基础的C语言教程(面向青少年/儿童的),如果对计算机原理完全没有了解的同学可以看看。
Essential C++ 薄,且能快速入门
中学生计算机程序设计 虽然写的不怎么样,但是可以让人快速的写出程序并且跑起来
推荐网站
推荐网站 网址 推荐原因
CSDN https://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.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++的一切都在上面(其实也不过是冰山一角)。
Effective C++ 让你更好的了解C++应该怎么写。
算法导论 虽然和C++无关,但是在进阶阶段,你需要强硬的算法功底才能写出优秀高效的程序(你面试反正是要)。
Windows 程序设计(选) 很老的一本书了,Windows是一个使用范围很大的系统,掌握Windows编程可以方便以后使用其他类库的能力。学习这本书可以让你快速(相对的)写起一个程序。但是不要使用配套版本的VS工具(尽量使用最新版,这样做可能会使得您寸步难行,但是请不要放弃)。

很少,对吗。/xyx

推荐网站
推荐网站 网址 推荐原因
CSDN 同上 你以为你入门了就可以看不起用CSDN吗?
博客园 同上 博客园学算法很合适。
百度/必应 同上 该用还得用。
Stack Overflow https://stackoverflow.co/ 一个外国的网站,可以用英文找到您遇到的问题以及解决方法。
Leet Code https://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 当一个字典查,要有耐心
各种开发社区 同上 在交流中成长
GitHub https://github.com 当您开始写项目的时候可以去上面看看别人的是怎么写的代码的,作为一个程序员您应该去看看,在这个阶段相信您能找到优雅的上这个网站的方法。(给自己Github打个广告:https://gtihub.com/futz12)
知乎 https://www.zhihu.com 前面不推荐的原因是因为上面大佬如云,大佬说的是正确的,但是未必是适合你的。但是现在您已经掌握了基本的代码能力,可以上知乎开拓一下视野了,比如C++新标准,OpenMP能实现什么骚操作。
推荐工具
推荐工具 推荐原因
Visual Studio 您已经是个成熟的大学生了,如果您在Windows上编程,VS是一个明智的选择
Clion(作为大学生您应该白嫖这个工具) 这也是个明智的选择
Qt 想写窗口程序了?想写手机程序了?想让自己程序被别人看到?可以试试看
Android Studio(需要会Java) 写手机程序(安卓)

其他编程语言

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

后记

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

  1. 值得注意的是,成为一个合格的程序员,并不是要掌握更多的编程技能,而是如何更好的解决问题。学会了编程只不过是一个结果,而您的目的是解决问题。

  2. 在学习过程中,除了您身边的同伴以外,为了谋求更长远的进步,您可能需要在网上寻求志同道合的伙伴。但是也不要过度沉迷于网络社交(本人就是)。

  3. 也不要养成所谓的鄙视链,不要进所谓的编程群(进那种解决实际项目需求的,给自己的QQ群打个广告:904511841)。

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

标签:指南,入门,推荐,编程,C++,程序员,https,com,可以
From: https://www.cnblogs.com/Icys/p/CPPLearn.html

相关文章

  • Solidity入门
    什么是Solidity?Solidity是一种用于编写智能合约的高级编程语言,主要用于以太坊平台。智能合约是一种在区块链上自动执行的计算机程序。Solidity使开发人员能够创建可靠和安全的智能合约,这些合约可以用于多种用途,例如去中心化应用(DApps)的创建、数字资产的管理等。Solidity基础......
  • 【入门教程】3202年了,还有人没用stable diffusion画个自己的AI小姐姐吗。
    个人绘画作品: 说明本文主要是讲一下如何安装、使用整合包,以及介绍画真人图片的大模型(介绍的整合包只提供二次元模型,个人不太感兴趣)通过最简单的介绍帮助大家快速入门,开始画图,不会深入的进行讲解,毕竟网上讲的已经很详细了。 介绍目前市面上用的最多的AI绘画工具是stable-......
  • VimScript五分钟入门-中文翻译
    这篇文章主要是为了让你能够尽可能快地学习到vimscript的基础。你可以把这当做一个速查表。在读这篇文章之前,你应该可能已经有了一些编程经验。Vim的内建文档已经很出色了。你可以在vim里尝试:h<searchterm>来阅读更多信息。你可以通过在normal模式下键入gQ命令启动REPL环境来调......
  • Python-入门
    介绍Python (python.org)LearnXinYminutes (learnxinyminutes.com)Regexinpython (jaywcjlove.github.io)helloword>>>print("Hello,World!")Hello,World!Python中著名的“HelloWorld”程序变量age=18#年龄是int类型name="John"#nam......
  • SOLIDWORKS中的弹簧设计指南
    SOLIDWORKS是一款广泛使用的三维计算机辅助设计软件,可以用于设计各种机械零件和组件,包括弹簧。在SOLIDWORKS中设计弹簧需要注意一些关键点,本文将为您介绍SOLIDWORKS中的弹簧设计指南。1.弹簧类型按受力性质,弹簧类型包括压缩弹簧、拉伸弹簧、扭转弹簧和弯曲弹簧。①压缩弹簧:压缩弹......
  • 程序员30岁的职场困境该如何解决?
    一、从“工程师”到“码农”的演变在互联网的初期,程序员还被尊称为工程师,角色更像是创新者和探索者。那时候,百废待兴,他们需要亲自去探索、去创新,去定义这个新兴领域的规则和标准。那无疑是个欣欣向荣的时代。然而,如今的互联网早已过了那个野蛮生长的时代,工种逐渐细分,程序员成为了......
  • 小程序云开发快速入门(1/4)
    前言从上次完成了码仔备忘录本地版本后,码仔就养成了每天记录备忘录的好习惯,每周早上会记录下自己要做的任务,然后晚上在复盘一下今天的计划是否完成。有一天,码仔看到它最喜欢的码妞在一旁愁眉苦脸。码仔:“怎么了?”码妞:“工作事物太多了,总是忘记工作上的一些事情”码仔心里暗喜,这不是......
  • typescript 快速入门
    1.环境搭建1.1安装安装typescriptyarnaddtypescript-g安装ts-nodets-node是一个在内存中运行的TypeScript运行时,它可以直接运行ts文件,而不需要将ts文件编译成js文件yarnaddts-node-g安装@types/node@types/node是node.js的类型定义文件,......
  • ArkUI 组件基础 指南
    ArkTs基础指南常用组件组件组件是构建页面的核心,每个组件通过对数据和方法的简单封装,实现独立的可视、可交互功能单元。组件之间相互独立,随取随用,也可以在需求相同的地方重复使用。基础组件Blank、Button、Checkbox、CheckboxGroup、DataPanel、DatePicker、Divider......
  • 数据存储 data指南
    数据存储示例指南数据管理为开发者提供数据存储、数据管理能力,比如联系人应用数据可以保存到数据库中,提供数据库的安全、可靠等管理机制。数据存储:提供通用数据持久化能力,根据数据特点,分为用户首选项、键值型数据库和关系型数据库。数据管理:提供高效的数据管理能力,包括权......