聊聊我的选择

大家好,我是鱼皮,前几天看到一位大一计科同学的问题:我想学做 Web 项目,又想学算法搞 ACM,如何取舍呢 ?

ACM 是国际大学生程序设计竞赛,旨在展示大学生创新能力、团队精神、编写程序、分析和解决问题的能力,认可度极高。

这个问题我相信不少同学都纠结过,四年前的我也一样,下面给大家聊聊我的选择。

我的选择

刚上大学的时候,我面对各种编程语言和新奇知识无从下手,也不知道自己适合学习什么。于是大一期间,我胡吃海喝,学了 C 语言、C++、Java、web 开发、Python 等,持续为学校做网站的同时,也在学校的课堂教育和熏陶下做了不少 ACM 算法题目。

吃多了容易拉肚子,这个比喻虽然土但却非常贴切。当时的我就是这种状态,每天要学的东西都很多,再加上算法题目做不出,简直压力山大。时间长了,我竟然都已经麻木了,开始机械性地学习、机械性地刷算法题目,甚至有些做不出的题直接复制粘贴应付了事。

这种高压状态持续一段时间后,我意识到,大学的时间有限,我的精力也有限,一定要 懂得取舍

舍得舍得,小舍小得,大舍大得,不舍不得。

在一番考虑下,我决定放弃 ACM 了,专心去学习软件开发,从此在做项目的路上无法自拔。

原因

为什么放弃 ACM 选择学习 web 和其他开发呢? 对我而言,主要是以下几个原因:

难度

ACM 竞赛专业性强,题目大多数是英文描述,考察数学思维和逻辑,难度较大,不好上手。我在做 ACM 初级题目时就已经感觉非常枯燥了,做的脑阔疼。

而 Web 开发入门相对简单很多,可以即学即练,比较轻松有趣,还能发挥创意做出自己的作品,收获成就感。

对我来说,做 ACM 就犯困,还不如学 Web 开发,起码能有动力学下去。

性价比

学任何知识都需要时间,都要多投入才有收获,所以这里我们只考虑 性价比

ACM 本就是比赛,竞争非常激烈,各种叫得上名号的名校学子、数学天才、算法大牛,想要获得一个能拿出手的奖,要么你很聪明有天赋,要么就投入比别人更多的时间去日常训练,否则你凭什么超过别人呢?

而 Web 开发的学习时间相对自由灵活,也几乎感受不到竞争。当然,不是完全没有竞争,毕竟就业找工作时还是要看你的能力。而且竞争小也未必是好事,容易让人懈怠。

未来发展

在选择时,要先问问自己,对什么感兴趣呢?今后打算朝哪个方向发展呢?是做算法工程师,还是开发工程师呢?

对于任何方向的程序员来说,算法思维都非常重要。虽然多做 ACM 题目能训练算法思维,但是如果你不是想从事算法工程师工作的话,绝大多数的算法在今后工作中是用不到的,甚至求职面试时问的算法题也不会达到 ACM 题目的难度。

的确,如果你能在竞赛中拿奖,成为算法大牛,那么求职面试时录取机会加倍放大;但如果你没有很好的奖项,在平时又没有精力去学习开发知识,只是沉迷于刷 ACM 算法题目,那么在找工作时,你完全处于不利状态。

我从小就想开发自己的软件,梦想搞一番大事业,可谓是年少有为不自卑。在入学时就定下了目标,想从事软件开发方向,因此选择学 web 对我来说帮助会更大。

风险

我高中时数学其实是不错的,但在 ACM 题目和算法大佬面前,仍是一介草民。做学校 OJ 题的时候还好,但是后来看《挑战程序设计竞赛》等 ACM 书籍时,就有些吃力了。看完之后,再做 ACM 题目时,经常还是一道题折腾几个小时仍然做不出,写出了代码也不能完全理解,还老是忘,就很怀疑自己的智力。即使去参加竞赛了,我也是充当背景板或者只是 “到此一游”。

总之,在做 ACM 题目时,我看不到自己的未来,很担心做了半天题目,还是做不出,浪费了时间,搞崩了心态。而学习 Web 开发时,网上资源多,解决方案多,我的进步更平稳。

虽然我在学习上有冲进,但不会为了自己的未来而冒险。

头发

还有就是,我发现自己刷 ACM 题的时候,头发掉的明显比写 Web 时要快,看似合理又很不合理!


虽然我选择了 Web 开发,但不是说建议大家放弃 ACM。其实大一到大二的上学期,多做一些 ACM 算法题目对自己也是很有帮助的,接受过一些训练,以后找工作刷算法会更轻松。此外,不少同学就是对算法、对数学感兴趣或者有天赋,那么参与 ACM 是一个很好的选择。但也千万 不要把一切堵在 ACM 上,还是要抽出时间学习基础开发技能的,多一条路会更稳一些。

关于程序员如何高效学习算法,欢迎看下这篇文章:刷了 1000 多道算法题,一点心得

地址:https://mp.weixin.qq.com/s/LCPMhE1-Bh-XKDU9Re0wkw

最后,无论选择哪个方向,都要努力呀,毕竟越来越卷了。

相信自己有能力,那么你就真的会有!

觉得本文还不错的话,希望朋友们能 点赞 支持下,给俺点创作的动力 ❤️

学妹问,学网站开发还是打 ACM?相关推荐

  1. 学妹问我Java枚举类与注解,我直接用这个搞定她!

    很多人问我学妹长什么样,不多说 上图吧! 学妹问我Java枚举类与注解,我直接一篇文章搞定! 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举 ...

  2. 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(三)

    你好,我是阿ken?? 版权声明:本文为CSDN博主「」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 另外,博文中某些图片或内容可能出自网络,如有侵权或问题,请及 ...

  3. python记忆口诀-学妹问我: 如何提高编程能力

    聊天截图 聊天截图 前言 开局两张图,剩下全靠吹了. 上面这两张图便是写这篇文章的原由. 对话框的另一边,是一位大二计算机科班在读的小姐姐,看似平静的文字背后透露着迷茫与困惑,还对未来的焦虑. 透过屏 ...

  4. python记忆口诀-学妹问我:如何提高编程能力

    聊天截图 聊天截图前言 开局两张图,剩下全靠吹了. 上面这两张图便是写这篇文章的原由. 对话框的另一边,是一位大二计算机科班在读的小姐姐,看似平静的文字背后透露着迷茫与困惑,还对未来的焦虑. 透过屏幕 ...

  5. 学妹问H哥:你是如何平衡工作和生活的?

    作者 l Hollis 来源 l Hollis(ID:hollischuang) 这几天被B站的<后浪>刷屏了,不管别人怎么看,我个人觉得还挺不错的.很多人说<后浪>传达出一种 ...

  6. 学妹问单例模式,我用最通俗易懂的讲解让她学会了

    前记 昨天学妹抱怨专业课中的java 23个设计模式.她问:23个设计模式越看越扎心,尤其是单例模式,有没有什么破解之法.我告诉她 java 23个设计模式看上去多,要挑知识重点并结合程序实例来记忆, ...

  7. 学妹问我:怎么从网页下载所有图片?我答:天机不可泄露

    @Author:Runsen 最近,有一个学妹关注我,想让我帮她把一个网页的所有图片下载下来. 正所谓,私信找我,那是看得起我,虽然不知道是男还是女,这不,我就解决了这个简单的问题. 如果您曾经想在某 ...

  8. 哀嚎遍野!学妹跟学弟分手了,因为JavaEE期末课设SSM太难了!呜呼哀哉!

    期末课设题目亮像,朝野震惊!学霸直呼刺激,学渣大喊:救救我!!! 江老师机灵,一把抓住了端午节的小尾巴,还送来了一个端午节安康大礼包,人送绰号-江湖十八铜人,就是下面的十八个题目! 有的同学还在看我的 ...

  9. 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(二)

    你好,我是阿ken?? 版权声明:本文为CSDN博主「」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 另外,博文中某些图片或内容可能出自网络,如有侵权或问题,请及 ...

最新文章

  1. FRVT赛程全纪录:格灵深瞳全球排名前五
  2. 高效排序算法(希尔排序)
  3. python输入两个整数按先大后小的顺序输出_指针变量:输入a和b两个整数,按先大后小的顺序输出a和b。...
  4. sox+linux查录音格式,linux-使用SOX和sox FAIL格式混合音频:无法打开输入文件`audio_recorded.wav’:WAVE:找不到RIFF标头...
  5. 虚拟机 java 开发_深入浅出 Java 虚拟机 · 通往高级 Java 开发的必经之路
  6. hdu 5631 Rikka with Graph(图)
  7. 94级计算机科学,清华大学计算机科学与技术系
  8. 为保证云应用及虚拟串口功能正常使用,请务必下载安装Windows系统环境补丁
  9. 【计算机组成原理】CPU是什么
  10. python seek_Python 文件 seek() 方法
  11. 四、LockSupport与线程中断
  12. 客服在线咨询工具|即时聊天客服系统下载安装(包含APP)
  13. Shell显示系统时间的全年日
  14. IE8兼容border-radius
  15. 清华大学计算机系哪个专业就业前景最好,清华大学就业率及就业情况怎么样(含就业前景好的专业)...
  16. Unity3D游戏开发中的人工智能AI 简单实例
  17. Android中bindService的使用方法
  18. 【Unity3D】解决LitJson序列化中文不能正常显示的问题
  19. DXSDK_Jun10安装错误解决!/directX安装错误
  20. java为什么需要网络编程,2022最新

热门文章

  1. 胃net的放大内镜_李锐:内镜下的早癌诊断
  2. python如何获取请求的url_听说你在学习:如何通过代码请求URL地址
  3. java 视频 缩略图_如何使用java提取视频缩略图或某一帧的图片
  4. python未将对象引用设置到对象的实例_在Python中使用pingarapi。服务器引发Webfault:对象引用未设置为对象的实例...
  5. 初识java中数组、数组在内存中、越界异常、空指针异常
  6. 从面试的这些细节就可判断公司的好坏
  7. 虚拟专题:联邦学习 | 面向隐私保护的非聚合式数据共享综述
  8. 【软件质量】软件质量
  9. 【C语言】第七章 模块化与函数 题解
  10. 操作系统(八)进程管理——进程同步