计算机专业的学生应该怎样提高自己的编程能力?_自学编程超过计算机专业的学生-程序员宅基地

技术标签: 计算机专业  程序员  java  编程语言  提示编程能看  

本人国内某重点大学渣渣专业大一在读,专业对编程要求较高。

大一刚学编程(C/C++),感觉有点吃力,求指点。我们平时练习都是做的OJ(老师负责选一些题让我们做,也可以自己随便刷),一些题还好,可是有些题难度感觉很大,有时好不容易有了思路,转化成代码都要老半天,别人一个小时就搞定的事情,我可能要花三四个小时,而且我本人比较粗心,经常被一些小错误坑了很久。最后就算千辛万苦地做出来,感觉也不值得,毕竟时间消耗太大。

还有些题一些思路也没有,但是其他人(也是新手)就能搞定,基本就是别人过10道我过7道的水平。这个时候就会发现智商上的差距真的无法弥补。所有这一切,都让我对自己的前途产生了怀疑,这样下去,我可能只是一个中等水平的苦逼程序员,无法进入顶尖行列。我知道会有人叫我说要努力,可是怎么做?刷题?想看个答案都找不到?问人?哪有那么多人闲着没事干,而且解答正确,使你能够理解?做产品实操?写个两百多行的代码就已经快乱得不行了,不行。看书?终究只是纸上谈兵,没有实际操作的感觉。求救各位大神指点迷津,看看本人是否要转专业?(补充说明,其实我对IT还是比较有兴趣的,特别是人工智能和图形学(游戏开发),也有过很多好的app点子但苦于能力低无法实现。

数学自我感觉良好,主要是初高中搞过点数学竞赛,成绩也还可以,所以基础算是比较扎实,但是不想去数学系。)话说回来,我没什么理想和目标,可能还在寻找中吧。总之,请各位提出点建议,关于大学的任何方面都行,学习、生活、理想、交际(谈情说爱的就算了),指点迷津,先谢谢各位了。

题主是专业大一在读,刚刚踏入编程的大门,我就站在所有大学生的角度为迷茫中的大学生说一下吧,(根据题主提到的)分为学习篇,生活篇,理想篇,交际篇,根据最近众多offer收割机的实例,总结出的一些经验。

学习肯定是本题中最重要的,也会以最大的篇幅去说,同时说一下题主的一些困惑。



##学习篇(编程新手如何提高编程能力):

不知道题主是什么专业,既然对编程要求比较高,那么无论从专业课学习还是以后找工作的角度来说肯定都至关重要,现在正处于新手阶段,,后面还会有了解阶段,深入阶段,大牛阶段。。。(这个阶段是我自己命名的,所以没有什么官方的意义,就是每个人的理解角度可能不一样而已)下面会逐一说怎样提升。

1.新手阶段


刚进入新手阶段,如何提升?有几点至关重要:兴趣,习惯。

兴趣:兴趣是最好的老师,初入大学校园,一切都还比较懵懂,有可能之前接触过编程,那就很优秀了,大多数人可能只是知道编程,但是并不了解,也并没有入门,这半学期就主要来入门,看一下计算机的世界中,0,1的世界竟能构造出那么神奇的东西。大概了解一下各个语言,看看自己对哪个更感兴趣。

大概了了解了各个语言,那么选择一门语言开始深入学习吧,不管以后从事哪个方向的,至少要熟悉一门以上语言,优秀的两门以上,在后面的找工作中也会有优势。初学建议从c或者Java,python学起,比较好上手,尤其python,还能自己爬虫一些有趣的东西,比较有意思。


习惯:培养一个好的习惯非常重要,会非常有助于提升自己的编程能力,以下习惯适合新手阶段的习惯,当然,也可能适用于后面。

1.写博客:可以按几个维度去写,比如,#每天一写#,今天学习了哪些新的东西,或者做了什么程序,或者思考了哪些,改进了哪些,都可以记下来;#新知识#学习了新知识,可以在博客里写一下;#阶段总结#对每个阶段学习的知识进行总结,光学习不思考是不会有很大进步的。还有值得做的就是#常犯错集锦#,初期的时候很多地方都容易犯错,把错误的地方都记下来,记得下次不要再犯同样的小错误。(可以选择一个自己的博客,也可以在牛客网这种牛友众多的地方来记,各有各的好处,在牛客网上记的话会有好多人跟你一起讨论这些,写自己的博客不容易被更多人看到,或者也可以两个都写,这个都看自己的一个习惯了)

2.常思考:写博客一个是能够养成自己的一个好习惯,但是写了不看,也是白搭,看了不思考,也是没用,所以一段时间要再看一下自己的之前的东西,是不是有的就会有新的理解,看一下之前的代码,是否可以进行了优化;每学到了一份新知识,就尝试做一些小程序,并不断优化,这些都是方法所在。
其实不怕浪费时间,可能你想不出来,但是重要的不是那个结果,正是这个过程,你提高了。

3.多读书:这个阶段还是要读书的,虽然觉得没有实践,但是完全可以自己实践,其实之所以还有好多人会去报培训班之类的就是因为自己没有那个自制力,就像好多人看小说可能看不进去,但是拍成了电视剧,就会愿意去看,因为好多字在那里,就觉得看不下去。so,我们看书的时候自己配合好实践其实一样能够学好的,而且不能只读书,要思考,甚至自己能做一些延展就更好了。
书的选择上肯定是要基础一些的,不要上来弄一些底层的东西,而是要弄基础的


ps:网上也有好多课程,也可以配合练习,资源特别多,从入门开始看起,当然,肯定也要配合自己的实践,不然任何人说了或者带你学习都没有多大用的。

4.多实践:这个跟思考可以挂上钩,学到知识点就去做个小项目,能解决现实生活中的问题更好,会带你进入这个世界,而且会兴趣大增。

5.多交流:现在网络给大家提供的平台这么多,完全可以有好多机会认识想认识的人或者志同道合的人,在交流中,可以发现一些自己想不到的东西,拓宽自己的视野,但是无论是朋友之间还是牛友之间还是牌友等等,人与人之间只有真诚才能真正联系起两个人,这个社会就是这样,人们往往都是愿意跟自己的前辈多交流以换来更多的有利于自己的东西,然而前辈肯定能够看出你的小心思,人们往往忽略和和同辈的人分享一些有价值的东西,所以只要真诚,你用有价值的东西就能换来别人有价值的东西的。

6.多检查:编程的时候要养成写一段就要看一下能不能跑的起来,哪里有问题及时发现,这个适用于所有时候,当你很厉害的时候,就可以一大段一大段的看了,开始一小段看是因为可能错误较多。

7.学好英语:如果想成为一个非常牛的编程人,那就避免不了要看文档,而那密密麻麻的英文也会让你头晕目眩,平时的英文和这些文档还不是特别搭边,有了基础之后就在看文档的时候多用点心吧,至少能看懂并越来越熟悉吧


这个时候时间还比较充足,学习一门语言的开始,可以配合书籍和课程,还有网上的资料。
这里需要注意的是:一定要注重实践,不能只看不练,必须进行上机操作,手打代码,这里需要注意的,不用在乎时间,要在乎质量,基础打好。


遇到不会的怎么办?!!!

第一步:思考
先通过自己思考,思考一段时间,根据具体遇到的问题来看要思考多久。

第二步:找资料
通过配合书和一些博客,帖子,源码来研究,重要是自己动手实践。
源码>书>视频>博客>帖子,这个不绝对,但是大体的一个准确率的排行还是很值得参考的。

第三步:与他人交流确认
如果找到了答案的前提下,与他人交流。这一步不光是思考提升的过程,也许更能在交流中发现意外收获呢

第四步:寻求他人帮助
如果还是不行,实在实在解决不了了,再去找他人帮忙, 既省去了总是遇到事情麻烦人的烦恼,又能够在思考中提升。



了解阶段


这个阶段中,方法和习惯显得格外重要。

如果你对初步的编程已经明白了许多,那么就深入的去研究一门到两门语言吧,并在最后确定自己要做的方向,比如游戏开发,数据挖掘等等。

这个阶段要多刷题:有的时候只看到了别人的成功,却看不到别人的努力,国内算法大牛左程云,他很成功,但是背后的努力又有谁知道呢,刷题刷多了会越来越有感觉的,新手不太适合刷题,因为有可能会因为题目难而失去了兴趣,学的差不多的就可以开始刷题了。

如果觉得自己学的还不错,可以多参加一些竞赛,ACM是比较推荐的,而且也是很被认可的。



深入阶段

深入学习:深入学习框架等知识,为做项目做准备

刷题:刷题还是要继续

做项目:做一些比较大规模的项目,可以去企业实习,或者自己来做,其实一个小项目一点一点做起来最后就变成了一个大项目,重要的是自己有想法,并有热情将其一步一步实现。


大牛阶段


多交流:到了大牛阶段,在继续提升自己的同时,更要多与人交流,这样才能更快的提升自己,为他人和社会创造价值。

首先,要尽早的定一个方向,并在这个方向成为专家,这才会是你的核心竞争力,走到哪里都不怕,这样你才更加心安。而成为专家谈何容易,起码意味着你要付出一万个小时的努力,才会让你在这个方向比别人专业很多,一万个小时什么概念?除以一天十个小时也要一千天,所以大学四年一定要好好把握。从来就没有什么黑马,一切都是厚积薄发的结果。你只有很努力,才能看起来毫不费力。


总的来说,其实每一个阶段都没有捷径,都是要靠动手实践来提升自己,只是可能有一些好的方法和好的习惯能够更好的促进你成为大牛而已,关键的还是要靠自己。

下面来解决一下题主的一些困惑:

Q:大一刚学编程(C/C++),感觉有点吃力,求指点。
A:这个见下文就好啦~

Q:我们平时练习都是做的OJ(老师负责选一些题让我们做,也可以自己随便刷),一些题还好,可是有些题难度感觉很大,有时好不容易有了思路,转化成代码都要老半天,别人一个小时就搞定的事情,我可能要花三四个小时,而且我本人比较粗心,经常被一些小错误坑了很久。最后就算千辛万苦地做出来,感觉也不值得,毕竟时间消耗太大。


A:前半部分,如果有这种心其实是好的,可以促进自己努力,不过刚开始学习的时候不要过于求成,任何事情都是这样的,像武侠小说中的练武一样,即使很快的非常厉害了也会容易走火入魔,每个人接收新知识,新领域的能力都不一样,每个人的优势也不一样,擅长的东西也不一样,有可能还没有完全入门或者上手,如果完全入门了,可能你比别人快很多,所以这点不用担心,谁也不是生下来就会什么(虽然也不一定,有的人确实是天才,但是毕竟不是大多数),也正是因为这个原因,总是出现很多黑马,一来是因为他们一直在努力,二来有可能刚开始接触比较陌生,后来入门了之后飞速成长,总之,因人而异,只要一直努力下去就好。


关于粗心,这点就也属于习惯的问题了,粗心了再往严重了说就是不认真或者不重视了,可以在做任何事情上培养自己不粗心的好习惯,我觉得可以往三个方面培养:1。严谨;2.认真;3.重视

这里严谨指的是思维严谨,一般粗心都是因为考虑不到,锻炼全方位思考的能力,可以通过做那种数学题目或者逻辑题目,或者也可以在做事情的时候有意识的多思考一些事情。


认真不用多说,做事认真,其实不管什么事情,只要做了,就认真的把它做到最好。
重视,有时候不够重视可能会导致粗心,举个夸张的例子,手里拿着一个亿的钞票,肯定会格外小心怕丢失~(夸张的说啦~~)

Q:还有些题一些思路也没有,但是其他人(也是新手)就能搞定,基本就是别人过10道我过7道的水平。这个时候就会发现智商上的差距真的无法弥补。所有这一切,都让我对自己的前途产生了怀疑,
A:这个也跟那个其实是一样的,没关系的,我相信题主会越来越优秀的,找准了方向,找对了方法,努力就好(嗯,好像题主说不要说让他努力,要说具体怎么做,上面说了哦)
Q:这样下去,我可能只是一个中等水平的苦逼程序员,无法进入顶尖行列。我知道会有人叫我说要努力,可是怎么做?刷题?想看个答案都找不到?问人?哪有那么多人闲着没事干,而且解答正确,使你能够理解?做产品实操?写个两百多行的代码就已经快乱得不行了,不行。看书?终究只是纸上谈兵,没有实际操作的感觉。
A:关于这点只想说题主真的很优秀和上进,具体怎么做。
刷题?想看个答案都找不到?牛客网上题目都有答案哦,还能分配自己想练习的知识点,有解析,集中练习之前的错题,还可以专门收藏题目,做这些题目的好处一来对自己的专业技能有大大的提升,二来,在后面的笔试面试中遇到原题的概率大大的提升。偷偷的说一句哦,过段时间还可以练习自己学校考试的期末考试题,保研都妥妥的,彻底摆脱挂科。
问人?哪有那么多人闲着没事干?牛客网上牛友众多,大神云集,还有很多同类型的牛友,在这里,可以认识好多牛人或者一起学习的人,互相帮助中,共同成长。
产品实操?写个两百多行的代码就已经快乱得不行了,不行。这个我觉得也是慢慢来的,遇到困难是肯定的,不可能什么事情刚开始做的时候就特别顺手的~~
看书?终究只是纸上谈兵,没有实际操作的感觉。
Q:求救各位大神指点迷津,看看本人是否要转专业?(补充说明,其实我对IT还是比较有兴趣的,特别是人工智能和图形学(游戏开发),也有过很多好的app点子但苦于能力低无法实现。数学自我感觉良好,主要是初高中搞过点数学竞赛,成绩也还可以,所以基础算是比较扎实,但是不想去数学系。)
A:既然你说你对这些很感兴趣,那就没有必要转专业啦,初入领域,难免有困难,而且题主数学很好,其实真的很适合的,再次希望题主越来越优秀吧~


##生活篇


生活不止眼前的苟且,大学期间有可能是最后的学生时间(除非考研)生活肯定要多姿多彩,不能让大学荒废的度过,可以根据自己的兴趣爱好,学一项技能或者做一些自己喜欢的事情,平时的时候多学习,周末就多做一些自己喜欢的事情,能学一项技能更好啦~
身体也是革命的本钱,健康很重要,所以要合理安排好自己的时间,进行锻炼身体。
太多就不说了,自己的生活还是要自己做主,至少最后回想大学生活不要感觉自己什么都没做就好~


##理想篇:


人各有志,也没有所谓对错和好坏,完全看自己的志向。还有最重要的是有了理想之后有没有为止努力。
其实大学能走的路不止一条,条条大路通罗马,但你一定要想清楚你要走的是哪条,如果这个没想清楚然后看着别人干这干那,你会很茫然。因为你会发现不知道从哪儿开始努力了,你和别人比学习的时候,别人开始玩社团了,你和别人玩社团的时候,别人开始秀健身了,你和别人秀健身的时候,别人开始秀恩爱了,所以弄清楚自己想要什么很重要。以下几点是我觉得普适性的:


1、如果想走保研的“学术精英路线”,成绩很重要,非常重要,而且尽量要拿到班级第一名,实际上凭借着大部分大学生玩游戏、玩社团、唱k打游戏的劲儿,你稍微一努力,可能不用高中那么努力,就能够拔得头筹。而且成绩不是一两次考试好就行,要始终保持领先,不像高中只看最后一次成绩,大学的每次成绩都会积累起来,如果你大一的成绩就非常好,就积累了先发优势,后面保持起来就很容易,如果你大一的时候成绩靠后,那你大二大三成绩不止要好,还要比别人好很多才有可能总名次靠前,因此对于想保研的同学来说,就可以放一放社团什么的,先把学习成绩提上去吧。


2、如果不想保研,那么成绩就没那么重要了,每科及格就好。实际上在一个五十人的班级里你考第十名和第四十名区别真的不大,都没法拿一等奖学金,都不能用来保研,因此如果你没自信成绩冲到最前面,就好好想想别的专长和兴趣,毕竟大学还有很多丰富的方面,千万别闷着头就知道学习,结果到时候一看考了个班里七八名,其实这样你时间也浪费了,到头来还然并卵,如果不用来保研,成绩在找工作的地方作用不大。


3、如果你不想在社团通过四年的时间来做到社团老大,从而可以保研或者留校当辅导员,那么社团同样没那么重要。我觉得社团的最大作用是可以认识一批不同学院、不同专业、甚至不同年级的朋友,这样你在大学的交际圈不至于那么窄,而且可能会有很多的团队活动,春游秋游啊,聚会聚餐啊,会让大学生活更加丰富多彩,但很大程度上仅此而已;社团还有一个作用就是通过社团活动、例会、组织活动等来初步接触社会运作方式,以后工作的时候会更加如鱼得水一些,也可以培养一些守时、靠谱、团队协作等宝贵品质。所以完全不需要加特别多社团,也不用让自己显得特别忙,那样其实最浪费时间,加两个社团足矣,再多了你就没有精力处理别的了,到大二的时候在喜欢的社团竞争中级干部,没那么喜欢的直接退掉。

 


##交际篇


交际上就是你多认识一些人脉,多结交一些朋友,不管怎样,直接通过人往往要比那些通过流程走容易的多。
怎样交到更多的朋友呢?
首先你最近的室友,你们同住一个屋檐下好几年,感情自是不必多说,如果都志同道合,那就更加完美。
你的同学,你们一起上课,学习了好久,虽然大学里同学的概念不是那么的清晰了,但是如果有志同道合的依然可以结交朋友。
你的社团:如果你有兴趣参加一些社团,也会认识到一些人,甚至都是志同道合。
你的实习/兼职:你出去实习或者兼职肯定也能遇到好多不同的人,不同的事,都是资源。
你的平台:如今网络很是发达,两个人认识的成本很小,在很多平台上都能找到各种人,不管是前辈,业界大牛还是其他的同龄人,甚至比自己小的,比如牛客网,脉脉等等。


记住,真诚就好。保持一颗宽容的心,爱笑的人运气都不会太差~

学习必不可少的就是学习路线,视频,书籍了,我都一一给你推荐

2020年最新的Java学习路线,初学者必备

2020年最新Java基础教程免费看

学习Java有哪些值得推荐的Java书籍?

学习不要走马观花的学,每个知识重点大纲,就是学习路线都是根据每一天市场上多数公司用到的新技术整理,在学习的时候还需要结合练习题来做

这里的话我也将我之前在学习过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的QQ群   697888503   ,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/java9875/article/details/109747455

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签