Simon

Simon

@Simon

  • studio Post #1

    一。初衷

    lz 在本科去北京上海实习期间,震惊于大城市里很多远不如西交的学校的同学都能很容易早早去公司实习,而西交的同学却少得可怜。lz 认为根本原因是大多数人没有这个意识,也不知道该怎么找实习,因此写了这篇文章。

    二。本文面向对象

    1. 想找实习但是不知道怎么找的同学,或者干脆就不知道该干啥的同学。

    2. 本文不适合 完全不打算找互联网工作的同学。包括且不限于家里有矿安排工作,想考公,想转行等等。

    三。困难

    1. 对西交同学来说,最大的困难就是地理位置,直接杜绝了日常实习的可能性。lz 认识的所有能在学期内实习的同学都是付出了极大的代价。

    2. 消息闭塞,没有什么信息来源。很多时候一件事的难度并不来源于事情本身,而是源自“为什么”,“不知道”和“怎么做”。

    四。为什么要实习

    1. 可以极大提升生活水平,稍大一些的互联网公司实习薪水都有近万元。

    2. 大多数互联网公司并不卡学历,在就业情况比较好的年份,一段知名公司的实习完全可以让你本科毕业就找到工作。

    3. 提前了解码农的生活,在自我感觉不适应的情况下可以及时止损(比如 lz 舍友在三段实习之后就决定回老家躺平)。这都是可以理解的,本文不鼓励单一化的价值观,在一线还房贷,在美帝赚刀乐和在老家打游戏并没有高下之分,只要是自己选择的生活。

    五。误区

    1. 本科生只需要好好学习,工作总会有的。
      答:对其他专业可能是这样,但是在计算机专业,一份实习对工作的重要性远大于你的成绩。而且正相反,如果你只在学校学习,大概率不能找到任何工作。

    2. 本科生可以保研再工作。
      答:截至 2023 年,计算机专业保研再工作和本科直接工作没有明显差别。当然有些人说根据统计规律,研究生比本科生找到的工作多,也更加高端。根本原因是大多数人本科过于菜,研究生才接触了一些真正的实用性技能,如果一个本科生和研究生水平一样,他们能找到的工作就是一样的。此处不讨论博士,因为能和博士水平一样的本科生也不需要看这篇文章了。

    3. 本科找实习太难了,一般都是大牛才去。
      答:事实是按照目前西交的本科培养,你学不到任何公司需要的技能,大家一直在学习错误的知识,只要学习方向正确,哪怕是在就业很难的年份,找一份实习也不是很难的事情。因为对公司来说,正式工和实习生的成本是完全不一样的。研究生之所以实习的人变多了,并不是因为研究生就能学到什么有用的东西,而是因为研究生不能再拖了,读博士又太久太难,大家迫不得已都开始研究怎么就业了。如果中国发明一个研究生和博士之间的学位,我相信还会有一大堆人继续读的。

    六。实习信息获取

    1. 北大未名 bbs intern 版
      优点:无需注册,岗位非常优质,互联网,金融,创业公司都有,非常推荐。

    2. 北邮人 bbs
      优点:岗位数量极多,私信很多都会回复。
      缺点:需要一个北邮同学的账号。

    3. 知乎
      优点:非常有针对性,一般都是某个人发的,而不是某个公司的招聘,回复会很及时。
      缺点:少,需要你多关注。

    4. 找学长
      优点:会很容易了解到实习的内容,大家都是校友,很好商量。如果你本科在实验室/社团打杂,会很容易认识一些毕业工作的学长,他们也会很乐于尝试招你实习。
      缺点:需要你自己社交,多认识人。

    5. 主页
      eecs 专业的很多人都会有自己的主页,很多都会在主页上写“hiring”(招募),比如 主页。尽管他们并没有在任何平台上发布过招聘。这时你直接发邮件联系是有机会获得面试的。lz 用自身经历验证了这样做的可行性。
      缺点:取决于你使用 Google 的能力。

    6. linkedin
      优点:能有 linkedin 的人都比较靠谱了。
      缺点:中国不太用,外企的人虽然用,大多数也不会经常点开。

    7. 牛客和各种招聘网站
      属于大海捞针,不太推荐。

    七。步骤

    1. 学习你想去的岗位所需的对应知识,这里假设你没有任何超人的其他背景,比如高中大学的 xx 金牌。那么至少需要一个学期学习对应的一到两门国外名校课程,配套实验都认真写完,代码上传到 github 上。

    2. 算法题,一般公司的实习面试,能做做中档题和高频题足够了。

    3. 写一份简历,这里建议参考国外的风格,白底黑字,不要搞国内的那么多花里胡哨,大头照啥的。把 project(项目)那一栏写上你自己做的课程实验,附上 github 链接。这里附一个我觉得不错的 样例。大家可以看到并没有太多的经历,但是只要把项目(project)和技术栈(programming skill)这两栏写详细,还是能凑不少内容的。至于课内成绩,如果是科研相关的实习,你在教育(education)一栏把微积分,线代标出 90+/100 应该也会有不错的效果,至于获奖(award)和科研(publication)就可遇不可求了。

    4. 时间,正如之前所说,西交同学想去日常实习很难,这里只讨论暑期实习。西交计算机系大二大三暑假都可以申请外出实习,而不是做学校安排的校内实习。所以我们需要在 5 月份之前拿到实习 offer,一般寒假过完就可以开始投简历面试了。一个理想的时间线是上学期内用来学知识,寒假用来刷算法题,放完假直接开始投简历。

    5. 面试还是很有讲究的,很多不是很强的人也能通过面试技巧拿到自己想要的工作。这方面我也不是很专业,这里只说一点,可以先投一投在你心中优先级比较低的公司,面试练练手。然后你就会发现,对方一般对你的项目哪些细节感兴趣,希望你怎么回答,你有哪些知识没有掌握(很多都是八股文,你知道就是知道,不知道很难靠自己想出来),然后在面试结束的时候直接问面试官,你觉得我有哪些缺点需要改进。在这样进行最多十次面试之后,你自己心里也就对怎么面试有谱了,比如哪些项目细节需要多吹吹牛逼,让人觉得你做了很多东西。哪些地方可以多思考一步,让人觉得你做得很深。

    tips

    1. 对于实在想去日常实习的同学,这里有一些 lz 尝试过的不太成熟,只能说成功了一半的想法。lz 对这样做的后果不负责:提前修课;直接翘课,请舍友吃饭,让他们帮忙交作业。
      ps:评论里 zzz 同学给出了详细步骤,非常赞。理论上经过精心规划是可以做到在大三空出一整年时间的。事实上 lz 当年信心满满地研究了很久,加上受到 这个 的影响,尝试实践了一下,结果由于水平太菜,最后焦头烂额,所以只能说成功了一半,不好意思写到正文里,怕误人子弟。

    2. 要明确自己的目的。西安是有一些公司的,优点是近。缺点是除了近全是缺点。西安的互联网公司集中在软件新城附近,我记得要坐地铁到鱼化寨终点站,再挤很久公交。有阿里,华为,三星等等,但是岗位都很边缘。对于这种实习,是否值得去 lz 持保留态度。这里注意 lz 的意思不是渣实习不值得去,而是没有明确目标的渣实习不值得去,比如你确定通过这段渣实习能够提升背景,呆三个月混一段使得简历好看,凭此去找好实习,那也是一个好的选择。

    3. 想找国外实习的同学超出了本文的覆盖范围,因为复杂程度远超国内,比如时间紧张(从签证到飞机),英语捉急(多数人托福不到 23 的口语在第一次出国都很难交流),金币储备等等。此处仅供 参考。还有一些曲线救国的特殊策略,比如评论里 zzz 同学提到的远程实习,可以做 gsoc 当跳板,此处也给出 参考 。虽然作者们的描述云淡风轻,但是仔细品味每一句话大家都可以感到难度是突破天际的。当然西交也有一些成功的 例子 1 例子 2,但都不具有广泛的可复制性。

  • 学习资料
    Charles_Xavier Charles_Xavier Post #1

    课程:COMP201553-数据库基础及应用 01(2022,2023 春 DB)
    教材:姚普选。数据库系统——基础、设计及应用 [M].西安:西安电子科技大学出版社,2013.
    教师:赵英良
    学分:2.0
    授课学时:20.0
    上机学时:12.0
    开课单位:电子与信息学部

    本课程基于华为云 OpenGauss DB,采用 PostgreSQL 语言。
    笔者于大一下学习此课程。
    鉴于所用教材有所过时,故将笔者所学整理上传。如有错讹,敬请斧正。

    hint:
    赵老师教学要求比较严格,但是讲解很清晰。如有特殊情况,反馈时应有理有据。
    实验 6 内容考试不涉及。

    实验:
    实验 1 DBMS 的安装和基本使用方法.pdf|attachment (2.5 MB)
    实验 2 SQL 数据查询.pdf|attachment (1.3 MB)
    实验 3 数据的完整性.pdf|attachment (658.2 KB)
    实验 4 存储过程和函数.pdf|attachment (377.5 KB)
    实验 5 数据库安全性.pdf|attachment (801.8 KB)
    实验 6 Python 编写 openGauss 数据库应用程序.pdf|attachment (1.5 MB)
    课程笔记:
    数据库基础设计及应用.pdf|attachment (703.0 KB)
    题库:
    数据库基础及应用题库.docx|attachment (349.9 KB)

  • ❤️ Liked post in Android App 客户端
    网站
    anonymous_coward_old Anonymous Coward Old Post #1

    see

    桌面 App(墙裂建议使用)xjtu-app-tauri-universal

    The content below is only for reference.


    下载链接:

    Updated at Jan 7, 2024 (Asia/Shanghai)

    xjtu.app.v0.4.0.apk|attachment (4.7 MB)

    背景

    之前由于可以用 Chrome 提供的 APP 封装功能(Chrome 会自动弹出提示,问你是否要“添加到主屏幕”,或者可以到菜单里点“安装交大门”,这样就可以从手机启动器一键直达),并且本站域名简短,浏览器里敲几个字很快,所以我并没有重视 APP 的开发。后来经过門友的提醒,移动互联网时代用户存在惰性,喜欢一键直达,所以开发了这个 APP。

    开源在 Github

    github.com/xjtumen/discourse-android-client

    该 APP 无需额外权限,代码简单且开源,你也可以下载 Android Studio 自行编译。

    功能更新

    对于所有非 xjtu.app 的链接,点击后自动用系统的默认浏览器打开
    为了解决校园网的 DNS 污染,把 xjtu.app 到 CloudFlare Edge 的 IP 解析进行硬编码
    摒弃 IP 的硬编码,内嵌基于 okhttp 的 DNS over HTTPS (DoH),1.1.1.1
    自动选择最快的 DoH 服务器,参考 DNSCrypt 列表
    自动选择最快的 CloudFlare Edge 服务器,加速网站访问
    基于 WebChromeClient,所以需要有比较新版本的 Chrome,国产手机可以到 ApkPure/Apkmirror 这样的平台下载
    使用缓存,避免每次打开网页过慢。
    自动获取新内容,无需用户人工刷新
    支持上传图片/文件(调的接口,无需用户打开/storage/emulated/0/的访问权限)
    检测新版本 / OTA update

    欢迎反馈和贡献

    由于鄙人 Android 开发还是 44 年之前学的,学艺不精,加上很久没碰导致手艺都荒疏了,
    如果不好用,欢迎在 Github 提 Issue 或者到“交大門”网站进行 反馈

    非常欢迎有兴趣的同学,一起 开发 玩 🤗。目前用的语言是 Kotlin。

    License

    MIT

  • ❤️ Liked post in 操作系统推荐:Arch Linux
    深入交流
    anonymous_coward_old Anonymous Coward Old Post #1

    操作系统推荐:Arch Linux

    不适合哪些用户

    电脑上平常用来吃饭的工具没有 Linux 版本,或者没有强有力的替代品,或者放在虚拟机/Wine 里性能损失导致不可用或者出现图形错误。
    软件跨平台支持 Linux 并不是难事,如果不能跨平台说明是垃圾软件不用也罢。

    • 通用:
      ☒ Adobe 系列
      Matlab, Simulink
      所有主流浏览器
      Blender:开源软件,支持 Linux
      GIMP:PS 的强有力开源替代
      LibreOffice:MS Office 的强有力开源替代,实在不行,虚拟机里跑 MS Office 很流畅,还有网页版的 Microsoft 365、Google Docs 套件可用

    常用国产软件的情况可见 Arch 中文 Wiki 中国大陆用户的推荐解决方案

    分学科来说:

    • 机械:
      ☒ Solidworks, PRO/E, Autodesk 系列
      OpenSCAD: 开源 CAD 软件,虽然是有这个,但可能如果在工业界会被同事笑掉大牙?
    • 电气
      ☒ 一些电磁仿真工具
      ☒ PCB 设计工具 Altium Designer
      Xilinx 的 FPGA 设计工具有 Linux 支持
      STM32 开发用的 Keil 虽无 Linux 版,但可用功能更强的 CLion 加 arm 的 gcc 工具链
    • 能动:
      OpenFOAM 开源 CFD
    • CS
      在 Linux 上能进行所有编程语言的开发工作(包括 Unity,甚至包括微软的 .NET Framework,在 Linux 上叫 mono)
      JetBrains 系列所有 IDE(Pycharm, CLion, Rider, GoLand, Android Studio)

    这样一来劝退了很多人,也说明很多人的工作可以迁移到 Linux 上。

    为什么推荐 Arch Linux

    Windows 是闭源、付费、商业软件,Linux 是开源、免费、自由软件。
    用了 Arch Linux 你就不用担心或者更少担心:

    • 勒索软件加密你的文件、流氓软件盗取你的信息 -> 完善的用户权限、访问权限体系,Linux 内核相比 Windows NT 历史安全事故更少
    • 突如其来的蓝屏黑屏、重启 -> 通过命令行工具通过内核日志 dmesg,system journal 更方便查错
    • 用久了就卡,总是没重装之后的几天那么快 -> 储存使用的众多文件系统:如 Ext4、ZFS 相比 NTFS 更优,缓存文件位置井井有条易于清理
    • 莫名其妙的风扇狂转、发烫:未知应用程序占满了你的 CPU、未知程序弹窗广告、开机自启动 -> 隐匿程序几乎没有存在的可能,通过 ps、top、htop、iotop、iftop、nvtop 的工具查看系统资源使用一清二楚,自启动通过 systemd 统一管理,用户全控
    • 关键时刻 Windows Update 作祟 -> 何时更新、更新完全由用户决定,也可以配置定时自动更新
    • 右下角水印“激活你的 Windows“影响视线 -> 开源自由软件不存在激活一说
    • 下载安装软件总要去网上搜索,安装包要点击好多步才能完成,有时还驱动还有人工安装 -> pacman 软件包管理工具一键搜索、安装、升级、卸载软件

    什么是 Arch Linux

    Greg Kroah-Hartman:
    I have not had any problems with anything on Arch, and their wiki is by far the best resource out there that I have ever seen

    Arch Linux 是多如牛毛的 Linux 发行版(Distribution)中的一种,从年龄上说不算老,也不算新。
    Linux 是和拥有 OpenBSD、FreeBSD 等变种的 Berkeley Software Distribution 齐名的类 Unix 操作系统。

    Linux 本质上是一个内核,所以它的官网是 https://kernel.org。光有内核没法玩,还需要和自由软件基金会开发一系列 GNU 应用程序配套使用,所以一般合称 GNU/Linux。

    前面说到 Linux 发行版(Distro)多得 浩如烟海,但由于 Linux 开源免费自由的特性,其实很多 Distro 都是抄来抄去派生于其他 Dsitro,完整关系可见 一张 6MiB 的巨大无比的图,Arch 和 Debian(有名的 Ubuntu 是它儿子)、Fedora 一样,诸多其他 Distro 派生。

    Arch 到底强在哪?下面和名声响亮的 Ubuntu 进行对比。

    • 软件包管理器 pacman 易用且强大,更新系统仅需pacman -Syu,相比之下 Ubuntu 需要apt-get update && apt-get upgrade
    • 软件依赖关系清晰,不像 Ubuntu 有时莫名其妙“XX 软件包无法被安装,因为 XX 依赖于 XX,而 XX 将不被安装,请尝试用 apt --fix-install”难被解决
    • pacman 性能高速度快,使用先进的 zstd 压缩格式,而且不像 Ubuntu 啰哩啰嗦的输出一大堆“选中此前未选中的 XXX;正在解包 XXX”;而且 Ubuntu 打包零碎,为了编译某个东西需要装一堆包,还把头文件单独打包加 -dev后缀,现在硬盘都很大,实际这个 -dev 包大小连 1MiB 都不到。Arch 都放在一起了。Ubuntu 的 .deb 内部结构混乱,压缩包套压缩包,不像 Arch 的 .pkg.zst 按照系统目录组织,井然有序。
    • Arch 拥有极其好用的自行打包工具 Arch Build System(ABS),如果不像编译也可以加非官方软件包源。不像 ubuntu 打包工具难用,一般人只能寄希望于有好心人打包到了 PPA,而 Ubuntu 的 PPA 几年前连 HTTPS 都不支持。别看 Ubuntu 的 Debian 系软件包多,Arch 的 Archlinux User Repository(AUR)有众多志愿者做的 PKGBUILD,可用makepkg -si命令一键编译打包安装。
    • Arch 由强大的开源社区支持,源于 Canada,德国 Hetzner 这家提供服务器租赁的公司赞助了许多服务器。Ubuntu 由商业公司 Canonical 支持。Ubuntu 搞了一个 Snap,企图替代它爹 Debian 的 apt 体系,但两者共存,非常混乱,我试用了一下,很难用。
    • Arch 社区的技术能力很强,开发了 pacmannetctlmkinitcpio 等众多非常实用的工具。
    • Arch 的软件包总是最新的。这一点见仁见智,Arch 希望上游提供更新来修复问题,而 Debian 系喜欢自己打补丁而非从上游拉取更新来修复问题。
    • Debian 系软件包版本混乱,不同的系统版本给一个软件的不同版本打包。而 Arch 官方软件源的包通常只有一个版本(有时 GCC,OpenJDK 有好几个版本,AUR 也可能提供其他版本,或者修改 PKGBUILD 就能自行编译打包某个特定版本),因而有 Rolling 滚动发行版的称号。

    总结一下,Arch 拥有简单、强大的特点。

    怎么装 Arch

    由于 Arch 的安装很简单并且官方教程 https://wiki.archlinux.org/title/installation_guide 非常详细且被翻译成了 21 种语言,安装 Arch 只能通过命令行的方式。

    怎么用 Arch

    推荐安装 KDE Plasma 桌面环境 + Wayland + Linux Zen 内核 + Fcitx5 输入法 + zsh (with zsh-autosuggestions, zsh-syntax-highlighting, grml-zsh-config)。

    KDE 是和 Gnome 齐名的 Linux 桌面环境双雄之一(其他的 Xfce4, LXQt, LXDE, Mint, Cinnamon 都没这两个功能全面,个人用不习惯 Gnome,觉得它某些方面的功能过于简单,以至于需要 gnome-tweak-tools 这种额外的工具来弥补本来应该有的功能)。

    KDE 桌面环境包含窗口管理器 Kwin 在内的图形界面核心程序,和一系列常用软件如 Konsole, Kate,甚至还包含 KDE Connect 这个和手机交互利器(功能不逊于很多电脑组装厂OEM 如专门开发的多屏协作、多设备分享软件)。

    KDE 默认界面已经很好看了,有人觉得是抄袭 Windows,但 1996 年建立至今的 KDE 论历史一点不虚 Windows,有些功能比如虚拟桌面谁抄谁还不一定呢。

    KDE 可定制度很高,KDE Store 有很多主题(虽然名字是 Store,但里面的东西都是开源自由的),美化后超级 Cool,可见 1, 2。这里剽窃张上面两个链接里的图,原作者 愣生生把 Arch 图形环境改造成 MacOS:

    后面有时间再写教程

  • Lumi lumi Post #1

    发现没有科研相关的 tag,就在这里开一个 thread 来聊聊如何寻找外校的科研资源吧,或者说开启一段有趣且有正向回报的科研合作。