为了学编程,我选择了中途退学

我是中途退学进入这个行业的,算是半路出家,入门还是得从我在学校的专业说起,我在学校的专业是自动化,需要学习一门编程语言,C语言,这是我接触的第一门语言,也是我最喜欢的语言,最初学习C语言是为了学习单片机,但是接触了C语言后,便喜欢上了C语言,但是当时的学习进度是非常慢的,从开始接触C语言到指针,我用了七八个月的时间,当时为了玩,会在一个很小的程序里面反复的用好几个数组,好几个函数,用到的都是些很简单的东西,但是会用到很多,也可能是因为无聊吧。

在学习了半年的C语言后,我接触到了一个当时觉得特别高大上的东西,就是Linux,我接触到的第一个发行版是Ubuntu,之后便使用了一年的时间,期间用了四个版本,学习的第一条命令是ls,第二个命令是cd,安装的第一个软件是sl,是宿舍熄灯后,我在桌前一个一个的敲命令,当时还不知道有文档这回事,买了网上传说的入门圣经——《鸟哥的Linux私房菜》,但是在学习的时候却基本没有用到,反倒是在对Linux系统稍微熟悉之后,经常用到那本书。刚开始使用Linux写一些C语言代码的时候,就在Ubuntu的软件商店里找C语言的编译器,那时候还不知道什么是GCC,我在我床边的桌前不断的翻找,那时候以为没有VC就不能写C语言,我一直找到熄灯,又从熄灯找到电脑没电,也没有找到,最后只能悻悻睡去,第二天,我又打开电脑,也没有去上课,就在宿舍里面寻找在Linux下写C语言的方法,也是那天,我学会了在网上找资料,也是在那天,我明白了编译和编辑的概念,也接触到了另一个我当时觉得特别高大上的东西——vim编辑器,但是那时候还很不会用那个,只是没有别的办法,因为那时候我没有别的办法来输入我要写的C语言代码,于是那本私房菜就派上了用场,我在上面学了简单的vim的打开文件,输入内容,保存并推出,也是那时候我学到了另两个Linux命令——rm和mv,因为我经常的以错误的文件名保存推出所以我有了重命名和删除文件的需求。

过了半年的时间,我的舍友叫我一起学java,我又开始学java,那时候我是准备用vim来编写的,最后我放弃了,java的关键字或者一些方法的名字实在太长了,而我对vim的了解又太过于浅薄,所以我又用回了window10,用eclipse来编写java代码,从那开始我学了两个月的java,之后就进入了我人生的一大转折,我退学了,那段日是我最煎熬的日子,我一直问自己是不是真的爱编程,那些时候,我经常登高,常想到一句词:“昨夜西风凋敝树,独上高楼,望断天涯路”,我几经煎熬,和家里沟通了好几天,前前后后将近两个月的时间,我都在为这个事纠结,一句代码都没有写。

在终于退学之后,我就开始找工作,我感觉上天是眷顾我的,在兰州,这个行业不是很发达,可以说很落后,但是我碰到的这家公司却要求员工统一使用Linux系统,我听说这个要求后就暗下决心,一定要留在这个公司,但是让我惊讶的是,我竟然顺利的被录用了,我很清楚自己的水平,面试的时候也没有写简历,只是和面试官聊了聊我掌握的东西,说了我的学习能力,说了我的想法。工作了之后,公司使用的是python,然后我就开始学习python,公司有买好的教材,在网上也能找到很多东西,在学习python的时候,我就很感激我在学习C语言的时候,将那些基本知识前前后后折腾了大半年,也很感激学了两个月的java,前者让我学对编程有了基本的印象,让我建立起了学习其他语言的基础,后者则让我对面向对象编程有了基本的认知,让我明白了什么是类,什么是对象,这对我后来学习python大有裨益,自学java也让我建立起了自己的自学方法,学习进度最快的时候,是到了公司后,到了公司后,我接触到了很多自己没有听说过的东西,比如flask,git,github,django,这些都是我在进入公司的五个月里学习到的,还在这期间里,学会了linux的ssh连接,也将vim的使用提升了一个层次。

在刚到公司的时候我使用IDE来写代码,但是,我很快就放弃了IDE,因为我经常的要用到命令行,虽然IDE继承了这个功能,但是我并不喜欢,所以我放弃了IDE,开始用vim来编辑代码,我在网上找到了vim的使用教程,当时使用vim只是稍微熟练一点,我并不会在不退出vim的情况下打开自己想打开的文件,我使用了一个笨办法,就是要编辑那个文件,就进入那个文件所在的目录,编辑所在的文件,刚开始我因为在各个目录下跳来跳去而感到烦恼,准备学习在不退出vim的情况下打开各个位置的文件,但是我马上又打消了这种想法,因为我突然觉的,穿梭在各个目录下,会很快了解项目的结构,所以我在第一个月里一直乐于这样在项目里跳来跳去,而且很快我就体会到了这样的好处,在第一个项目做完之后,我参加的第二个项目是用django写的,由于这两个框架相通的地方很多,所以我在学习django的时候就节省了一些时间,不使用IDE还让我学会了另一个工具,就是git,在IDE里面,git的功能是集成好的,只需要用鼠标点一点,就能提交代码,更新代码,合并代码,但是由于我并不理解git的机制,所以,即使是集成好的,我也经常弄错,这也是我放弃IDE的一大原因,用命令操作git带给我的就是对git更深一点的了解,放弃IDE让我多学了好多东西。

入门半年了,记录一下,希望分享给更多的还在编程路上挣扎的小伙伴,坚持和执着比什么都要重要。

自己选择的路,再艰难,跪着也要走下去

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2016-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

如何处理前任程序员留下的代码

作为软件工程师不可避免会遇到的一个场景是:我们在改变或添加一个功能到不是我们创建的、我们不熟悉的、与我们负责的系统部分无关的代码中时,会遇到麻烦。虽然这可能会是...

1042
来自专栏企鹅号快讯

最常用的几种编程语言讲解

我们来看一下编程语言的排行榜 ? 我们可以看到前五分别是Java,C,C++,C#,Python,我们就先讲一下这五种语言吧,让大家快速入门。 1.Java是一...

30610
来自专栏菩提树下的杨过

ROR学习笔记(2):Asp.Net开发者看ROR

ROR集成了诸多"先进"的理念,比如mvc,模板替换,orm,实体验证,ajax,数据库迁移,session的多种保存机制...等等,也许在今天看来,这些东西都...

1848
来自专栏java一日一条

记一次框架设计经验--规则引擎

前面讲数据质量监控的时候,楼下很多评论希望能把规则引擎也讲一下,规则引擎是一个既复杂但又简单的系统,复杂的地方在于它要满足多种多样的业务需求,需要知道各个事实的...

1662
来自专栏python学习指南

计算机系统结构——01结论

1.1 计算机系统的层次结构 从使用语言的角度,一台由软、硬件组成的通用计算机系统可以被看成是按功能划分的多层机器级组成的层次结构。具体的计算机系统,其层次数的...

2398
来自专栏Kirito的技术分享

技术精进的三境界

最近更新了一篇 Docker 的文章,朋友跟我反馈说效果并不是很好,我回头看了下,的确没有我自己的特色,没有太多思考,让公众号显得有些「百货」了。经过反思,今后...

3336
来自专栏老九学堂

为什么程序员总是发现不了自己的Bug?

程序员在普通人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他...

832
来自专栏斑斓

如何在咨询项目开展Inception

本文通过我在咨询工作中的真实案例讲解了如何将敏捷开发的Inception与可视化咨询手段结合。2014初,我作为咨询师为客户提供咨询服务,负责一个新项目的敏捷咨...

3154
来自专栏Golang语言社区

Go语言·不服就干

不知不觉,我们团队选择go语言已经两年了,从最开始摸着石头过河到现在的驾轻就熟,感慨万千,总结来说:不服就干。 孙悟空不服天庭,所以大闹天空,那我们不服谁呢?可...

3196
来自专栏web前端教室

纠结啊,PHP和前端学哪个?

这个问题是一个先行者计划的成员向我提出的,我直接用群规的第四条回复了他。不知道的请自己去看。 有空的时候我也想了下,PHP和前端学哪个?这根本不算是一个问题,先...

2709

扫码关注云+社区

领取腾讯云代金券