[目录]
- 0. 前言
- 1. 学习多门编程语言是普遍的、可行的
- 2. 编程语言入门小建议
- (1)计算机专业
- (2)计算机相关专业 和 理科专业
- (3)非相关专业
- (4)自学方式
- 3. 从一门编程语言学习另一门语言小建议
- 4. 结束咯
0. 前言
平时各位都如何学习一门编程语言?我陆陆续续学了很多种,有些是上课需要有些是工作需要。感觉学会和精通一门语言是比较值得探讨的,写此文以总结和探讨吧。不过由于本人经验和能力都一般,所以本文也仅做闲聊杂谈之用。
1. 学习多门编程语言是普遍的、可行的
我大学是电子信息专业,学的方面很多。大一的时候就学C语言,然后学matlab与python,面向对象课程学的是C++,甚至还学Verilog这种硬件描述语言。反正就是学了很多,上课的时候也会用到。比如,单片机嵌入式、FPGA用的C和Verilog,机器学习、图像处理的时候用的phthon和matlab。专业给我提供很多毕业方向选择,嵌入式开发、机器学习读研深造、通信或者电路设计之类的。但后面我自己学了C#跑去做游戏了。而且之前在犹豫毕业做什么的时候也学过一点点java。然后毕业去上班,因为公司之前做小游戏用TS居多,所以Unity3d也用TS的框架,所以也开始学并用起了TS。
陆陆续续的也学了很多语言,很多都只是个入门,多而不精了属于是。但那么说呢,程序员学多种语言也是很正常的事情,我一软件工程专业的同学学了c++,java,python之类的,毕业之后他去上班,工作需要也要学点JS等其他语言,调试网页的时候也会使用到一些。所以从这个角度考虑的话,学习多门编程语言也是一个程序员的基础路程了。需求、环境在变化的话,使用不同语言也是比较常见的,这也能发挥不同语言的优势。另外编程语言也在不断迭代更新,推陈出新,比如之前很火的GO,有些时候为了跟上时代,学习不同语言还是有点需要的。
不过入门一门语言之后,学习其他语言就比较简单了。编程语言之间的相通性还是挺高, 基础内容语法基本都是声明、条件判断、循环之类的内容,而且数据结构之类的这种基础知识也是可以几乎无缝的使用在不同语言中。
所以,学习多门语言的普遍性、可行性都是有的。当然当然,还是需要精通一两门语言的,不然只是啥都会点,但要做东西的时候做不了就比较麻烦了。
2. 编程语言入门小建议
(1)计算机专业
这个没啥好说的,就跟着看老师和课程学入门就好了。然后如果有想做更多的话,可以考虑报专业中,算法相关的社团或者活动,在写算法解题的时候,用给这个语言就会越来越顺手了。如果可以进相关的实验室就更好了、
(2)计算机相关专业 和 理科专业
现在好像很多理科专业都会教一门编程语言,之前我同学土木的,他们会学java。比如说我的专业,电子信息工程,就算是计算机相关专业的,当然也会教的,**入门语言基本上应该都是C/C++**吧,从这种开始学起的话,内容都比较基础底层,后续学其他内容就也比较简单了。
就是大学上课老师教学,课后实验、作业,最后考试这样。经过这个过程,基础内容也就学个7788的了。就简单听老师安排,其实就学点基础入门,老师太水也没关系,有点问题百度一下或者问问同学就好了。
不过这里插一句题外话,自己要多去发现行业所需要的技能,然后在额外学习补全。对于非计算机专业来说的大学生,软件编程是课程缺失的(这挺正常的毕竟专业本身不是要教你做软件的),这个之后要自己多去补全。比如说我现在做游戏的,这个当时没学的数据库、计算机网络、计算机图形学也是我一直的痛。
(3)非相关专业
如果是高中生建议还是把基础内容学好先,高考大学很重要。另外数学和英语等这种都是以后会用到的,不要轻视。有闲暇时间在考虑学编程。另外对于零基础来说,语言只是基础,后面数据结构,网络通信等很多内容都是程序员关键要学的,不要头脑一热就要干啥,或者被课程洗脑了。感觉每天花8小时应该也要4个月吧,才能从0开始入门,要非常认真做笔记实践啥的。
好了,假如现在确定了是要开始学了,就首先要确定一门语言。先确定一下自己希望做的内容,比如做前端还是后端,做移动端吗,还是做机器学习,这个要考虑一下。如果你考虑好了,那建议查相关行业需要的内容选择语言,虽然互联网一堆垃圾信息,但是你多逛逛,货比三家,就大概知道要学啥了。直接问相关从业人员也是很好的选择。这里讲一些我相对了解的,以供参考:
-
做游戏:
C++(虚幻,做大型游戏,性能好画面好)
C#(unity,做手游等3D游戏,很多公司在用,学习资源多)
typescript(Cocos,做小程序网页游戏)
(上面的不同游戏引擎都是可以学习的,市场还都不错的,然后强项对应写上了)
(后面只是强项,不是说unity 只能说手游,做端游也是很厉害的,Cocos当然也不止可以做小程序) -
机器学习、AI:
R语言、matlab(一般大学,学术研究会用,然后matlab是收费的)
python(非常多的库可供使用,可以自行搭配,网上教程也多)
(其实机器学习数学很重要,基本算法才是关键,一定要学好数学、高数,线性代数!) -
单片机、嵌入式开发:
C(没啥好说的啦,基础的高级语言,基本非他莫属了吧)
我是推荐看着教程一起做一个demo,然后一起学的,有成果就更容易学下去。其中要注意就是,不要老师打一句代码你就复制一下,然后做完了其实啥也不清楚。代码要自己写不要复制,然后多想想为啥这么写,这句话是在加载什么或者是调用什么。
如果方向不清楚的话,C/C++,java 都是比较好的入门选择。学完一门语言之后再去另一门语言就不太是一件难事了,特别是java和C++这种十分规范的老牌编程语言。python之类的话,不太建议吧,真没有网上传的那种那么好用,比如,什么excel自动处理之类的。这种需求量不大的情况下,比如我就每天登记点内容,这个就手动吧。写个编程其实花费时间更多。而且后续这个需求改动了,程序又用不了。如果先学C/C++之类的,应该会比较好学习其他语言。不过如果你已经有了明确的目标就直接开始学对应内容就可以,比如就要做前端,那你就从javascript 开始学也是可以的(尽管js有些让人很别扭的事情)。我个人认为没有说非要从c/c++开始学,虽然这样对基础了解更多,但是复出精力还是很多的。之后如果工作深入或者其他有需求的话再去补全就好了。
(4)自学方式
学习方式的话,感觉跟看视频会比看书容易学,看书容易放弃,而且细节不太够。b站之类的教程很多。付费教程的话,就需谨慎了,别到时候花了钱但自己又不想学了。书的话,我推荐是可以有一本书,作为工具书,书的信息密度比较高,查找的时候内容用可以。比如你忘记数组怎么声明了,程序集怎么打,看目录翻到对应内容一查就知道了。
自己要多写写,写多了就习惯了,多实践多记录,写博客之类的。后面忘了还能翻。尽量不要复制,自己多打一遍梳理一遍会更加清楚熟悉。**如果不记录,很容易后面学了就忘记了,最后和没学一样。**以前大学的时候也不知道要写博客,但是如果博客写得好的话也可以方便找工作的。
3. 从一门编程语言学习另一门语言小建议
如果已经入门一门编程语言的话,然后再去学习另一门语言的情况下,感觉会是分为两个部分。推荐看书学习,跳着看。第一部分学语法,第二部分学语言特性。当然要确定是有学习新语言的需求的,比如工作需要之类的,不然学多门语言还不如精通一门。
学语法,看一下基础定义,声明,循环,条件等语法就可以了,然后按书中的内容敲一下代码。然后多用就好, 想不起来数组怎么定义之类的翻书查一查就好了。大概1-2天就可以学会基础语法了,然后一个星期就能够相对熟练地使用了。之后就多用就更熟悉了,不懂再翻书查。
学语言特性,这里其实也尤为重要,就像如果使用C++还和在C的时候一样面向过程编程,那C++这个语言的作用就被埋汰了。那学习语言特性的话,也是看书就好了,一般书都会给这种语言标志性的特性多开一章来解释。比如我买的C#的书,《C#本质论》,里面就会将反射,泛型这种内容单独讲。这几个章节就细看然后多实践实践。
看书有个好处就是,技术相关书籍内容一般精准正确,而且容易理解,看书来学习语言特性书非常合适的。毕竟出书是需要成本的,不像我现在写博客张口就来,内容会太杂,基本随便挑一本热销技术书籍都有不错的表现。而看视频或者教程的话,无用选择太多,而且太多已经是之前学过的内容,跳着看比较麻烦,浪费时间。
那么到这的话,基本上这门语言也就入门了,后续自然是多用多记录就逐渐精通了。
4. 结束咯
大概就是这样吧,居然说了这么多,都3400字了,有点啰嗦了哈哈。
最后祝大家身体健康,学有所成吧,溜了。