感谢bobo老师,同时求建议
来源:15-8 匹配问题小结

讲武德的年轻人
2022-10-09
bobo老师,向您报告个好消息。我收到了明年夏天的美国亚马逊SDE实习offer。从二月开始从零学习java,也同时在慕课网上跟着您学习了算法与数据结构、图论和力扣刷题等几门课,受益匪浅。没有您的课程和循循善诱地解惑,我不可能进步这么快。
但是我现在也困惑于下一步怎么走。美国这边的sde实习面试比国内简单,不会涉及八股问题,所以我基本上只会用java刷题,连基本的ood也是迷迷糊糊。而明年实习的最高目标肯定是获得return offer。因为我不是CS科班出身,网上查了不少资料,也听了一些别人的建议,感觉面临的选择很多,想听听您的建议。因为亚麻逊最大的语言是java,所以我开始的想法是系统学下java以及重要的框架,比如Spring/Springboot这些,还有前端和后端的一些技术栈,比如JS, nodeJS等。同时也掌握一些开发工具,比如java的IDE/VS code/Git的使用等。但是,也有一些同样困惑的同学想从基础学起,比如学习C语言,然后操作系统、编译原理、计算机网络等。我的想法是,这些课程很重要,但是更像是CS学生的内功,对于将来去实习的学生来说,可能不会涉及很多这种基础的东西,更多的还是在现有框架上做项目。所以,首先学习这些艰深的东西会不会在这个阶段浪费时间?我也不确定自己的想法是否靠谱,所以想听听老师的建议。谢谢您!
1回答
-
liuyubobobo
2022-10-10
恭喜你:)
以下完全是个人意见:
1)首先,对于你来说,前端和后端的技术栈不要一起学。选择一个主攻。根据你的描述,后端比较合适。
2)在你的描述中,OOD 应该学;一些常用的工具应该学,比如 git;正则表达式;SQL(学习 SQL 不等于学习数据库,但学习 SQL 是学习数据库的第一步);一些 UNIX / Linux 的命令行的使用(学习命令行的使用不等于学习操作系统);等等;
3)编译原理肯定不用学。计算机网络/操作系统/体系结构,我同意不是你的当务之急,时间紧可以不看。如果有兴趣,有时间,按照我列的这个顺序看:计算机网络/操作系统/体系结构 这个顺序,计算机科班学习可能正好用反序。因为计算机科班通常是自底向上学习的;但是从实用主义的角度讲,自顶向下学习最“快”。当然也和每个人的学习习惯有关。但整体这三个领域,计算机网络可能实用性更强一些。
4)猛地看,有两个你没有提及的领域,我觉得有可能也比较实用。一个是数据库,一个是分布式。(对于大多数本科生乃至研究生来说,直接学习分布式有些抽象,从实习的角度不是必须,但可以先学习一些和并发编程相关的知识。)
5)以上是我对你学习基础方面的建议。也需要看你的时间来做具体的决定。
至于具体要学习哪一个框架对于你来说是当务之急,你可以看一下能不能联系你实习部门的 leader 一类的问一问。(很有可能你所在的组并不使用某一个市面上的成熟框架。)另外,其实你现在提的这个整体问题,都可以和你现在的实习部门的 leader 或者同事做沟通。
6)放平心态,能不能拿到 return offer 其实不完全是技术实力问题,和大环境,你所在的部门状况,等等都有关系。而且在实际工作中,沟通等表现等也很重要,而不完全技术。但是整体,你有了实习经历,就已经踏入这个行业了,大不了重新找而已。不要想太多。尽力而为,实习期间尽力做好自己的工作就好。
再次祝贺你。继续加油!:)
022022-10-13
相似问题