技术之美[程序人生]开博的感受、如何学习编程、学习方法总结

本文就是描述下自己近期的一点想法,随意下笔,思绪有点乱,难免前后不着调,请读者朋友们谅解。最近总被人称为老师或者您,有不少TX发邮件给我或者加我QQ问一些问题。我很感谢大家对我的看重及信任!其实我不是老师,也不是什么大牛,只是一个即将毕业的本科生。


当然,我是非常愿意帮助大家解决一些问题。问的最多的也就是到底该怎么学习编程、学习Java?我能理解这些同学的心情,因为我们都是从初学者走过来的,每个人都曾迷茫过,能清晰的找到适合自己发展的道路很不容易,因为不仅仅是初学者在问我,有些是已经工作了的,也有一些是在读的研究生。学习技术,很容易走弯路,我常说的一句话就是:弯路走的多了,自然就直了。这句话是我用来形容自己的。说实话,我从高三开始学习编程,加上本科三年的编程学习,到头来却一塌糊涂,并不是自己没有下功夫,自己一直比较努力,只是因为学习方法不对,常常浮于知识的表层,难以看到知识的真谛,直到大半年前我才意识到问题所在,可惜时光不可倒流。所以那些刚上大一,甚至高中的同学,如果你们热爱计算机,热爱编程,并且看到了此文,我想你会有很大的收货。

真正写博客快半年了,有很多体会,从开始的随便写写到后来的慢慢重视,再到现在的形影不离。其中夹杂着自己很多的情感变化。开始主要想记录一些常用的知识点,以备后面使用,后来看到了刘未鹏(pongba-CSDN博客)以及周磊(v_JULY_v-CSDN博客)的博客,不禁使我震惊!他们对事物的思考让我感动,同时最重要的是他们通过博客帮助了很多人,包括我在内。顿时我认识到,我真正该做些什么了。于是乎开始认真写博客,可是写出一篇漂亮的博文并不容易,常常我会花费一周的时间去完成它,期间偶尔会有放弃的想法。但是,当我看到大家给我的评论以及大家对于高质量博文的期待时,我更加的充满信心,有坚强的力量继续写下去!现在,对我而言,已经离不开它,我希望在记录自己学习过程的同时,能帮助更多的人,这是技术学习的要点,要学会分享!

经常有一些TX问我一些问题,很基础的一些问题,而我通常都会认真的去解答,当我了解了情况之后才发现,很多人都在一些计算机不怎么发达的地区,或者是一些中专学校,他们很想去好好研究计算机,学习编程,但是实在没有条件,没有学习或者师资环境,我觉得这些同学,你们能在这样的环境下,常常去CSDN论坛或博客,真是难得。此时我不禁想到本科里那么多的同学,几乎90%以上的同学都是被调剂到计算机专业,造成他们大学四年被迫的去接受自己不喜欢的东西,最重要的是那些真正喜欢计算机的孩子却享受不到这些学习的软硬件资源。不禁感慨现在教育资源分配的不均匀。我真心希望能够通过博客,来帮助更多需要帮助的人!

谈到怎么学习编程,以及简单的职业规划,我想就自己的认识说说,毕竟我不是专业的职位规划师,只能谈谈自己的理解。这里要针对不同的人说。如果现在你只是一个刚步入大学的计算机专业的学生,这里默认你是喜欢计算机,并且打算长期拼搏在软件开发的事业上,那么恭喜你,你应该很庆幸能在最需要的时刻看到这篇文章!因为此时的你有一大把时间可以去做自己喜欢的事情,你需要做的就是规划好自己的大学生活。大学四年很关键,虽然你也许在老师那里学不到太多的东西,但是,此时的你应该具备自己学习的能力,俗话说师傅领进门,修行在个人,这句话没错。你需要在大学里锻炼好各方面的能力,这样才能在毕业的时候快速融入社会。作为软件工程专业的我,想从专业学习方面多谈谈。第一条就是学校开设的专业课一定要学好。这条很难做到,而且也很少有人能做的好。我记得我大一大二的时候,每当上C语言或者数据结构课的时候,自己就抱着一本从图书馆借来的书看,什么《21天学会JavaWeb》、《30天学会SSH》等,这些书说实话真没什么含金量,尤其是大一打基础的时候。从来都没有好好听过课,现在想起来,那时的自己好愚蠢!哪些课程我们该好好学习呢?我认为,数据结构,计算机算法,操作系统,数据库,计算机网络,这五门课一定要学扎实了,趁着有时间,一定要多看看,不光要把理论的一些东西理解了,还要加一些实验。对于数据结构和算法,这是程序的精髓,不管后面学什么语言,思想都不变。一定要常常写一些程序,锻炼自己的编程能力,建议去一些OJ网站,比如说北大、浙大、杭州电子科技大的OJ都不错!有条件的话,组队参加一些编程比赛,如:ACM、百度之星、编程马拉松、微软的ImageCup等。如果你能在上述比赛中取得不错的成绩,你的编程能力一定会得到认可,找工作会很轻松。如果你能在大学期间,累计编码超过10W行,那么你的水平肯定和别人不一样,如果能超过15-20W行,那你可以算是一个高手了。操作系统方面,我们上这门课的时候,老师就以Linux当实验环境,当时选的是Red Hat,你一定要趁着这个机会多学习点儿Linux方面的知识,除了基本的理论如进程、线程、段页式存储等,还要学习一些命令,会写简单的shell脚本,学会awk、sed等命令。如果你能再去研究一下内核,自己编译内核什么的,这会给你带来意想不到的惊喜。有人经常问我,对于Linux,我们要学到什么程度呢?我觉得,如果你将来不是从事系统管理的工作,那么只要能保证现在把你放在linux的一个控制台里,你能干所有想干的事情,事实上,凡是桌面系统能做的事儿,命令行里都能做,而且效率会更高。数据库和网络这些课的话,掌握基本的概念,平时学习的时候多做做实验,学踏实了就行。其实软件工程还有很多课程,如微机原理、汇编、计算机体系结构、图形图像等,这些课程偏向底层,你如果感兴趣,那么就去研究。

还想告诉新人的一件事,就是一定要养成锻炼身体的好习惯,做了这么久的程序员,我都觉得身体已经没有什么灵活性了,除了头和四肢,其他部位感觉都连成整体了。因为我们太缺乏锻炼了。长期坐着学习和工作,慢慢的已经养成了惰性,加上本来就锻炼机会比较少,所以,我们程序员的身体多数都会越来越不行。如果你现在是大一,我想告诉你一个好的方向,就是去学习跳街舞,这是我多年来的一个梦想,每当我看到跳街舞的人们,心里充满了羡慕。为什么这么说?第一、街舞非常锻炼身体,同时又需要的场地比较小,可以说任意地方都可以跳。第二、街舞很炫,如果你能随便的跳上一段breaking,托马斯,大风车什么的,那么我敢保证,走到哪儿你都是很受欢迎的人。同时,你可以多打打篮球、网球,去游游泳,有句话说的好,错过的东西,你都会补回来的!大学的时候,免费的操场,廉价的游泳馆篮球馆,我们没有好好锻炼身体,等日后年长了,花着钱去健身房,去打球,生活就是这样。

如果你是大三、大四的学生,你的情况不一样了。因为你即将面临就业,此时我建议该考虑找找实习了。虽然也许你大一大二的基础课依然没有学好,那么请你现在努力,一定要补回来。否则你很难找到你向往的好工作!每年会有两次找工作的机会,一次是春季校招,一次是秋季校招。这两次的侧重点是不同的。春季校招有两种情况,一种是面对本年毕业的学生,做一次补招,而另一种情况,也是大多数的情况,就是面向明年毕业的学生,招暑期实习生。秋季校招都是面向明年毕业的应届生,这是正式的招聘,录取后直接签就业合同的。举个例子来说,我是2013年7月份毕业,那么在2012年的秋季正是我们这届学生找工作的黄金时期,到了2013年春季,虽然还有一些春季补招的机会,但是很少。大多数都是在招2014年毕业的学生,暑期实习。对于大三的学生,这是一个很好的机会,很多人都不知道,从三月份开始,尤其是互联网企业都会进行大量的校招,每年3-5月份,如果通过了面试,拿到了offer,就意味着你暑期的2个月会去实习,等暑期一完就是秋季校招,只要你干得好,offer会优先发到你手里。当大家还每天到处听宣讲会、投简历的时候,你已经offer到手,没准可以出去旅旅游了。我们这届是比较悲剧的一届,不管本科还是研究生,就业情况都不好。所以在我没有拿到称心如意的offer的时候,一气之下,又去找了实习。对于大三大四的同学还有一条路,那就是考研,现在考个研究生太有必要了,我感觉我走到哪儿都是在夹缝中成长。如果你的成绩很好,你可以考计算机专业的硕士,如果成绩没有那么强,但是想上一些名校,那我建议你考软件工程专业,相对容易些。

如果你已经是一名在读的研究生,我强烈建议你在学校的时候,好好把你所研究的方向尽量走的深入一点,如果你将来不打算继续做科研,那么你应该多考虑一下实际工作需要的东西。研究生比本科生多的,就是你的研发能力,包括计算机基础、数学功底、学习能力等方面,你要利用你的资源,多去看一些算法,多写写代码,毕竟这些才是工作需要的东西。

不论是本科生,还是研究生,毕业找工作的时候都一样,大家面临同样的机会,面试官不会因为你是本科生,就让着你点儿。所以,对于本科生,实说有点儿吃亏,毕竟他们比你多读两到三年的书。在平时的学习过程中,要多注意基础方面的学习,企业对于应届生的要求,并不是你有多少项目经验,而是你的潜质,包括快速学习能力和良好的解决问题的思路。经验有更好,没有也没事儿。好的基础会让你更快的掌握其他上层方面的知识。所以,在校期间,一定要打好自己的基础,不要浮于知识的表层,学习一定要深入,理解知识的内在原理,切记走马观花

写到此处,我又突然想到个事儿,就是总有同学会问各种各样的问题,在这儿我教大家一下,在和你认为比较牛的人,第一次聊天的时候,要先自己想好你要问什么,尽量先做个自我介绍,让对方明白你的意思。其实我之前也做得不好,大三那会儿,我突发奇想,想自己做个搜索引擎,在网上找了不少资料也没有一个架构思路,后来看到一个做过搜索引擎的人,加了Q后,我第一句就是:我看您之前写过搜索引擎,您能给我介绍下吗?这句话,现在想想真是傻呆了,这么大的问题,人家怎么给你解答?所以当时就迎来当头一棒,那个TX发给我一个连接,我打开一看,标题是:关于最近有人问问题的说明...我看了后真的不是滋味...不过很感谢这位TX,让我对这事有了新的认识,如今也有不少同学这样问我,前几天有人听说我是做云计算的,上来就问我:云计算是干什么的?对于这个问题,真的不好回答,云计算是个很广泛的概念,几句话绝对讲不清。当然,我还是比较nice的,也没有不耐烦,和那位同学说,希望他自己去搜索一下,概念性的东西网上很多,自己查查就清楚了。还有一点就是大家问问题的时候,尽量要选择晚上,因为白天都得上班,工作时间聊天并不是一件值得提倡的事儿。虽然我很愿意给大家一些帮助,但是工作的时候还是希望能不被打扰。所以最好的做法就是,在晚上的时候,尽量先做个自我介绍,把你的情况说清楚了,你有什么困惑,需要什么帮助,都要提前想好。别在聊天的时候东一句西一句,你要知道对方不一定想和你来回的聊,每个人都有自己的事情。总有一天你也会变成高手,你也会有新人问你同样的问题,到时候你就有所体会了。上面是一些建议性的东西,主要就是想教大家一些交流的技巧。

写了这么多,也该收尾了,想到哪儿说到哪儿,恕不连贯。但是句句发自肺腑,就是希望能尽自己的力量,来帮助新人们少走一些弯路,感谢大家支持!

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值