程序员求职放大招!牛人用C语言写简历

移动开发
这是一份简历,同时也是一份可读和可编译的C语言源文件。因为这里有Hacker News,所以这份简历的内容与我的实际简历已经相差无几。这不是一份严肃的文档,只是为了戏弄一下那些谈论招聘的人和他们所接受的简历格式。它对于我的编程风格也有一些相对的代表性。

[[129819]]

这是一份简历,同时也是一份可读和可编译的C语言源文件。因为这里有Hacker News,所以这份简历的内容与我的实际简历已经相差无几。这不是一份严肃的文档,只是为了戏弄一下那些谈论招聘的人和他们所接受的简历格式。它对于我的编程风格也有一些相对的代表性。

因为这只是个在Hacker News和reddit上的东西……

不,我的真实个人简历并不像这个这样。我的一个朋友开玩笑说我就像是个会弄这种简历的人,所以我就弄了一个。我实际的简历是用BSD mandoc写的。

我在我的类型中用了很多的_t,对此我表示抱歉。有很长一个阶段我都这么做。“系统保留字?我就是系统。”

因为大家一直抱怨,所以我就修复了non-const char的字符串分配。

然而,我所用的类型名称,则完全是故意这么写的。

如果你用的是比较老的编译器,你在编译匿名单元和指定的初始化函数时可能会有问题——我想gcc4.4应该需要一些额外的花括号来让它们正常地一起工作。新一点的编译器应该不会有问题。Clang和gcc(4.4之后的版本)在默认设置中都支持这些特性。

出于一些朋友的意见,我不再使用building struct tms,而是使用了timestamps。

***我还得提醒大家一次,这只是个玩笑而已。

  1. #include <stdio.h> 
  2. #include <time.h> 
  3.    
  4. typedef struct { 
  5.     union { 
  6.         const char * company; 
  7.         const char * school; 
  8.         const char * project; 
  9.     }; 
  10.     union { 
  11.         const char * location; 
  12.         const char * url; 
  13.     }; 
  14.     union { 
  15.         const char * title; 
  16.         const char * program; 
  17.     }; 
  18.    
  19.     time_t started; 
  20.     time_t left; 
  21.    
  22.     const char * description[]; 
  23. } thing_t; 
  24.    
  25. typedef thing_t job_t; 
  26. typedef thing_t school_t; 
  27. typedef thing_t project_t; 
  28.    
  29. #define CURRENT 0 /* I wasn't alive at the Unix epoch, so that'll work */ 
  30.    
  31. /* Contact Information */ 
  32. const char * name    = "Kevin R. Lange"
  33. const char * email   = "klange@toaruos.org"
  34. const char * address = "1045 Mission St, Apt 440\n" 
  35.                        "San Francisco, CA 94103"
  36.    
  37. /* Education */ 
  38. school_t uiuc = { 
  39.     .school   = "University of Illinois at Urbana-Champaign"
  40.     .location = "Urbana, IL"
  41.     .program  = "BS Computer Science"
  42.     .started  = 1251158400
  43.     .left     = 1336608000
  44.     .description = { 
  45.         "Minor in International Studies in Engineering, Japan"
  46.         "Focused on systems software courses"
  47.         NULL 
  48.     } 
  49. }; 
  50.    
  51. school_t hit = { 
  52.     .school   = "Hiroshima Institute of Technology"
  53.     .location = "Hiroshima, Japan"
  54.     .program  = "Study Abroad"
  55.     .started  = 1274745600
  56.     .left     = 1278288000
  57.     .description = { 
  58.         "Cultural exchange program"
  59.         "Intensive language course"
  60.         NULL 
  61.     } 
  62. }; 
  63.    
  64. school_t * schools[] = { 
  65.     &uiuc, 
  66.     &hit, 
  67.     NULL 
  68. }; 
  69.    
  70. /* Projects */ 
  71. project_t compiz = { 
  72.     .project = "Compiz Window Manager"
  73.     .url     = "http://compiz.org"
  74.     .title   = "Developer"
  75.     .started = 1201392000
  76.     .left    = 1264291200
  77.     .description = { 
  78.         "Minor plugin contributor"
  79.         "Various research projects"
  80.         NULL 
  81.     } 
  82. }; 
  83.    
  84. project_t toaruos = { 
  85.     .project = "ToAruOS"
  86.     .url     = "https://github.com/klange/toaruos"
  87.     .title   = "Lead"
  88.     .started = 1295049600
  89.     .left    = CURRENT, 
  90.     .description = { 
  91.         "Hobby x86 Unix-like kernel and userspace"
  92.         "Advanced in-house GUI with compositing window manager"
  93.         NULL 
  94.     } 
  95. }; 
  96.    
  97. project_t * projects[] = { 
  98.     &toaruos, 
  99.     &compiz, 
  100.     NULL 
  101. }; 
  102.    
  103. /* Employment History */ 
  104.    
  105. job_t yelp = { 
  106.     .company  = "Yelp, Inc."
  107.     .location = "San Francisco, CA"
  108.     .title    = "Software Engineer, i18n"
  109.     .started  = 1339977600
  110.     .left     = CURRENT, 
  111.     .description = { 
  112.         "Developed several internal tools and libraries"
  113.         "Provided critical input and design work for Yelp's launch in Japan"
  114.         NULL 
  115.     } 
  116. }; 
  117.    
  118. job_t apple_internship = { 
  119.     .company  = "Apple Inc."
  120.     .location = "Cupertino, CA"
  121.     .title    = "Software Engineering Intern"
  122.     .started  = 1306886400
  123.     .left     = 1314662400
  124.     .description = { 
  125.         "Built software framework for testing and verification of desktop retina display modes"
  126.         "Assisted other interns with Unix fundamentals"
  127.         NULL 
  128.     } 
  129. }; 
  130.    
  131. job_t * jobs[] = { 
  132.     &yelp, 
  133.     &apple_internship, 
  134.     NULL 
  135. }; 
  136.    
  137. void print_thing(thing_t * thing) { 
  138.     char started[100]; 
  139.     char left[100]; 
  140.     struct tm * ti; 
  141.    
  142.     printf("%s at %s - %s\n", thing->title, thing->company, thing->location); 
  143.    
  144.     ti = localtime(&thing->started); 
  145.     strftime(started, sizeof(started), "%B %d, %Y", ti); 
  146.    
  147.     if (thing->left == CURRENT)  { 
  148.         printf("%s to now\n", started); 
  149.     } else { 
  150.         ti = localtime(&thing->left); 
  151.         strftime(left, sizeof(left), "%B %d, %Y", ti); 
  152.         printf("%s to %s\n", started, left); 
  153.     } 
  154.    
  155.     const char ** desc; 
  156.     for (desc = thing->description; *desc; desc++) { 
  157.         printf("- %s\n", *desc); 
  158.     } 
  159.    
  160.     puts(""); 
  161.    
  162. int main(int argc, char ** argv) { 
  163.    
  164.     school_t ** s; 
  165.     job_t ** j; 
  166.     project_t ** p; 
  167.    
  168.     printf("%s\n%s\n%s\n\n", name, email, address); 
  169.    
  170.     puts("Education\n"); 
  171.     for (s = schools; *s; s++) { 
  172.         print_thing(*s); 
  173.     } 
  174.    
  175.     puts("Employment\n"); 
  176.     for (j = jobs; *j; j++) { 
  177.         print_thing(*j); 
  178.     } 
  179.    
  180.     puts("Projects\n"); 
  181.     for (p = projects; *p; p++) { 
  182.         print_thing(*p); 
  183.     } 
  184.    
  185.     return 0
  186. }</time.h></stdio.h> 

 

责任编辑:chenqingxiang 来源: GitHub
相关推荐

2015-04-03 11:15:32

程序员如何写简历写简历技巧

2018-02-06 08:36:02

简历程序员面试

2010-01-14 18:07:30

C++语言

2013-08-23 11:06:34

编程语言

2011-03-30 10:44:39

COBOL

2010-01-14 13:24:49

CC++语言

2015-03-19 15:17:11

2012-11-08 09:49:30

C++Java程序员

2011-05-24 17:20:57

程序员

2009-11-11 10:08:12

程序员简历

2014-04-15 15:35:32

CC语言

2010-05-25 10:41:57

求职简历

2009-01-08 21:25:51

程序员笔记

2013-12-13 13:38:32

C程序员

2013-04-28 11:03:41

编程语言程序员私有云

2010-10-26 10:28:19

求职

2021-11-18 15:00:19

程序员IT失业

2016-03-25 11:57:23

Java程序员C++

2019-05-15 09:59:24

程序员技能开发者

2013-01-22 13:50:11

程序员前端Web
点赞
收藏

51CTO技术栈公众号