当前位置:   article > 正文

女神节特辑 | 致敬程序媛,她们的人生究竟有多精彩?_程序员界的女神

程序员界的女神

你知道吗?世界上第一位电脑程序设计师是名女性:Ada Lovelace (1815-1852) 是一位英国数学家兼作家,她是第一位主张计算机不只可以用来算数的人,也发表了第一段分析机用的演算法。因此,Ada 被公认为史上第一位认识电脑完全潜能的人,也是史上第一位电脑程序设计师。

  • 2018年的调查显示,女性程序员在全球范围内仅占7.6%。由此可见,女性程序员在全球范围内都是稀缺物种。然而,技术无国界、无性别、无身份之分。即使在男性占比较高的 IT 技术发展的关键历程里,优秀的女程序员也从不缺席,她们有着不输男性程序员的聪慧、创造力和对编程的热爱,她们是我们的“代码女神”。
  • 2021年10月26日,于“1024程序员节”之后不久,《界面新闻》在《程序员节看程序员:90后已成绝对主力,女性比例逐年上升 (baidu.com)》一文中声称“90后已成绝对主力,女性比例逐年上升”。据近年的调查数据,“从整体性别分布来看,男程序员占比为86.4%,女程序员为13.6%,呈现出明显的性别不平衡现象。但值得注意的是,2019年-2021年三年间,女性程序员的占比逐年同比提升。”

难道在编程方面,女性本就不如男性?当然不是!其实,程序员界一直有一群“程序媛”,温暖颜高技术好!在今年的“女神节“,让我们一探究竟,领略她们的精彩人生吧!


Margaret Heafield Hamilton 

美国计算机科学家,系统工程师和企业家,曾担任 MIT 仪器实验室开发阿波罗计划中航天器搭载的飞行软件,其编写的程序都以最大程度防止崩溃为目的,从而防止了阿波罗 11 号登月计划中缀。

2016 年,她获得了奥巴马授予的自由奖章。明明可以靠颜值,却集才华于一身。


Linda Liukas

颜值颇高的 Linda Liukas,芬兰计算机程序员,自 13 岁起就开始了代码人生。她认为女性才是天生的编程者,为了让更多女性加入到编程中,创立了 RailsGirls,并在 230 多个城市举办研讨会,向 10,000 多名女性教授编程基础。

她不仅编程很牛逼还会写作,《Hello Ruby》就是一本由 Linda Liukas 为青少年编写的关于如何学习编程的书。


Marissa Mayer

前不久,被称为“硅谷第一美女”的梅耶尔正式卸任雅虎 CEO。在出任 CEO 的这段时间里,她未能实现雅虎复兴,但在梅耶尔的领导下,雅虎公司股价飙升 254%,单从这一点她就是当之无愧的女强人。

当然她的成就远不止以上那些,她也是谷歌第一名女工程师,她不但亲自参与编程,而且还负责领导用户界面和网页服务器的开发设计。其中包括开发其旗舰搜索产品和标志性的主页等。


Holden Karau

Holden Karau 是 IBM 首席软件工程师,她还曾是 Databricks 的软件开发工程师,负责 Spark 和 Databricks Cloud 的后端开发。她曾在 Google 和亚马逊从事软件开发工作,在大数据和搜索领域也有着丰富的经验,精通 Scala, Scheme, Java, Perl, C, C++, Ruby 等语言。

Of course,除了上述这些,Holden 还著有《Spark 快速数据处理》


于国荔

于国荔,香港出生的著名程序员。被著名游戏媒体网站 Kotaku 评为十年来最具影响的十位游戏界女性之一,也是其中唯一的女程序员。微软光环小组的首席游戏引擎程序员、微软游戏工作室中第一个也是唯一一个女性技术主管,在业界有“女的约翰·卡马克”之称。于国荔在游戏的从业经历有着相当的传奇色彩,简直就是现实生活中的女版“肖奈”。


Diane Greene 

Diane Greene,Google 的云计算部门负责人, IT 巨头 VMware 的联合创始人兼 CEO , 同时,她还被称为“硅谷女王”,去年11月,谷歌收购 Diane Greene 的初创公司 Bebop 并聘任她为云业务高级副总裁。


Lauren States

Lauren States 算是 IBM 的元老了,早在上世纪 90 年代,大学一毕业便以初级系统编程人员的身份加入了 IBM。IBM 许多其重要的云计算战略都由斯塔斯一手推举,她还发起了 IBM 的一项内部人才培养计划。


Ruchi Sanghvi

Ruchi Sanghvi,2005 年加入 Facebook,成为该公司第一位女 PHP 工程师,见证了 Facebook 一路成长,从 20 多人到上千人的大公司。网站从最开始几百万用户到现在的十几亿级别的用户。说到这猿妹不禁想到一句至理名言,PHP 是世界上最好的语言~

2010 年,她和丈夫一起创建了自己的公司 Cove。两年后,Cove 被著名云存储服务公司 Dropbox 收购。现在她是云存储巨头的运营副总,掌管产品、招聘、营销和公关等事务。


中国科学院院士 张绮霞

张绮霞是我国第一代程序员中的女性之一,苏联专家什米格列夫斯基最优秀的弟子之一。我国第一颗人造卫星的地面跟踪,主要程序就是出自她的手笔。 1963 年,她与朱淑霞,曹东启共同编写的《实用程序设计》,是中国人的第一册软件出版物,据称,张绮霞的编的程序,一次就过,这是该有多牛逼才能办到。


Heather Marie

Tracy Chou,Pinterest 著名的女工程师,曾先后就职于 Google 和 Facebook,2016年,她与行业内的其他7名女性共同创立了 “Project Include”。


Lyndsey Scott

Lyndsey Scott,曾被 CNN 誉为最美的程序员。 这位29岁的名模除了是正经科班出身的工程师外,她还在离开T台后带着自己的团队连续创业,目前已经有3个App都可以在 Apps Store 下载了。她还拍摄了很多网络视频,教授零基础的女性初学者一些关于编程的基本技巧。


Rebecca Jacoby

她既是思科首席信息官,同时也是公司旗下 IT、云计算及系统管理技术集团高级副总裁。自从 1995 年加入思科以来,Jacoby 在运营、IT 等领域担任过各种领导角色。


池泽彩野花

这一位,你肯定不陌生。她被誉为"新一代码农心中的女神",一方面因为她在 Google 当实习程序员的身份,而另一方面更关键的是,她竟然还是一位兼职演员,能演戏,还能拍性感写真。怎么感觉到了这里整个文风立马变了呢?


除了上述所举出的这13位“程序媛”,还有Selina Tobaccowala:SurveyMonkey 工程部门资深副总裁;Niniane Wang:Minted 首席技术官;Mary Ann Davidson:甲骨文首席安全官;Hilary Mason:Bitly首席科学家;Kimber Lockhart:美国云储存公司 Box 工程部门主管......全部都是女性,而且这还只是冰山一角。

这些出色女性在不同领域熠熠生辉,创造了无限的可能,成为了IT发展进步中不可或缺的角色。Z世代的女性开发者们不仅学会编程的年龄逐渐提前,甚至在某些编程语言上比男性的表现更出色。女性开发者们用实际经历和成果印证着这些结论。不少“程序媛”们在AI代码的世界里让梦想生根、开花。不分年龄、无论背景,她们释放着热情与专业,用技术为自己代言。

接下来,我想在女神节用“Dynamic love”代码对“程序媛”们及各行各业的女神们送出祝福!

  1. """
  2. @File :Dynamic love.py
  3. @IDE :PyCharm
  4. @Author :源于花海
  5. @Date :2023/3/8 08:03
  6. """
  7. import random
  8. from math import sin, cos, pi, log
  9. from tkinter import *
  10. CANVAS_WIDTH = 640 # 画布的宽
  11. CANVAS_HEIGHT = 480 # 画布的高
  12. CANVAS_CENTER_X = CANVAS_WIDTH / 2 # 画布中心的X轴坐标
  13. CANVAS_CENTER_Y = CANVAS_HEIGHT / 2 # 画布中心的Y轴坐标
  14. IMAGE_ENLARGE = 11 # 放大比例
  15. HEART_COLOR = "#ff6699" # 心的颜色,这个是中国红
  16. def heart_function(t, shrink_ratio: float = IMAGE_ENLARGE):
  17. """
  18. “爱心函数生成器”
  19. :param shrink_ratio: 放大比例
  20. :param t: 参数
  21. :return: 坐标
  22. """
  23. # 基础函数
  24. x = 16 * (sin(t) ** 3)
  25. y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
  26. # 放大
  27. x *= shrink_ratio
  28. y *= shrink_ratio
  29. # 移到画布中央
  30. x += CANVAS_CENTER_X
  31. y += CANVAS_CENTER_Y
  32. return int(x), int(y)
  33. def scatter_inside(x, y, beta=0.15):
  34. """
  35. 随机内部扩散
  36. :param x: 原x
  37. :param y: 原y
  38. :param beta: 强度
  39. :return: 新坐标
  40. """
  41. ratio_x = - beta * log(random.random())
  42. ratio_y = - beta * log(random.random())
  43. dx = ratio_x * (x - CANVAS_CENTER_X)
  44. dy = ratio_y * (y - CANVAS_CENTER_Y)
  45. return x - dx, y - dy
  46. def shrink(x, y, ratio):
  47. """
  48. 抖动
  49. :param x: 原x
  50. :param y: 原y
  51. :param ratio: 比例
  52. :return: 新坐标
  53. """
  54. force = -1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.6) # 这个参数...
  55. dx = ratio * force * (x - CANVAS_CENTER_X)
  56. dy = ratio * force * (y - CANVAS_CENTER_Y)
  57. return x - dx, y - dy
  58. def curve(p):
  59. """
  60. 自定义曲线函数,调整跳动周期
  61. :param p: 参数
  62. :return: 正弦
  63. """
  64. # 可以尝试换其他的动态函数,达到更有力量的效果(贝塞尔?)
  65. return 2 * (2 * sin(4 * p)) / (2 * pi)
  66. class Heart:
  67. """
  68. 爱心类
  69. """
  70. def __init__(self, generate_frame=20):
  71. self._points = set() # 原始爱心坐标集合
  72. self._edge_diffusion_points = set() # 边缘扩散效果点坐标集合
  73. self._center_diffusion_points = set() # 中心扩散效果点坐标集合
  74. self.all_points = {} # 每帧动态点坐标
  75. self.build(2000)
  76. self.random_halo = 1000
  77. self.generate_frame = generate_frame
  78. for frame in range(generate_frame):
  79. self.calc(frame)
  80. def build(self, number):
  81. # 爱心
  82. for _ in range(number):
  83. t = random.uniform(0, 2 * pi) # 随机不到的地方造成爱心有缺口
  84. x, y = heart_function(t)
  85. self._points.add((x, y))
  86. # 爱心内扩散
  87. for _x, _y in list(self._points):
  88. for _ in range(3):
  89. x, y = scatter_inside(_x, _y, 0.05)
  90. self._edge_diffusion_points.add((x, y))
  91. # 爱心内再次扩散
  92. point_list = list(self._points)
  93. for _ in range(4000):
  94. x, y = random.choice(point_list)
  95. x, y = scatter_inside(x, y, 0.17)
  96. self._center_diffusion_points.add((x, y))
  97. @staticmethod
  98. def calc_position(x, y, ratio):
  99. # 调整缩放比例
  100. force = 1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.520) # 魔法参数
  101. dx = ratio * force * (x - CANVAS_CENTER_X) + random.randint(-1, 1)
  102. dy = ratio * force * (y - CANVAS_CENTER_Y) + random.randint(-1, 1)
  103. return x - dx, y - dy
  104. def calc(self, generate_frame):
  105. ratio = 10 * curve(generate_frame / 10 * pi) # 圆滑的周期的缩放比例
  106. halo_radius = int(4 + 6 * (1 + curve(generate_frame / 10 * pi)))
  107. halo_number = int(3000 + 4000 * abs(curve(generate_frame / 10 * pi) ** 2))
  108. all_points = []
  109. # 光环
  110. heart_halo_point = set() # 光环的点坐标集合
  111. for _ in range(halo_number):
  112. t = random.uniform(0, 2 * pi) # 随机不到的地方造成爱心有缺口
  113. x, y = heart_function(t, shrink_ratio=11.6) # 魔法参数
  114. x, y = shrink(x, y, halo_radius)
  115. if (x, y) not in heart_halo_point:
  116. # 处理新的点
  117. heart_halo_point.add((x, y))
  118. x += random.randint(-14, 14)
  119. y += random.randint(-14, 14)
  120. size = random.choice((1, 2, 2))
  121. all_points.append((x, y, size))
  122. # 轮廓
  123. for x, y in self._points:
  124. x, y = self.calc_position(x, y, ratio)
  125. size = random.randint(1, 3)
  126. all_points.append((x, y, size))
  127. # 内容
  128. for x, y in self._edge_diffusion_points:
  129. x, y = self.calc_position(x, y, ratio)
  130. size = random.randint(1, 2)
  131. all_points.append((x, y, size))
  132. for x, y in self._center_diffusion_points:
  133. x, y = self.calc_position(x, y, ratio)
  134. size = random.randint(1, 2)
  135. all_points.append((x, y, size))
  136. self.all_points[generate_frame] = all_points
  137. def render(self, render_canvas, render_frame):
  138. for x, y, size in self.all_points[render_frame % self.generate_frame]:
  139. render_canvas.create_rectangle(x, y, x + size, y + size, width=0, fill=HEART_COLOR)
  140. def draw(main: Tk, render_canvas: Canvas, render_heart: Heart, render_frame=0):
  141. render_canvas.delete('all')
  142. render_heart.render(render_canvas, render_frame)
  143. main.after(160, draw, main, render_canvas, render_heart, render_frame + 1)
  144. if __name__ == '__main__':
  145. root = Tk() # 一个Tk
  146. canvas = Canvas(root, bg='black', height=CANVAS_HEIGHT, width=CANVAS_WIDTH)
  147. canvas.pack()
  148. heart = Heart() # 心
  149. draw(root, canvas, heart) # 开始画画~
  150. root.mainloop()

May you a great day!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/836885
推荐阅读
相关标签
  

闽ICP备14008679号