通过编程学英语 2021-07-06 07:45 采纳率: 100%
浏览 39
已采纳

前辈们,我现在大一,跟着学校课程学了c语言,大概学到了链表那一块(建立,应用),想问下各位前辈,接下

前辈们,我现在大一,跟着学校课程学了c语言,大概学到了链表那一块(建立,应用),想问下各位前辈,接下来我该干什么,找本书看,还是直接去力扣刷题,如果是前者,有无推荐的书目呢?
  • 写回答

4条回答 默认 最新

  • include_iostream_ 2021-07-06 11:11
    关注

    我本人还是学生,跟你讲讲我的前辈的看法吧:
    看你的个人追求。对C语言教得比较弱的学校而言,一个学期才刚学到链表,有点慢了。当然,如果你们学校是顶尖985,对原理讲得特别细,就另说了;对于不在乎原理只在乎能用的情况,一般到刚接触程序设计的至多一个月就应该学会链表、队列、栈。如果对熟练掌握C的完整语法有要求,那这差不多是小半年的工作量,再加上二叉树和堆,应该是足够的。现在我先假设你在接下来几天内很快学会了队列和栈。
    根据你目标的不同,下一步是:

    1. 如果你希望深入了解数据结构和算法:
      这种情况下当然是优先学习二叉树、堆、图论基础,至少要学到最短路。刷题最好是vjudge(不要刷leetcode,那是工作方向的,和竞赛方向考的算法重合度比较低),题目覆盖比较全。并查集什么的必须学会,《算法导论》中的绝大多数算法是竞赛常考算法,但要有针对性地进行训练的话,还是要考虑刘汝佳的书。初学阶段是会用算法就行,之后再去了解其性质和证明。
    2. 如果目标是找工作:
      这种情况还是可以考虑直接上手leetcode的,面试公司更在乎你的思维能力而不是照着板子抄的能力,而leetcode有很多思维题;像vjudge那样的非常数学的算法题,反而比例不是特别高。找工作的话,最好从一开始就了解各个算法的性质,比如时间复杂度和主要适用场合。(做同一件事的算法往往适用于不同场合。)
      此外,找工作的话,建议不要用C/C++,用这两门语言的岗位一般要水平较高才能拿到比较高的工资,其中需要付出的努力是非常大的。想要比较容易地拿到offer的话,还是要考虑java;python由于算法岗用得多,我个人认为也不算太容易拿到。但C/C++学好的话,或者基于py的前沿机器学习算法学好,完全可以拿到比java岗还要高很多的薪资。此外,前端、后端、运维等等岗位的待遇和门槛都不同,最终还是要具体问题具体分析。
    3. 如果目标是考研:
      我认识的人里边,成功考研的人不多;一般的看法是,多数学校问的算法不会太复杂,对语法也不会要求太高。严蔚敏的书吃透了,通常就足够(但要特别说明,对除了应付考试以外的任何场合,严书数据结构都是最劣的选择。市面上我从没听说过哪本讲数据结构的书写得比严书更糟糕,但比严书好的则多的是。严书成为考研标准,我认为完全是遗留问题。严书最糟糕的一个问题,我认为就是把数据结构思想和C语言强绑定,导致许多学生形成思维定势,其实这对于正确算法思想的形成是极为有害的)应付考研初试中的基本原理性问题,但目标高的话还是建议跟着其他资料进行系统性复习。
      保研的话各个学校政策不同,就不展开了。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 7月16日

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法