DMT Summary
Raspberry: 客户端Swift + 前端 -> 全栈,26Fall NYU MSCS,AI Coding 探索中,爱好iOS开发。如果你对开发(尤其是比较冷门的iOS相关领域),以及留学美国等等感兴趣,欢迎和我一起交流技术、实习、黑客松相关、升学以及未来在美生活等等。联系WeChat: ms2855190178
校内课程
上课的方面我没什么可以说的,我的绩点太低了🤣。关于dmt专业的课程设置,其实覆盖面比较广,学的也比较杂,但是换句话说,无论是主攻硬件还是软件,其实专业课设置都是不够全面的。硬件不评论,如果是主攻软件方向,可以在学校课基础上再去学学操作系统,算法,软件工程相关的内容,这些都算是软件开发方向的基础必修课。后续如果逐渐深耕开发领域,会越来越意识到这些基础知识的重要性。不过到那时再去了解也是可以的,总之自己在学习时有意识的去了解一下相关的内容,在开发的道路上也会走的更从容。
此外,不建议通过西浦ESS(额外必修课)来学习算法,操作系统,软件工程等内容。因为首先算学分,期末多一门考试,学习压力更大;其次抛开这些不说,最主要的是西浦课程质量其实很一般……我觉得除了大一的数学,CCT(其实CCT虽然水课,但是相当一部分老师都很有水平,有心思上的同学还是很建议去上的,尤其是Chongjie Xu,徐崇杰老师),以及CAN207的Zhao Wang老师,这些课程和老师的质量我认为是西浦之光水平的,其他的课都很一般。所以其实通过B站大学,或者公开资料,知识星球等等,自学就好了,并且也没必要盲目,无头苍蝇一样的乱学,后续在学习旅途中,需要什么就学什么,路线会更清晰一些。
还有就是,GPA很重要!!无论是什么课有多水,拿高分才是硬道理。分数是能直接决定你申研学校层次的,其他软背景统统都不重要!除非你本科直接工作那成绩确实没啥用。
实习
关于实习,我认为,首先确定方向很重要。当下开发向其实就几个大类:后端、前端、客户端、测试,还有个比较特殊的算法。最主流的方向就是前后端:后端最卷但是后续可发展空间很大;前端会更好找实习更好就业(因为没那么卷),但是发展空间和路径相对于后端是没那么丰富的(所以挤破头大家都想去后端)(但其实AI当道,未来这两者的发展也并不好说)。对于其他方向,测试不讨论,算法一般比较吃学历和科研经历,西浦本几乎不可能。
我可以在这里着重说下客户端:客户端是传统开发(也就是前后端,iOS或安卓(最近出现的鸿蒙也是,但是岗位很少),广义上其实和前端算一类)中最好找实习,也是大厂最缺人的一个岗,尤其是iOS(因为没有人学🤣,没有新小登)。在移动互联网爆发的时代(约莫10年前),那时候客户端爆火,会UIKit的人才一票难求,现在今非昔比了()客户端一方面原生(UIKit, Objective-C, Swift, Android就是Java)的有需求(虽然其实很少了),另一方面需要更多的是跨端相关,比如Flutter,KMP,React Native,以及混合开发相关的内容。还有一些厂会和前端进行融合,叫做泛前端/大前端,那可能就会以前端技术(H5/react/vue)为主,同时需要了解一些原生,跨端的内容。此外,还有一些比较高阶的,比如音视频开发,短视频流媒体横行的时代,音视频开发也是比较重要的一个方面。这是客户端领域可以发展深耕的几个方向。
对于实习方向,我更推荐还是前端或者后端。至于二者如何选择,一方面看兴趣偏好,另一方面就从竞争力度、未来发展等多重因素综合考虑,如果想快速找实习,更推荐前端;想要更深入发展,深耕软件工程领域,有毅力有意志力可以怒卷4年,更推荐后端。
在AI的冲击下,尤其是Claude Code,Codex为首的Agent编码工具的飞速发展,未来SDE的发展可能更倾向于全栈,前后端都要会,这个可能是对未来SDE的一个基本要求:基本的全栈能力,和熟练的AI & Coding Agent 运用能力。因此会用AI在当下也十足重要。如果感兴趣,可以尝试用AI vibe coding一些小项目,可以是小工具可以是app可以是网站,来解决自己日常生活中的一些需求痛点。可以的话努力做上线,了解一些app发版、前后端服务部署等知识,也会有所收获。
无论前后端,首先要让自己有至少一个语言框架是足够了解,足够熟练的,有核心竞争力的,再去慢慢学习更多内容慢慢去全栈(换句话说,如果不急着找实习的话,先学前端后端都无所谓,重要的是先学,后续再学其他的内容)这个我认为很重要。你可能有了解过一些信息,所谓“前端已死”“AI即将取代程序员”这些其实都是放屁,搏流量传播焦虑的垃圾内容。不论AI有多厉害,能多赋能自己提升效率,自己的核心竞争力一定不能丢:可以是前端某个框架,可以是所谓没人用的SwiftUI,jetpack compose,可以是烂大街的Java + Spring,什么都可以,这是你基本能力,和对开发有基本理解所必须的东西,并且还可能让你在实习时有一些意外的收获。拿我自己为例,正如我说过的,我主攻“冷门,没前途,客三消”的客户端iOS方向,但是25年在美团实习的时候,因为我有iOS开发经验,以及相关的调试经验,我独自own了一个相关的需求,并独立负责调试开发任务,以及和对应部门对接等工作。因为我们是前端组,组里只有我会iOS🤣,后来还总结了文档方便后续同事进行相同的调试工作,有所参考。也因为这个,我一个实习生,却在整个组里占据了相当重要的位置,很受部门大leader,组leader和mentor的器重。(哪怕我前端技能其实并不是很厉害,很多都靠AI),这就是核心竞争力的体现,当那个所谓“小众”的技术和能力真的有需求要去应用时,你就会发光发亮。
对于实习准备,一方面是自己方向的基础知识,另一方面就是八股(计网,操作系统),还有算法。算法可以去搜索“代码随想录”跟着做即可。
对于实习入门,可以先去看boss直聘,找找自己感兴趣的岗位,看看岗位描述,工作能力要求,会更有方向;然后看看牛客,上面会有大量的实习面经。
公司推荐的话,第一份实习可以从初创团队、学校周边中厂去找,比如思必驰,有不少XJTLUer在那里实习过,还有同程旅行也是一个不错的选择。
科研
对于科研,其实西浦没什么科研资源,好老师好实验室全跑完了。不过如果你执着于科研,我可以给一些我的见解。
1️⃣奔着升学申研去的:那我建议你不要执着,因为很大概率你会什么都得不到。如果你并不喜欢做实验写论文,这些可能和代码关系不大(当然肯定会有代码,只是没那么强相关)的东西,那你会过的很痛苦,并且对升学的作用也微乎其微。当然,你可以以这个初心去找教授找实验室,去尝试参与一个项目,深入了解后再确认自己要不要做。多尝试都是好的,大胆去尝试就好。
真只是升学的话,SURF参加一个暑假水水得了,英国香港可能会认一点(其实意义也比较局限)
2️⃣有自己的idea,想去搞科研,想未来读博:那就大胆去。虽然客观来说,西浦并不是一个好的科研平台,现在SAT资源其实并不是很丰富,但是你可以作为跳板,积极去校内实验室做项目,和教授以及博士生打好关系,有一定成绩后(比如发刊,能拿个二作甚至一作,idea多能落地,本科生发一作也不是不可能,当然在现在的西浦确实不容易)在春季的时候多去套辞外校教授,去拿更好的学校更好的实验室去做暑研,慢慢的再去参加顶刊会议,connect更多教授……都是有可能的,但是不得不说在现在的西浦这条路很难。如果你是先天读博圣体,那大胆去!
关于如何进实验室,一方面老师会在他的lecture宣传,多主动和老师交流;另一方面西浦官网-教研人员,搜索对应方向对应老师,直接发邮件发简历;还有就是通过SURF。
竞赛
竞赛我个人的建议是,在能力范围内,多去参加多去参与,什么黑客松,蓝桥杯,数学建模,甚至校内的那些图一乐的校级竞赛,都可以去积极参加,不管水不水的,去就行了!
为什么?因为一方面参赛经历,获奖证书这些固然重要,竞赛含金量将和你的简历含金量挂钩(其实也不是多重要,聊胜于无),另一方面,更重要的是你有所收获,以及connect更多的人。你可以在这些经历中结识更多的厉害的、志同道合的人,不局限于自己的小圈子,不局限于专业,不局限于学校甚至不局限于苏州,去进行“向上社交”,这对你的能力,不只是技术能力,还有你的认知,对整个计算机领域的理解,都有积极作用。
我个人很推荐打打黑客松,尤其是国内最知名的一个:AdventureX,两次参加印象都很深刻,并且在场也有好几个XJTLUer一起参赛。对于这类竞赛,一方面是赛道主题,自己团队做项目,另一方面也是同样重要的是,你可以认识更多人,了解更多事,去了解当下的发展趋势,最新兴的技术,大模型,等等,这些是真的可以受益匪浅的,甚至影响你后续发展的。包括一些展会,像阿里云栖大会,LET’S VISION,这些也会让你学到很多东西,所以一定要积极参加这样的活动或者竞赛。