今天这篇文章, 分享一下讲讲我是如何入门和进阶编程的。也正好有读者朋友跟我咨询类似的问题,如何入门编程?有没有什么 c++ 小项目可以练手的?这篇文章也算是能回答这部分读者的疑问。
下面,我将从以下这几个方面,谈谈自己的理解:
关于作者: 程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader。 欢迎关注,交流和指导!
如何入门、提高兴趣?首先,“编程”的门槛相对较低,你看外面的培训机构早就从成年人延伸到越来越多的中小学生,甚至“少儿编程”了。既然“少儿”都学,难道你还不能学么?
但整体来讲学习“编程”,特别是到后面进阶(例如数据结构和算法),是相对比较枯燥的。所以就要想办法来提高自己的兴趣,或者说通过一步步学习来获得“成就感”反向刺激自己主动多学习。
关于入门的编程语言,我觉得不要太局限,不要太限制自己非得用某个语言入门,可以根据自己的实际情况来选择。不过整体来讲,如果之前完全是小白,我推荐比如用 C语言 首先对编程语言有个大体的了解。
掌握了一门编程语言后,其他语言都是触类旁通的,无外乎就是“顺序、选择、循环”,不同编程语言的具体语法不一样而已。然后对于常规的面向过程的 C 语言有过接触的话,面向对象的 C++ 、Java等也建议都了解和学习一下。
记得我当初上大学的时候接触的第一门编程语言就是“VB”,我想学校安排的课程先后顺序还是很有道理的。用 VB,在 VisualStudio 上简单用鼠标拖一拖就能出来一个有用户界面、可交互的像模像样的“软件”,这对于上面提到的用“成就感”来激励自己主动多学习还是很有效果的。
比如当初课程大作业就是写一个计算器,通过短时间的入门学习,就能写一个这样的计算器软件出来,确实还是颇有成就感。这其实就跟现在的少儿编程一个道理,用一些可视化的编程平台让小朋友通过简单的拖拽,加上少部分逻辑就能出一个非常“炫丽”的效果,就跟玩游戏一样,这当然能激发足够的兴趣。
小结一下,入门编程,就是先学一门比较好上手的编程语言,通过尝试写一些有用户界面(比如 HTML+JS)的小项目、小 Demo 来激励自己。
积累专业知识,重视基础有了一两门编程语言作为基础后,这个环节就是真正体现编程水平的时候,也是最能和其他人拉开差距的部分。
在阿里社招面试的过程中也是非常看重基础的,过去项目不牛 X 没关系,基础知识一定得扎实。
在参与社招面试过程中,领导也特别交代,除了一般的沟通交流外一定要看基础,基础好,解决问题时有逻辑、有条理,简单的代码题目能写个八九不离十,基本上一面二面也就过了。
具体相关的计算机专业课程无外乎就是那么几门:《C/C++程序设计基础》、《数据结构》、《算法分析和设计》、《汇编语言程序设计》、《计算机网络》、《操作系统》、《数据库系统》、《编译原理》等等,在这里我也不再详述了。
从中可看出,正如我之前所说,计算机相关的专业基础知识和就业联系得很紧密。如果是在校生,就一定不要浪费时间、抓住这些专业课程的学习机会。不然毕业后从事了编程这个行业,也还是会回到这些基础知识上,正所谓“ 欠下的债,迟早都是要还的 ”。
况且,学校的课程学得好,还能帮助获得奖学金、保研、找工作等等,一举多得,简直完美。
现在的 网络资源 也很丰富,各种丰富的教程、文章、书籍等都可以直接白嫖,不过也正是因为现在各种资料满天飞,其中也不乏各种垃圾,学会甄别和如何快速检索到想要的也是一种能力。
当然,还有一点也很重要,很多情况下,我们去屯了不少学习资料,然而 真正去阅读学习 的又占多少?我不知道你怎么样,反正我确实是屯了不少,但屯了后去认真看的,确实少。
积攒项目经验前面提到的入门也好,基础知识也好,其实最终是为“项目”、为“产品”服务的。在校生或者刚入门没有“项目”,没有“产品”怎么办,那就自己制造机会。
为什么要做项目呢,因为一个完整的项目是可以比较系统的,是一个可以把理论付诸实践的机会,从某种程度上讲,做一个或大或小的项目,也能起到跟前文所说的正向激励的作用。
例如我在本科期间,就做了几个小项目,现在列举两个典型供大家参考。
例如,学完 C/C++ 编程、数据库等课程后,是不是也可以自己来搞个小聊天工具呢?再比如,学了 C++ 开发,是不是可以搞个类似的图书管理系统、校园 SNS 之类(当初人人网很:fire:啊)的玩玩?
下面就来看看我上学期间搞的两个小项目吧,供参考。
仿QQ聊天系统这个就能对自己的学习有一个阶段性、系统性的总结,在当初看来确实还是蛮有成就感的。其实做一个,各种场合都能用,比如课程 A 的大作业可以用,稍微改吧改吧,课程 B 的也能接着用,一举多得。用心做,不仅自己知识点 get 到了,各个课程作业又能得高分。:expressionless:
这个系统主要是仿照QQ聊天软件,其功能模块包括:私聊、群聊、语音聊天、视频聊天,用到的主要技术点:C/S 体系结构,Oracle数据库、socket、多线程、swing等等。
当初做完了语音、视频聊天,还是很让人眼前一亮的。当然这种小项目当初我们是几个小伙伴一起合作完成的,一般课程作业是需要在规定的时间内完成的,就可以找几个小伙伴一起学习、互相促进和成长。
你当然也可以独立完成,如果也想找小伙伴一起,也可以加入"程序猿石头"的 读者交流群 ,找志同道合的小伙伴一起“刷项目”,共同成长、共同进步。
看截图,是不是还像模像样的。用这个小项目来入门练手,还真是个不错的选择。有足够的挑战,同时也有足够的趣味性和成就感。
勤思考、多总结这个其实不必多说。不管哪个行当,做到 “勤思考、多总结” 百利无一害。
哪怕正式工作之后,写周报、月报等也都是阶段性的总结,再比如晋升答辩等等都是需要你日常的思考积累和总结的。反正将来都会用得着,何不现在就开始锻炼呢。
在日常学习和工作之中,我们看到一个问题的时候,要学会思考背后的道理,比如在接到某个需求的时候,思考 这个需求最终是要解决具体什么问题,有没有更好的解决方案 ?在阅读某段代码,思考 原作者为什么要这么设计?我有更好的方案么?
总结整体来讲,针对“入门进阶编程”这个话题,我谈了谈自己的理解,重点还是要重视基础,通过小项目正向激励自己多主动学习,然后做到勤思考,多总结。
如果你依然在编程的世界里迷茫,不知道自己的未来规划,亦或你想更好的提升你的编程能力,好好学习C/C++编程知识的话!那么你很幸运~
编程学习书籍:
编程学习视频:
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
C语言C++编程学习交流圈子,点击下方【了解更多】获取更多学习资料帮助你学习成长哦~