惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Project Zero
Project Zero
F
Fortinet All Blogs
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
T
Tailwind CSS Blog
WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
S
Schneier on Security
N
News and Events Feed by Topic
N
News | PayPal Newsroom
H
Help Net Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
The Exploit Database - CXSecurity.com
Attack and Defense Labs
Attack and Defense Labs
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
A
About on SuperTechFans
AWS News Blog
AWS News Blog
S
Secure Thoughts
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
C
Cybersecurity and Infrastructure Security Agency CISA
V2EX - 技术
V2EX - 技术
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
Latest news
Latest news
C
Cyber Attacks, Cyber Crime and Cyber Security
大猫的无限游戏
大猫的无限游戏
The Last Watchdog
The Last Watchdog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
H
Hacker News: Front Page
P
Proofpoint News Feed
N
News and Events Feed by Topic
H
Heimdal Security Blog
L
Lohrmann on Cybersecurity
有赞技术团队
有赞技术团队
L
LangChain Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog

Inno' Blog

将 what-digit-you-write 部署到 Heroku上 | Inno' Blog 论文浅析:GpSense: A GPU-friendy method for common-sense subgraph matching in massively parallel architectures Github项目clone速度过慢?试试这招 | Inno' Blog Hadoop分布式搭建全流程记录 | Inno' Blog Shell编程学习记录 | Inno' Blog 重学MySQL之视图 | Inno' Blog 重学MySQL之查询练习 | Inno' Blog 重学MySQL之事务 | Inno' Blog 重学MySQL之范式 | Inno' Blog 重学MySQL之基本操作和约束 | Inno' Blog 为你的Web应用提供HTTPS服务 | Inno' Blog 一个关于切片的小问题 | Inno' Blog Go语言学习笔记 | Inno' Blog 关于英译中的个人技巧 | Inno' Blog YARN 架构 | Inno' Blog HDFS 架构 | Inno' Blog 正则中关于环视(lookaround)的小例子 | Inno' Blog 设计模式(十八):访问者模式 | Inno' Blog 如何借助Github进行协同开发 | Inno' Blog
不知不觉已经写够了十万行代码 | Inno' Blog
Inno Fang · 2019-04-15 · via Inno' Blog

大一的时候,那会还是一个刚开始学 C 语言的小白,偶然间看到过一个问题 如何才能写够十万行代码。当时觉得,我这种水平要在毕业前写够十万行代码真的太难了,我也没奢望能写够这么多的代码。

大学四年,转瞬即逝。不知不觉间,我差不多写到了大学(可能)最后一个项目 —— 毕设。现在已是四月中旬,经过一个多月的摸索,一边查阅文献,一边尝试,毕设也算是接近完成。偶然回过头想看看我那些与代码为伴的时光,很好奇这四年到底写了多少行代码?

我这四年写过的项目包括但不限于算法实践、Android、桌面 GUI、React、Spring Boot、机器学习、深度学习等,没接过外包,写过的代码有 C、C++、Java、Kotlin、Python、JavaScript、Dart,Processing 等,其它还玩过的比如 Lisp、Clojure、Matlab、Shell 等,再比如 HTML、CSS、XML 这些就暂且不算代码了吧,Github 上托管的项目也有 23 个了。于是就想写一个小工具来测一测自己还记得的且 Github 上还维护的项目,那些本地未上传或搬不上台面的项目就不统计了,下面是结果截图

result

总代码行数为 163,747,其中注释有 23,277,空行 29,437,所以有效代码大概为 111,033。这次写的代码计数工具,剔除了 out、build、node_modules、target 等项目生成文件,并且我检查过所有输出的路径,所以最后结果还是比较可信的。

上面的结果显示,我的 Java 代码占总有效代码行数的 67.90%。我大一进了 Android 实验室之后,就把大部分经历都投入到了 Java 和 Android 开发中,从大一下写到了大三上,差不多两年时间,后期为了跟进前沿技术开始学习了 Kotlin,期间也让我一直都很困惑,自己的技术面过于狭窄。到了大三下开始学习 Web 开发,我没有使用学校教的 SSH 开发,而是另外自学了 Spring Boot 和 React,一是想着拓宽自己的技术面,二来想着框架既然要学为什么不学新的呢?最后使用这两项技术,利用前后台分离的方式,实现了一个 Jokul 电影网站,写完后也算是打开了新世界吧,至少尝试过其它的开发;考研之前两个月还学了 TensorFlow 和 Flask,写了一个手写数字识别的网站 What digit you write?;大四上考完研后,与同学合作完成了软件大型实验周的课设,我负责前端部分完成了 Haetae 獬豸,这是一个信访大数据智能管理系统的前端,因为涉及敏感数据,所以后端没有开源,这也算是我大学四年唯一一次真正意义上的协同开发。也正是大三下到大四上的这一年,我的技术面才有了拓展。

但是,即使写够了十万行代码,我感觉也只是到了另一个阶段而已,并没什么特别的感觉,或者说也只算是成为了入门码农吧。这次考研没有上岸,惆怅了很久,如果前一年去找工作的话,现在应该也是不一样的景象,只是现在心里还是放不下,想了好久还是希望能够读书,学更多自己想学的东西,只可惜现在依旧长路漫漫。

塞翁失马,焉知非福

往后路的还得慢慢走呀。


对了,安利下这次统计代码用的工具吧 —— Code Counter,可以通过指定路径或者指定包含多个路径的文件作为输入,统计指定后缀的代码文件,实现了过滤功能,并且能够统计出代码数、空行数、注释行数,基本满足常见需求。

欢迎使用及反馈 。😁