最近看牛客网上面,有好多非科班,学校通常的,想学习编程的学生,我先介绍一下本身的背景,双非本科、非科班学生,去年刚刚毕业,如今在国内某大厂,作算法工程师,本身也不是啥大神,一步一步走过来的,分享一点本身当初学习编程的经历给初学者,但愿能帮助到一些人。java
我在大一的时候编程一点点都不会,在大二的国庆假期,才会用 C 语言写 hello world,大二上学期结束之时,也仅仅只会 C 语言,编程真正的好好用心学,是从大二下学期的三月份开始,大二下学期进入实验室,是本身编程能力真正提高的开始,大三一年基本都待在实验室,是我编程能力的提高,历经大三暑期腾讯实习,大四在百度实习期间,成功转型算法工程师,拿到了 2 家大厂算法 offer。python
从我开始学习编程,中间历经新手、入门、进阶、实习、后台转算法等经历,一路打怪升级,走到了今天,如今静下心来想一想,都不知道当初的本身是怎么坚持过来的。程序员
我我的是真正的零基础,非科班,一路自学编程,走过来的,踩过不少坑,感悟比较多,今天,就想把我当初如何入门的一些心得体会分享给你们。算法
一、
信心 决心sql
我接触的第一门编程语言是 C 语言,C 语言是一门古老的语言,是一门跟底层打交道的语言,也是大学不少科班出身必学的一门课程,应该不少人都会 C,以后我用 C java go python js 都写过代码,可是至今我最喜欢的仍是 C,不由于别的,就由于它是我学习的第一门编程语言,先入为主,对个人影响很大,开启了个人编程先河。编程
如今国内的程序员,会使用 C/C 的人到是很多,可是真正掌握的 C/C 的高手就太少了,有时间有兴趣的话,Linux C/C 我仍是很推荐去学学,对于系统底层,逻辑思惟的提高都颇有帮助。网络
有兴趣的能够看看:数据结构
我为何建议你们必定的会 C 语言编程语言
学习编程,须要的基础就是:数学 英语 简单的逻辑思惟,数学的话,只要你达到初中的数学水平,常见的数学公式是很好理解的,英语的话,常见的单词会写 实在不会也能够百度啊,逻辑思惟,也没有特别绕的,在你打算学习编程以前。你必须清楚的知道:它没那么难,要相信本身必定能学的会,学的好!工具
对于编程,不论科班、非科班,不论男生、女生,只要你想学,就必定能学的好,要有这个信心和决心。一旦下定了决心要走编程这条路,便风雨兼程,义无反顾,要有不撞南墙不回头的魄力!
二、
兴趣 坚持
学习任何一件事情,若是没有兴趣,强迫本身去学,学起来会极其的痛苦,也不会学的太好,也很难坚持长远的走下去,若是遇到困难,没有解决,会极其的有挫败感,很容易让你产生放弃的感受,因此新入门学习编程的,先学语法,在实践,慢慢的要找到学习编程的兴趣。
学习编程,一开始接触,可能很难有感受与兴趣,我当初开始学习 C 语言的时候,纯是硬着头皮上的,当本身学久了,才慢慢的喜欢上编程的,用 C 写坦克大战、贪吃蛇、五子棋这些游戏、引起了本身对技术的探索和强烈的欲望,慢慢的就深陷其中了。因此学习编程,不是由于你有多喜欢编程,有兴趣才去学的,而是由于当你学过一段时间,用技术解决问题,作出了一些东西,而引起你极大的兴趣,从而更深刻的去学习,去研究,这种兴奋,这种兴趣,经历过的人都懂!
学习编程,还须要坚持,在编程的路上,遇到的各类环境安装问题,代码编译问题等等,遇到的困难比你想象的大,有些问题会折磨我1 2天甚至一周,才能解决,解决问题的方法总比困难多,你要相信,花时间总能解决,在这还必须坚持下去(这些都是之前走过的路,踩过的坑)。
python 如今比较火,也简单易学,将来在人工智能领域会起到重要的做用,其发展的趋势也很不错,能作出不少有意义的东西(爬虫、数据分析都能用于实践),C 语言刚开始学起来是有点吃力,可是一旦当你把 C 学好了,在编程的路上会越走越快,用 C 作一些智能系统,作一些简单游戏,也是颇有意思的,对底层(主要是操做系统)的理解会更加深入,综合当下的趋势来讲,我建议新手入门首选编程语言:C 或者 python 都挺不错的。
三、
方法 习惯
刚开始学习编程的时候,选定一门语言,先学习这门语言的基础语法,找找编程的感受与手感仍是比较重要的,培养本身的学习方法 合理的规划时间很重要,新手建议,多看视频 多动手敲,必定要有本身学习编程的三步走战略,个人战略就是:视频 书 项目。
对于一门语言,最初的入门阶段,是从陌生到熟悉,从 0 到 1 的阶段,是最难的时期,也是花费时间比较久的阶段,我刚开始学习 C 大概花了一个学期的时间,对于一门语言,你入门用了 3 个月左右的时间,我以为是正常的,是合理的。
我学习 C 的时候,用的编译器是 VC 6.0,是一款很老的编译器,对于一门语言的学习,首选一门适合本身的系统与工具,才能很舒心的进行编程,我如今工做基本上用的是 python、C/C ,用的都是 Vim 进行编写程序以及编译运行,用 Vim 是真的很爽,我是特别的喜欢 Linux 下面的 Vim,**建议你们不论是 C 仍是 python 入门,均可以考虑 Vim(前提你首先的熟悉 Linux 系统,熟悉 Vim)。
我当初学习编程,没有用过任何的自动补全编译器以及设置,在学习的阶段,必定要照着敲,一个字母一个字母的敲,这样才能让你更加的熟悉这门语言以及培养本身编程的手感,我是建议:新手必定要一个字母一个字母的敲,不要偷懒,不要嫌浪费时间,这个阶段必定不要省;等你到了必定阶段,编程能力大幅提高之际,在使用自动补全,那会可真的就是行云流水,肆意为之!
在你学了一门编程语言的基础以后,对于数据结构 算法,操做系统 计算机网络,Linux sql,这些计算机的基础知识也得多花时间去学习,多看书,系统的学习;学习阶段,讲究的是技术的扎实与全面,须要不求甚解的精神,多去刨根问底,追宗溯源,找工做阶段,须要的是多看面经以及多刷题,必定要清楚的认识到本身目前所处的阶段,必定要在正确的时间干正确的事情(学习阶段切勿看面经学习,学习阶段切勿刷题,以避免对本身束手束脚,思惟局限,在学习的阶段,是本身折腾技术最佳的时候,必定要多浏览各大技术网站、多尝试,打开思惟,活学活用)。
编程习惯的培养也是相当重要的,尤为是新手,对于变量的命名,要有人文化的思想,以及换行、一些中间加空格的写法必须的规范,从最开始就要严格的要求本身,必定要注重细节;编程规范,一旦养成习惯,后面再改可就难了,最好多看看官方文档以及代码示例,模仿着写。
新手学习编程,有人报班,有人自学,我在这说一下,若是你有大量时间,自学彻底没问题,若是时间很紧迫,报个培训机构,快速的提高与学习也没有问题,学习最终仍是要靠本身,报不报培训班取决于你有没有足够的时间本身去摸索。
四、
能力 潜力
三步走战略 五大能力提高,这块我以前写过一篇文章:
三步走战略:视频 书 项目 / 春招 实习 秋招 等,不一样阶段走不一样的三步走战略。
快速学习能力、信息检索能力、技术选型判断力、应用业务能力,解决问题能力 ---> 五大能力。
学习阶段,必定要注重本身能力的培养,多折腾,多踩坑,多积累经验,只有日积月累的学习,长时间在技术领域的不断深耕,才会对你潜移默化,让你的能力愈来愈强。
每一个人的潜力都是无穷的,都是巨大的,潜力须要被挖掘,须要有人逼本身一把,才能最大程度的被激发出来,这块须要本身挖掘和外界因素,公司招聘也是特别的看重我的潜力。
工程设计,编程习惯、编程素养,这些都是咱们要注意的地方,从细节作起,从初学编程作起,养成这些好习惯,必定会让本身受益终生的;**之后在工做中会感谢初学编程的本身,这样作也能让咱们少踩不少的坑,能最大程度的避免没必要要出错的地方,是值得从如今作起,从如今改变。
学好编程,没有捷径,就是不断的敲,不断的 debug,不断的作项目实践,就是这么简单纯粹!
量变引发质变,须要咱们付出更多的时间,加倍的努力,才能拿到最终本身满意的效果!
零基础、非科班,照样能够学好编程!!!