部分基础编程术语中英对照表

中文 English 中文 English 中文 English
逗号 comma 句号 period 波浪号 tilde
冒号 colon 分号 semicolon 省略号 ellipsis
问号 question mark 感叹号 exclamation mark 引号 quotation marks
小括号 parentheses 中括号 square brackets 大括号 curly braces
星号 asterisk 与号(&) ampersand 井号 number sign / hash / pound
下划线 underline 百分号 percent sign 连字符 hyphen
斜杠 slash 反斜杠 backslash ` back-tick
取模 modulus 余数 remainder 加数 addend
被除数 dividend 除数 divisor 乘数 multiplier
被减数 minuend 减数 subtracter 操作数 operand
语法 syntax 语义 semantics 变量 variable
标识符 identifier 初始化 initialize 语句 statement
赋值 assignment 表达式 expression 优先级 precedence
形参 parameter 实参 argument 栈帧 stack frame
作用域 scope 局部 local 全局 global
转义 escape 短路 short circuit 嵌套 nest
语法糖 syntactic sugar 通配 glob 描述符 descriptor
终端 terminal 缓冲 buffer 内存 memory
编译 compile 单例 singleton 运算符 operator
一元 unary 二元 binary 三元 ternary
可变(数量) variadic 精度 precision 上下文 context
类型转换(人为) cast 类型转换(编译器) type promotion / conversion 递归 recursion
并发 concurrent 并行 / 并联 parallel 串行 / 串联 serial
演绎 deduction 归纳 induction 约简 reduction
分隔符 delimiter 字典序 lexicographic order 字面量 literal

关于实习投递总结:牛客链接

入职

  • A区5个、B区3个食堂,每天午饭20元打到卡上,晚饭20元和夜宵10元(晚9点)以点券形式发放,周末均以点券发放;按出勤日发放工资(实习生统一工资),每月2000元房补,报销来回车票,赠送2周酒店和贝壳免费转租服务;
  • 公司通讯工具为阿里钉,联网、会议工具为阿里郎,文档工具为语雀;
  • 除公司福利外还有一年香、三年醇、五年陈、奶茶日等活动,一般由公司组织或mentor买单;每季度有P9和HRG组织的新人茶话会活动;
  • 团队有热天轮流请甜筒、升职请全组吃饭、周末爬山等传统;平时会组团打篮球、健身等;
  • 工作时间:10点~12点,14点~18点,19点~21点(10 9 5);周五18点下班;
  • 不看工作时长,只看任务完成情况;只要任务完成任何时候都能下班;
  • 技术能力和工作完成情况是第一位;
  • 对同事、老板直呼花名(阿里特色)或同学;男女比大概3:1;
  • 关于工作:每周老板会给任务,没完成会批评,经常周末也会给任务;
  • 组里有和我同期进入的硕士应届生,有在华为工作两年跳槽阿里的,有在阿里干了六七年的;有年轻的,也有刚抱小孩的,没有年纪更大的;
  • 压力非常大,每周一开一次组会,还有各项业务基本一天一次小会对接任务;
  • 沟通直接,交流高效,不回避矛盾;
  • 同组负责的业务有:端智能、XR、AI引擎相关;技术栈:C++、C#、Objective-C、Unity、iOS、Android、VisionOS、前端;
阅读全文 »

概况

  • 本文为基督教圣经(the Holy Bible)笔记;
  • 圣经由多部古希伯来语、亚拉姆语,通用希腊语所写书卷汇编选集而成;
  • 犹太教圣经《塔纳赫》,基督教称为《旧约》,卷数认定不一致,主流认为共 39 卷(天主教和东正教版本则有 46 卷,包含了一些被称为“次经”的书卷);塔纳赫(TaNaKh)源自三个希伯来字母 T/N/K,反映了犹太教圣经的三个部分,其中 T 代表妥拉,N 代表先知书,K 代表经录;
  • 《新约》共 27 卷,记载耶稣基督及其宗徒言行;
阅读全文 »

更新:

本文章部分内容(如硬件参数)已过时或有错误,请批判式阅读。

参考:

CUDA C++ Programming Guide

《CUDA 编程:基础与实践》

《GPGPU 异构高性能计算》

GPU 介绍

  • 一个典型的 GPU 参数,以 NVIDIA H100 GPU 为例:
    • 16896 FP32 CUDA cores;
    • 66.9 TFLOPS (FP64 Tensor core);
    • 33.5 TFLOPS (FP64);
    • 3352 GB/s memory bandwidth;
    • 700W TDP;
    • TSMC’s 4N customized for NVIDIA;
阅读全文 »

参考

《Rust Primer》

《Rust 编程之道》

《Rust Course》(Rust 语言圣经)

THU《程序设计训练(Rust)》课件

  • 裸指针(不安全): *const T*mut T
  • 单字节字符 b'H' ,单字节字符串 b'Hello' ,仅限 ASCII 字符; r#"..."# 表示不转义字符串;
  • String&str 很廉价,而反之涉及分配内存,代价相对更高;
  • 即使结构体是公有的,成员仍然默认私有;枚举如果是公有的则其成员均为公有;
  • 可以在 match 中通过 refref mut 获取对应变量的引用;
  • try! 宏在 Ok 时提取内部值,否则直接 return 期望返回的 Error 类型;现在可以直接使用 ?
  • 使用 io::stdin.read_line(&mut String) 读入;
  • Rust 项目结构:
阅读全文 »

Pine 是一个使用 C++17 编写的高并发框架,支持 Linux / MacOS 跨平台;它也是 30 天自制 C++ 服务器(目前更至第十六天)的配套代码。

本文为 Github 源码 阅读笔记。

前置技能:

  • Modern C++ (包括并行库);
  • 网络编程基础
    • 《Linux 高性能服务器编程》—— 游双:服务器编程必读;
    • 《Linux 多线程服务端编程:使用 muduo C++ 网络库》—— 陈硕:经典网络库 muduo 作者,本框架采用类 muduo 架构;
    • 《C++ 服务器开发精髓》—— 张远龙:类似以上两本书的组合,编写年份较新,对部分技术做了相应更新;
    • 《UNIX网络编程卷1:套接字联网API》、《UNIX网络编程卷2:进程间通信》:可以作为字典书;
阅读全文 »

堆、栈、RAII、容器

  • delete 一个空指针是合法的,但不能多次 delete
  • 手写智能指针:先实现一个 auto_ptr(赋值为移动语义),再定义引用计数类;每个智能指针类包含两个类的指针:引用技术类和对象类;
  • 异常安全的赋值函数:复制并交换;
1
2
3
4
T& operator= (T rhs) {
rhs.swap(*this);
return *this;
}
  • vector 保证强异常安全性,如果没有 noexcept 的移动构造函数,会调用拷贝构造函数;
  • queuestack 依赖现有容器,因此称为容器适配器,默认均为 deque 实现;
  • lessgreater 均为通过重载同名结构体的 bool operator() (const T& x, const T& y) 得到的函数对象;它们继承的 binary_functionunary_function 已在 C++11 被废弃;
阅读全文 »

  • Go 是静态、强类型语言;
1
2
3
4
5
6
7
8
9
10
11
12
package main // 定义包名

import "fmt" // 引入包

// 没有 init() 时的程序入口,可执行程序必须包含
func main() { // 注意大括号不能换行
/*
当标识符以一个大写字母开头,就可以被外部包的代码所使用(public),
否则对包外不可见(protected)
*/
fmt.Println("Hello, World!") // 不需要分号,除非一行多条语句
}
阅读全文 »

本文为此书中文译本前四章的读书笔记。

https://github.com/xiaoweiChen/CPP-Concurrency-In-Action-2ed-2019

<pthread.h>

<pthread.h>是贴近底层的 POSIX 线程接口:

1
2
3
4
5
6
7
8
pthread_create():创建一个新的线程。
pthread_join():等待指定的线程退出,并回收其资源。
pthread_detach():将指定的线程设置为分离状态,使其资源在退出时自动回收。
pthread_exit():使当前线程退出,并返回指定的状态值。
pthread_mutex_init():初始化互斥锁。
pthread_mutex_destroy():销毁互斥锁。
pthread_mutex_lock():尝试获取互斥锁,如果已经被其他线程占用,则阻塞等待。
pthread_mutex_unlock():释放互斥锁。
阅读全文 »