码迷,mamicode.com
首页 > 编程语言 > 详细

【转】分享一份C语言写的简历

时间:2015-03-18 15:35:07      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

个人观点:文章想法很棒,作者的编码风格也很赞,可以从中学到不少东西。转载的文章是我都用心看过的,而且希望后续再可以回过头看的文章,努力让自己的能力越来越强,加油

这里黑客新闻吗?作者用代码更新了自己的简历,是不是很接地气,特符合程序员的逼格。这是一份可读可执行的C语言源文件,也是作者编码风格的体现。

#include <stdio.h>
#include <time.h>

typedef struct {
    union {
        char * company;
        char * school;
        char * project;
    };
    union {
        char * location;
        char * url;
    };
    union {
        char * title;
        char * program;
    };

    time_t started;
    time_t left;

    char * description[];
} thing_t;

typedef thing_t job_t;
typedef thing_t school_t;
typedef thing_t project_t;

#define CURRENT 0 /* I wasn‘t alive at the Unix epoch, so that‘ll work */ /* Contact Information */ char * name = "Kevin R. Lange";
char * email = "klange@toaruos.org";
char * address = "1045 Mission St, Apt 440\n" "San Francisco, CA 94103";

/* Education */
school_t uiuc = {
    .school   = "University of Illinois at Urbana-Champaign",
    .location = "Urbana, IL",
    .program  = "BS Computer Science",
    .started  = 1251158400,
    .left     = 1336608000,
    .description = {
        "Minor in International Studies in Engineering, Japan",
        "Focused on systems software courses",
        NULL
    }
};

school_t hit = {
    .school   = "Hiroshima Institute of Technology",
    .location = "Hiroshima, Japan",
    .program  = "Study Abroad",
    .started  = 1274745600,
    .left     = 1278288000,
    .description = {
        "Cultural exchange program",
        NULL
    }
};

school_t * schools[] = {
    &uiuc,
    &hit,
    NULL
};

/* Projects */
project_t compiz = {
    .project = "Compiz Window Manager",
    .url     = "http://compiz.org",
    .title   = "Developer",
    .started = 1201392000,
    .left    = 1264291200,
    .description = {
        "Minor plugin contributor",
        "Various research projects",
        NULL
    }
};

project_t toaruos = {
    .project = "ToAruOS",
    .url     = "https://github.com/klange/toaruos",
    .title   = "Lead",
    .started = 1295049600,
    .left    = CURRENT,
    .description = {
        "Hobby x86 Unix-like kernel and userspace",
        "Advanced in-house GUI with compositing window manager",
        NULL
    }
};

project_t * projects[] = {
    &toaruos,
    &compiz,
    NULL
};

/* Employment History */

job_t yelp = {
    .company  = "Yelp, Inc.",
    .location = "San Francisco, CA",
    .title    = "Software Engineer, i18n",
    .started  = 1339977600,
    .left     = CURRENT,
    .description = {
        "Developed several internal tools and libraries",
        "Provided critical input and design work for Yelp‘s launch in Japan",
        NULL
    }
};

job_t apple_internship = {
    .company  = "Apple Inc.",
    .location = "Cupertino, CA",
    .title    = "Software Engineering Intern",
    .started  = 1306886400,
    .left     = 1314662400,
    .description = {
        "Built software framework for testing and verification of desktop retina display modes",
        "Assisted other interns with Unix fundamentals",
        NULL
    }
};

job_t * jobs[] = {
    &yelp,
    &apple_internship,
    NULL
};

void print_thing (thing_t * thing) {
    char started[100];
    char left[100];
    struct tm * ti;
    int i = 0;

    printf ("%s at %s - %s\n", thing->title, thing->company, thing->location);

    ti = localtime (&thing->started);
    strftime (started, 100, "%B %d, %Y", ti);

    if (thing->left == CURRENT)  {
        printf ("%s to now\n", started);
    } else {
        ti = localtime (&thing->left);
        strftime (left,    100, "%B %d, %Y", ti);
        printf ("%s to %s\n", started, left);
    }

    char ** desc = thing->description;
    while (*desc) {
        printf ("- %s\n", *desc);
        desc++;
    }
}

int main (int argc, char ** argv) {

    printf ("%s\n%s\n%s\n\n", name, email, address);

    puts ("Education\n");
    school_t ** s = schools;
    while (*s) {
        print_thing (*s);
        puts ("");
        s++;
    }

    puts ("Employment\n");
    job_t ** j = jobs;
    while (*j) {
        print_thing (*j);
        puts ("");
        j++;
    }

    puts ("Projects\n");
    project_t ** p = projects;
    while (*p) {
        print_thing (*p);
        puts ("");
        p++;
    }

    return 0;
}

 

编译后,我们看到的简历如下

Kevin R. Lange
klange@toaruos.org
1045 Mission St, Apt 440
San Francisco, CA 94103

Education

BS Computer Science at University of Illinois at Urbana-Champaign – Urbana, IL
August 25, 2009 to May 10, 2012
- Minor in International Studies in Engineering, Japan
- Focused on systems software courses

Study Abroad at Hiroshima Institute of Technology – Hiroshima, Japan
May 25, 2010 to July 05, 2010
- Cultural exchange program

Employment

Software Engineer, i18n at Yelp, Inc. – San Francisco, CA
June 18, 2012 to now
- Developed several internal tools and libraries
- Provided critical input and design work for Yelp’s launch in Japan

Software Engineering Intern at Apple Inc. – Cupertino, CA
June 01, 2011 to August 30, 2011
- Built software framework for testing and verification of desktop retina display modes
- Assisted other interns with Unix fundamentals

Projects

Lead at ToAruOS - https://github.com/klange/toaruos
January 15, 2011 to now
- Hobby x86 Unix-like kernel and userspace
- Advanced in-house GUI with compositing window manager

Developer at Compiz Window Manager - http://compiz.org
January 27, 2008 to January 24, 2010
- Minor plugin contributor
- Various research projects

原文:http://www.codeceo.com/article/c-program-notes.html

【转】分享一份C语言写的简历

标签:

原文地址:http://www.cnblogs.com/davygeek/p/4347044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!