• 零基础、非科班,对于自学编程的一点想法!(转载)


    最近看牛客网上面,有好多非科班,学校一般的,想学习编程的学生,我先介绍一下自己的背景,双非本科、非科班学生,去年刚刚毕业,现在在国内某大厂,做算法工程师,自己也不是啥大神,一步一步走过来的,分享一点自己当初学习编程的经历给初学者,希望能帮助到一些人。

    我在大一的时候编程一点点都不会,在大二的国庆假期,才会用 C 语言写 hello world,大二上学期结束之时,也仅仅只会 C 语言,编程真正的好好用心学,是从大二下学期的三月份开始,大二下学期进入实验室,是自己编程能力真正提升的开始,大三一年基本都待在实验室,是我编程能力的提升,历经大三暑期腾讯实习,大四在百度实习期间,成功转型算法工程师,拿到了 2 家大厂算法 offer。

    从我开始学习编程,中间历经新手、入门、进阶、实习、后台转算法等经历,一路打怪升级,走到了今天,现在静下心来想想,都不知道当初的自己是怎么坚持过来的。

    我个人是真正的零基础,非科班,一路自学编程,走过来的,踩过很多坑,感悟比较多,今天,就想把我当初如何入门的一些心得体会分享给大家。

    1、
    信心 决心

     

    我接触的第一门编程语言是 C 语言,C 语言是一门古老的语言,是一门跟底层打交道的语言,也是大学很多科班出身必学的一门课程,应该很多人都会 C,之后我用 C java go python js 都写过代码,但是至今我最喜欢的还是 C,不因为别的,就因为它是我学习的第一门编程语言,先入为主,对我的影响很大,开启了我的编程先河。

    现在国内的程序员,会使用 C/C 的人到是不少,但是真正掌握的 C/C 的高手就太少了,有时间有兴趣的话,Linux C/C 我还是很推荐去学学,对于系统底层,逻辑思维的提升都很有帮助。

    有兴趣的可以看看:

    我为什么建议大家一定的会 C 语言

    学习编程,需要的基础就是:数学 英语 简单的逻辑思维,数学的话,只要你达到初中的数学水平,常见的数学公式是很好理解的,英语的话,常见的单词会写 实在不会也可以百度啊,逻辑思维,也没有特别绕的,在你打算学习编程之前。你必须清楚的知道:它没那么难,要相信自己一定能学的会,学的好!

     

    对于编程,不论科班、非科班,不论男生、女生,只要你想学,就一定能学的好,要有这个信心和决心。一旦下定了决心要走编程这条路,便风雨兼程,义无反顾,要有不撞南墙不回头的魄力!

     

    2、
    兴趣 坚持

     

    学习任何一件事情,如果没有兴趣,强迫自己去学,学起来会极其的痛苦,也不会学的太好,也很难坚持长远的走下去,如果遇到困难,没有解决,会极其的有挫败感,很容易让你产生放弃的感觉,所以新入门学习编程的,先学语法,在实践,慢慢的要找到学习编程的兴趣。

    学习编程,一开始接触,可能很难有感觉与兴趣,我当初开始学习 C 语言的时候,纯是硬着头皮上的,当自己学久了,才慢慢的喜欢上编程的,用 C 写坦克大战、贪吃蛇、五子棋这些游戏、引发了自己对技术的探索和强烈的欲望,慢慢的就深陷其中了。所以学习编程,不是因为你有多喜欢编程,有兴趣才去学的,而是因为当你学过一段时间,用技术解决问题,做出了一些东西,而引发你极大的兴趣,从而更深入的去学习,去研究,这种兴奋,这种兴趣,经历过的人都懂!

     

    学习编程,还需要坚持,在编程的路上,遇到的各种环境安装问题,代码编译问题等等,遇到的困难比你想象的大,有些问题会折磨我1 2天甚至一周,才能解决,解决问题的方法总比困难多,你要相信,花时间总能解决,在这还必须坚持下去(这些都是以前走过的路,踩过的坑)。

    python 现在比较火,也简单易学,未来在人工智能领域会起到重要的作用,其发展的趋势也很不错,能做出很多有意义的东西(爬虫、数据分析都能用于实践),C 语言刚开始学起来是有点吃力,但是一旦当你把 C 学好了,在编程的路上会越走越快,用 C 做一些智能系统,做一些简单游戏,也是很有意思的,对底层(主要是操作系统)的理解会更加深刻,综合当下的趋势来说,我建议新手入门首选编程语言:C 或者 python 都挺不错的。

     

    3、
    方法 习惯

     

    刚开始学习编程的时候,选定一门语言,先学习这门语言的基础语法,找找编程的感觉与手感还是比较重要的,培养自己的学习方法 合理的规划时间很重要,新手建议,多看视频 多动手敲,一定要有自己学习编程的三步走战略,我的战略就是:视频 书 项目。

     

    对于一门语言,最初的入门阶段,是从陌生到熟悉,从 0 到 1 的阶段,是最难的时期,也是花费时间比较久的阶段,我刚开始学习 C 大概花了一个学期的时间,对于一门语言,你入门用了 3 个月左右的时间,我觉得是正常的,是合理的。

    我学习 C 的时候,用的编译器是 VC 6.0,是一款很老的编译器,对于一门语言的学习,首选一门适合自己的系统与工具,才能很舒心的进行编程,我现在工作基本上用的是 python、C/C ,用的都是 Vim 进行编写程序以及编译运行,用 Vim 是真的很爽,我是特别的喜欢 Linux 下面的 Vim,**建议大家不管是 C 还是 python 入门,都可以考虑 Vim(前提你首先的熟悉 Linux 系统,熟悉 Vim)。

    我当初学习编程,没有用过任何的自动补全编译器以及设置,在学习的阶段,一定要照着敲,一个字母一个字母的敲,这样才能让你更加的熟悉这门语言以及培养自己编程的手感,我是建议:新手一定要一个字母一个字母的敲,不要偷懒,不要嫌浪费时间,这个阶段一定不要省;等你到了一定阶段,编程能力大幅提升之际,在使用自动补全,那会可真的就是行云流水,肆意为之!

    在你学了一门编程语言的基础之后,对于数据结构 算法,操作系统 计算机网络,Linux sql,这些计算机的基础知识也得多花时间去学习,多看书,系统的学习;学习阶段,讲究的是技术的扎实与全面,需要不求甚解的精神,多去刨根问底,追宗溯源,找工作阶段,需要的是多看面经以及多刷题,一定要清楚的认识到自己目前所处的阶段,一定要在正确的时间干正确的事情(学习阶段切勿看面经学习,学习阶段切勿刷题,以免对自己束手束脚,思维局限,在学习的阶段,是自己折腾技术最佳的时候,一定要多浏览各大技术网站、多尝试,打开思维,活学活用)。

     

    编程习惯的培养也是至关重要的,尤其是新手,对于变量的命名,要有人文化的思想,以及换行、一些中间加空格的写法必须的规范,从最开始就要严格的要求自己,一定要注重细节;编程规范,一旦养成习惯,后面再改可就难了,最好多看看官方文档以及代码示例,模仿着写。

     

    新手学习编程,有人报班,有人自学,我在这说一下,如果你有大量时间,自学完全没问题,如果时间很紧迫,报个培训机构,快速的提升与学习也没有问题,学习最终还是要靠自己,报不报培训班取决于你有没有足够的时间自己去摸索。

    4、
    能力  潜力

     

    三步走战略 五大能力提升,这块我之前写过一篇文章:

    从根本上给大家革命

    三步走战略:视频 书 项目 / 春招 实习 秋招 等,不同阶段走不同的三步走战略。

    快速学习能力、信息检索能力、技术选型判断力、应用业务能力,解决问题能力 ---> 五大能力。

    学习阶段,一定要注重自己能力的培养,多折腾,多踩坑,多积累经验,只有日积月累的学习,长时间在技术领域的不断深耕,才会对你潜移默化,让你的能力越来越强。

    每个人的潜力都是无穷的,都是巨大的,潜力需要被挖掘,需要有人逼自己一把,才能最大程度的被激发出来,这块需要自己挖掘和外界因素,公司招聘也是特别的看重个人潜力。

    工程设计,编程习惯、编程素养,这些都是我们要注意的地方,从细节做起,从初学编程做起,养成这些好习惯,一定会让自己受益终生的;**以后在工作中会感谢初学编程的自己,这样做也能让我们少踩很多的坑,能最大程度的避免不必要出错的地方,是值得从现在做起,从现在改变。

    学好编程,没有捷径,就是不断的敲,不断的 debug,不断的做项目实践,就是这么简单纯粹!

     

    量变引起质变,需要我们付出更多的时间,加倍的努力,才能拿到最终自己满意的效果!

     

    零基础、非科班,照样可以学好编程!!!

  • 相关阅读:
    Windows Azure Storage (17) Azure Storage读取访问地域冗余(Read Access – Geo Redundant Storage, RA-GRS)
    SQL Azure (15) SQL Azure 新的规格
    Azure China (5) 管理Azure China Powershell
    Azure China (4) 管理Azure China Storage Account
    Azure China (3) 使用Visual Studio 2013证书发布Cloud Service至Azure China
    Azure China (2) Azure China管理界面初探
    Azure China (1) Azure公有云落地中国
    SQL Azure (14) 将云端SQL Azure中的数据库备份到本地SQL Server
    [New Portal]Windows Azure Virtual Machine (23) 使用Storage Space,提高Virtual Machine磁盘的IOPS
    Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
  • 原文地址:https://www.cnblogs.com/mike-mei/p/10643064.html
Copyright © 2020-2023  润新知