开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 87|回复: 1

想往软件开发方向就业的同学,应该如何学习?

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-12-3 18:37:32 | 显示全部楼层 |阅读模式
欢迎私信联系作者交流
对那些目前正在计算机类专业学习,以后想走软件工程开发方向的同学来说,在校期间应该如何学习?

聊具体实施路径之前,我们先聚集讨论清楚一个事情:大学学习的目标是什么?对绝大部分把自己发展方向定位为软件开发方向的人来说,是工作,即考研,最后还是工作。
这么简单的事情,为什么要先明确?因为大多数同学的迷茫来源于这里,比如,有还在上大二的同学问我,听说程序员有中年危机?
还没入行,先担心起来十几年后的问题了。不是说这类问题不应该思考,而是离自己太远的事情思考太多会“思而不学则殆”。
很多人确实在想这些问题,但只是基于网上自毁体的只言片语,还有知乎上键盘侠提供的一些极端言论,然后自己总结出来一、两句似是而非的结论。
如果涉及到个人发展这么长期而复杂的事情,可以在网上刷刷帖子,然后用一、两句描述清楚,那这世界也太简单了。

除了中年危机,类似的问题还有很多,比如:加班多不多,会不会损害身体健康,甚至我到底喜欢不喜欢、适合不适合做软件开发?
IT领域站在时代的浪潮之巅,是我们从业者的幸运,也招来了各种物议,读我文章比较多,或者有过交流的同学应该都能感受到一种淡淡的“平和”。来源于哪里呢?
工作十几年,经历过大大小小各式各样的公司之后,我知道:这个行业不好也不坏,这个行业有它的问题和优点,甚至这个行业跟所有行业一样,有中年危机,有损身体健康。但有一点不会变,对比其它行业而言,这是一个更加公正,待遇更高,职业机会更多的行业。

在这样的一个判断之下,我们需要在讨论具体如何学习之前,达成一个共识:我们大学阶段的学习目标要聚焦在找到更好的公司,拿到更多的offer。
基于这个共识,我们很容易推导出一个结论:看校招面试时注重候选人的哪些能力,我们刻意培养就好了。

校园招聘的面试考察点聚焦在三方面:理论基础、实践能力、综合素质。

第一、理论基础。
这个是很难精确衡量的,公司招聘时为了快速筛选出目标候选人,一般的方法如下:

在笔试、一面、二面时回答一些常规的数据结构、网络、微机原理、算法等方面的题。
应对这种考核方式的话,除了日常的理论学习之后,其实还有个高效刷分的窍门,就是在面试前几个月开始刷题,像Leecode这种。

通过一些常见的实践问题逐步深挖来确定候选人的理论积累厚度。
比如,通过浏览器加载页面过程、手机App消息推送等方面细节描述,查看候选人对网络的理解程度。或者通过Java工程开发中常见的慢SQL,从问题排查、索引设计、到索引原理等,考虑候选人对数据库的理解程度。
应对这种考核方式的话,最关键的是要在实践过程中善于深挖,使用一个工具、遇到一个问题时,要多思考背后的原因。并以这些问题为切入点,以点带面,系统地补充对应理论知识。
除此之外,对日常软件产品的一些基本特性还要保持好奇心,多思考他的实现原理,拓展自己的视野。比如,当大家惊奇于抖音的推荐精准时,我们可以看一看主流的推荐算法;当收到微信消息提醒时,我们思考一下微信怎么实现10几亿人在使用App可以快速收到消息;当电商平台促销打折时,我们找一找他们的瞬时高并发、库存超卖等问题是如何解决的。

第二、实践能力。
这方面的考察相对确定性更强一些。
候选人稍微讲一讲学校期间搞的项目,做过的模块,使用的技术方案等,面试官基本就能判断出来候选人的实践水平。
实践能力强当然受欢迎,比对,对于主流的框架熟练使用,对于常见问题知道如何实现等,这些需要足够长的实践时间和足够多的实践项目才能刷出来。
但更重要的是,对于做过的东西,能够扎的比较深。比如,用过的中间件能够熟悉它的基本原理、场景、优缺点,解决过的问题能够想得比较透彻,而不是局限于解决掉当前问题。
简单来说,对于实践能力这个考核点,做了多少很重要,做一个精一个更重要。

第三、综合素质。
这里一般重点会考察几点:技术热情度,学习能力,团队协作能力。
这些很虚的东西,相比前面两项,都是无法量化出来的,更多的是靠面试官自己凭经验得来的感受。比如,处理技术问题时,是被bug逼着走,还是主动挖掘;对于主流的常识性技术方案、框架是否都有了解;通过沟通判断是否愿意与其它人共赢拿结果等。

以上,简略地讲了讲校园招聘时面试官考查的几个核心问题。
当然,这不是通过几篇文章能够完全讲清楚的,只希望给大家一个精略的框架,形成对正确的认知方向,具体更细节的东西,欢迎入群交流,或与我加微信(wudingxingguang)私聊。

对于大学期间长达几年的学习过程来讲,找到务实,并坚信的目标是特别重要的一件事,只有相信这个目标,才能基于这个目标拆解出切实可行的学习计划,并坚持下去。这是破除迷茫的根本方法。
因为具体的学习路径相对比较固定,更难的其实是坚定信心,而信心来源于信息获取、成熟的思考。
对于一个待在校园环境中的学习来讲,如何获取软件开发领域内的信息,并形成较为务实的思考方式,从而驱动自己进行更有效的学习呢?
这绝不是通过看书、读知乎帖子、看B站视频,或与周围同质化的同学们聊天来解决的,更需要的是与专业人士进行更多的碰撞,比如,通过实习、应聘(即使失败也无所谓),或者与业内人交流,来切身感受到行业的现状、发展、变迁,并让自己思考问题时更加客观、全面。
回复

使用道具 举报

0

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2025-3-22 11:46:46 | 显示全部楼层
前排顶,很好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-4-7 11:27 , Processed in 0.081751 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表