- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
随着2018年,三星天津研究院的裁撤,我选择了到广州的三星研究院工作,与最心爱的她开始一起生活.
这一年的开始,我注册了博客园。和2014年类似,在刚注册不久,我写了一篇题为《全新开始,全心出发》的文章。在这篇文章里,我又一次刨析自己,深入内心.
从网站的风格样式上看,博客园并无优势,甚至在某些地方还是21世纪初的样子。但也正因为如此,它更加纯粹和朴素,广告更少,更加专注内容,专注在技术本身.
当时的我,已经工作有5年多,心慢慢地变得踏实下来。5年这个时间长度,并不算太久,我还能走得更远。在这篇文章里,我写了这样一段话,这段话一直是我坚守的人生信条,也是支持我努力奋斗的动力源泉:
在三星通信研究院工作,对我而言是一件幸福的事情。在这里工作强度不是一直都很大,有时间自我学习。我始终认为,在人生的现阶段,投资自己是最重要的,而不是每个月到底能挣几个钱,因为发财没办法靠打工。即使年薪30万,50万又能如何呢?不吃不喝,一年下来,也不能在一线城市买下一套房,也不能买下自己心爱的座驾。更何况,即使买的下来这些,也不能保证自己不去要更多的东西,那样的人生不是我想要的。或许那样真的可以让自己这一生过得很舒服,但是舒服过后依旧会归于尘土。但如果我们真的可以在人间留下来点什么,留在了某些人的记忆中,这意味着这些人将带着我们的精神,带着我们的经验活下去,甚至传承下去。在某种意义上讲,这将是一种永生.
写博客对我而言就是实现理想的一种方式,我希望通过文字和图片记录下我在编程路上踩过的各种“坑”和探过的各种路。这对于尚未遇到“坑”和打算走新路的朋友来说,多少都会有一些帮助。虽然到今天,我仍然没有当上老师,没能站上讲台,但只要能够起到帮助和引导的作用,做事情的形式还显得那么重要吗?
没错,“坚持初心”这四个在我眼里,并不是说一定要实现某件事。它更像是一种“核心原则”。儿时的我特别向往老师这个职业,觉得教书育人很高尚。虽然最终没有走上老师这条路,但是能把知识分享给需要的人,能真正地帮助到那些需要帮助的人,也是我的价值的体现。换句话说,我的理想,就是学习,然后输出。这样看来,当老师是实现方法,写博客是实现方法,写书也是实现方法.
坦率地讲,这里面也不乏一些“私心”,如果你看过我写的这篇文章,会发现我在其中还摘录了这样一段话:
说到“世俗”的一面,我的理想就是提高自己的知名度,让自己在这个世界上留下些许存在过的印记。它或许是一篇文章,或许是一段代码片,或许是一张照片,甚至只存在于某个人或某几个人的记忆中。这和我少年时期想要当一名老师的理想并不冲突。经过成长的洗礼,最初的梦想经过升华变作了某种执念和精神,又化作了条条通往理想之门的大路。我逐渐意识到,自己少年时期的梦想只是一种具象化的结果。在每一次静静的思索之后,在每一次深深的解剖自己之后,慢慢地,知道了自己真正想要的东西;逐渐地,找到了实现它们的途径。能够意识到这些并将其转化为行动,对我而言,已经是莫大的欣喜.
是的,我想我已经很清楚地表明了自己的坚持与态度,其实很简单.
在这条路上,难免会有对于名和利的追逐。但是,我觉得这里要把握好一个尺度。要在行业里、人群中有发言权,需要有标签和成就,需要有让人们信服的东西。但如果痴迷于这些,无异于修炼武林秘籍时走火入魔。所以我会左右权衡,然后做取舍。当然,我也会犯错,甚至双眼也会被诱惑。但这是我选择的路,这些挑战,我就都会接受.
说回工作,其实相对来说,我在广州研究院的工作更加轻松。虽然也在做性能优化,但是一部分业务变成了三方App分析。这部分工作相对容易一些,所以总体来说更加轻松了.
于是乎,不只是博客园。在闲暇时,我开设了知乎专栏和微信订阅号。那个时候的订阅号还叫做“App开发经验谈”。刚开始是把之前写过的文章搬运过来,后来就是新创作的内容多平台同步发,像现在这样。后来还在GitChat上面举行收费Chat,主要是写Flutter技术方面,评价一直是五颗星满星.
再到后来,就有编辑邀请我写一本Flutter相关的书。那个时候Flutter刚刚发布没多久,版本号还没过1.5。在技术圈属于“新兴”的玩意,再加上其描绘的跨平台开发蓝图,吸引了不少开发者.
一开始,我觉得自己一直是读者,技术水平远远达不到写书的高度,就婉拒了那位编辑。后来没过多久,大概也就一周或者两周的时间,就又有一位编辑来找到我,问我有没有写书的意向.
能收到这样的邀请,固然是件开心事。但如果真的要写,就是一份责任.
我回到当时租的房子,和老婆商量这件事。我把我的担心跟她讲了,她劝我试一下,人生总要有第一次。看到老婆这么支持和鼓励我,我最终鼓起勇气开始写作.
由于是我一个人写,再加上不是全职,速度固然比较慢。从3月12日开始规划目录结构,到8月9日完成全部初稿,总共用了5个月。说来也巧,写作这本书的开端是在3月12日,恰好是植树节。写作这本书,就像是种下了树苗。从此之后,我的写作不再是单纯的免费分享,而是终于开始走向盈利了。虽然到今天为止,这棵小树还没长成参天大树,甚至长出了一些不该有的树杈,但它终归是会成长,是会长大的,也终将变成一棵参天大树.
在写作这本书时,我还在书中藏了一些彩蛋。比如相声里的“报菜名”、同事的昵称、老婆的昵称等等。后来这些彩蛋被完整地保留了下载,如果感兴趣的话,可以搜索《Flutter从0基础到App上线》。但是,我不建议大家买来读了,毕竟是几年前的书,技术的更迭已经使这本书变得没什么时效性了.
毕竟是第一次写书,这次合作虽然最后以成功达成告终,但稿酬是按量计算的,而非销量。也就是说,交付、校对、修改、终版稿件后,只有一笔稿酬。无论这本书日后销售情况如何,收益也和我没什么关系了。万一我写出来一本爆款,岂不亏大了?
后来也是一次巧合,清华社的编辑联系到我,看我一直做Android性能优化,问我有没有这方面的意向。那个时候的我有了第一本书的成功,对后续的写作可以说是信心满满,甚至很期待再有一次。不过这次我变聪明了,先确定稿酬支付的方式,再继续往下谈.
第二本书,题目是《打造流畅的Android App》。这本书是面向有一定基础的Android开发者的,讲的内容其实就是我的工作总结,结果销量一般。不过这本书还带来了一个神奇的效应,就是到后来我面试的时候,面试官是拿着这本书进来的,结果自然是技术也没面什么内容,这个收益倒是我之前完全没有预料到的.
如此经历,让我明白:“正确的事,要重复做”。对,又是一个简单到不能再简单的道理.
随着工作年限的增长,我发觉很多类似这样简单的道理,反倒被很多人遗忘了。这就像极了我们买了很多书,或者收藏夹里装满了“干货”,却从没有看过一样。其实,正确的做法根本不是贪多,而是做好,哪怕只是很简单,很容易的小事情。正所谓:“勿以善小而不为”。而且作为程序员,应该很了解问题拆解是咋回事。道理都是一样的:一点一滴地做,汇总起来,就是个宏伟的目标.
除了这类盈利的写作,我的博文很荣幸地被谷歌开发者官方微信公众号转载了。我也收到了平生第一件来自技术社区的纪念品:好像是一件Google的T恤,还有Flutter的贴纸啥的。后来收到的越来越多,我就数不过来,也记不清了.
随着这些成就逐渐达成,博客便慢慢地被我疏远了,公众号也停更了,实在是忙不过来,顾不得它们了。毕竟我有了家庭,总不能回到家还像上班那样吧.
不知不觉,2019年就来到末尾了.
哦,对了,还有件大事。就是广州三星研究院,我所在的部门解体了。于是,我们便决定回天津生活。这是2019年年底发生的事,当然,真正离开是在2020年的春节期间。对,就是那个疫情刚开始大爆发的时候。也正是这样,我的司龄加了0.5,拿到了更多的赔偿金.
说起来,对三星这家公司还是挺感恩。首先是出差的机会,让我不再是单身;然后就是去广州工作生活,不用担心异地的问题;最后就是两次补偿金。这种体验,相信不是大部分都体验过的。当然,会有人觉得很动荡。但我觉得每一步都踩在了正确的节奏上,对于我来说,挺好的.
从前两年开始,每年年末,我都会看罗振宇的跨年演讲。2019年年末,终于有人陪我一起看了.
回顾那一年的跨年演讲内容,给我感触最深的就是灵魂五连问:“你是谁?你干啥?你为谁干?别人需要你吗?社会更好了么”?没错,这是值得每一个忙碌的人、每一个迷茫的人思考的问题。如果一个人,不再被需要,不再对这个社会、这个世界有所贡献,那这个人就已经死了.
抱着这样的态度,我们一起跨入了2020,那个去哪儿都要戴着口罩的一年.
最后此篇关于我的十年编程路2019年篇的文章就讲到这里了,如果你想了解更多关于我的十年编程路2019年篇的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试打印 timeval 类型的值。实际上我可以打印它,但我收到以下警告: 该行有多个标记 格式“%ld”需要“long int”类型,但参数 2 的类型为“struct timeval” 程序
我正在编写自己的 unix 终端,但在执行命令时遇到问题: 首先,我获取用户输入并将其存储到缓冲区中,然后我将单词分开并将它们存储到我的 argv[] 数组中。IE命令是“firefox”以启动存储在
我是 CUDA 的新手。我有一个关于一个简单程序的问题,希望有人能注意到我的错误。 __global__ void ADD(float* A, float* B, float* C) { con
我有一个关于 C 语言 CGI 编程的一般性问题。 我使用嵌入式 Web 服务器来处理 Web 界面。为此,我在服务器中存储了一个 HTML 文件。在此 HTML 文件中包含 JavaScript 和
**摘要:**在代码的世界中,是存在很多艺术般的写法,这可能也是部分程序员追求编程这项事业的内在动力。 本文分享自华为云社区《【云驻共创】用4种代码中的艺术试图唤回你对编程的兴趣》,作者: break
我有一个函数,它的任务是在父对象中创建一个变量。我想要的是让函数在调用它的级别创建变量。 createVariable testFunc() [1] "test" > testFunc2() [1]
以下代码用于将多个连续的空格替换为1个空格。虽然我设法做到了,但我对花括号的使用感到困惑。 这个实际上运行良好: #include #include int main() { int ch, la
我正在尝试将文件写入磁盘,然后自动重新编译。不幸的是,某事似乎不起作用,我收到一条我还不明白的错误消息(我是 C 初学者 :-)。如果我手动编译生成的 hello.c,一切正常吗?! #include
如何将指针值传递给结构数组; 例如,在 txt 上我有这个: John Doe;xxxx@hotmail.com;214425532; 我的代码: typedef struct Person{
我尝试编写一些代码来检索 objectID,结果是 2B-06-01-04-01-82-31-01-03-01-01 . 这个值不正确吗? // Send a SysObjectId SNMP req
您好,提前感谢您的帮助, (请注意评论部分以获得更多见解:即,以下示例中的成本列已添加到此问题中;西蒙提供了一个很好的答案,但成本列本身并未出现在他的数据响应中,尽管他提供的功能与成本列一起使用) 我
我想知道是否有人能够提出一些解决非线性优化问题的软件包的方法,而非线性优化问题可以为优化解决方案提供整数变量?问题是使具有相等约束的函数最小化,该函数受某些上下边界约束的约束。 我已经在R中使用了'n
我是 R 编程的初学者,正在尝试向具有 50 列的矩阵添加一个额外的列。这个新列将是该行中前 10 个值的平均值。 randomMatrix <- generateMatrix(1,5000,100,
我在《K&R II C 编程 ANSI C》一书中读到,“>>”和“0; nwords--) sum += *buf++; sum = (sum >>
当下拉列表的选择发生变化时,我想: 1) 通过 div 在整个网站上显示一些 GUI 阻止覆盖 2)然后处理一些代码 3) 然后隐藏叠加层。 问题是,当我在事件监听器函数中编写此逻辑时,将执行 onC
我正在使用 Clojure 和 RESTEasy 设计 JAX-RS REST 服务器. 据我了解,用 Lisp 系列语言编写的应用程序比用“传统”命令式语言编写的应用程序更多地构建为“特定于领域的语
我目前正在研究一种替代出勤监控系统作为一项举措。目前,我设计的用户表单如下所示: Time Stamp Userform 它的工作原理如下: 员工将选择他/她将使用的时间戳类型:开始时间、超时、第一次
我是一名学生,试图自学编程,从在线资源和像您这样的人那里获得帮助。我在网上找到了一个练习来创建一个小程序来执行此操作: 编写一个程序,读取数字 a 和 b(长整型)并列出 a 和 b 之间有多少个数字
我正在尝试编写一个 shell 程序,给定一个参数,打印程序的名称和参数中的每个奇数词(即,不是偶数词)。但是,我没有得到预期的结果。在跟踪我的程序时,我注意到,尽管奇数词(例如,第 5 个词,5 %
只是想知道是否有任何 Java API 可以让您控制台式机/笔记本电脑外壳上的 LED? 或者,如果不可能,是否有可能? 最佳答案 如果你说的是前面的 LED 指示电源状态和 HDD 繁忙状态,恐怕没
我是一名优秀的程序员,十分优秀!