一、我为什么写这篇文章?

​ 先自我介绍一下,我是一个对编程有点兴趣的双非本科应届生,目前在上海一家互联网公司做Java实习生。这篇文章结合我自身经历分享给那些或许有点迷茫的学弟学妹们,如何学习并寻找自己的学习方向?希望能让大家有点收获。大学期间,自己凭着一股热情学的东西也挺多,挺杂。进入大学之前对编程没有了解,白纸一张。很长一段时间都挺迷茫,怎么学习编程?怎么才能做出那些有意思的东西?又或者是该如何学习编程?找过不少学长聊过,但也没有明确解决自己困惑。那时候特别希望有个人或者有篇文章能够指点一下我。所以三年半后的今天,想写一篇文章给那些正在经历着可能和我当初一样迷茫困惑的学弟学妹们。

文章最后会发一些福利。

二、有哪些技术方向可以学习?

​ 简单直接的先拿一家招聘网站上技术领域的招聘分类给大家看一下,大家可以针对着这些领域自己百度了解一下。有问题找百度,你想知道的绝大多数问题几乎都能通过搜索引擎找到。

三、大学那些重要的课程

​ 有好几门课程当初自以为是的认为没什么用没好好学,但是这些知识对未来的发展又是极其重要。举个例子,这些只是就像是武侠小说中的内功,实际学习到的技术就像是一些招式,内功强大,招式学的会很轻松。希望大家能用心的修炼这些内功,我只能说这些课程很重要!很重要!很重要!

   1.操作系统
   2.计算机网络
   3.数据结构
   4.计算机组成原理
   5.编译原理
   6.线性代数,离散数学,概率论,高等数学(数学还是很重要的!)
   7.英语
四、获取知识的渠道
1.搜索引擎



2.网站和APP
  • 知乎,有些问题我会把它当搜索引擎用。
  • 博客网站:CSDN,博客园,简书 ,国内几大博客网站
  • 视频网站:网易云课堂(在这里我大概看过上百小时的视频,好的课程值得为知识付费),慕课网,百度传课
  • 工具安装:MSDN,不要随便从网站上下载绿色破解版的软件,尽量从官网下载安装,然后从网上找激活码,或者破解方式
  • 文字类:w3cschool,runoob
3.书籍

​ 图书馆的书籍资源非常多,要充分利用。大二大三的时候我经常会在图书馆看书,然后借很多感兴趣的相关技术书,每天不管上什么课,去哪里都会背着一本书。当然,上课的时候还是好好听课吧,别学我,碰到不感兴趣的课就开始看自己的书。

五、学习一门技术
1.加入实验室

​ 如果你能在一个实验室坚持学下去,跟着老师的计划走那会很好。十分建议大家能加入个感兴趣的实验室,然后用心的学。加入实验室有很多好处,首先你周围会有不少同样热爱技术的同学,学长,你们可以互相学习。其次你也会拥有一张自己的桌子,这样你休息的时候可以有个稳定的地方不受打扰的学习。现在也非常想念当时在实验室学习的时光。我加入过不少实验室,从开始的acm,到后来的网络安全等,寒暑假也都会留校学习。这段经历我认为很值得。

2.自学

自学是一项必不可少,也是极其重要的能力。如果之前没接触过编程,然后你又刚接触C语言,只是在控制台那个小黑框里输入输出,也许你会觉得很无聊然后可能失去学习的动力。学习一样技术最重要的是什么?我认为是兴趣,有了兴趣你才会主动的去学习它。

1. 如何培养兴趣?
举个例子,比如你学习C语言,你可以先找个用C实现的小游戏,或者好玩的项目,不要太难,入门级的就行,然后你去玩一玩。你会知道原来c语言不仅仅只能做些简单的输入输出,还能做出一些好玩的东西。这时候你可以去看看实现这个小游戏需要什么技术,然后你再一步步的去了解,去实现。这样会比被动的去学习好的多。

2. 如何独立完成这个简单的小项目?
我相信刚开始接触,直接通过文字和代码去独立完成一个成型的小项目还是有点难度的。这时候建议通过视频跟着学习,入门跟着老师学,找个小项目的视频,跟着老师的教学,一步步自己实现。碰到不懂的自己去学习,直到跟着视频完成。到这一步我相信你已经完成了对一门语言的入门阶段了。然后你可以对着感兴趣的细节通过书籍,别人的博客,文章仔细去学习更多的东西了。

3. 如何进阶?

走完上面的步骤,相信你对这门技术已经有了不错的理解和掌握。然后你可能感觉到了一个小瓶颈,觉得自己已经会的不少了,学的差不多了。这时候你可以提高难度,去做点更有意思的东西,这时就可以脱离视频,自己去实现,遇到问题通过书籍和搜索引擎来解决。

六、抛砖引玉

​ 简单分享一下我的学习过程。希望大家可以从中得到自己的收获。

  1. 最开始学习的是C语言,刷刷学校acm的题目,学学数据结构。这一阶段没什么目标,只是觉得刷题看到accept会挺开心,就会不断地提高自己的排名。

  2. 我真正开始自学入门的第一步—html,css。大二寒假加入兴趣小组的一个实验室,感觉做网页挺有意思,就从网易云课堂选了一套评分不错的免费课程。前端的入门学习成本相对较低,对开发环境和开发工具的安装没什么要求,比较适合零基础的新手培养兴趣。从最简单的标签开始一步步做出一些表单,表格。做完静态页面又开始学习JavaScript,也是选了一门课程,当时觉得非常不错,推荐给大家,javascript入门,这里学习的时间还挺长,但是也挺有意思。学完这些,很多网页都能自己实现仿出来了。

  3. 第二步,学习一门后端语言,当时PHP很火,号称快速开发建站的必选语言。这里就需要搭建开发环境了,跟着一个PHP入门的视频做了一些小东西之后。我决定要自己搭建一个网站,于是我第一次在网易云课堂买了一套付费的视频,还有点小贵,但是为知识付费,我认为值得。那是一套thinkphp5框架的企业级网站开发的视频。大二的暑假跟着一套视频从零开始一步步完成了一个网站。中间踩了无数的坑,但是你要记住,踩过的坑越多,你成长的就越快。期间学习了服务器,简单的linux命令,mysql,收获很多。跟着视频做完这个网站之后,我在现有基础上自己学习了一些新的东西,做了大量优化,改善。

  4. 再往后随着你学的越多,你会发现自己会的越少,然后就会不断的去填充自己的技能树。越填坑越多,你就走入了不断的挖坑,填坑的过程。

  5. 现在我做的是java,我简单的概括一下我的学习路径。

    1.java基础(基本语法,集合,泛型,线程,文件IO等等)
    2.java web (jsp,servlet),tomcat,mysql
    3.linux,服务器
    4.SSM框架(spring springmvc mybatis),springboot
    5.git,redis,mq(rabbitmq)
    6.分布式(springcloud全家桶,dubbo系列)
    7.大数据(hadoop,hive,hbase,spark,flume等)
    
七、实习和工作
  1. 假期多出去实习!多出去实习!多出去实习!!! 实习经历一是对自己有提升,二是对你未来春招秋招找工作也会有很大的帮助。有机会多去大厂实习。多多关注公司的官网,寻求假期实习。
  2. 平常多做项目,参加有含金量的比赛
  3. 大三提前开始为秋招进行准备,开始准备自己的简历,刷刷LeetCode的题目,牛客网的题目,看看面经,提前关注着各大公司的内推时间,争取内推!!
  4. 数据结构和算法,非常重要,算法不过关会很吃亏,可惜当时我准备的不足,没有刷算法题,忙着做项目去了,这真是吃亏了。
八、文末福利

关注公众号,后台回复 “福利” 二字。

更多推荐

大学该如何学习编程