A. 目前大学生,总感觉自己要学一点编程语言,有什么推荐的吗
那需要先定义一下你所谓的“好”是什么,说明白这个,才可能做出合适的选择。所以,接下来我根据这个不同的“好”,给出建议。
一、如果你说的“好”是指“入门难度低”
即,你想要一门编程语言,可以在3个月内,通过自学来掌握语法,且能用学到的知识来做点有意义的小项目。
那我推荐 Python,因为入门很容易,这点从雨后春笋般的面向中小学生的Python编程培训就可以看出来。你也可以在京东、当当等以Python+零基础为关键字来检索相关图书。
二、如果你说的“好”是指生态好
即,这种编程语言,生态很好,各种轮子齐全,各大公司支持力度很高,典型应用非常多,那我觉得看看编程语言排行榜,取前几位就好。
如果你说的“好”是指工作好找
即,这种编程语言,工作机会多。
某编程平台发布的最具就业前景的编程语言排行榜上,java排第一,网红语言Python排第二,JavaScript排名第三,其次是C%2B%2B、PHP等。也就是说2018年最具有“钱”途的编程语言是:Java、Python、JavaScript。
1、Java
Java 这种老牌编程语言,虽然一直被诟病语法臃肿,但是其实随着Java版本的更新,已经逐渐支持了很多新语言的特性,并且在2019年的TIOBE编程语言排行榜上,Java每月总是稳坐第一宝座,毋庸置疑,它仍然是市场上最流行和最火爆的编程语言。
目前国内的电商行业一片火热,电商平台的数量也十分惊人,由于Java语言开发的电商平台具有安全性高,结构合理 ,高效,稳定,扩展性强,支持高并发量、采用集群式部署等特点,在开发方面相对于其他编程语言具有天然的优势,所以电商平台基本都是由Java开发而成,像京东,阿里巴巴,淘宝等大型电商平台均是使用Java开发。
也许未来Java 不是最有前景的语言,但是Java在未来很长一段时间内都会是不可或缺的语言,相关的工作岗位也自然一直有需求,而且Java语言的易学性也很高,适合新手。
2、Python
AI兴起,Python开始大,Python是一种用于Web开发的通用编程语言,也是软件开发人员的支持语言,它可广泛用于科学计算,数据挖掘和机器学习,人工智能大量依赖数据,而Python在数据分析,数据挖掘方面实用性非常的强,当然有人会问了 Python那么火热,以后会不会竞争很大。
Python之所以这么火热,是因为现在大家都对趋势越来越敏感,大家开始焦虑自己是否会被淘汰,所以很多其他编程语言的从业者都在关注,学习使用 Python。
更何况,在一个新的时代即将到来,相对应的需求本就大,所以,一旦人工智能技术有所成熟与突破,Python 的需求还会更大。再说到易学性,其实Python相比较大部分语言来说,都算是很容易上手的,语法清楚,也没有那么多复杂的概念,适合新手学习。
3、JavaScript
超过80%的开发者和95%的网站都使用 JavaScript 来实现页面上的动态逻辑。
随着物联网和移动设备越来越流行,React和AngularJS号JavaScript前端框架具有巨大的未来潜力,所以我们可能很快就会看到JavaScript 的普及。
当然,你也可以根据自己所在地区,检索下招聘网站,看看针对初学者的工作机会,选择机会多的那种语言。像51job、智联招聘、拉勾等,都是可以利用的网站。
四、如果你说的“好”是指未来薪水高
即,使用这种编程语言为主要开发语言的程序员,将来普遍薪水较高。
那要看看统计数据了。
StackOverflow 2019年的调研数据,全球范围内,编程语言的收入排行如下:
上榜的都是不错的,可以排除掉那些工作机会比较少的,然后在剩下的语言中选一种来学习。
B. 编程领域内为什么要有那么多的语言
应用领域不同,导致需要的是不同的编译效率和代码质量以及执行速度的要求:底层是用户发出操作上层的各个软件发出所有指令的最终汇聚点,都要去控制CPU。相当告诉公里上的收费站,所有车辆都要汇聚到这里。
所以要求处理速度快,代码质量高,能用一句的绝不用两句,那么就意味着不能有很复杂的编译过程、同时代码质量要高、精简,不能笨重。显然应该直接写机器码,起码也得写汇编语言,一步到位就能得到机器码。再不济也得用C语言,但为了开发起来友好点,想方便一点,C++也霸蛮的允许,因为它里面有面向对象可以极大的方便编程。但再不能是java了或者PHP以及JS这些了。
那么用汇编和C语言去写非常好看的图形化界面,它的意义只在于学习,而不在于实际应用。你写了好几天的引入各种的图形库函数库最后看到个红颜色,还不如PHP里写一条控制CSS的color:red来的省事呢,当然用CSS就更加省事了。所以学习什么和实际怎么使用,之间还有一个赛选的味道。
C. 瀛︿簡澶氱嶇紪绋嬭瑷鐨勪笉涔卞楀悧锛
闅忕潃绉戝︽妧鏈鐨勫彂灞曪紝鐜板湪寰堝氱殑鍏鍙稿逛簬绋嬪簭鍛樼殑瑕佹眰涔熻秺鏉ヨ秺楂橈紝涓嶄粎瑕佷綘绮鹃氫竴闂ㄧ紪绋嬭瑷锛岃屼笖杩樿佷綘浼氬叾瀹冨嚑绉嶇紪绋嬭瑷锛屽凡缁忎笉鏄浠涔堟柊椴滀簨浜嗭紝杩欏氨閫煎緱绋嬪簭鍛樹滑涓嶅緱涓嶆帉鎻″嚑闂ㄧ紪绋嬭瑷锛屽惁鍒欏湪浣犻潰璇曟椂灏变細灏戜簡寰堝氱殑鍒嗐備絾鏄闂棰樻潵浜嗭紝瀛﹀氱嶇紪绋嬭瑷鍚庡湪宸ヤ綔鎴栧啓绋嬪簭鏃朵細涓嶄細鎼炰贡濂椾簡锛岃嚜宸变篃涓嶇煡閬撴庝箞鍐欎簡鍛锛
鐔熻瘽璇粹滆壓澶氫笉鍘嬭韩鈥濓紝鍏跺疄浣犳墍鎷呭績鐨勫﹀氱嶇紪绋嬭瑷浼氫贡濂楄繖绉嶇幇璞″苟涓嶄細鍑虹幇锛屽傛灉鏈夊嚭鐜拌繖绉嶆儏鍐碉紝鍦ㄥ伐鍏风殑甯鍔╀笅涔熻兘椹涓婂彂鐜板苟鍙婃椂绾犳o紝鎵浠ユ棤闇杩囧氱殑绾犵粨浜庤繖涓闂棰橈紝鍔鍔涘幓瀛﹀惂銆
D. 如何学好编程
学习编程是一件好事 不过之前你得先了解 你学习编程的目的是什么 这个很重要 因为目的决定发展方向
目前对于编程有很多种编程语言以及相对应的开发软件 下面说明一些常用的编程语言 根据你的情况选一种语言进行学习 不要盲乱学习
C语言 一种可移植性和多系统平台的编程语言 开发软件TC
VB 一种可以说是既学既用的软件开发语言 开发软件如:VB6.0
DELPHI 一种和VB差不多的既学既用的软件开发语言不过其功能远比VB强大 代码书写上更加方便
开发软件 DELPHI7.0
JAVA 一种功能强大可移植性强开发语言
程序语言,顾名思义就是语言,是用于交流的,程序就是计算机的语言和人的语言的翻译者,做一个程序员就是要把人类世界的问题用计算机的方法去解决和展现,可是因为种种原因,大多数人在如何学好语言,如何学好开发平台上疲于奔命,到头来你只会敲写代码。
程序基本上都是自学的,买书是一开始碰到的最头痛的问题,计算机的书大多都很贵,现将我的一点经验供大家参考:
如果想做一个合格的程序员,C++是一定要学的,
首先你要花两个月的时间学习C,C++,这样的书很多,去选一些大学的教材足亦,切记,不要花过多的时间研究C++,两个月够了,只要学会其中语法就行了,不要为了深入用DOS编写菜单什么的,那是吃饱人参了。
如果你有过多的时间,接下来你可以学习数据结构,推崇《数据结构C++语言描述》,清华大学出版,58元,但如果无过多时间,还是不看为妙,至少我现在从未用过这本书的知识,许多东西MFC VCL等开发平台都为你已经做好。
接下来开始学习Windows下的SDK编程, 推崇《Windows程序设计》160元,建议去借,不要买,而且你只看上册,你只要了解Windows的运作机制即可。两个月
然后你将转入VC的世界,既然要在Windows下编程,VC不可不学, 推崇《VC++技术内幕》第四版,96元,三个月,不要全部看,看前面的三部分,后面不要看。后面的只是对COM,数据库,Internet形如鸡肋的介绍。
接下来你应该考虑一下你将要发展的方向,如果是做数据库,你可以用VB和Delphi或CB, 如果要做通信方面,或者硬件,你将要深入VC, 如果是WEB相关的,去学学ASP,JAVA,JSP,XML等,但有一样你必须要学的,COM。COM与其说是一样新的技术,还不如说是种机制,推崇潘爱民的《COM原理和应用》39元,你可以一边看这本书,一边学习些ActiveX组件,ATL控件等等。如果你有的是时间,不急于找工作,你还可以看看《Windows高级编程》或《Windows核心编程》,但不管怎么样,你要切记,VC不是用来做界面和数据库的,做网络的现在也有JAVA,都是用来做一些很底层的东西,VC是很高薪的,如果你对自己有充分的信心和有的是时间,你才可以深入VC。否则的话,还是看看人才市场,看看行情,再说。
还有一点切记,有些书,诸如《MFC深入浅出》这些书主要是关于那些技术原理的介绍,我个人认为程序只是工具,只是技术,只要学会用,能完成任务即可,如果有的是时间,才会去探索根源,也许有许多人会说,懂了原理对你编程会有很大帮助,我不否认,但是,要知道,就算你编程技术如何了得,你只是个技术人员,当你学了那么多的技术和知识,第一,计算机的知识其实是各大公司制定出的标准,标准变了,你不是白学了吗?第二,当你花了几年的时间学习,到头来你只不过程序水平提高一点。我认为应当将你的大部分智力和精力用在如何与人打交道,电脑让你用的好有什么用,人脑让你摆弄的好才算真本事,就如《黑冰》里面的计算机工程师,虽然对计算机十分精通,可有什么用,还不是死在王志文的手里?而且死的很惨,脸都毁了。
另外,不要去学你喜欢的,也不要去费劲脑子想该学什么,看看人才市场,市场需要什么,你学什么。
E. 闃愯堪鍑芥暟缂栫▼鐨勬渶鏂板彂灞曞姩鎬佹槸浠涔堬紵
鍑芥暟寮忕紪绋嬭瑷鐨勫叴璧凤細闅忕潃鍑芥暟寮忕紪绋嬭寖寮忕殑娴佽岋紝瓒婃潵瓒婂氱殑鍑芥暟寮忕紪绋嬭瑷琚寮鍙戝拰搴旂敤锛屼緥濡侰lojure銆丼cala銆丠askell绛夈傝繖浜涜瑷鍏锋湁楂樺害鐨勬娊璞″拰琛ㄨ揪鑳藉姏锛岃兘澶熸彁楂樼▼搴忕殑鍙璇绘у拰鍙缁存姢鎬с
鍑芥暟寮忕紪绋嬬殑骞惰屽寲锛氱敱浜庡嚱鏁板紡缂栫▼寮鸿皟鍑芥暟涔嬮棿鐨勭嫭绔嬫у拰鏃犵姸鎬佹э紝鍥犳ゅ嚱鏁板紡缂栫▼闈炲父閫傚悎骞惰屽寲澶勭悊銆傝繎骞存潵锛岃秺鏉ヨ秺澶氱殑鍑芥暟寮忕紪绋嬫嗘灦鍜屽簱琚寮鍙戝嚭鏉ワ紝鑳藉熸柟渚垮湴瀹炵幇骞惰屽寲澶勭悊锛屾彁楂樼▼搴忕殑鎬ц兘鍜屾晥鐜囥
鍑芥暟寮忕紪绋嬩笌浜哄伐鏅鸿兘鐨勭粨鍚堬細鍑芥暟寮忕紪绋嬬殑鐗圭偣浣垮叾闈炲父閫傚悎澶勭悊浜哄伐鏅鸿兘棰嗗煙鐨勯棶棰樸傝繎骞存潵锛岃秺鏉ヨ秺澶氱殑浜哄伐鏅鸿兘宸ュ叿鍜屽簱寮濮嬮噰鐢ㄥ嚱鏁板紡缂栫▼鐨勮寖寮忥紝渚嬪俆ensorFlow銆丳yTorch绛夈
鍑芥暟寮忕紪绋嬩笌澶ф暟鎹鐨勭粨鍚堬細鍑芥暟寮忕紪绋嬪规暟鎹鐨勫勭悊闈炲父鏂逛究锛屽洜姝ゅ湪澶ф暟鎹棰嗗煙涓涔熷彈鍒拌秺鏉ヨ秺澶氱殑鍏虫敞銆備緥濡傦紝Spark鍜孎link绛夊ぇ鏁版嵁妗嗘灦涓閲囩敤浜嗗嚱鏁板紡缂栫▼鐨勬濇兂锛屾彁楂樹簡绋嬪簭鐨勫彲璇绘у拰鍙缁存姢鎬с
鍑芥暟寮忕紪绋嬩笌鍖哄潡閾剧殑缁撳悎锛氬尯鍧楅摼鏄涓涓鍘讳腑蹇冨寲鐨勫垎甯冨紡璐︽湰绯荤粺锛屽叾涓鏅鸿兘鍚堢害鏄涓涓閲嶈佺殑鍔熻兘銆傛櫤鑳藉悎绾﹂氬父浣跨敤鍑芥暟寮忕紪绋嬭瑷杩涜岀紪鍐欙紝渚嬪係olidity璇瑷锛屼互纭淇濆悎绾︾殑瀹夊叏鍜屾g‘鎬с
F. Java瀛︿範闇瑕佸叿澶囧摢浜涙潯浠讹紵
闅忕潃璁$畻鏈鸿屼笟鐨勪笉鏂鍙戝睍锛岃$畻鏈鸿瑷鐨勪娇鐢ㄨ秺鏉ヨ秺骞挎硾锛屽湪鎵鏈夌紪绋嬭瑷涓锛孞ava璇瑷涓鐩村緱鍒板緢澶氫汉鐨勫叧娉锛屽湪鎵鏈夎瑷鐨勫︿範涓锛孞ava璇瑷瀛︿範鐨勪汉瓒婃潵瓒婂氥侸ava璇瑷鐨勮兘澶熶娇鐢ㄥ湪寰堝氳屼笟涓锛屼絾鏄瀵逛簬寰堝氭兂瑕侀夋嫨Java璇瑷鐨勪汉鏉ヨ达紝搴旇ユ庢牱瀛︿範Java璇瑷鍛锛熷︿範Java璇瑷闇瑕佸叿澶囧摢浜涙潯浠讹紵涓嬮潰鐢佃剳鍩硅涓哄ぇ瀹朵粙缁嶅︿範Java璇瑷闇瑕佸叿澶囩殑鏉′欢銆
涓銆佸笿ava璇瑷鎰熷叴瓒
寰堝氫汉閮界煡閬擄紝鍏磋叮鏄瀛︿範杩囩▼涓鏈濂界殑鑰佸笀锛屽彧鏈夋嫢鏈夊叴瓒f墠鑳藉湪瀛︿範杩囩▼涓涓嶆柇鍔鍔涖傚叾瀹炴棤璁哄湪瀛︿範杩樻槸鐢熸椿涓锛屽叴瓒i兘鏄闈炲父鍏抽敭鐨勩傚湪璁$畻鏈虹紪绋嬭瑷涓銆侸ava璇瑷鐨勭儹搴︽槸闈炲父楂樼殑锛屽苟涓斿緱鍒板緢澶氫汉鐨勫叧娉锛屼絾鏄鍦ㄥ︿範杩囩▼涓鐩茬洰瀛︿範鏄娌℃湁浠讳綍鏁堟灉鐨勩侷T鍩硅璁や负濡傛灉鎯宠佽嚜宸卞︽湁鎵鎴愶紝鍏磋叮鏄鏈濂界殑鏀鏌憋紝娌℃湁鍏磋叮鏄寰堥毦鍧氭寔涓嬪幓鐨勶紝骞朵笖闈炲父娴璐规椂闂村拰绮惧姏銆
浜屻佸︿細鎬荤粨瀛︿範鏂规硶
淇楄瘽璇达紝琛岃屽嚭鐘跺厓锛岃繖涓昏佹槸鎺屾彙鏈閫傚悎鑷宸辩殑鏂规硶銆傚︿範Java涔熼渶瑕佸悓鏍风殑鏂规硶銆傞栧厛灏辨槸鎺屾彙鑹濂界殑瀛︿範鏂规硶锛岃幏寰楀弻鍊嶇殑鎴愭灉銆傚湪瀛︿範杩囩▼涓锛屽寳浜鍖楀ぇ闈掗笩寤鸿鍦ㄥ︿範涓鎵惧埌閫傚悎鑷宸辩殑鏂规硶锛屽苟涓斾笉鏂鐨勬荤粨缁忛獙锛岀‘瀹氳嚜宸辩殑瀛︿範鐩鏍囷紝杩欐牱鎵嶈兘璁╄嚜宸辩殑瀛︿範鐨勮繃绋嬩腑涓嶆柇鍓嶈繘銆
涓夈侀傚簲Java缂栫▼鏂规硶
Java寮鍙戜笌缂栫▼瀵嗕笉鍙鍒嗐傝繖鏄涓绉嶈$畻鏈虹紪绋嬭瑷銆傚畠鏄涓绉嶉潪浜虹被璇瑷锛屽洜姝ゅ繀椤诲叿鏈夊己澶х殑閫昏緫鑳藉姏鍜岃$畻鑳藉姏銆傚寳澶ч潚楦熸槍骞宠$畻鏈哄﹂櫌瑕佹眰绋嬪簭鍛樺湪鍐欎綔鏃惰佷粩缁嗚冭檻锛屽苟涓旈渶瑕佷粩缁嗙爺绌堕愯屼唬鐮侊紝鍏锋湁杈冨己鐨勯昏緫鎬濈淮鑳藉姏鍜屾g‘鐨勫︿範鎬佸害鍜屽績鎬侊紝杩欎簺鏄疛ava鐩稿叧宸ヤ綔鐨勫熀鏈鍔熻兘鍜屽繀瑕佹潯浠躲