作为新手的我

作为一个传统的学生,经过传统的体制,走进大学,走进计算机的世界


        大学这三年,我只是跟着课本走,一遍嫌弃着大学的老师,一遍为挂科而惶恐。。。

        修完该修的学分,上完该上的课。我的三年就结束了。然而,我对计算机世界的理解,和大一没有什么区别。。

        今天,面对找工作,我才意识到我该重头再来。

        再刷知乎的过程中,我发现了一篇文章《 给新手程序员的一封信 》 

       觉得受益颇深。
                            (1)算法和数据结构
                                                   我在学习的过程中,老师教过一句话   程序= 算法 + 数据结构   。因此这两个词给我留下很深的印象,觉得我一定要学好算法和数据结构。大一便参加了学校的ACM ,凭借刷题进入了ACM俱乐部。便开始我的算法之旅。培训多半在周末,基本上没这么去,有几次空闲,就去参加培训,记得当时讲二叉树,背包问题。渐渐的我对算法便蒙上了一层阴影,觉得算法课好难,好难。。。。。接着大二下学期,我学习完数据结构这门课,老师讲的很不错,觉得一定要学好。在大二的暑假,我在家看 学习视频  和 《算法导论 》,结果还是没有坚持下来,导论里的推导挺难懂的


                          那么问题来了,数据结构和算法 是 不是 应该 一次性 把所有的东西学完 ????

                                         “ 一开始,先不要管算法和数据结构。大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后找一些相关的论文去理解算法并动手编程实践。如果没有现成的函数库(其他程序员提供的可重用代码),你用自己喜欢的编程语言来实现它。“(《 给新手程序员的一封信》)
                                    
                                        的确,我刚开始并没有什么编程功底,便开始学习二叉树和背包问题 (实际上,等到大三算法课的时候,老师花了两节的时间讲背包问题,还是有很多人没有听懂,当时我们已经有一定的编程基础 )。我开始的起点有点过高。数据结构在一般的小程序中并没有体现他的价值,等到程序复杂以后基本上都可以看见他们的影子,或者说他们是不可或缺的。我们在编程中一遍学一遍用数据结构,往往效果要好一点。等用熟练以后,在看他们的理论部分其实会好懂很多,所以我们学校大二才开始数据结构(可能我的学校并不是好学校,可能好学校,会开课开得更早)

                                       关于算法,我这条路走的也是很悲哀,算法导论的证明虐我千百遍,我待算法如初恋,算法导论真的是一本很好的书,并且,他也真是一本入门书,前提是你不要太在意细节,关于数学推导证明,刚开始最好跳过,首先,先实现,凭借自己的理解,动手实现,这些算法在以后的编程中很有用。并且,如果你以后的发展方向并不是想研究算法,其实也没要去关心他的证明细节,我们要理解算法的O(N),懂得在什么时候选着不同的算法,来提高程序的效率,这就差不多了。



                       (2)选着入门语言

                         我但是学习的第一门语言是c ,因为这是学校开始第一门和计算机相关的课程——C语言程序设计 。。我们教C语言的老师是一个挺漂亮的女老师,所以特别喜欢上她的课,c在当时的印象中也没有很难学。学习C语言,对当时的变量的作用域,还有指针,还有文件的读写 并没有理解,学校考试也没怎么考比较难的知识点(我学校就是这么有爱 ,难的不考,只考简单,你会什么他就考什么),接着 大一下就学习c++ ,还是那个女老师教,但明显感觉比C语言难,什么虚函数,继承,多态 ‘····。大二上学期学Java  ,老师 关于 Java 虚函数,多态,继承 ,没有多讲,本来也没有多少课时,当时,主要给我打开了一扇门,就是数据库,课Java界面,程序开始不再是黑框框,而是界面,我开始了拖控件,好无聊,这就是我学的三门语言,为啥是这三门,因为火。。自己大一自学了HTML+CSS  还有PHP 。当时做过一个小学生学数学的网站,用的是新浪的服务器  觉得自己缺乏美感,在做网页没前途  ,所以放弃


                      那么问题来了,我们开始学什么语言比较好
                                      “今天C(或者C++)不是能够快速编写软件的语言。毫不偏袒的说,我建议你学习一种动态语言。选择一种你觉得语法(文档)让你使用起来更舒服的编程。让编程更容易。更快地完成自己的作品并且能够看到成果,才是激励你编程的源动力  ” (《 给新手程序员的一封信》)



                                       普遍认为Python 不错,他帮我们简化很多东西,让语言多我们更加友好,学起来更方便。实际上我没有学过Python(目前没学),以后可能会学,我只谈谈我对C语言的感受,当时,我做的第一个是学生成绩管理系统,大概做了三四遍 。这就是我C语言的最好水平,我只对函数感受挺深的 ,但貌似C语言读文件,我现在还不是挺熟练,每次还得从网上找代码,记不住,说明写的少


                                      (3)编辑器

                                            我所用过有IDE    C语言  vc6.0   vs  ,  Java   eclipse  myeclipse  ,
                                                           编辑器  editplus    nodepad++
                                              
                                           “  编辑器对程序员而言,就是像是弓对弓箭手一样重要。这里有一些推荐的编辑器  ” (《给新手程序员的一封信》)

                                              IDE确实给我们很大的方便,但还是得熟练一个编辑器 他小,对于电脑要求不高,打开文档,编辑程序超方便,比如我的电脑没装内存条时,打开vs 等半天 ,还是配置低,当我们只需要修改一部分时没必要用IDE ,并且,他 同时可以 编译 c java php 超方便




                                                                                                                                把他当故事看,没有什么实质性的内容,以上均是看完《给新手程序员的一封信》的感受  ,
                                                                                                                                                                                                    




                 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值