一、前言
对于新手来说,最开始学习编程的难度不亚于学天书,那为什么有经验的程序员在接触一门新技术时能够快速的上手并且完成一些需求的开发呢?
有些人可能看了这个问题觉得我在说废话,“有经验那不快那怎么才快?”。其实你有没有想过经验是可以传授的?在学习某一技术前,首先了解大致全局学习起来是否更加得心应手?
编程对于大多数刚接触的同学来说是一片未知的世界,这个世界的所有规则都与自己之前所接触的知识不同,从而导致在学习这一门技术时,每一步都要去理解这个“世界”中很多的“规则”从而积累对这个编程的认知;在我看来学习一门技术前,对这门技术有一定的了解将会对自己学习这门技术会有着很大的学习效率提升。
例如你从未做过菜,也没见人做过菜,突然有一天你需要去做菜,你可能连第一步需要做什么都不懂,或者说每一步都需要有人去提示你,但你依旧不理解为什么要这样做。有经验的大佬由于熟悉整个流程、对这个世界规则熟悉,知道某些情况下为什么要这么做,并且可以从中得到自己的结论,那么在这些有经验的大佬接触这些“新事物”后也会快速的上手。
二、基础编程心法
基础编程排难
由于在院校中,大部分学生可能接触的第一门编程语言是 C 语言,在此我们使用 C 语言为例。
在学习 C 语言时,很多学生由于刚学习编程,对于编程完全不了解,直接学习 C 语言更加难上加男,导致形成了一个很有意思的“刻板映像”,那就是 C 语言是最难的了。
其实我们可以把这个“难”理解成不同阶段的难;的确,使用 C 语言 想要做出东西往往不易,很多新手对编程的理解就是学习完一门编程语言就可以去做软件做应用,其实这是不对的。C 语言 想要进行开发还需要了解更多的知识,我们可以把 C 语言 难的一方面当作是“开发难”,做实际的应用难。那学习起来到底难不难呢?其实 C 语言 语法入门并不难。为什么这样说?因为在 C 语言中很多都是使用固定的语言格式对某些代码进行标识,致使你只需要按照其规则对“内容”进行填充就可以学习完 C 语言的语法入门。
编程语言的语法就是现实世界中的说话的规则,例如有一句话“今天这个菜真好吃”,你将这句话改成“菜这个真好吃今天”肯定是不对的。我们在编写程序时如果觉得很难,那么将其看成一些固定的格式,并且按照该格式对内容进行填充即可。如果真的要说难度,“无规则”的一些语言更加让新手难懂,例如python,使用空格对整个代码进行结构上的“层级划分”,对于新手来说该语言确实易于使用,但是某些层级上的知识点却很容易搞混。
其实有一部分同学由于英文不擅长的关系,在学习编程时往往会有一种畏难心理;其实在此我想给各位刚刚学习编程的同学说一下,编程我们可以当做是魔法口令,使用特定的规则进行编写就可以完成该功能;我们只需要知道功能上的含义即可,对于英文我们可以慢慢积累。
对于抽象概念的难点剔除
什么是抽象?可能一部分同学可能并不是很完全知道这个含义。我们可以理解抽象为一种具体世界中并不存在的一种概念或者事物,我们通过其描述或者规则使其具备了一种形态。在编程中,抽象的概念是普遍存在的;例如我们在编写代码的时候经常会说这一句代码是“创建一个变量”(变量可以理解成一个存值的容器),但是某些同学可能会想“为什么我在这里写上这句话就创建了一个变量了呢?我只是在这里写了一个符号”。其实这就是抽象的原因,因为在刚学习编程时有部分同学可能并不能完全理解计算机系统中的某些原理,但这并不妨碍我们使用另外一种思想去接触对抽象概念的不理解。
我们已知,编写程序是给计算机命令,让计算机按照我们的指令去做某件事,或者得到一个结果。我们在创建变量时可以理解成给予计算机这条命令,让计算机去创建一个容器,我之后需要使用到这个容器,这样就非常好的解决了对某些抽象知识点不理解的困扰。即时在学习更多知识点的时候我们也可以使用这个思维理解这一些内容,均是给予计算机命令让计算机帮我完成这一件事情;例如创建变量、创建列表、创建一个类型、帮我去这个类型里面找一个方法并且使用它…通过这种方式学习编程不更容易吗?
如何快速学习完一门语言呢
其实大佬们学习一门语言那么快的原因有几个:
- 知道大部分的相关知识点
- 了解开发流程
- 不死记硬背
为什么大佬们会知道大部分的相关知识点呢?那是因为大部分常用的编程语言的知识点都是相通的。例如用世界上的语言打比方,中文说你好、英文说 Hello、日文说こんにちは,其实这些不同字符串所表达的意思是一样的,都是为了表示你好。在编程中也一样,学习完一门语言后,其它语言一般都会有大部分相互交叉的知识点,所使用的方法也是根据不同语言的规则进行使用,并且了解其作用,这样只需要每次学习新语言的时候找到相关语言的知识点,了解规则进行内容的填充就ok了。
了解开发流程也是其中一点,知道这个语言的使用跟所学过的内容差不多,那么只需要从知识点上下手便可以快速上手这个新语言。就如同你学习 C语言后在学习 Java 发现其实不难,了解一个语言的开发流程后,对于其他类似的新语言学习也会对某些知识无师自通。
不死记硬背非常重要,新手学习编程时,很容易让自己陷入一个误区,就是需要去记去背这些内容;其实不然,我们还需要理解内容,最多记一下小笔记,在 CSDN 上写一下博文,下次忘记了再来看博文就一下子记起来了。
三、学习完语言后如何开始写“大”一点的程序应用呢
在此我并不做 C 语言相关的扩展说明,因为我本人并不是 C 程序员,过多的进行不擅长方面的讲解导致不必要的过错实乃不道德之事,在此我只做常规的几个方面应用的讲解,并且大多数人学习 C 语言到最后工作时也大部分选择了其他方面。
C# 到 unity 游戏开发
学习完 C 语言后可以学习 C# 语言进行 unity 游戏的开发。因为学习完 C 语言后学习 C# 有一种较为天然的过渡,学习游戏开发大部分同学也是非常感兴趣的。
使用 unity 进行游戏开发将会十分简便,并且能够得到很大的成就感;unity 也有很多的免费游戏素材提供使用,甚至可以说学完第一门编程语言后做其他的开发将会觉得更加简单。
Python 到 Web、数据分析、爬虫、自动化等
Python 也是一个不错的选择。Python 第三方支持优势明显,可以使用少量的代码完成一个不错的实际应用。例如在 Web 端可以学习 Django、Tornado、Flask框架,很快的完成 Web 应用的搭建,新手推荐学习 Django,学习简单,很快完成 Web 网站的搭建,可能也就是刚开始学就可以创建一个网站了。
Python 从事数据分析也有很多库的支持,甚至你不需要了解太多的数学知识都可以完成某些图像识别、人脸识别等项目开发,例如使用 OpenCV 库完成图像方面的内容,也可以使用sklearn之类第三方支持完成对机器学习方面应用的开发。
Python 还可以快速的完成爬虫的开发,有很多的支持库,例如 scrapy、beautifulsoup甚至可以使用selenium 开发低效但开发效率极高的爬虫应用。selenium 不止可以应用与爬虫,还可以使用selenium完成自动化应用开发,例如自动抢商品等,但是会有一定局限。
Python 如果考虑就业,我个人比较推荐 Web 方面、自动化测试以及爬虫方面。
C++ 到应用、游戏开发
学习 C++ 后,可以学习一些UI库,例如QT进行桌面应用软件的开发,或者学习虚幻编程,编写大型的客户端游戏是个不错的选择。
JAVA HTML 到移动端开发
学习完 JAVA 可以对移动端应用进行开发,但是如果不是大厂往往会追求开发效率。一般的创业公司为了项目进度,会选择一些跨平台的开发,使用 HTML 进行移动端前端开发,这样可以同时完成IOS与安卓端应用。JAVA也可以做 Web 后端的开发。一般选择前端开发需要学习一些前端框架例如 Vue、React、 Angular。
四、面向招聘进行学习
了解自身定位
在学习编程初时就应该对自身的定位有一个了解,有些211、985的学生可以凭借良好的学历敲开大公司的面试机会,但是一些大专院校普通本科的同学如果去冲击大厂面试机会会有一定难度,当然不是说这部分的学生会弱,其实这一部分学生也是有相当一部分很强的,但是这一部分学生的实力如何在简历筛选初期体现是一个很重要的问题;HR可能在筛选简历时自动将学历不高的同学给过滤掉了。那如何能够体现自己的实力呢?
CSDN 写文与活动
其实博文可以很好的体现一个人的技术水平,可以编写一些技术文章进行发表,并且可以参与平台活动、竞赛获取一定名次。名次实力的提升对于自己的交际圈会有很大的提升帮助,可能你未来的工作就由此而来。
养成良好的博文编写习惯对于自己的提升和反馈尤为重要,不要认为自身能力不够而不去编写,前期更重要的是自己对这个知识点的梳理和复习。
非211 985同学找工作建议
对于这一部分同学,我个人建议是根据自身能力的预估从而学习相应的知识。例如数据分析、机器学习一般找招聘时所需要的学历较高,即使你有一定能力,但是在简历筛选方面你会比其它学历高的机会少,而且这一类的招聘公司基本上以有实力的公司为主,所需要的人才“素质”(指明面上文字能够表达的履历)更高。
其实对于学历不高、对自身技术认知较弱的同学可以去从事一些应用的开发;例如移动端开发、后端开发、前端开发。
移动端开发包括了IOS、Android、移动设备,可以使用java编写这些移动端前端应用。其实现在很多中小企业使用的是跨平台技术,例如使用 APICloud 之类进行跨平台的开发,直接使用 HTML 语言生成一个跨平台的应用,节省用人成本、开发周期。
Web 前端开发也是一种选择,学习一些前端框架例如 Vue之类,编写前端应用,部分公司还要求对微信开发有些了解,学习了相关技术后,进行实战也是比较好找工作(中小规模企业)。
Web 后端开发可以学习java、python、php等语言。Web 后端开发一般是指在服务端的应用开发,简单的理解就是一个网站的功能编写。用php作为例子,学习完php后再学习 thinkphp这一类框架,可以快速的上手网站开发,但在此处还需要学习数据库,使用sql语句对数据库进行增删改差等这些常规操作。如果想简单完成网站的开发,可以使用python 的django,安装配置后即可完成一个简单的我网站。
五、刚刚所述的那几点如何学习
快速的学习往往对自身的基础重视不够,在此我讲解几个共同点,减少小白们的学习难度。
移动端开发上一点说已经了解到,可以使用HTML代码编写页面,最终实现一个跨平台的应用。那如何减轻HTML的学习难度呢?其实我们可以理解HTML就是一个网页如何进行显示的描述,怎么理解这句话呢?我们在编写 HTML 时,所编写的内容是对这个网页如何显示的描述,其实就是告诉浏览器我们要如何对这个页面进行排版,使用固定的格式完成即可;也就是一个说明书,告诉浏览器要怎样显示页面。在学习HTML时还要学习 JavaScript ,使用JavaScript可以控制页面元素,也可以使用 JavaScript跟服务器进行通信,这两者是必要学的。
那后端如何学习呢?其实后端我推荐最好的方式就是学完基本语言后去学习一个开发框架,开发框架可以看相关的快速入门,首先快速的了解一遍这个框架的开发流程以及最基础的使用方法,这样你才可以一步步进行扩展,否则没有成就感的学习会显得枯燥。
六、副业真的很好赚吗
有部分同学是觉得做程序赚钱很简单,其实也是有一定难度的。有些同学可能会觉得自己遇见的大佬赚很多很多,其实并不是这样,那一部分人是很少的一部分,很多程序员单人在互联网上接单也是非常累的,疲于后期的维护,以及尾款不结账等问题。在互联网上接单有一个很大的不确定因素就是不稳定,有时候你很忙的时候有单子接有时候却很久没有私单。前几年可能私单较多,现在已经很少了,如果说真的比较稳定的就是开个店做毕业设计了,也可以去编写一些网站,做好SEO赚流量费,但是SEO要做好也是有一定难度,或者爬虫。爬虫通过正规的流程进行可以获取挺好的收益,但是很多时候有一定风险,各位以后学习后一定要谨慎而行呀。
C语言学习目录(更新中)
你去约个会,你零基础的同学就学完C语言知识点过完了
《看聊天记录都学不会C语言?太菜了吧(1)我在大佬群里问基础问题没人理?——学习建议
《看聊天记录都学不会C语言?太菜了吧(2)我说编程很容易你们不服?——Devc使用及HelloWorld
《看聊天记录都学不会C语言?太菜了吧(3)代码都在谈恋爱难道你不知道?——头文件及标点
《看聊天记录都学不会C语言?太菜了吧(4)原来我早就会编程了——变量
《看聊天记录都学不会C语言?太菜了吧(5)打了一把游戏我学会了一个编程知识?——变量输出及占位符
《看聊天记录都学不会C语言?太菜了吧(6)以前跟我说编程很难的给我站出来——浮点数及变量运算
《看聊天记录都学不会C语言?太菜了吧(7)下一篇文章告诉你牛郎是谁——if逻辑判断
《看聊天记录都学不会C语言?太菜了吧》(8)牛郎和织女竟有一个孩子?——多条件if
《看聊天记录都学不会C语言?太菜了吧》(9)老公饼真的有老公送?——字符数组
《看聊天记录都学不会C语言?太菜了吧》(10)程序媛聪明绝顶了——逻辑与运算符
《看聊天记录都学不会C语言?太菜了吧》(11)2分钟领悟数组——数组