数据结构论坛

首页 » 分类 » 问答 » UESTCer研习社编程干货和比赛了
TUhjnbcbe - 2021/7/17 0:34:00

互联网大时代

掌握一门基础的计算机语言

对于现今的大学生尤其是工科学生

已经是必备技能

甚至有很多同学为了寻求高薪

动了转行当程序员的小心思

我们为什么要学计算机语言?

我们应该掌握什么程度的计算机语言?

非科班出身、研究生课业和计算机学习

三者之间的平衡与抉择?

今天,小研挨个帮你解答~

∨01从入门到转行-宇宙机的求生之路

根据TIOBE发布的榜单

(仅反映某个编程语言的热门程度)

可以看出

C、JAVA、Python呈三足鼎立之势且遥遥领先

下边就跟着小研一起看看

当前热门编程语言的攻略吧

C/C++

作为计算机语言的常青树

C/C++号称永不过时的语言

脱胎于C语言的C++更是时代的宠儿

在各行各业都有着广泛的发展空间

作为计算机语言的底层语言

C语言对于绝大多数的计算机编程语言

都有着强有力的支撑作用

难度指数:C★★★★☆C++★★★★★

适用职业:嵌入式程序开发、底层系统编译、C语言开发工程师等

就业指数:★★★★☆

适用范围广,几乎大部分互联网及衍生产业都有需求

推荐指数:★★★★☆

非科班需要对未来职业规划有一定明确目标进行选择

视频教程

《C语言视频教程-谭浩强版-小甲鱼主讲》

推荐原因:C语言逻辑思维和入门视频,主讲人小甲鱼风格幽默,课程有趣不枯燥,且科普性较强,对于非科班的同学学习C语言入门有很不错的帮助。

《C++语言程序设计(下)——从C到C++》

推荐原因:课堂式教学,国家精品课程,教学质量有保障,课后习题和例题讲解深入,有利于更扎实的基础学习

参考书籍

《TheCProgrammingLanguage》

(C程序设计语言)

推荐原因:最为经典的C语言学习详解,有关于C语言的任何基础部分都可以在这本书里找到解答,是新手学习C语言唯一的“圣经”。

JAVA

JAVA是目前世界上最流行的计算机编程语言

在所有软件开发类人才的需求中,

对Java工程师的需求达到全部需求量的60%~70%

如果你想通过学习一门计算机语言

获得理想的工作

JAVA绝对是最完美最具性价比的选择

难度指数:★★★★

相较于C/C++,JAVA在语言和逻辑方面更简单一些

适用职业:网站开发及运维、JAVA游戏开发、电子商务运维

就业指数:★★★★★

JAVA属于目前主流语言届就业求职当之无愧的NO.1

推荐指数:★★★★★

绝大部分公司的招聘岗位一定有JAVA一席之地

视频教程

《Java零基础教程视频(Java初学入门)》

推荐原因:普及性强,对0基础的同学学习十分友好,讲解有趣并易于理解,但是涉及到的内容较浅,某些细节部分可能需要课下自我发掘,适合有自我学习方法的同学

《尚硅谷_Java零基础教程-java入门必备》

推荐原因:讲解细致,面面俱到,课程习题结合较好,学习周期较长,对学习时间要求较高。

参考书籍

《HeadfirstJAVA》

推荐原因:初级小白入门书籍,如果你没有学过其他语言亦或是转行到计算机行业,可以先看看这本书。这本书图文并茂条理清晰,非常容易理解,练习也足够,可以让你一口气读很久而不会觉得有什么地方遗漏或者根本没记住。而且这本书可以让你从语言基础开始一直学习到包括线程、网络与分布式程序等项目,最重要的是,你将学会如何像个面向对象开发者一样去思考。

《JAVA编程思想》

推荐原因:升级打怪进阶书籍,所有的Java学习者都无法避开的经典之作,被誉为全球最好的Java书籍。不同水平的人读这本书也会有不同的感觉,初学Java的时候也许会觉得学的非常慢,当你编程了一段时间之后再看这本书,你就会发现,你编程中遇到的问题在这本书中有很多的体现,这时候大概就是你进阶的时候了,你读这本书也会变得比从前轻松和愉快了。

Python

因其有着独特的简单主义思想

让语言本身不再晦涩难懂

人工智能、机器学习大行其道的今天

是Python在背后提供着语言技术支持

不仅仅是计算机互联网相关产业

富有无限可能的语言

正带领人们开创新的智能未来

难度指数:★★★☆

相较来说,Python代码更易理解,逻辑更符合人脑思维

就业指数:★★★★★

Python更多是作为职业的一种辅助性技能而非主力

推荐指数:★★★★★★

可以理解为,即使你不想成为一个程序员,Python也一定能帮助你在应聘中脱颖而出

视频教程

《入门到精通(Python全栈开发教程)》

推荐原因:视频时长较短,适合新手片段式学习,不需要花费很长时间就可以很好地学习入门知识。适合非科班无语言基础的同学进行入门学习

参考书籍

《Python编程:从入门到实践》

推荐原因:针对所有层次的Python读者而作的Python入门书。全书分两部分:首部分介绍用Python编程所必须了解的基本概念,包括matplotlib、NumPy和Pygal等强大的Python库和工具介绍,以及列表、字典、if语句、类、文件与异常、代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python2D游戏开发,如何利用数据生成交互式的信息图,以及创建和定制简单的Web应用,并帮读者解决常见编程问题和困惑。

Golang

相比于上面所提到的语言

Golang顶多算得上是一个后起之秀

出生名门,却名声不显于外

Golang的设计追求极致简洁易学易用

在云计算领域有着显著优势

难度指数:★★★

Go语言的出发点就是以简单为主,学习难度并不高

就业指数:★★★☆

目前国内Go语言并非主力军,就业面略窄,但上升空间很大

推荐指数:★★★★

未来可期,无论国内外,Go语言都是值得期待的舞台

视频教程

《Golang学习手册之带你21周搞定Go语言》

推荐原因:目前来讲,国内针对Go语言的教程较少,整体行业处于上升期,是一个不错的选择。

参考书籍

Go程序设计语言

推荐原因:同样是英文翻译而来的启蒙式语言读物,相对而言更加推荐英文原著进行学习,Go语言被誉为21世纪的C语言,而这本书的作者也同样是《C语言程序设计》的原作者,中文翻译相对而言阅读体验较差,而书中众多的实例,也可以迅速帮助读者有一个较为深入的理解。

02语言三问

1、为什么要把C语言作为计算机语言入门?

C语言相对于其他语言对底层逻辑架构有着更高的要求,目前已知的大部分新生语言,C++、JAVA,C#等,都是从C语言本身衍生而来,而python、swift等「现代」语言,从一开始就都依赖于「面向对象」的概念,这对于零基础的人来说并不容易。特别是其中大量的概念词汇,对于非英语母语的学生难以理解。

2、两大巨头C++和JAVA,孰优孰劣?

Java目前有两个方向,一是Web,而是Android。C++的优势是在桌面程序开发,尤其是在游戏开发上,C++的优势极其明显。Java属于快餐化编程,主要是在Java平台上开发应用程序,而用C的多数是嵌入式开发的软硬件通吃的工程师,小到智能玩具,大到工业设备过程控制。C虽然看似很单薄,没什么内容,但硬件原理,可没那么简单,至于C++,只要对运行效果要求高,没有太多的跨平台要求都会选择,比如大型网络游戏或者软件,很多游戏引擎都是基于C++上的开发包。从目前市场看是C++(钱多),但C++学习时间成本比java要高的多.C++必须要学数据结构(想要有点钱途的话),但数据结构比任何一门编程都要难的多。

3、Python为什么这么火?

Python仍旧是目前IT就业市场最受欢迎,最热门的技术技能之一,且容易上手,学会了python,可以大幅提高IT人的自身竞争力。并且Python天然适合和数据打交道,对数据的处理相对其他编程语言也是比较方便,内置的数据结构也比较少。但是,Python并非一个新兴产物,它诞生于年,却在今天才火起来,这跟时代的发展是密不可分的。Python在数据分析,深度学习,人工智能等目前热门领域的优势才是真正原因。

4、Python这么难找工作,是否只是一种短暂的“网红”语言?

一是因为这两年人工智能火热,Python简洁,库多,易上手,成为AI从业者的得力工具,而作为一个工具,Python在大量项目里都有应用,在运维、机器学习、数据处理中都是中坚语言。每个时代有每个时代的发明、创造,有每个时代的新技术、新手段,我们需要做的是先活好当下,抓住当下,也只有这样,才有可能在此基础之上、在有余力的情况下,去影响未来、去创造未来。

5、Golang在国内冷门是否不好找工作?

目前在国内,有不少大公司的架构都是使用Golang作为主力开发,这里不乏像腾讯、字节跳动等知名公司。所以它的工资待遇也不低。和java等老牌语言相比,golang年轻是面试的一大优势。而Golang领域,僧少粥多,竞争压力相对较小。目前Golang工程师需求量大多集中在一线城市尤其是北京,相对而言工资较高。

6、Golang适合做什么工作?

Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。

03战舰起航-少年的屠龙术

计算机语言日新月异

自学成才终究是纸上谈兵

书籍和视频里的参考例题寥寥无几

学会了屠龙术却困于无龙

我们该如何寻求编程能力的提升呢?

GitHub

GitHub社交化编码的理念伴随着开源运动

改变了全球开发社区生态

是目前全球最大的开源软件开发与管理社区

可以称得上程序员专属的Fackbook

资源涵盖面广,交流学习方便高效

美中不足的是

全英文外网国内访问存在一定困难

需要较高的英语水平

开源中国

中国版的GitHub

相对来说最大的优点是中文交流

开源项目更贴近中国开发者的需要

虽不如GitHub全面

但在初期学习过程中还是可以受益颇丰CSDN

学习了数值分析的同学对这个网站并不陌生

更适合新手学习的乐园

博客式分享设计

可以更轻松的进行搜索和分享

基本上自学路上大部分的问题

在CSDN都可以搜索到答案

Leetcode

高考有黄冈密卷

考研有肖八肖四

想要成为一个优秀的程序员

刷题也自然是不可避免的

无论是腾讯微软大厂真题

还是自学练习提升

Leetcode网都是全球码农的最佳选择

牛客网

相对来说

牛客网无论是题库数目还是质量

都远远不如Leetcode这个全球性网站

但牛客网在很多时候是作为国内大厂机考的指定考点

所以如果想要应聘大厂

在牛客网刷题提前适应相应题目

可能会更有优势

大赛篇

刷题刷出来的技术

终究是要用实战来检验的

解决实际问题才是学习最终目的

针对各大高校在读研究生

每年都有举办大大小小的竞赛

积极参与积累经验

对于编程水平的提升以及解决就业也是不可或缺的华为软件精英挑战赛

每年的3月至5月期间举办

每一届的考题侧重点也有所不同

一般要求C++、JAVA、Python语言编译

华为软挑赛实战性强

极其考验选手的逻辑思维能力

不仅有丰富的奖励

还有机会晋升华为“天才少年”

中兴捧月挑战赛

与华为软挑不同

中兴捧月算法大赛是个人赛

仅限个人参加

而其题目也更偏向于算法优化方面

同时加入了Matlab语言

是一次很好的个人锻炼机会

有意向的同学可以作为一次尝试

中国软件杯大学生软件设计大赛

(报名进行中)

报名截止:5月30日

报名链接:

1
查看完整版本: UESTCer研习社编程干货和比赛了