当前位置: 首页 > 网络学院 >

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

www.365-588.com XKER.COM 时间:2015-03-23 23:12:53来源:GitHub  评论:
条

程序员求职放大招!牛人用C语言写简历_www.365-588.com

这是一份简历,同时也是一份可读和可编译的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.    
  163. int main(int argc, char ** argv) { 
  164.    
  165.     school_t ** s; 
  166.     job_t ** j; 
  167.     project_t ** p; 
  168.    
  169.     printf("%s\n%s\n%s\n\n", name, email, address); 
  170.    
  171.     puts("Education\n"); 
  172.     for (s = schools; *s; s++) { 
  173.         print_thing(*s); 
  174.     } 
  175.    
  176.     puts("Employment\n"); 
  177.     for (j = jobs; *j; j++) { 
  178.         print_thing(*j); 
  179.     } 
  180.    
  181.     puts("Projects\n"); 
  182.     for (p = projects; *p; p++) { 
  183.         print_thing(*p); 
  184.     } 
  185.    
  186.     return 0; 
  187. }</time.h></stdio.h> 

如果您喜欢本文请分享给您的好友,谢谢!本文来源:GitHub

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)