首页 > 其他分享 >The First Software Engineering Homework

The First Software Engineering Homework

时间:2024-03-09 22:00:50浏览次数:25  
标签:gitcode git 仓库 开源 Engineering 软件工程 银弹 Homework Software

这个作业属于哪个课程 软件工程2024-双学位 (广东工业大学)
这个作业要求在哪里 软件工程第一次作业
这个作业的目标 熟悉 Markdown语法,熟悉 git操作,学会写 blog
其他参考文献

目录

1 个人简历

1.1 自我介绍

  • 昵称: Yamabuki Odori
  • 头像
  • GithubHanaaihakase
  • 邮箱: [email protected]
  • 爱好: 日常写点代码,偶尔写点博客。
  • 自述: CRUD engineer。经常为 RTFSC工程头痛不已。

1.2 当前水平

  • 个人奖项:英语四六级证书,日语 JLPT N1证书。
  • 专业水平
    • 熟悉 Linux操作系统。熟悉使用 BashPython编写日常使用的脚本。熟悉使用 vim编辑器。
    • 了解 C, C++等语言。了解 makecmake构建系统。
    • 有用 requests库编写爬虫的经验。
    • 代码量至今 5k左右。

2 展望未来

2.1 阅读《构建之法》

阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考。要求在自己的思考中贴上原问题的链接。

  • 1.2.3 AI辅助编程,是一个银弹么?

我觉得至少现在不是。尽管 ChatGPT之类的大语言模型近年来特别火爆,大有代替人类编程的趋势,然而还是达不到成为「银弹」的水平。说到底,软件工程是一个需要工程师的社区和企业通力协作的一个庞大的工程,这个工程量,即使是世界上最聪明的工程师也无法理解,当然现在的大语言模型更是无法理解了
比如说操作系统的开发,微软内部的 Windows操作系统源代码的 Git repo是世界上最大的 Git repo,大约有 350 万个文件,当签入 Git 存储库时,会生成大约 300GB 的存储库。此外,Windows 团队约有 4,000 名工程师,工程系统在 440 个分支机构每天生成 1,760 个“实验室版本”,此外还生成数千个拉取请求验证版本。[1] 软件工程的异常复杂性决定了在人类历史的很长时期内,都无法产生「银弹」[2]我觉得只有当大语言模型的算力达到可以独立开发出全新的操作系统的水平时,我们才有认为大语言模型确实是「银弹」的可能。

  • 1.1 如何区分一个好的程序员和不好的程序员呢?

十分简单。可以写出符合需求的代码并且顺利运行,还可以获得用户高度认可的程序员就是好的程序员。即使他只会 CRUD,符合这个标准,他也是好的程序员。

  • 7.1 商业价值与开源精神是否矛盾?

二者并不矛盾。无论是 RMS主导的自由软件运动还是 Linus主导的开源软件运动,都不反对进行商业盈利。当年 Richard Stallman贩卖 Emacs还能小赚一笔呢。现在也有很多使用开源游戏引擎(比如说 Renpy)做的游戏,放在 Steam上面贩卖,但是他们的源代码是按照开源协议与附在一同销售的商品上的。这说明开源与商业并不矛盾。

  • 4.2.6 变量命名是否应该有描述?

当然,不是所有人都会详细的阅读注释和文档,为了使得团队合作更为顺利,必须在变量命名上做到明确合理。写出int a = 1之类的习惯应该尽可能改正。

  • 3.1 如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?

RTFSC,STFW,RTFM,还有 How To Ask Questions The Smart Way之类的老生常谈自不必说。还要终身保持谦逊的学习态度,接受别人的建议,接受崭新的知识,不要有任何成见。

2.2 未来规划

// main.c

#include "commmon.h"

int main(){
// 1. 把难啃的 CSAPP看一遍,做一遍笔记。
Read("CSAPP.pdf");
Note("CSAPP.pdf", "CSAPP_NOTE.md");

// 2. 准备408考研。
Prepare_for_postgraduate("408");

// 3. 丰富技术栈,尤其是 c,x86 assembly,操作系统之类底层相关的。
Learn("C");
Learn("x86 assembly");
Learn("Operating System");

return 0;
}

2.3 课程期待

从编程作业的实践中学到一些实际的经验,学会 Team Working,并且了解到软件工程的一些前辈的教训。

3 学习路线

4 个人仓库

这是我在 GitCode的仓库。可能会不常用。

这是我的 Github仓库

4.1 附记: git的初步用法

  • 第一步:注册 git系网站,查看账号信息。再生成密钥,如ssh-keygen -t ed25519 -C "[email protected]",再cat ~/.ssh/id_ed25519.pub查看。复制粘贴到该网站的 ssh密钥列表当中。
  • 第二步:新建一个仓库。
  • 第三步:git clone该仓库到本地,打开该仓库,新建README.md文件。
  • 第四步:在本地新增账号,邮箱。注意:假如你使用多个git网站,请不要全局设置!!!
git config user.name "YOURNAME"
git config user.email "YOURMAIL"
  • 第五步:往本地分支新增README.md文件,并且增加 commit。
git add README.md
git commit -m "add README"
  • 第六步:推送至远程仓库主分支。
git push -u origin main

4.2 附记: gitcode的一些大坑

gitcode分为 gitcode.net旧站和 gitcode.com新站。只有旧站可以作为图床使用。一定要注意这一点。


  1. https://devblogs.microsoft.com/bharry/the-largest-git-repo-on-the-planet/ ↩︎

  2. https://zh.wikipedia.org/wiki/没有银弹 ↩︎

标签:gitcode,git,仓库,开源,Engineering,软件工程,银弹,Homework,Software
From: https://www.cnblogs.com/yamabuki-odori/p/18063440

相关文章

  • dday06_homework_set
    点击查看代码#列举你了解的字典中的功能(字典独有)。#keys/values/items/get/update/pop#列举你了解的集合中的功能(集合独有)。#add/update/discard/intersection/union/difference/symmetric_difference#列举你了解的可以转换为"""字符串转数字数字转字符串列表转元......
  • day05_homework_dict
    点击查看代码#请将列表中的每个元素通过"_"链接起来。#users=['李少奇','李启航','渣渣辉']#print('_'.join(users))#请将列表中的每个元素通过"_"链接起来。"""users=['李少奇','李启航',666,'渣渣辉']......
  • day03_homework_string切害与while循环
    有变量name="aleXleNb"完成如下操作:name="aleXleNb"移除name变量对应的值两边的空格,并输出处理结果print(name.strip())判断name变量是否以"al"开头,并输出结果(用切片)ifname[0:2:1]in'al':print(name[0:2:1])判断name变量是否以"Nb"结尾,并输出结果(用切......
  • day02_homework_while循环_bool值计算
    !/usr/bin/envpython--coding:utf-8--@File:day02_homework.py猜数字,设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。实现功能1"""luck_number=66whileTrue:guass......
  • day01_homework_print与if,else语句
    1、操作系统的作用?2、列举你听过的操作系统及区别?3、列举你了解的编码及他们之间的区别?4、列举你了解的Python2和Python3的区别?5、你了解的python都有那些数据类型?6、补充代码,实现以下功能。value=_____print(value)#要求输出alex"烧饼"""value='''alex"烧饼''......
  • It's just a little homework
    Firsthomework这个作业属于哪个课程软件工程这个作业要求在哪里Firsthomwork这个作业的目标介绍自我,阅读教材初步认识软件工程课程我是谁?张荆茂,来自广东工业大学软件工程三班课程5问软件工程到底是什么?怎样将课程内容用于实践?没有学习过任何面向......
  • games101_Homework3
    摘要:在Raster部分实现数值插值,然后实现四种不同的像素着色器作业描述:作业1:修改函数rasterize_triangle(constTriangle&t)inrasterizer.cpp:在此处实现与作业2类似的插值算法,实现法向量、颜色、纹理颜色的插值。在rasterize_triangle函数中重复上次的包围盒进行点采样,......
  • games101_Homework4
    摘要:实现四个点的贝塞尔曲线作业描述:•bezier:该函数实现绘制Bézier曲线的功能。它使用一个控制点序列和一个OpenCV::Mat对象作为输入,没有返回值。它会使t在0到1的范围内进行迭代,并在每次迭代中使t增加一个微小值。对于每个需要计算的t,将调用另一个函数recursive......
  • 关于AutoCAD反复弹窗Nonvalid Software Detected的解决办法
    事件起因:客户安装的CAD2020频繁弹窗NonvalidSoftwareDetected,报错内容:YOURACCESSISNOWBLOCKED 解决办法:在文件资源管理器中搜索路径C:\ProgramFiles\Autodesk\AutoCAD2020\Support\NewTabPage\config\ACAD\zh-CN(注意自己安装的版本和位置,我这里是2020版本安......
  • games101_Homework1
    作业描述:本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵。给定三维下三个点v0(2.0,0.0,−2.0),v1(0.0,2.0,−2.0),v2(−2.0,0.0,−2.0),你需要将这三个点的坐标变换为屏幕坐标,并在屏幕上绘制出对应的线框三角形(在代码框架中,我们已经提供了draw_triangl......